From 53a3cbd33058b7d84805650eccf022ace6e46b86 Mon Sep 17 00:00:00 2001 From: vbasiuk Date: Fri, 23 Jan 2026 13:41:23 +0200 Subject: [PATCH 1/4] retrive circuit id from string in default zkp packer --- package-lock.json | 4 ++-- package.json | 2 +- src/iden3comm/packers/zkp-default.ts | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 106661da..d667227c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@0xpolygonid/js-sdk", - "version": "1.39.3", + "version": "1.39.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@0xpolygonid/js-sdk", - "version": "1.39.3", + "version": "1.39.4", "license": "MIT or Apache-2.0", "dependencies": { "@iden3/onchain-non-merklized-issuer-base-abi": "0.0.3", diff --git a/package.json b/package.json index 0ddb8f97..e6d628a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@0xpolygonid/js-sdk", - "version": "1.39.3", + "version": "1.39.4", "description": "SDK to work with Polygon ID", "source": "./src/index.ts", "exports": { diff --git a/src/iden3comm/packers/zkp-default.ts b/src/iden3comm/packers/zkp-default.ts index 4f1dada0..16c77486 100644 --- a/src/iden3comm/packers/zkp-default.ts +++ b/src/iden3comm/packers/zkp-default.ts @@ -42,10 +42,8 @@ export class DefaultZKPPacker extends ZKPPacker { * @throws If the circuit data (proving key or wasm) is not found for the given circuit ID. */ async pack(payload: Uint8Array, params: ZKPPackerParams): Promise { - const provingMethodAlg = params.provingMethodAlg; - const circuitId = provingMethodAlg.circuitId as CircuitId; - const provingParamsKey = provingMethodAlg.toString(); - + const provingParamsKey = params.provingMethodAlg.toString(); + const [, circuitId] = provingParamsKey.split(':'); if (!this.provingParamsMap.has(provingParamsKey)) { const { provingKey, wasm } = await this.circuitStorage.loadCircuitData( circuitId as CircuitId, From 22a2b457584f8d83626d8965eed4493dc6fd56ea Mon Sep 17 00:00:00 2001 From: vbasiuk Date: Fri, 23 Jan 2026 14:02:41 +0200 Subject: [PATCH 2/4] validate provingMethodAlg --- src/iden3comm/packers/zkp-default.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/iden3comm/packers/zkp-default.ts b/src/iden3comm/packers/zkp-default.ts index 16c77486..c8b45340 100644 --- a/src/iden3comm/packers/zkp-default.ts +++ b/src/iden3comm/packers/zkp-default.ts @@ -42,8 +42,17 @@ export class DefaultZKPPacker extends ZKPPacker { * @throws If the circuit data (proving key or wasm) is not found for the given circuit ID. */ async pack(payload: Uint8Array, params: ZKPPackerParams): Promise { + if (!(params.provingMethodAlg instanceof ProvingMethodAlg)) { + throw new Error('provingMethodAlg must be an instance of ProvingMethodAlg'); + } + if (!params.provingMethodAlg.alg) { + throw new Error('provingMethodAlg.alg is required'); + } + if (!params.provingMethodAlg.circuitId) { + throw new Error('provingMethodAlg.circuitId is required'); + } const provingParamsKey = params.provingMethodAlg.toString(); - const [, circuitId] = provingParamsKey.split(':'); + const circuitId = params.provingMethodAlg.circuitId; if (!this.provingParamsMap.has(provingParamsKey)) { const { provingKey, wasm } = await this.circuitStorage.loadCircuitData( circuitId as CircuitId, From 3fbdc01a7fb33d5ca02be7ca6d57fb356dc615b3 Mon Sep 17 00:00:00 2001 From: vbasiuk Date: Fri, 23 Jan 2026 15:00:21 +0200 Subject: [PATCH 3/4] validateZKPPackerParams --- src/iden3comm/packers/zkp-default.ts | 10 +--------- src/iden3comm/packers/zkp.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/iden3comm/packers/zkp-default.ts b/src/iden3comm/packers/zkp-default.ts index c8b45340..45a0fff6 100644 --- a/src/iden3comm/packers/zkp-default.ts +++ b/src/iden3comm/packers/zkp-default.ts @@ -42,15 +42,7 @@ export class DefaultZKPPacker extends ZKPPacker { * @throws If the circuit data (proving key or wasm) is not found for the given circuit ID. */ async pack(payload: Uint8Array, params: ZKPPackerParams): Promise { - if (!(params.provingMethodAlg instanceof ProvingMethodAlg)) { - throw new Error('provingMethodAlg must be an instance of ProvingMethodAlg'); - } - if (!params.provingMethodAlg.alg) { - throw new Error('provingMethodAlg.alg is required'); - } - if (!params.provingMethodAlg.circuitId) { - throw new Error('provingMethodAlg.circuitId is required'); - } + this.validateZKPPackerParams(params); const provingParamsKey = params.provingMethodAlg.toString(); const circuitId = params.provingMethodAlg.circuitId; if (!this.provingParamsMap.has(provingParamsKey)) { diff --git a/src/iden3comm/packers/zkp.ts b/src/iden3comm/packers/zkp.ts index 9a1e3bfa..6263e23c 100644 --- a/src/iden3comm/packers/zkp.ts +++ b/src/iden3comm/packers/zkp.ts @@ -128,6 +128,7 @@ export class ZKPPacker implements IPacker { * @returns `Promise` */ async pack(payload: Uint8Array, params: ZKPPackerParams): Promise { + this.validateZKPPackerParams(params); const provingMethod = await getProvingMethod(params.provingMethodAlg); const provingParams = this.provingParamsMap.get(params.provingMethodAlg.toString()); @@ -229,6 +230,18 @@ export class ZKPPacker implements IPacker { !alg?.length || alg.some((a) => supportedAlgArr.includes(a as AcceptJwzAlgorithms)); return algSupported && circuitIdSupported; } + + protected validateZKPPackerParams(value: ZKPPackerParams) { + if (!(value instanceof ProvingMethodAlg)) { + throw new TypeError('provingMethodAlg must be an instance of ProvingMethodAlg'); + } + if (!value.alg) { + throw new Error(`provingMethodAlg.alg is required and must be a non-empty string`); + } + if (!value.circuitId) { + throw new Error(`provingMethodAlg.circuitId is required and must be a non-empty string`); + } + } } const verifySender = async (token: Token, msg: BasicMessage): Promise => { From 681f588630f30949e9f899baa7f8c094c8a49b5c Mon Sep 17 00:00:00 2001 From: vbasiuk Date: Fri, 23 Jan 2026 15:13:33 +0200 Subject: [PATCH 4/4] fix verification --- src/iden3comm/packers/zkp.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/iden3comm/packers/zkp.ts b/src/iden3comm/packers/zkp.ts index 6263e23c..c54a859a 100644 --- a/src/iden3comm/packers/zkp.ts +++ b/src/iden3comm/packers/zkp.ts @@ -232,13 +232,14 @@ export class ZKPPacker implements IPacker { } protected validateZKPPackerParams(value: ZKPPackerParams) { - if (!(value instanceof ProvingMethodAlg)) { + const { provingMethodAlg } = value; + if (!(provingMethodAlg instanceof ProvingMethodAlg)) { throw new TypeError('provingMethodAlg must be an instance of ProvingMethodAlg'); } - if (!value.alg) { + if (!provingMethodAlg.alg) { throw new Error(`provingMethodAlg.alg is required and must be a non-empty string`); } - if (!value.circuitId) { + if (!provingMethodAlg.circuitId) { throw new Error(`provingMethodAlg.circuitId is required and must be a non-empty string`); } }