o1js-rsa
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 • Public • Published

O1JS VERIFY RSA65537

This repository exposes the API from the o1js RSA example, making it importable and enabling RSA65537 signature verification on the Mina blockchain across various projects that utilize o1js.

For more details on the source code, please review PR #1229.

How to use the package

  1. Install the package
npm install o1js-rsa
  1. Import the Bigint2048 provable type and the rsaVerify65537 function
import { Bigint2048, rsaVerify65537 } from 'o1js-rsa';
  1. Given a message, signature, and modulus you can verify an RSA65537 signature in o1js as follows:
const message = Bigint2048.from(msg);
const signature = Bigint2048.from(sig);
const modulus = Bigint2048.from(pubKey); // domain public key

rsaVerify65537(message, signature, modulus);

Please refer to rsaZkProgram or this test-case for better context on how to use the package API.

Notes

  • The Bigint2048.from() static method takes native bigint type inputs.

  • The provable type Bigint2048 is a combination of 18 limbs, with each limb being a 116-bit field element. Therefore, it will only throw an overflow error if the input size exceeds 2088 bits.

  • The Bigint2048 provable type only supports the x*y mod p operation, but not other operations like addition, division, etc.

  • Please ensure to input the correct RSA parameters in order to receive an intuitive response from the rsaVerify65537 function.

  • For concise information on RSA theory, visit this link.

How to build

npm run build

How to run tests

npm run test
npm run testw # watch mode

How to run coverage

npm run coverage

How to benchmark

npm run summary

Preview

Summary
Total rows 12401
RangeCheck0 2488
Generic 9913

Action Time (s)
Compile 2.103
Prove 14.656
Verify 1.187

License

Apache-2.0

Package Sidebar

Install

npm i o1js-rsa

Weekly Downloads

3

Version

0.0.1

License

Apache-2.0

Unpacked Size

91.9 kB

Total Files

43

Last publish

Collaborators

  • shigoto-dev19