@auxo-dev/o1js-encrypt
Advanced tools
@@ -0,5 +1,6 @@ | ||
| import { Field, Group, Scalar } from 'o1js'; | ||
| import { Bit255 } from '@auxo-dev/auxo-libs'; | ||
| import { Field, Group, Scalar } from 'o1js'; | ||
| export { encrypt, decrypt }; | ||
| export { homomorphicEncrypt, homomorphicDecrypt, bruteForce }; | ||
| export { homomorphicEncrypt, homomorphicDecrypt }; | ||
| export { BabyStep, bruteForce, prepareBabySteps, loadBabySteps, babyStepGiantStep, }; | ||
| declare function encrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): { | ||
@@ -20,2 +21,60 @@ c: Bit255; | ||
| declare function bruteForce(point: Group, step?: bigint, max?: bigint): Scalar; | ||
| declare const BabyStep_base: (new (value: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) & { | ||
| _isStruct: true; | ||
| } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{ | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }, { | ||
| pointHash: bigint; | ||
| scalar: bigint; | ||
| }>, "fromFields"> & { | ||
| fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| } & { | ||
| fromValue: (value: { | ||
| pointHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: bigint | Scalar; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| toInput: (x: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| fields?: Field[] | undefined; | ||
| packed?: [Field, number][] | undefined; | ||
| }; | ||
| toJSON: (x: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| pointHash: string; | ||
| scalar: string; | ||
| }; | ||
| fromJSON: (x: { | ||
| pointHash: string; | ||
| scalar: string; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| empty: () => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| }; | ||
| declare class BabyStep extends BabyStep_base { | ||
| } | ||
| declare function prepareBabySteps(numSteps: number, file: string): void; | ||
| declare function loadBabySteps(file: string): Array<bigint[]>; | ||
| declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Scalar; | ||
| declare function homomorphicDecrypt(ciphers: { | ||
@@ -22,0 +81,0 @@ C: Group; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.BabyStep = void 0; | ||
| exports.encrypt = encrypt; | ||
@@ -8,4 +9,9 @@ exports.decrypt = decrypt; | ||
| exports.bruteForce = bruteForce; | ||
| exports.prepareBabySteps = prepareBabySteps; | ||
| exports.loadBabySteps = loadBabySteps; | ||
| exports.babyStepGiantStep = babyStepGiantStep; | ||
| const tslib_1 = require("tslib"); | ||
| const fs = tslib_1.__importStar(require("fs")); | ||
| const o1js_1 = require("o1js"); | ||
| const auxo_libs_1 = require("@auxo-dev/auxo-libs"); | ||
| const o1js_1 = require("o1js"); | ||
| function encrypt(m, pbK, b, isCommitting = false) { | ||
@@ -55,3 +61,3 @@ let U = o1js_1.Group.generator.scale(b); | ||
| testValue = testValue.add(o1js_1.Scalar.from(step)); | ||
| if (testValue.toBigInt() >= BigInt(max)) | ||
| if (testValue.toBigInt() > BigInt(max)) | ||
| throw new Error('No valid value found!'); | ||
@@ -61,2 +67,45 @@ } | ||
| } | ||
| class BabyStep extends (0, o1js_1.Struct)({ | ||
| pointHash: o1js_1.Field, | ||
| scalar: o1js_1.Scalar, | ||
| }) { | ||
| } | ||
| exports.BabyStep = BabyStep; | ||
| function prepareBabySteps(numSteps, file) { | ||
| let text = ''; | ||
| for (let i = 0; i < numSteps; i++) { | ||
| let babyStep = [ | ||
| o1js_1.Poseidon.hash(o1js_1.Group.generator.scale(o1js_1.Scalar.from(i)).toFields()).toBigInt(), | ||
| BigInt(i), | ||
| ]; | ||
| text += babyStep.toString() + '\n'; | ||
| } | ||
| fs.writeFileSync(file, text, 'utf8'); | ||
| } | ||
| function loadBabySteps(file) { | ||
| let data; | ||
| try { | ||
| data = fs.readFileSync(file, 'utf8'); | ||
| } | ||
| catch (err) { | ||
| console.error(err); | ||
| throw err; | ||
| } | ||
| const lines = data.split('\n').slice(0, -1); | ||
| return lines.map((line) => line.split(',').map((e) => BigInt(e))); | ||
| } | ||
| function babyStepGiantStep(point, babySteps, step = 1n, max = o1js_1.Scalar.ORDER) { | ||
| let m = Math.ceil(Math.sqrt(Number(max / step))); | ||
| console.log('m:', m); | ||
| console.log('Number of baby steps:', babySteps.size); | ||
| let testPoint = point; | ||
| let giantStep = o1js_1.Group.generator.scale(m).neg(); | ||
| for (let i = 0; i < m; i++) { | ||
| let index = o1js_1.Poseidon.hash(testPoint.toFields()).toString(); | ||
| if (babySteps.has(index)) | ||
| return o1js_1.Scalar.from(BigInt(i * m) + babySteps.get(index)); | ||
| testPoint = testPoint.add(giantStep); | ||
| } | ||
| throw new Error('No valid value found!'); | ||
| } | ||
| function homomorphicDecrypt(ciphers, prvK, step, max, isCommitting = false, random = o1js_1.Scalar.from(0n)) { | ||
@@ -63,0 +112,0 @@ let acc_cipher = accumulateCiphers(ciphers); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../../src/ecelgamal/lib.ts"],"names":[],"mappings":";;AAGS,0BAAO;AAAE,0BAAO;AAChB,gDAAkB;AAAE,gDAAkB;AAAE,gCAAU;AAJ3D,mDAA6C;AAC7C,+BAAsD;AAuBtD,SAAS,OAAO,CACZ,CAAS,EACT,GAAU,EACV,CAAS,EACT,YAAY,GAAG,KAAK;IAMpB,IAAI,CAAC,GAAG,YAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,eAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG,kBAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,kBAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,UAAU,GAAG,YAAY;QACzB,CAAC,CAAC,eAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC,CAAC,IAAA,YAAK,EAAC,CAAC,CAAC,CAAC;IACf,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,OAAO,CACZ,CAAS,EACT,CAAQ,EACR,IAAY,EACZ,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,aAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAExB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,YAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,IAAI,CAAC,GAAG,eAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,GAAG,kBAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1D,IAAI,UAAU,GAAG,YAAY;QACzB,CAAC,CAAC,eAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,CAAC,CAAC,IAAA,YAAK,EAAC,CAAC,CAAC,CAAC;IACf,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,kBAAkB,CACvB,CAAS,EACT,GAAU,EACV,CAAS,EACT,YAAY,GAAG,KAAK;IAEpB,IAAI,CAAC,GAAG,YAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,GAAG,YAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,UAAU,GAAG,YAAY;QACzB,CAAC,CAAC,eAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC,CAAC,IAAA,YAAK,EAAC,CAAC,CAAC,CAAC;IACf,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAiC;IAIxD,OAAO,OAAO,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACZ,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC,EACD,EAAE,CAAC,EAAE,YAAK,CAAC,IAAI,EAAE,CAAC,EAAE,YAAK,CAAC,IAAI,EAAE,CACnC,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,KAAY,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,aAAM,CAAC,KAAK;IAC3D,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,SAAS,GAAG,aAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,OAAO,IAAI,EAAE,CAAC;QACV,KAAK,GAAG,KAAK;aACR,GAAG,CAAC,YAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACrC,MAAM,CAAC,YAAK,CAAC,IAAI,CAAC;aAClB,SAAS,EAAE,CAAC;QAEjB,IAAI,KAAK;YAAE,OAAO,SAAS,CAAC;aACvB,CAAC;YACF,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,aAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CACvB,OAAiC,EACjC,IAAY,EACZ,IAAY,EACZ,GAAW,EACX,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,aAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAMxB,IAAI,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,SAAS,GAAG,UAAU,CACtB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAC1C,IAAI,EACJ,GAAG,CACN,CAAC;IACF,IAAI,UAAU,GAAG,YAAY;QACzB,CAAC,CAAC,eAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC,CAAC,IAAA,YAAK,EAAC,CAAC,CAAC,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACjD,CAAC"} | ||
| {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../../src/ecelgamal/lib.ts"],"names":[],"mappings":"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"} |
@@ -0,5 +1,6 @@ | ||
| import { Field, Group, Scalar } from 'o1js'; | ||
| import { Bit255 } from '@auxo-dev/auxo-libs'; | ||
| import { Field, Group, Scalar } from 'o1js'; | ||
| export { encrypt, decrypt }; | ||
| export { homomorphicEncrypt, homomorphicDecrypt, bruteForce }; | ||
| export { homomorphicEncrypt, homomorphicDecrypt }; | ||
| export { BabyStep, bruteForce, prepareBabySteps, loadBabySteps, babyStepGiantStep, }; | ||
| declare function encrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): { | ||
@@ -20,2 +21,60 @@ c: Bit255; | ||
| declare function bruteForce(point: Group, step?: bigint, max?: bigint): Scalar; | ||
| declare const BabyStep_base: (new (value: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) & { | ||
| _isStruct: true; | ||
| } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{ | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }, { | ||
| pointHash: bigint; | ||
| scalar: bigint; | ||
| }>, "fromFields"> & { | ||
| fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| } & { | ||
| fromValue: (value: { | ||
| pointHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: bigint | Scalar; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| toInput: (x: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| fields?: Field[] | undefined; | ||
| packed?: [Field, number][] | undefined; | ||
| }; | ||
| toJSON: (x: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| pointHash: string; | ||
| scalar: string; | ||
| }; | ||
| fromJSON: (x: { | ||
| pointHash: string; | ||
| scalar: string; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| empty: () => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| }; | ||
| declare class BabyStep extends BabyStep_base { | ||
| } | ||
| declare function prepareBabySteps(numSteps: number, file: string): void; | ||
| declare function loadBabySteps(file: string): Array<bigint[]>; | ||
| declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Scalar; | ||
| declare function homomorphicDecrypt(ciphers: { | ||
@@ -22,0 +81,0 @@ C: Group; |
@@ -0,5 +1,7 @@ | ||
| import * as fs from 'fs'; | ||
| import { Field, Group, Poseidon, Scalar, Struct } from 'o1js'; | ||
| import { Bit255 } from '@auxo-dev/auxo-libs'; | ||
| import { Field, Group, Poseidon, Scalar } from 'o1js'; | ||
| export { encrypt, decrypt }; | ||
| export { homomorphicEncrypt, homomorphicDecrypt, bruteForce }; | ||
| export { homomorphicEncrypt, homomorphicDecrypt }; | ||
| export { BabyStep, bruteForce, prepareBabySteps, loadBabySteps, babyStepGiantStep, }; | ||
| function encrypt(m, pbK, b, isCommitting = false) { | ||
@@ -49,3 +51,3 @@ let U = Group.generator.scale(b); | ||
| testValue = testValue.add(Scalar.from(step)); | ||
| if (testValue.toBigInt() >= BigInt(max)) | ||
| if (testValue.toBigInt() > BigInt(max)) | ||
| throw new Error('No valid value found!'); | ||
@@ -55,2 +57,44 @@ } | ||
| } | ||
| class BabyStep extends Struct({ | ||
| pointHash: Field, | ||
| scalar: Scalar, | ||
| }) { | ||
| } | ||
| function prepareBabySteps(numSteps, file) { | ||
| let text = ''; | ||
| for (let i = 0; i < numSteps; i++) { | ||
| let babyStep = [ | ||
| Poseidon.hash(Group.generator.scale(Scalar.from(i)).toFields()).toBigInt(), | ||
| BigInt(i), | ||
| ]; | ||
| text += babyStep.toString() + '\n'; | ||
| } | ||
| fs.writeFileSync(file, text, 'utf8'); | ||
| } | ||
| function loadBabySteps(file) { | ||
| let data; | ||
| try { | ||
| data = fs.readFileSync(file, 'utf8'); | ||
| } | ||
| catch (err) { | ||
| console.error(err); | ||
| throw err; | ||
| } | ||
| const lines = data.split('\n').slice(0, -1); | ||
| return lines.map((line) => line.split(',').map((e) => BigInt(e))); | ||
| } | ||
| function babyStepGiantStep(point, babySteps, step = 1n, max = Scalar.ORDER) { | ||
| let m = Math.ceil(Math.sqrt(Number(max / step))); | ||
| console.log('m:', m); | ||
| console.log('Number of baby steps:', babySteps.size); | ||
| let testPoint = point; | ||
| let giantStep = Group.generator.scale(m).neg(); | ||
| for (let i = 0; i < m; i++) { | ||
| let index = Poseidon.hash(testPoint.toFields()).toString(); | ||
| if (babySteps.has(index)) | ||
| return Scalar.from(BigInt(i * m) + babySteps.get(index)); | ||
| testPoint = testPoint.add(giantStep); | ||
| } | ||
| throw new Error('No valid value found!'); | ||
| } | ||
| function homomorphicDecrypt(ciphers, prvK, step, max, isCommitting = false, random = Scalar.from(0n)) { | ||
@@ -57,0 +101,0 @@ let acc_cipher = accumulateCiphers(ciphers); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../../src/ecelgamal/lib.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../../src/ecelgamal/lib.ts"],"names":[],"mappings":"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"} |
@@ -0,5 +1,6 @@ | ||
| import { Field, Group, Scalar } from 'o1js'; | ||
| import { Bit255 } from '@auxo-dev/auxo-libs'; | ||
| import { Field, Group, Scalar } from 'o1js'; | ||
| export { encrypt, decrypt }; | ||
| export { homomorphicEncrypt, homomorphicDecrypt, bruteForce }; | ||
| export { homomorphicEncrypt, homomorphicDecrypt }; | ||
| export { BabyStep, bruteForce, prepareBabySteps, loadBabySteps, babyStepGiantStep, }; | ||
| declare function encrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): { | ||
@@ -20,2 +21,60 @@ c: Bit255; | ||
| declare function bruteForce(point: Group, step?: bigint, max?: bigint): Scalar; | ||
| declare const BabyStep_base: (new (value: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) & { | ||
| _isStruct: true; | ||
| } & Omit<import("o1js/dist/node/lib/provable/types/provable-intf").Provable<{ | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }, { | ||
| pointHash: bigint; | ||
| scalar: bigint; | ||
| }>, "fromFields"> & { | ||
| fromFields: (fields: import("o1js/dist/node/lib/provable/field").Field[]) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| } & { | ||
| fromValue: (value: { | ||
| pointHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: bigint | Scalar; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| toInput: (x: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| fields?: Field[] | undefined; | ||
| packed?: [Field, number][] | undefined; | ||
| }; | ||
| toJSON: (x: { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }) => { | ||
| pointHash: string; | ||
| scalar: string; | ||
| }; | ||
| fromJSON: (x: { | ||
| pointHash: string; | ||
| scalar: string; | ||
| }) => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| empty: () => { | ||
| pointHash: import("o1js/dist/node/lib/provable/field").Field; | ||
| scalar: Scalar; | ||
| }; | ||
| }; | ||
| declare class BabyStep extends BabyStep_base { | ||
| } | ||
| declare function prepareBabySteps(numSteps: number, file: string): void; | ||
| declare function loadBabySteps(file: string): Array<bigint[]>; | ||
| declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Scalar; | ||
| declare function homomorphicDecrypt(ciphers: { | ||
@@ -22,0 +81,0 @@ C: Group; |
+1
-1
| { | ||
| "name": "@auxo-dev/o1js-encrypt", | ||
| "version": "1.0.2", | ||
| "version": "1.0.3", | ||
| "description": "", | ||
@@ -5,0 +5,0 @@ "author": "", |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
226789
6.15%4555
6.3%3
200%