🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@auxo-dev/o1js-encrypt

Package Overview
Dependencies
Maintainers
4
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@auxo-dev/o1js-encrypt - npm Package Compare versions

Comparing version
1.0.3
to
1.1.0
+39
-110
build/cjs/src/ecelgamal/hash-encoding.d.ts
import { Field, Scalar } from 'o1js';
import { Bit255 } from '@auxo-dev/auxo-libs';
export { Input, DecProof, EncProof, Dec, Enc };
export { InputCom, EncCom, DecCom, EncComProof, DecComProof };
export declare const EMPTY_COMMITMENT: import("o1js/dist/node/lib/provable/field.js").Field;
export declare const PADDING_BIT: import("o1js/dist/node/lib/provable/bool.js").Bool;
export { InputCom, EncComProof, DecComProof, EncCom, DecCom };
declare const Input_base: (new (value: {
pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;
}) => {
pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -19,3 +16,3 @@ }) & {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -27,6 +24,3 @@ }, {

};
c: {
head: bigint;
tail: bigint;
};
c: bigint;
U: {

@@ -39,3 +33,3 @@ x: bigint;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -49,6 +43,3 @@ };

};
c: Bit255 | {
head: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
tail: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
};
c: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group | {

@@ -60,3 +51,3 @@ x: bigint | number | import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -66,3 +57,3 @@ };

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -75,3 +66,3 @@ }) => {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -83,6 +74,3 @@ }) => {

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -98,6 +86,3 @@ x: string;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -109,3 +94,3 @@ x: string;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -115,3 +100,3 @@ };

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -145,10 +130,2 @@ };

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -158,8 +135,6 @@ publicInputType: typeof Input;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -169,4 +144,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -235,10 +209,2 @@ declare const EncProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -248,8 +214,6 @@ publicInputType: typeof Input;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar];
};
rawMethods: {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<void>;
};

@@ -259,4 +223,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -304,3 +267,3 @@ declare const DecProof_base: {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -310,3 +273,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -318,3 +281,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -327,6 +290,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: {
head: bigint;
tail: bigint;
};
c: bigint;
U: {

@@ -340,3 +300,3 @@ x: bigint;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -351,6 +311,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: Bit255 | {
head: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
tail: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
};
c: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group | {

@@ -363,3 +320,3 @@ x: bigint | number | import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -370,3 +327,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -380,3 +337,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -389,6 +346,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -405,6 +359,3 @@ x: string;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -417,3 +368,3 @@ x: string;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -424,3 +375,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -455,10 +406,2 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -468,8 +411,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -479,4 +420,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -545,10 +485,2 @@ declare const EncComProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -558,8 +490,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar, typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -569,4 +499,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -573,0 +502,0 @@ declare const DecComProof_base: {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PADDING_BIT = exports.EMPTY_COMMITMENT = exports.DecComProof = exports.EncComProof = exports.DecCom = exports.EncCom = exports.InputCom = exports.Enc = exports.Dec = exports.EncProof = exports.DecProof = exports.Input = void 0;
exports.DecCom = exports.EncCom = exports.DecComProof = exports.EncComProof = exports.InputCom = exports.Enc = exports.Dec = exports.EncProof = exports.DecProof = exports.Input = void 0;
const o1js_1 = require("o1js");
const auxo_libs_1 = require("@auxo-dev/auxo-libs");
exports.EMPTY_COMMITMENT = (0, o1js_1.Field)(0);
exports.PADDING_BIT = (0, o1js_1.Bool)(false);
class Input extends (0, o1js_1.Struct)({
pubKey: o1js_1.Group,
c: auxo_libs_1.Bit255,
c: o1js_1.Field,
U: o1js_1.Group,

@@ -20,3 +18,3 @@ }) {

encrypt: {
privateInputs: [o1js_1.Scalar, o1js_1.Scalar],
privateInputs: [o1js_1.Field, o1js_1.Field],
async method(input, plain, random) {

@@ -26,15 +24,7 @@ let U = o1js_1.Group.generator.scale(random);

let k = o1js_1.Poseidon.hash([U.toFields(), V.toFields()].flat());
let kBits = auxo_libs_1.Bit255.fromBits([...k.toBits(), exports.PADDING_BIT]);
let plainBits = auxo_libs_1.Bit255.fromScalar(plain);
let cipherBits = auxo_libs_1.Bit255.xor(kBits, plainBits);
cipherBits.assertEquals(input.c, auxo_libs_1.Utils.buildAssertMessage(Enc.name, 'encrypt', "Incorrect encryption"));
let c = auxo_libs_1.Utils.fieldXOR(k, plain);
c.assertEquals(input.c, auxo_libs_1.Utils.buildAssertMessage(Enc.name, 'encrypt', "Incorrect encryption"));
U.assertEquals(input.U, auxo_libs_1.Utils.buildAssertMessage(Enc.name, 'encrypt', "Incorrect encryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -51,17 +41,10 @@ });

decrypt: {
privateInputs: [o1js_1.Scalar, o1js_1.Scalar],
privateInputs: [o1js_1.Field, o1js_1.Scalar],
async method(input, plain, prvKey) {
let V = input.U.scale(prvKey);
let k = o1js_1.Poseidon.hash(input.U.toFields().concat(V.toFields()));
let kBits = auxo_libs_1.Bit255.fromBits([...k.toBits(), exports.PADDING_BIT]);
let decrypted = auxo_libs_1.Bit255.xor(kBits, input.c);
decrypted.assertEquals(auxo_libs_1.Bit255.fromScalar(plain), auxo_libs_1.Utils.buildAssertMessage(Dec.name, 'decrypt', "Incorrect decryption"));
let m = auxo_libs_1.Utils.fieldXOR(k, input.c);
m.assertEquals(plain, auxo_libs_1.Utils.buildAssertMessage(Dec.name, 'decrypt', "Incorrect decryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -75,3 +58,3 @@ });

pubKey: o1js_1.Group,
c: auxo_libs_1.Bit255,
c: o1js_1.Field,
U: o1js_1.Group,

@@ -87,3 +70,3 @@ commitment: o1js_1.Field,

encrypt: {
privateInputs: [o1js_1.Scalar, o1js_1.Scalar],
privateInputs: [o1js_1.Field, o1js_1.Field],
async method(input, plain, random) {

@@ -93,16 +76,8 @@ let U = o1js_1.Group.generator.scale(random);

let k = o1js_1.Poseidon.hash([U.toFields(), V.toFields()].flat());
let kBits = auxo_libs_1.Bit255.fromBits([...k.toBits(), exports.PADDING_BIT]);
let plainBits = auxo_libs_1.Bit255.fromScalar(plain);
let cipherBits = auxo_libs_1.Bit255.xor(kBits, plainBits);
cipherBits.assertEquals(input.c, auxo_libs_1.Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
let c = auxo_libs_1.Utils.fieldXOR(k, plain);
c.assertEquals(input.c, auxo_libs_1.Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
U.assertEquals(input.U, auxo_libs_1.Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
input.commitment.assertEquals(o1js_1.Poseidon.hash([plain.toFields(), random.toFields()].flat()), auxo_libs_1.Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
input.commitment.assertEquals(o1js_1.Poseidon.hash([plain, random]), auxo_libs_1.Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -119,24 +94,11 @@ });

decrypt: {
privateInputs: [o1js_1.Scalar, o1js_1.Scalar, o1js_1.Scalar],
privateInputs: [o1js_1.Field, o1js_1.Scalar, o1js_1.Field],
async method(input, plain, prvKey, random) {
let V = input.U.scale(prvKey);
let k = o1js_1.Poseidon.hash(input.U.toFields().concat(V.toFields()));
let kBits = auxo_libs_1.Bit255.fromBits([...k.toBits(), exports.PADDING_BIT]);
let decrypted = auxo_libs_1.Bit255.xor(kBits, input.c);
o1js_1.Group.generator
.scale(prvKey)
.assertEquals(input.pubKey, auxo_libs_1.Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
decrypted.assertEquals(auxo_libs_1.Bit255.fromScalar(plain), auxo_libs_1.Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
input.commitment.assertEquals(o1js_1.Poseidon.hash([
decrypted.toScalar().toFields(),
random.toFields(),
].flat()), auxo_libs_1.Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
let m = auxo_libs_1.Utils.fieldXOR(k, input.c);
m.assertEquals(plain, auxo_libs_1.Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
input.commitment.assertEquals(o1js_1.Poseidon.hash([m, random].flat()), auxo_libs_1.Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -143,0 +105,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"hash-encoding.js","sourceRoot":"","sources":["../../../../src/ecelgamal/hash-encoding.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"hash-encoding.js","sourceRoot":"","sources":["../../../../src/ecelgamal/hash-encoding.ts"],"names":[],"mappings":"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"}
import { Field, Group, Scalar } from 'o1js';
import { Bit255 } from '@auxo-dev/auxo-libs';
export { encrypt, decrypt };
export { homomorphicEncrypt, homomorphicDecrypt };
export { BabyStep, bruteForce, prepareBabySteps, loadBabySteps, babyStepGiantStep, };
declare function encrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): {
c: Bit255;
declare function encrypt(m: Field, pbK: Group, b: Field, isCommitting?: boolean): {
c: Field;
U: Group;
commitment: Field;
};
declare function decrypt(c: Bit255, U: Group, prvK: Scalar, isCommitting?: boolean, random?: Scalar): {
m: Scalar;
declare function decrypt(c: Field, U: Group, prvK: Scalar, isCommitting?: boolean, random?: import("o1js/dist/node/lib/provable/field").Field): {
m: Field;
commitment: Field;
};
declare function homomorphicEncrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): {
declare function homomorphicEncrypt(m: Field, pbK: Group, b: Field, isCommitting?: boolean): {
C: Group;

@@ -20,9 +19,9 @@ R: Group;

};
declare function bruteForce(point: Group, step?: bigint, max?: bigint): Scalar;
declare function bruteForce(point: Group, step?: bigint, max?: bigint): Field;
declare const BabyStep_base: (new (value: {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) & {

@@ -32,3 +31,3 @@ _isStruct: true;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}, {

@@ -40,3 +39,3 @@ pointHash: bigint;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};

@@ -46,10 +45,10 @@ } & {

pointHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
scalar: bigint | Scalar;
scalar: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
}) => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};
toInput: (x: {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {

@@ -61,3 +60,3 @@ fields?: Field[] | undefined;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {

@@ -72,7 +71,7 @@ pointHash: string;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};
empty: () => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};

@@ -84,7 +83,7 @@ };

declare function loadBabySteps(file: string): Array<bigint[]>;
declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Scalar;
declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Field;
declare function homomorphicDecrypt(ciphers: {
C: Group;
R: Group;
}[], prvK: Scalar, step: bigint, max: bigint, isCommitting?: boolean, random?: Scalar): {
}[], prvK: Scalar, step: bigint, max: bigint, isCommitting?: boolean, random?: import("o1js/dist/node/lib/provable/field").Field): {
acc_cipher: {

@@ -94,4 +93,4 @@ C: Group;

};
acc_plain: Scalar;
acc_plain: Field;
commitment: Field;
};

@@ -20,15 +20,11 @@ "use strict";

let k = o1js_1.Poseidon.hash([U.toFields(), V.toFields()].flat());
let c = auxo_libs_1.Bit255.fromBigInt(k.toBigInt()).xor(auxo_libs_1.Bit255.fromScalar(m));
let commitment = isCommitting
? o1js_1.Poseidon.hash([m.toFields(), b.toFields()].flat())
: (0, o1js_1.Field)(0);
let c = auxo_libs_1.Utils.fieldXOR(k, m);
let commitment = isCommitting ? o1js_1.Poseidon.hash([m, b]) : (0, o1js_1.Field)(0);
return { c, U, commitment };
}
function decrypt(c, U, prvK, isCommitting = false, random = o1js_1.Scalar.from(0n)) {
function decrypt(c, U, prvK, isCommitting = false, random = (0, o1js_1.Field)(0n)) {
let V = U.add(o1js_1.Group.generator).scale(prvK).sub(o1js_1.Group.generator.scale(prvK));
let k = o1js_1.Poseidon.hash([U.toFields(), V.toFields()].flat());
let m = auxo_libs_1.Bit255.fromBigInt(k.toBigInt()).xor(c).toScalar();
let commitment = isCommitting
? o1js_1.Poseidon.hash([m.toFields(), random.toFields()].flat())
: (0, o1js_1.Field)(0);
let m = auxo_libs_1.Utils.fieldXOR(k, c);
let commitment = isCommitting ? o1js_1.Poseidon.hash([m, random]) : (0, o1js_1.Field)(0);
return { m, commitment };

@@ -39,5 +35,3 @@ }

let R = o1js_1.Group.generator.scale(b);
let commitment = isCommitting
? o1js_1.Poseidon.hash([m.toFields(), b.toFields()].flat())
: (0, o1js_1.Field)(0);
let commitment = isCommitting ? o1js_1.Poseidon.hash([m, b].flat()) : (0, o1js_1.Field)(0);
return { C, R, commitment };

@@ -50,5 +44,5 @@ }

}
function bruteForce(point, step = 1n, max = o1js_1.Scalar.ORDER) {
function bruteForce(point, step = 1n, max = o1js_1.Field.ORDER) {
let found = false;
let testValue = o1js_1.Scalar.from(0n);
let testValue = o1js_1.Field.from(0n);
while (true) {

@@ -62,3 +56,3 @@ found = point

else {
testValue = testValue.add(o1js_1.Scalar.from(step));
testValue = testValue.add(o1js_1.Field.from(step));
if (testValue.toBigInt() > BigInt(max))

@@ -71,3 +65,3 @@ throw new Error('No valid value found!');

pointHash: o1js_1.Field,
scalar: o1js_1.Scalar,
scalar: o1js_1.Field,
}) {

@@ -80,3 +74,3 @@ }

let babyStep = [
o1js_1.Poseidon.hash(o1js_1.Group.generator.scale(o1js_1.Scalar.from(i)).toFields()).toBigInt(),
o1js_1.Poseidon.hash(o1js_1.Group.generator.scale((0, o1js_1.Field)(i)).toFields()).toBigInt(),
BigInt(i),

@@ -100,6 +94,4 @@ ];

}
function babyStepGiantStep(point, babySteps, step = 1n, max = o1js_1.Scalar.ORDER) {
function babyStepGiantStep(point, babySteps, step = 1n, max = o1js_1.Field.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;

@@ -110,3 +102,3 @@ let giantStep = o1js_1.Group.generator.scale(m).neg();

if (babySteps.has(index))
return o1js_1.Scalar.from(BigInt(i * m) + babySteps.get(index));
return (0, o1js_1.Field)(BigInt(i * m) + babySteps.get(index));
testPoint = testPoint.add(giantStep);

@@ -116,7 +108,7 @@ }

}
function homomorphicDecrypt(ciphers, prvK, step, max, isCommitting = false, random = o1js_1.Scalar.from(0n)) {
function homomorphicDecrypt(ciphers, prvK, step, max, isCommitting = false, random = (0, o1js_1.Field)(0)) {
let acc_cipher = accumulateCiphers(ciphers);
let acc_plain = bruteForce(acc_cipher.C.sub(acc_cipher.R.scale(prvK)), step, max);
let commitment = isCommitting
? o1js_1.Poseidon.hash([acc_plain.toFields(), random.toFields()].flat())
? o1js_1.Poseidon.hash([acc_plain, random])
: (0, o1js_1.Field)(0);

@@ -123,0 +115,0 @@ return { acc_cipher, acc_plain, commitment };

@@ -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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"}

@@ -133,10 +133,2 @@ import { Field, Scalar } from 'o1js';

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -146,8 +138,6 @@ publicInputType: typeof Input;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -157,4 +147,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -223,10 +212,2 @@ declare const EncProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -236,8 +217,6 @@ publicInputType: typeof Input;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar];
};
rawMethods: {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<void>;
};

@@ -247,4 +226,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -430,10 +408,2 @@ declare const DecProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -443,8 +413,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -454,4 +422,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -520,10 +487,2 @@ declare const EncComProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -533,8 +492,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar, typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -544,4 +501,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -548,0 +504,0 @@ declare const DecComProof_base: {

@@ -20,3 +20,3 @@ "use strict";

encrypt: {
privateInputs: [o1js_1.Scalar, o1js_1.Scalar],
privateInputs: [o1js_1.Field, o1js_1.Field],
async method(input, plain, random) {

@@ -31,8 +31,2 @@ let C = o1js_1.Group.generator

},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -49,3 +43,3 @@ });

decrypt: {
privateInputs: [o1js_1.Scalar, o1js_1.Scalar],
privateInputs: [o1js_1.Field, o1js_1.Scalar],
async method(input, acc_plain, prvKey) {

@@ -56,8 +50,2 @@ let M = o1js_1.Group.generator.scale(acc_plain);

},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -82,3 +70,3 @@ });

encrypt: {
privateInputs: [o1js_1.Scalar, o1js_1.Scalar],
privateInputs: [o1js_1.Field, o1js_1.Field],
async method(input, plain, random) {

@@ -91,11 +79,5 @@ let C = o1js_1.Group.generator

R.assertEquals(input.R, auxo_libs_1.Utils.buildAssertMessage(Enc.name, 'encrypt', "Incorrect encryption"));
input.commitment.assertEquals(o1js_1.Poseidon.hash([plain.toFields(), random.toFields()].flat()), auxo_libs_1.Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
input.commitment.assertEquals(o1js_1.Poseidon.hash([plain, random]), auxo_libs_1.Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -112,15 +94,9 @@ });

decrypt: {
privateInputs: [o1js_1.Scalar, o1js_1.Scalar, o1js_1.Scalar],
privateInputs: [o1js_1.Field, o1js_1.Scalar, o1js_1.Field],
async method(input, acc_plain, prvKey, random) {
let M = o1js_1.Group.generator.scale(acc_plain);
M.assertEquals(input.C.sub(input.R.scale(prvKey)), auxo_libs_1.Utils.buildAssertMessage(Dec.name, 'decrypt', "Incorrect decryption"));
input.commitment.assertEquals(o1js_1.Poseidon.hash([acc_plain.toFields(), random.toFields()].flat()), auxo_libs_1.Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
input.commitment.assertEquals(o1js_1.Poseidon.hash([acc_plain, random]), auxo_libs_1.Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -127,0 +103,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"point-encoding.js","sourceRoot":"","sources":["../../../../src/ecelgamal/point-encoding.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"point-encoding.js","sourceRoot":"","sources":["../../../../src/ecelgamal/point-encoding.ts"],"names":[],"mappings":"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"}
import { Field, Scalar } from 'o1js';
import { Bit255 } from '@auxo-dev/auxo-libs';
export { Input, DecProof, EncProof, Dec, Enc };
export { InputCom, EncCom, DecCom, EncComProof, DecComProof };
export declare const EMPTY_COMMITMENT: import("o1js/dist/node/lib/provable/field.js").Field;
export declare const PADDING_BIT: import("o1js/dist/node/lib/provable/bool.js").Bool;
export { InputCom, EncComProof, DecComProof, EncCom, DecCom };
declare const Input_base: (new (value: {
pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;
}) => {
pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -19,3 +16,3 @@ }) & {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -27,6 +24,3 @@ }, {

};
c: {
head: bigint;
tail: bigint;
};
c: bigint;
U: {

@@ -39,3 +33,3 @@ x: bigint;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -49,6 +43,3 @@ };

};
c: Bit255 | {
head: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
tail: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
};
c: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group | {

@@ -60,3 +51,3 @@ x: bigint | number | import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -66,3 +57,3 @@ };

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -75,3 +66,3 @@ }) => {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -83,6 +74,3 @@ }) => {

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -98,6 +86,3 @@ x: string;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -109,3 +94,3 @@ x: string;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -115,3 +100,3 @@ };

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -145,10 +130,2 @@ };

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -158,8 +135,6 @@ publicInputType: typeof Input;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -169,4 +144,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -235,10 +209,2 @@ declare const EncProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -248,8 +214,6 @@ publicInputType: typeof Input;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar];
};
rawMethods: {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<void>;
};

@@ -259,4 +223,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -304,3 +267,3 @@ declare const DecProof_base: {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -310,3 +273,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -318,3 +281,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -327,6 +290,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: {
head: bigint;
tail: bigint;
};
c: bigint;
U: {

@@ -340,3 +300,3 @@ x: bigint;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -351,6 +311,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: Bit255 | {
head: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
tail: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
};
c: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group | {

@@ -363,3 +320,3 @@ x: bigint | number | import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -370,3 +327,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -380,3 +337,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -389,6 +346,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -405,6 +359,3 @@ x: string;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -417,3 +368,3 @@ x: string;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -424,3 +375,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -455,10 +406,2 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -468,8 +411,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -479,4 +420,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -545,10 +485,2 @@ declare const EncComProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -558,8 +490,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar, typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -569,4 +499,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -573,0 +502,0 @@ declare const DecComProof_base: {

@@ -1,10 +0,8 @@

import { Bool, Field, Group, Poseidon, Scalar, Struct, ZkProgram } from 'o1js';
import { Bit255, Utils } from '@auxo-dev/auxo-libs';
import { Field, Group, Poseidon, Scalar, Struct, ZkProgram } from 'o1js';
import { Utils } from '@auxo-dev/auxo-libs';
export { Input, DecProof, EncProof, Dec, Enc };
export { InputCom, EncCom, DecCom, EncComProof, DecComProof };
export const EMPTY_COMMITMENT = Field(0);
export const PADDING_BIT = Bool(false);
export { InputCom, EncComProof, DecComProof, EncCom, DecCom };
class Input extends Struct({
pubKey: Group,
c: Bit255,
c: Field,
U: Group,

@@ -18,3 +16,3 @@ }) {

encrypt: {
privateInputs: [Scalar, Scalar],
privateInputs: [Field, Field],
async method(input, plain, random) {

@@ -24,15 +22,7 @@ let U = Group.generator.scale(random);

let k = Poseidon.hash([U.toFields(), V.toFields()].flat());
let kBits = Bit255.fromBits([...k.toBits(), PADDING_BIT]);
let plainBits = Bit255.fromScalar(plain);
let cipherBits = Bit255.xor(kBits, plainBits);
cipherBits.assertEquals(input.c, Utils.buildAssertMessage(Enc.name, 'encrypt', "Incorrect encryption"));
let c = Utils.fieldXOR(k, plain);
c.assertEquals(input.c, Utils.buildAssertMessage(Enc.name, 'encrypt', "Incorrect encryption"));
U.assertEquals(input.U, Utils.buildAssertMessage(Enc.name, 'encrypt', "Incorrect encryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -47,17 +37,10 @@ });

decrypt: {
privateInputs: [Scalar, Scalar],
privateInputs: [Field, Scalar],
async method(input, plain, prvKey) {
let V = input.U.scale(prvKey);
let k = Poseidon.hash(input.U.toFields().concat(V.toFields()));
let kBits = Bit255.fromBits([...k.toBits(), PADDING_BIT]);
let decrypted = Bit255.xor(kBits, input.c);
decrypted.assertEquals(Bit255.fromScalar(plain), Utils.buildAssertMessage(Dec.name, 'decrypt', "Incorrect decryption"));
let m = Utils.fieldXOR(k, input.c);
m.assertEquals(plain, Utils.buildAssertMessage(Dec.name, 'decrypt', "Incorrect decryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -69,3 +52,3 @@ });

pubKey: Group,
c: Bit255,
c: Field,
U: Group,

@@ -80,3 +63,3 @@ commitment: Field,

encrypt: {
privateInputs: [Scalar, Scalar],
privateInputs: [Field, Field],
async method(input, plain, random) {

@@ -86,16 +69,8 @@ let U = Group.generator.scale(random);

let k = Poseidon.hash([U.toFields(), V.toFields()].flat());
let kBits = Bit255.fromBits([...k.toBits(), PADDING_BIT]);
let plainBits = Bit255.fromScalar(plain);
let cipherBits = Bit255.xor(kBits, plainBits);
cipherBits.assertEquals(input.c, Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
let c = Utils.fieldXOR(k, plain);
c.assertEquals(input.c, Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
U.assertEquals(input.U, Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
input.commitment.assertEquals(Poseidon.hash([plain.toFields(), random.toFields()].flat()), Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
input.commitment.assertEquals(Poseidon.hash([plain, random]), Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -110,24 +85,11 @@ });

decrypt: {
privateInputs: [Scalar, Scalar, Scalar],
privateInputs: [Field, Scalar, Field],
async method(input, plain, prvKey, random) {
let V = input.U.scale(prvKey);
let k = Poseidon.hash(input.U.toFields().concat(V.toFields()));
let kBits = Bit255.fromBits([...k.toBits(), PADDING_BIT]);
let decrypted = Bit255.xor(kBits, input.c);
Group.generator
.scale(prvKey)
.assertEquals(input.pubKey, Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
decrypted.assertEquals(Bit255.fromScalar(plain), Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
input.commitment.assertEquals(Poseidon.hash([
decrypted.toScalar().toFields(),
random.toFields(),
].flat()), Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
let m = Utils.fieldXOR(k, input.c);
m.assertEquals(plain, Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
input.commitment.assertEquals(Poseidon.hash([m, random].flat()), Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -134,0 +96,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"hash-encoding.js","sourceRoot":"","sources":["../../../../src/ecelgamal/hash-encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAE9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAEvC,MAAM,KAAM,SAAQ,MAAM,CAAC;IACvB,MAAM,EAAE,KAAK;IACb,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;CACX,CAAC;CAAG;AAEL,MAAM,GAAG,GAAG,SAAS,CAAC;IAClB,IAAI,yBAAmC;IACvC,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE;QACL,OAAO,EAAE;YACL,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YAC/B,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,KAAa,EAAE,MAAc;gBACpD,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3D,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC1D,IAAI,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC9C,UAAU,CAAC,YAAY,CACnB,KAAK,CAAC,CAAC,EACP,KAAK,CAAC,kBAAkB,CACpB,GAAG,CAAC,IAAI,EACR,SAAS,yBAEZ,CACJ,CAAC;gBACF,CAAC,CAAC,YAAY,CACV,KAAK,CAAC,CAAC,EACP,KAAK,CAAC,kBAAkB,CACpB,GAAG,CAAC,IAAI,EACR,SAAS,yBAEZ,CACJ,CAAC;YACN,CAAC;SACJ;QACD,KAAK,EAAE;YACH,aAAa,EAAE,EAAE;YACjB,KAAK,CAAC,MAAM;gBACR,OAAO;YACX,CAAC;SACJ;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,QAAS,SAAQ,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;CAAG;AAE9C,MAAM,GAAG,GAAG,SAAS,CAAC;IAClB,IAAI,yBAAmC;IACvC,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE;QACL,OAAO,EAAE;YACL,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YAC/B,KAAK,CAAC,MAAM,CAAC,KAAY,EAAE,KAAa,EAAE,MAAc;gBACpD,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC9B,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC/D,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC1D,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3C,SAAS,CAAC,YAAY,CAClB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EACxB,KAAK,CAAC,kBAAkB,CACpB,GAAG,CAAC,IAAI,EACR,SAAS,yBAEZ,CACJ,CAAC;YACN,CAAC;SACJ;QACD,KAAK,EAAE;YACH,aAAa,EAAE,EAAE;YACjB,KAAK,CAAC,MAAM;gBACR,OAAO;YACX,CAAC;SACJ;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,QAAS,SAAQ,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;CAAG;AAE9C,MAAM,QAAS,SAAQ,MAAM,CAAC;IAC1B,MAAM,EAAE,KAAK;IACb,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,KAAK;IACR,UAAU,EAAE,KAAK;CACpB,CAAC;CAAG;AAEL,MAAM,MAAM,GAAG,SAAS,CAAC;IACrB,IAAI,yBAAmC;IACvC,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE;QACL,OAAO,EAAE;YACL,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YAC/B,KAAK,CAAC,MAAM,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;gBACvD,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3D,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC1D,IAAI,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC9C,UAAU,CAAC,YAAY,CACnB,KAAK,CAAC,CAAC,EACP,KAAK,CAAC,kBAAkB,CACpB,MAAM,CAAC,IAAI,EACX,SAAS,yBAEZ,CACJ,CAAC;gBACF,CAAC,CAAC,YAAY,CACV,KAAK,CAAC,CAAC,EACP,KAAK,CAAC,kBAAkB,CACpB,MAAM,CAAC,IAAI,EACX,SAAS,yBAEZ,CACJ,CAAC;gBACF,KAAK,CAAC,UAAU,CAAC,YAAY,CACzB,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAC3D,KAAK,CAAC,kBAAkB,CACpB,MAAM,CAAC,IAAI,EACX,SAAS,yBAEZ,CACJ,CAAC;YACN,CAAC;SACJ;QACD,KAAK,EAAE;YACH,aAAa,EAAE,EAAE;YACjB,KAAK,CAAC,MAAM;gBACR,OAAO;YACX,CAAC;SACJ;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,WAAY,SAAQ,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;CAAG;AAEpD,MAAM,MAAM,GAAG,SAAS,CAAC;IACrB,IAAI,yBAAmC;IACvC,WAAW,EAAE,QAAQ;IACrB,OAAO,EAAE;QACL,OAAO,EAAE;YACL,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YACvC,KAAK,CAAC,MAAM,CACR,KAAe,EACf,KAAa,EACb,MAAc,EACd,MAAc;gBAEd,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC9B,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC/D,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC1D,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3C,KAAK,CAAC,SAAS;qBACV,KAAK,CAAC,MAAM,CAAC;qBACb,YAAY,CACT,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,kBAAkB,CACpB,MAAM,CAAC,IAAI,EACX,SAAS,yBAEZ,CACJ,CAAC;gBACN,SAAS,CAAC,YAAY,CAClB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EACxB,KAAK,CAAC,kBAAkB,CACpB,MAAM,CAAC,IAAI,EACX,SAAS,yBAEZ,CACJ,CAAC;gBACF,KAAK,CAAC,UAAU,CAAC,YAAY,CACzB,QAAQ,CAAC,IAAI,CACT;oBACI,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;oBAC/B,MAAM,CAAC,QAAQ,EAAE;iBACpB,CAAC,IAAI,EAAE,CACX,EACD,KAAK,CAAC,kBAAkB,CACpB,MAAM,CAAC,IAAI,EACX,SAAS,yBAEZ,CACJ,CAAC;YACN,CAAC;SACJ;QACD,KAAK,EAAE;YACH,aAAa,EAAE,EAAE;YACjB,KAAK,CAAC,MAAM;gBACR,OAAO;YACX,CAAC;SACJ;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,WAAY,SAAQ,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;CAAG"}
{"version":3,"file":"hash-encoding.js","sourceRoot":"","sources":["../../../../src/ecelgamal/hash-encoding.ts"],"names":[],"mappings":"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"}
import { Field, Group, Scalar } from 'o1js';
import { Bit255 } from '@auxo-dev/auxo-libs';
export { encrypt, decrypt };
export { homomorphicEncrypt, homomorphicDecrypt };
export { BabyStep, bruteForce, prepareBabySteps, loadBabySteps, babyStepGiantStep, };
declare function encrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): {
c: Bit255;
declare function encrypt(m: Field, pbK: Group, b: Field, isCommitting?: boolean): {
c: Field;
U: Group;
commitment: Field;
};
declare function decrypt(c: Bit255, U: Group, prvK: Scalar, isCommitting?: boolean, random?: Scalar): {
m: Scalar;
declare function decrypt(c: Field, U: Group, prvK: Scalar, isCommitting?: boolean, random?: import("o1js/dist/node/lib/provable/field").Field): {
m: Field;
commitment: Field;
};
declare function homomorphicEncrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): {
declare function homomorphicEncrypt(m: Field, pbK: Group, b: Field, isCommitting?: boolean): {
C: Group;

@@ -20,9 +19,9 @@ R: Group;

};
declare function bruteForce(point: Group, step?: bigint, max?: bigint): Scalar;
declare function bruteForce(point: Group, step?: bigint, max?: bigint): Field;
declare const BabyStep_base: (new (value: {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) & {

@@ -32,3 +31,3 @@ _isStruct: true;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}, {

@@ -40,3 +39,3 @@ pointHash: bigint;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};

@@ -46,10 +45,10 @@ } & {

pointHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
scalar: bigint | Scalar;
scalar: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
}) => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};
toInput: (x: {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {

@@ -61,3 +60,3 @@ fields?: Field[] | undefined;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {

@@ -72,7 +71,7 @@ pointHash: string;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};
empty: () => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};

@@ -84,7 +83,7 @@ };

declare function loadBabySteps(file: string): Array<bigint[]>;
declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Scalar;
declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Field;
declare function homomorphicDecrypt(ciphers: {
C: Group;
R: Group;
}[], prvK: Scalar, step: bigint, max: bigint, isCommitting?: boolean, random?: Scalar): {
}[], prvK: Scalar, step: bigint, max: bigint, isCommitting?: boolean, random?: import("o1js/dist/node/lib/provable/field").Field): {
acc_cipher: {

@@ -94,4 +93,4 @@ C: Group;

};
acc_plain: Scalar;
acc_plain: Field;
commitment: Field;
};
import * as fs from 'fs';
import { Field, Group, Poseidon, Scalar, Struct } from 'o1js';
import { Bit255 } from '@auxo-dev/auxo-libs';
import { Field, Group, Poseidon, Struct } from 'o1js';
import { Utils } from '@auxo-dev/auxo-libs';
export { encrypt, decrypt };

@@ -11,15 +11,11 @@ export { homomorphicEncrypt, homomorphicDecrypt };

let k = Poseidon.hash([U.toFields(), V.toFields()].flat());
let c = Bit255.fromBigInt(k.toBigInt()).xor(Bit255.fromScalar(m));
let commitment = isCommitting
? Poseidon.hash([m.toFields(), b.toFields()].flat())
: Field(0);
let c = Utils.fieldXOR(k, m);
let commitment = isCommitting ? Poseidon.hash([m, b]) : Field(0);
return { c, U, commitment };
}
function decrypt(c, U, prvK, isCommitting = false, random = Scalar.from(0n)) {
function decrypt(c, U, prvK, isCommitting = false, random = Field(0n)) {
let V = U.add(Group.generator).scale(prvK).sub(Group.generator.scale(prvK));
let k = Poseidon.hash([U.toFields(), V.toFields()].flat());
let m = Bit255.fromBigInt(k.toBigInt()).xor(c).toScalar();
let commitment = isCommitting
? Poseidon.hash([m.toFields(), random.toFields()].flat())
: Field(0);
let m = Utils.fieldXOR(k, c);
let commitment = isCommitting ? Poseidon.hash([m, random]) : Field(0);
return { m, commitment };

@@ -30,5 +26,3 @@ }

let R = Group.generator.scale(b);
let commitment = isCommitting
? Poseidon.hash([m.toFields(), b.toFields()].flat())
: Field(0);
let commitment = isCommitting ? Poseidon.hash([m, b].flat()) : Field(0);
return { C, R, commitment };

@@ -41,5 +35,5 @@ }

}
function bruteForce(point, step = 1n, max = Scalar.ORDER) {
function bruteForce(point, step = 1n, max = Field.ORDER) {
let found = false;
let testValue = Scalar.from(0n);
let testValue = Field.from(0n);
while (true) {

@@ -53,3 +47,3 @@ found = point

else {
testValue = testValue.add(Scalar.from(step));
testValue = testValue.add(Field.from(step));
if (testValue.toBigInt() > BigInt(max))

@@ -62,3 +56,3 @@ throw new Error('No valid value found!');

pointHash: Field,
scalar: Scalar,
scalar: Field,
}) {

@@ -70,3 +64,3 @@ }

let babyStep = [
Poseidon.hash(Group.generator.scale(Scalar.from(i)).toFields()).toBigInt(),
Poseidon.hash(Group.generator.scale(Field(i)).toFields()).toBigInt(),
BigInt(i),

@@ -90,6 +84,4 @@ ];

}
function babyStepGiantStep(point, babySteps, step = 1n, max = Scalar.ORDER) {
function babyStepGiantStep(point, babySteps, step = 1n, max = Field.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;

@@ -100,3 +92,3 @@ let giantStep = Group.generator.scale(m).neg();

if (babySteps.has(index))
return Scalar.from(BigInt(i * m) + babySteps.get(index));
return Field(BigInt(i * m) + babySteps.get(index));
testPoint = testPoint.add(giantStep);

@@ -106,7 +98,7 @@ }

}
function homomorphicDecrypt(ciphers, prvK, step, max, isCommitting = false, random = Scalar.from(0n)) {
function homomorphicDecrypt(ciphers, prvK, step, max, isCommitting = false, random = Field(0)) {
let acc_cipher = accumulateCiphers(ciphers);
let acc_plain = bruteForce(acc_cipher.C.sub(acc_cipher.R.scale(prvK)), step, max);
let commitment = isCommitting
? Poseidon.hash([acc_plain.toFields(), random.toFields()].flat())
? Poseidon.hash([acc_plain, random])
: Field(0);

@@ -113,0 +105,0 @@ return { acc_cipher, acc_plain, commitment };

@@ -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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"}

@@ -133,10 +133,2 @@ import { Field, Scalar } from 'o1js';

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -146,8 +138,6 @@ publicInputType: typeof Input;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -157,4 +147,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -223,10 +212,2 @@ declare const EncProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -236,8 +217,6 @@ publicInputType: typeof Input;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar];
};
rawMethods: {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<void>;
};

@@ -247,4 +226,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -430,10 +408,2 @@ declare const DecProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -443,8 +413,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -454,4 +422,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -520,10 +487,2 @@ declare const EncComProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -533,8 +492,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar, typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -544,4 +501,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -548,0 +504,0 @@ declare const DecComProof_base: {

@@ -18,3 +18,3 @@ import { Bool, Field, Group, Poseidon, Scalar, Struct, ZkProgram } from 'o1js';

encrypt: {
privateInputs: [Scalar, Scalar],
privateInputs: [Field, Field],
async method(input, plain, random) {

@@ -29,8 +29,2 @@ let C = Group.generator

},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -45,3 +39,3 @@ });

decrypt: {
privateInputs: [Scalar, Scalar],
privateInputs: [Field, Scalar],
async method(input, acc_plain, prvKey) {

@@ -52,8 +46,2 @@ let M = Group.generator.scale(acc_plain);

},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -75,3 +63,3 @@ });

encrypt: {
privateInputs: [Scalar, Scalar],
privateInputs: [Field, Field],
async method(input, plain, random) {

@@ -84,11 +72,5 @@ let C = Group.generator

R.assertEquals(input.R, Utils.buildAssertMessage(Enc.name, 'encrypt', "Incorrect encryption"));
input.commitment.assertEquals(Poseidon.hash([plain.toFields(), random.toFields()].flat()), Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
input.commitment.assertEquals(Poseidon.hash([plain, random]), Utils.buildAssertMessage(EncCom.name, 'encrypt', "Incorrect encryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -103,15 +85,9 @@ });

decrypt: {
privateInputs: [Scalar, Scalar, Scalar],
privateInputs: [Field, Scalar, Field],
async method(input, acc_plain, prvKey, random) {
let M = Group.generator.scale(acc_plain);
M.assertEquals(input.C.sub(input.R.scale(prvKey)), Utils.buildAssertMessage(Dec.name, 'decrypt', "Incorrect decryption"));
input.commitment.assertEquals(Poseidon.hash([acc_plain.toFields(), random.toFields()].flat()), Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
input.commitment.assertEquals(Poseidon.hash([acc_plain, random]), Utils.buildAssertMessage(DecCom.name, 'decrypt', "Incorrect decryption"));
},
},
dummy: {
privateInputs: [],
async method() {
return;
},
},
},

@@ -118,0 +94,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"point-encoding.js","sourceRoot":"","sources":["../../../../src/ecelgamal/point-encoding.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"point-encoding.js","sourceRoot":"","sources":["../../../../src/ecelgamal/point-encoding.ts"],"names":[],"mappings":"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"}
import { Field, Scalar } from 'o1js';
import { Bit255 } from '@auxo-dev/auxo-libs';
export { Input, DecProof, EncProof, Dec, Enc };
export { InputCom, EncCom, DecCom, EncComProof, DecComProof };
export declare const EMPTY_COMMITMENT: import("o1js/dist/node/lib/provable/field.js").Field;
export declare const PADDING_BIT: import("o1js/dist/node/lib/provable/bool.js").Bool;
export { InputCom, EncComProof, DecComProof, EncCom, DecCom };
declare const Input_base: (new (value: {
pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;
}) => {
pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -19,3 +16,3 @@ }) & {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -27,6 +24,3 @@ }, {

};
c: {
head: bigint;
tail: bigint;
};
c: bigint;
U: {

@@ -39,3 +33,3 @@ x: bigint;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -49,6 +43,3 @@ };

};
c: Bit255 | {
head: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
tail: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
};
c: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group | {

@@ -60,3 +51,3 @@ x: bigint | number | import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -66,3 +57,3 @@ };

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -75,3 +66,3 @@ }) => {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -83,6 +74,3 @@ }) => {

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -98,6 +86,3 @@ x: string;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -109,3 +94,3 @@ x: string;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -115,3 +100,3 @@ };

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -145,10 +130,2 @@ };

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -158,8 +135,6 @@ publicInputType: typeof Input;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -169,4 +144,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -235,10 +209,2 @@ declare const EncProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -248,8 +214,6 @@ publicInputType: typeof Input;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar];
};
rawMethods: {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<void>;
};

@@ -259,4 +223,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -304,3 +267,3 @@ declare const DecProof_base: {

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -310,3 +273,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -318,3 +281,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -327,6 +290,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: {
head: bigint;
tail: bigint;
};
c: bigint;
U: {

@@ -340,3 +300,3 @@ x: bigint;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -351,6 +311,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: Bit255 | {
head: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
tail: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
};
c: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group | {

@@ -363,3 +320,3 @@ x: bigint | number | import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -370,3 +327,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -380,3 +337,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -389,6 +346,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -405,6 +359,3 @@ x: string;

};
c: {
head: string;
tail: string;
};
c: string;
U: {

@@ -417,3 +368,3 @@ x: string;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -424,3 +375,3 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

pubKey: import("o1js/dist/node/lib/provable/group.js").Group;
c: Bit255;
c: import("o1js/dist/node/lib/provable/field.js").Field;
U: import("o1js/dist/node/lib/provable/group.js").Group;

@@ -455,10 +406,2 @@ commitment: import("o1js/dist/node/lib/provable/field.js").Field;

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -468,8 +411,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -479,4 +420,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -545,10 +485,2 @@ declare const EncComProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -558,8 +490,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar, typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -569,4 +499,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -573,0 +502,0 @@ declare const DecComProof_base: {

import { Field, Group, Scalar } from 'o1js';
import { Bit255 } from '@auxo-dev/auxo-libs';
export { encrypt, decrypt };
export { homomorphicEncrypt, homomorphicDecrypt };
export { BabyStep, bruteForce, prepareBabySteps, loadBabySteps, babyStepGiantStep, };
declare function encrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): {
c: Bit255;
declare function encrypt(m: Field, pbK: Group, b: Field, isCommitting?: boolean): {
c: Field;
U: Group;
commitment: Field;
};
declare function decrypt(c: Bit255, U: Group, prvK: Scalar, isCommitting?: boolean, random?: Scalar): {
m: Scalar;
declare function decrypt(c: Field, U: Group, prvK: Scalar, isCommitting?: boolean, random?: import("o1js/dist/node/lib/provable/field").Field): {
m: Field;
commitment: Field;
};
declare function homomorphicEncrypt(m: Scalar, pbK: Group, b: Scalar, isCommitting?: boolean): {
declare function homomorphicEncrypt(m: Field, pbK: Group, b: Field, isCommitting?: boolean): {
C: Group;

@@ -20,9 +19,9 @@ R: Group;

};
declare function bruteForce(point: Group, step?: bigint, max?: bigint): Scalar;
declare function bruteForce(point: Group, step?: bigint, max?: bigint): Field;
declare const BabyStep_base: (new (value: {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) & {

@@ -32,3 +31,3 @@ _isStruct: true;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}, {

@@ -40,3 +39,3 @@ pointHash: bigint;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};

@@ -46,10 +45,10 @@ } & {

pointHash: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
scalar: bigint | Scalar;
scalar: string | number | bigint | import("o1js/dist/node/lib/provable/field").Field;
}) => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};
toInput: (x: {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {

@@ -61,3 +60,3 @@ fields?: Field[] | undefined;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
}) => {

@@ -72,7 +71,7 @@ pointHash: string;

pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};
empty: () => {
pointHash: import("o1js/dist/node/lib/provable/field").Field;
scalar: Scalar;
scalar: import("o1js/dist/node/lib/provable/field").Field;
};

@@ -84,7 +83,7 @@ };

declare function loadBabySteps(file: string): Array<bigint[]>;
declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Scalar;
declare function babyStepGiantStep(point: Group, babySteps: Map<string, bigint>, step?: bigint, max?: bigint): Field;
declare function homomorphicDecrypt(ciphers: {
C: Group;
R: Group;
}[], prvK: Scalar, step: bigint, max: bigint, isCommitting?: boolean, random?: Scalar): {
}[], prvK: Scalar, step: bigint, max: bigint, isCommitting?: boolean, random?: import("o1js/dist/node/lib/provable/field").Field): {
acc_cipher: {

@@ -94,4 +93,4 @@ C: Group;

};
acc_plain: Scalar;
acc_plain: Field;
commitment: Field;
};

@@ -133,10 +133,2 @@ import { Field, Scalar } from 'o1js';

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -146,8 +138,6 @@ publicInputType: typeof Input;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -157,4 +147,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
encrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -223,10 +212,2 @@ declare const EncProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -236,8 +217,6 @@ publicInputType: typeof Input;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar];
};
rawMethods: {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<void>;
};

@@ -247,4 +226,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: Input, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
dummy: (publicInput: Input, ...args: [] & any[]) => Promise<import("o1js").Proof<Input, void>>;
decrypt: (publicInput: Input, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar] & any[]) => Promise<import("o1js").Proof<Input, void>>;
};

@@ -430,10 +408,2 @@ declare const DecProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -443,8 +413,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
encrypt: [typeof Scalar, typeof Scalar];
dummy: [];
encrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -454,4 +422,3 @@ proofsEnabled: boolean;

} & {
encrypt: (publicInput: InputCom, ...args: [Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
encrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -520,10 +487,2 @@ declare const EncComProof_base: {

};
dummy: {
rows: number;
digest: string;
gates: import("o1js/dist/node/snarky.js").Gate[];
publicInputSize: number;
print(): void;
summary(): Partial<Record<import("o1js/dist/node/snarky.js").GateType | "Total rows", number>>;
};
}>;

@@ -533,8 +492,6 @@ publicInputType: typeof InputCom;

privateInputTypes: {
decrypt: [typeof Scalar, typeof Scalar, typeof Scalar];
dummy: [];
decrypt: [typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field), typeof Scalar, typeof import("o1js/dist/node/lib/provable/field.js").Field & ((x: string | number | bigint | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldConst | import("o1js/dist/node/lib/provable/core/fieldvar.js").FieldVar | import("o1js/dist/node/lib/provable/field.js").Field) => import("o1js/dist/node/lib/provable/field.js").Field)];
};
rawMethods: {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<void>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<void>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<void>;
};

@@ -544,4 +501,3 @@ proofsEnabled: boolean;

} & {
decrypt: (publicInput: InputCom, ...args: [Scalar, Scalar, Scalar] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
dummy: (publicInput: InputCom, ...args: [] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
decrypt: (publicInput: InputCom, ...args: [import("o1js/dist/node/lib/provable/field.js").Field, Scalar, import("o1js/dist/node/lib/provable/field.js").Field] & any[]) => Promise<import("o1js").Proof<InputCom, void>>;
};

@@ -548,0 +504,0 @@ declare const DecComProof_base: {

{
"name": "@auxo-dev/o1js-encrypt",
"version": "1.0.3",
"version": "1.1.0",
"description": "",

@@ -64,5 +64,5 @@ "author": "",

"dependencies": {
"@auxo-dev/auxo-libs": "^1.0.2",
"@auxo-dev/auxo-libs": "^1.0.6",
"o1js": "1.8.0"
}
}