UNPKG

o1js-rsa

Version:

This repository exposes the API from the [o1js RSA example](https://github.com/o1-labs/o1js/tree/main/src/examples/crypto/rsa), making it importable and enabling RSA65537 signature verification on the Mina blockchain across various projects that utilize [

86 lines (85 loc) 2.63 kB
/** * RSA signature verification with o1js */ import { Field, Provable, Unconstrained } from 'o1js'; export { Bigint2048, rsaVerify65537 }; declare const Bigint2048_base: (new (value: { fields: import("o1js/dist/node/lib/provable/field").Field[]; value: Unconstrained<bigint>; }) => { fields: import("o1js/dist/node/lib/provable/field").Field[]; value: Unconstrained<bigint>; }) & { _isStruct: true; } & Provable<{ fields: import("o1js/dist/node/lib/provable/field").Field[]; value: Unconstrained<bigint>; }, { fields: bigint[]; value: any; }> & { fromValue: (value: { fields: import("o1js/dist/node/lib/provable/field").Field[] | bigint[]; value: any; }) => { fields: import("o1js/dist/node/lib/provable/field").Field[]; value: Unconstrained<bigint>; }; toInput: (x: { fields: import("o1js/dist/node/lib/provable/field").Field[]; value: Unconstrained<bigint>; }) => { fields?: import("o1js/dist/node/lib/provable/field").Field[] | undefined; packed?: [import("o1js/dist/node/lib/provable/field").Field, number][] | undefined; }; toJSON: (x: { fields: import("o1js/dist/node/lib/provable/field").Field[]; value: Unconstrained<bigint>; }) => { fields: string[]; value: { toFields: {}; toAuxiliary: {}; fromFields: {}; sizeInFields: {}; check: {}; toValue: {}; fromValue: {}; }; }; fromJSON: (x: { fields: string[]; value: { toFields: {}; toAuxiliary: {}; fromFields: {}; sizeInFields: {}; check: {}; toValue: {}; fromValue: {}; }; }) => { fields: import("o1js/dist/node/lib/provable/field").Field[]; value: Unconstrained<bigint>; }; empty: () => { fields: import("o1js/dist/node/lib/provable/field").Field[]; value: Unconstrained<bigint>; }; }; declare class Bigint2048 extends Bigint2048_base { modMul(x: Bigint2048, y: Bigint2048): Bigint2048; modSquare(x: Bigint2048): Bigint2048; toBigint(): bigint; static from(x: bigint): Bigint2048; static check(x: { fields: Field[]; }): void; } /** * RSA signature verification * * TODO this is a bit simplistic; according to RSA spec, message must be 256 bits * and the remaining bits must follow a specific pattern. */ declare function rsaVerify65537(message: Bigint2048, signature: Bigint2048, modulus: Bigint2048): void;