@zkproofport-ai/sdk 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -32
- package/dist/constants.d.ts +4 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -0
- package/dist/constants.js.map +1 -1
- package/dist/flow.d.ts.map +1 -1
- package/dist/flow.js +45 -23
- package/dist/flow.js.map +1 -1
- package/dist/index.d.ts +4 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -11
- package/dist/index.js.map +1 -1
- package/dist/oidc-inputs.d.ts +60 -0
- package/dist/oidc-inputs.d.ts.map +1 -0
- package/dist/oidc-inputs.js +296 -0
- package/dist/oidc-inputs.js.map +1 -0
- package/dist/prove.d.ts +2 -2
- package/dist/prove.d.ts.map +1 -1
- package/dist/types.d.ts +9 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Client SDK for ZKProofport zero-knowledge proof generation on Base Mainnet.
|
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
@zkproofport-ai/sdk is a TypeScript SDK for generating privacy-preserving zero-knowledge proofs using Coinbase KYC attestations. Generate a proof with a single function call, or fine-tune each step for custom workflows.
|
|
7
|
+
@zkproofport-ai/sdk is a TypeScript SDK for generating privacy-preserving zero-knowledge proofs using Coinbase KYC attestations and OIDC JWT tokens. Generate a proof with a single function call, or fine-tune each step for custom workflows.
|
|
8
8
|
|
|
9
9
|
Proofs are generated in trusted execution environments (Nitro Enclaves) with cryptographic attestation. Payment is handled transparently via the x402 protocol using EIP-3009 (no user gas costs).
|
|
10
10
|
|
|
@@ -40,14 +40,14 @@ Before using the SDK, you need:
|
|
|
40
40
|
3. **USDC balance on Base** — At least $0.10 per proof. Payment is gasless (EIP-3009 signature, facilitator pays gas).
|
|
41
41
|
4. **Attestation wallet private key** (required) — The private key of the wallet that holds the EAS attestation. This is always a raw private key because the attestation is tied to a specific address.
|
|
42
42
|
|
|
43
|
-
5. **Payment wallet** (
|
|
43
|
+
5. **Payment wallet** (recommended) — Separate wallet with USDC balance for proof payment. Choose one:
|
|
44
44
|
|
|
45
|
-
- **Same as attestation wallet** — No additional setup
|
|
46
|
-
> ⚠️ **Privacy risk:** Using the attestation wallet for payment exposes your KYC-verified wallet address on-chain in the payment transaction, linking your identity to on-chain activity.
|
|
45
|
+
- **Same as attestation wallet (NOT recommended)** — No additional setup, but **defeats zero-knowledge privacy**.
|
|
46
|
+
> ⚠️ **Privacy risk:** Using the attestation wallet for payment exposes your KYC-verified wallet address on-chain in the payment transaction, **directly linking your real-world identity to on-chain activity**. This defeats the purpose of zero-knowledge proofs. Always use a separate payment wallet (private key or CDP) to preserve privacy.
|
|
47
47
|
- **Separate private key** — A different wallet with USDC balance.
|
|
48
48
|
- **CDP MPC wallet** — Coinbase Developer Platform managed wallet. Private keys never leave Coinbase's TEE. Get credentials at [CDP Portal](https://portal.cdp.coinbase.com). Requires additional install:
|
|
49
49
|
```bash
|
|
50
|
-
npm install @coinbase/
|
|
50
|
+
npm install @coinbase/cdp-sdk
|
|
51
51
|
```
|
|
52
52
|
| Credential | Required | Description |
|
|
53
53
|
|------------|----------|-------------|
|
|
@@ -58,25 +58,7 @@ Before using the SDK, you need:
|
|
|
58
58
|
|
|
59
59
|
## Quick Start
|
|
60
60
|
|
|
61
|
-
###
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
import { generateProof, createConfig, fromPrivateKey, verifyProof } from '@zkproofport-ai/sdk';
|
|
65
|
-
|
|
66
|
-
const config = createConfig();
|
|
67
|
-
const signer = fromPrivateKey(process.env.PRIVATE_KEY);
|
|
68
|
-
|
|
69
|
-
const result = await generateProof(
|
|
70
|
-
config,
|
|
71
|
-
{ attestation: signer },
|
|
72
|
-
{ circuit: 'coinbase_kyc', scope: 'my-app' }
|
|
73
|
-
);
|
|
74
|
-
|
|
75
|
-
const verification = await verifyProof(result);
|
|
76
|
-
console.log('Valid:', verification.valid);
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Separate Payment Wallet
|
|
61
|
+
### Separate Payment Wallet (Recommended)
|
|
80
62
|
|
|
81
63
|
```typescript
|
|
82
64
|
import { generateProof, createConfig, fromPrivateKey, verifyProof } from '@zkproofport-ai/sdk';
|
|
@@ -98,14 +80,34 @@ console.log('Valid:', verification.valid);
|
|
|
98
80
|
### With CDP Payment Wallet
|
|
99
81
|
|
|
100
82
|
```typescript
|
|
101
|
-
import { generateProof, createConfig, fromPrivateKey,
|
|
83
|
+
import { generateProof, createConfig, fromPrivateKey, fromExternalWallet, verifyProof } from '@zkproofport-ai/sdk';
|
|
84
|
+
import { CdpClient } from '@coinbase/cdp-sdk';
|
|
102
85
|
|
|
103
86
|
const config = createConfig();
|
|
104
87
|
const attestationSigner = fromPrivateKey(process.env.ATTESTATION_KEY);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
88
|
+
|
|
89
|
+
// Create CDP MPC wallet (private keys never leave Coinbase's TEE)
|
|
90
|
+
const cdp = new CdpClient();
|
|
91
|
+
const account = await cdp.evm.getOrCreateAccount({ name: 'proofport-payment' });
|
|
92
|
+
|
|
93
|
+
const paymentSigner = fromExternalWallet({
|
|
94
|
+
getAddress: () => account.address!,
|
|
95
|
+
signMessage: async (msg) => {
|
|
96
|
+
const message = msg instanceof Uint8Array ? Buffer.from(msg).toString() : msg;
|
|
97
|
+
const result = await cdp.evm.signMessage({ address: account.address!, message });
|
|
98
|
+
return result.signature;
|
|
99
|
+
},
|
|
100
|
+
signTypedData: async (domain, types, message) => {
|
|
101
|
+
const primaryType = Object.keys(types).find(k => k !== 'EIP712Domain') || '';
|
|
102
|
+
const result = await cdp.evm.signTypedData({ address: account.address!, domain, types, primaryType, message });
|
|
103
|
+
return result.signature;
|
|
104
|
+
},
|
|
105
|
+
sendTransaction: async (tx) => {
|
|
106
|
+
const result = await cdp.evm.sendTransaction({
|
|
107
|
+
address: account.address!, transaction: tx, network: 'base-sepolia',
|
|
108
|
+
});
|
|
109
|
+
return { hash: result.transactionHash, wait: async () => ({ status: 1 }) };
|
|
110
|
+
},
|
|
109
111
|
});
|
|
110
112
|
|
|
111
113
|
const result = await generateProof(
|
|
@@ -352,13 +354,36 @@ const result = await generateProof(config, signers, {
|
|
|
352
354
|
});
|
|
353
355
|
```
|
|
354
356
|
|
|
357
|
+
### OIDC Domain
|
|
358
|
+
|
|
359
|
+
Proves email domain affiliation using an OIDC JWT token (e.g., Google, Microsoft). No EAS attestation or Coinbase account required — only a payment wallet and a JWT `id_token`.
|
|
360
|
+
|
|
361
|
+
```typescript
|
|
362
|
+
import { createConfig, generateProof, fromPrivateKey } from '@zkproofport-ai/sdk';
|
|
363
|
+
|
|
364
|
+
const config = createConfig();
|
|
365
|
+
const paymentSigner = fromPrivateKey(process.env.PAYMENT_KEY);
|
|
366
|
+
|
|
367
|
+
const result = await generateProof(
|
|
368
|
+
config,
|
|
369
|
+
{ attestation: paymentSigner }, // OIDC skips attestation; payment signer is used for x402 payment only
|
|
370
|
+
{
|
|
371
|
+
circuit: 'oidc_domain',
|
|
372
|
+
jwt: idToken, // JWT id_token from Google/Microsoft OAuth
|
|
373
|
+
scope: 'myapp:verify-domain',
|
|
374
|
+
},
|
|
375
|
+
);
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
> **Note:** For OIDC circuits, the `attestation` signer field is only used as a payment fallback. Pass your payment wallet — no EAS-attested wallet needed.
|
|
379
|
+
|
|
355
380
|
## Types Reference
|
|
356
381
|
|
|
357
382
|
**Circuit Types:**
|
|
358
383
|
|
|
359
384
|
```typescript
|
|
360
|
-
type CircuitName = 'coinbase_kyc' | 'coinbase_country';
|
|
361
|
-
type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation';
|
|
385
|
+
type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain';
|
|
386
|
+
type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation' | 'oidc_domain_attestation';
|
|
362
387
|
```
|
|
363
388
|
|
|
364
389
|
**Configuration:**
|
|
@@ -398,7 +423,7 @@ class CdpWalletSigner implements ProofportSigner {
|
|
|
398
423
|
|
|
399
424
|
// Wrap external wallet (WalletConnect, MetaMask, Privy, etc.)
|
|
400
425
|
function fromExternalWallet(wallet: {
|
|
401
|
-
|
|
426
|
+
getAddress(): string | Promise<string>;
|
|
402
427
|
signMessage(message: Uint8Array): Promise<string>;
|
|
403
428
|
signTypedData(domain: any, types: any, message: any): Promise<string>;
|
|
404
429
|
sendTransaction?(tx: any): Promise<{ hash: string; wait(): Promise<any> }>;
|
|
@@ -413,6 +438,7 @@ interface ProofParams {
|
|
|
413
438
|
scope?: string; // defaults to 'proofport'
|
|
414
439
|
countryList?: string[]; // for coinbase_country only
|
|
415
440
|
isIncluded?: boolean; // for coinbase_country only
|
|
441
|
+
jwt?: string; // JWT id_token for OIDC circuits (required for oidc_domain)
|
|
416
442
|
}
|
|
417
443
|
```
|
|
418
444
|
|
|
@@ -448,6 +474,15 @@ interface ProofResult {
|
|
|
448
474
|
}
|
|
449
475
|
```
|
|
450
476
|
|
|
477
|
+
**OIDC Inputs:**
|
|
478
|
+
|
|
479
|
+
```typescript
|
|
480
|
+
interface OidcProveInputs {
|
|
481
|
+
jwt: string;
|
|
482
|
+
scope_string: string;
|
|
483
|
+
}
|
|
484
|
+
```
|
|
485
|
+
|
|
451
486
|
**Callbacks:**
|
|
452
487
|
|
|
453
488
|
```typescript
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const CIRCUITS: Record<CircuitId, {
|
|
1
|
+
export declare const CIRCUITS: Record<string, {
|
|
3
2
|
displayName: string;
|
|
4
|
-
easSchemaId
|
|
5
|
-
functionSelector
|
|
3
|
+
easSchemaId?: string;
|
|
4
|
+
functionSelector?: string;
|
|
5
|
+
inputType?: string;
|
|
6
6
|
}>;
|
|
7
7
|
export declare const COINBASE_ATTESTER_CONTRACT = "0x357458739F90461b99789350868CD7CF330Dd7EE";
|
|
8
8
|
export declare const AUTHORIZED_SIGNERS: string[];
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAeA,CAAC;AAEF,eAAO,MAAM,0BAA0B,+CAA+C,CAAC;AAEvF,eAAO,MAAM,kBAAkB,UAK9B,CAAC;AAEF,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,eAAO,MAAM,mBAAmB,qCAAqC,CAAC;AACtE,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAE1D,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,KAAK,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -9,6 +9,10 @@ export const CIRCUITS = {
|
|
|
9
9
|
easSchemaId: '0x1801901fabd0e6189356b4fb52bb0ab855276d84f7ec140839fbd1f6801ca065',
|
|
10
10
|
functionSelector: '0x0a225248',
|
|
11
11
|
},
|
|
12
|
+
oidc_domain_attestation: {
|
|
13
|
+
displayName: 'OIDC Domain',
|
|
14
|
+
inputType: 'oidc',
|
|
15
|
+
},
|
|
12
16
|
};
|
|
13
17
|
export const COINBASE_ATTESTER_CONTRACT = '0x357458739F90461b99789350868CD7CF330Dd7EE';
|
|
14
18
|
export const AUTHORIZED_SIGNERS = [
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAKhB;IACH,oBAAoB,EAAE;QACpB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;IACD,4BAA4B,EAAE;QAC5B,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,oEAAoE;QACjF,gBAAgB,EAAE,YAAY;KAC/B;IACD,uBAAuB,EAAE;QACvB,WAAW,EAAE,aAAa;QAC1B,SAAS,EAAE,MAAM;KAClB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAEvF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc,EAAE,4CAA4C;IAC5D,MAAM,EAAE,4CAA4C;CAC5C,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC"}
|
package/dist/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACX,WAAW,EACX,UAAU,EAEX,MAAM,YAAY,CAAC;AAMpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,CAAA;CAAE,EACpE,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,aAAa,GACxB,OAAO,CAAC,WAAW,CAAC,CAqHtB"}
|
package/dist/flow.js
CHANGED
|
@@ -4,7 +4,7 @@ import { requestChallenge } from './session.js';
|
|
|
4
4
|
import { prepareInputs, computeSignalHash } from './inputs.js';
|
|
5
5
|
import { makePayment } from './payment.js';
|
|
6
6
|
import { submitProof, submitEncryptedProof } from './prove.js';
|
|
7
|
-
import { USDC_ADDRESSES } from './constants.js';
|
|
7
|
+
import { CIRCUITS, USDC_ADDRESSES } from './constants.js';
|
|
8
8
|
import { encryptForTee } from './tee.js';
|
|
9
9
|
import { buildProverToml } from './toml.js';
|
|
10
10
|
/**
|
|
@@ -25,6 +25,7 @@ export async function generateProof(config, signers, params, callbacks) {
|
|
|
25
25
|
const circuitId = CIRCUIT_NAME_MAP[params.circuit];
|
|
26
26
|
const scope = params.scope || 'proofport';
|
|
27
27
|
const paymentSigner = signers.payment || signers.attestation;
|
|
28
|
+
const isOidc = CIRCUITS[circuitId]?.inputType === 'oidc';
|
|
28
29
|
const steps = [];
|
|
29
30
|
function recordStep(step, name, data, startTime) {
|
|
30
31
|
const result = { step, name, data, durationMs: Date.now() - startTime };
|
|
@@ -32,27 +33,37 @@ export async function generateProof(config, signers, params, callbacks) {
|
|
|
32
33
|
callbacks?.onStep?.(result);
|
|
33
34
|
return data;
|
|
34
35
|
}
|
|
35
|
-
//
|
|
36
|
-
let
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
36
|
+
// Steps 1-2: EAS attestation path (skipped for OIDC circuits)
|
|
37
|
+
let easInputs;
|
|
38
|
+
let proverToml;
|
|
39
|
+
if (!isOidc) {
|
|
40
|
+
// Step 1: Sign signal hash
|
|
41
|
+
let t = Date.now();
|
|
42
|
+
const attestationAddress = await signers.attestation.getAddress();
|
|
43
|
+
const signalHash = computeSignalHash(attestationAddress, scope, circuitId);
|
|
44
|
+
const signalHashHex = ethers.hexlify(signalHash);
|
|
45
|
+
const signature = await signers.attestation.signMessage(signalHash);
|
|
46
|
+
recordStep(1, 'Sign Signal Hash', { signalHash: signalHashHex, signature }, t);
|
|
47
|
+
// Step 2: Prepare inputs + build proverToml locally
|
|
48
|
+
t = Date.now();
|
|
49
|
+
easInputs = await prepareInputs(config, {
|
|
50
|
+
circuitId,
|
|
51
|
+
userAddress: attestationAddress,
|
|
52
|
+
userSignature: signature,
|
|
53
|
+
scope,
|
|
54
|
+
countryList: params.countryList,
|
|
55
|
+
isIncluded: params.isIncluded,
|
|
56
|
+
});
|
|
57
|
+
proverToml = buildProverToml(circuitId, easInputs);
|
|
58
|
+
recordStep(2, 'Prepare Inputs', { inputFields: Object.keys(easInputs).length, tomlLength: proverToml.length }, t);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// OIDC path: skip EAS attestation steps; server handles all input computation
|
|
62
|
+
recordStep(1, 'Sign Signal Hash', { skipped: true, reason: 'oidc' }, Date.now());
|
|
63
|
+
recordStep(2, 'Prepare Inputs', { skipped: true, reason: 'oidc' }, Date.now());
|
|
64
|
+
}
|
|
54
65
|
// Step 3: Request 402 challenge (without inputs — server only needs circuit)
|
|
55
|
-
t = Date.now();
|
|
66
|
+
let t = Date.now();
|
|
56
67
|
const challenge = await requestChallenge(config, params.circuit);
|
|
57
68
|
const isE2E = !!challenge.teePublicKey;
|
|
58
69
|
recordStep(3, 'Request Challenge', { nonce: challenge.nonce, e2e: isE2E, keyId: challenge.teePublicKey?.keyId ?? null }, t);
|
|
@@ -72,7 +83,18 @@ export async function generateProof(config, signers, params, callbacks) {
|
|
|
72
83
|
// Step 5: Submit proof (encrypted or plaintext based on TEE availability)
|
|
73
84
|
t = Date.now();
|
|
74
85
|
let proveResponse;
|
|
75
|
-
if (
|
|
86
|
+
if (isOidc) {
|
|
87
|
+
// OIDC path: pass JWT and scope directly; server calls prepareOidcInputs internally
|
|
88
|
+
const oidcInputs = { jwt: params.jwt, scope_string: scope };
|
|
89
|
+
proveResponse = await submitProof(config, {
|
|
90
|
+
circuit: params.circuit,
|
|
91
|
+
inputs: oidcInputs,
|
|
92
|
+
paymentTxHash,
|
|
93
|
+
paymentNonce: challenge.nonce,
|
|
94
|
+
});
|
|
95
|
+
recordStep(5, 'Generate Proof (OIDC)', proveResponse, t);
|
|
96
|
+
}
|
|
97
|
+
else if (isE2E) {
|
|
76
98
|
// E2E path: encrypt inputs with TEE's attested public key
|
|
77
99
|
const encryptedPayload = encryptForTee(JSON.stringify({ circuitId, proverToml }), challenge.teePublicKey.publicKey);
|
|
78
100
|
proveResponse = await submitEncryptedProof(config, {
|
|
@@ -87,7 +109,7 @@ export async function generateProof(config, signers, params, callbacks) {
|
|
|
87
109
|
// Standard path: send plaintext inputs (TEE disabled / local dev)
|
|
88
110
|
proveResponse = await submitProof(config, {
|
|
89
111
|
circuit: params.circuit,
|
|
90
|
-
inputs,
|
|
112
|
+
inputs: easInputs,
|
|
91
113
|
paymentTxHash,
|
|
92
114
|
paymentNonce: challenge.nonce,
|
|
93
115
|
});
|
package/dist/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ClientConfig, CircuitName, CircuitId, PaymentInfo, PaymentRequirements, ChallengeResponse, ProveInputs, ProveRequest, ProveResponse, VerifyResult, EASAttestation, AttestationData, ProofParams, ProofResult, StepResult,
|
|
1
|
+
export type { ClientConfig, CircuitName, CircuitId, PaymentInfo, PaymentRequirements, ChallengeResponse, ProveInputs, OidcProveInputs, ProveRequest, ProveResponse, VerifyResult, EASAttestation, AttestationData, ProofParams, ProofResult, StepResult, } from './types.js';
|
|
2
2
|
export { CIRCUIT_NAME_MAP, CIRCUIT_ID_MAP } from './types.js';
|
|
3
3
|
export { CIRCUITS, COINBASE_ATTESTER_CONTRACT, AUTHORIZED_SIGNERS, USDC_ADDRESSES, } from './constants.js';
|
|
4
4
|
export { createConfig } from './config.js';
|
|
@@ -7,15 +7,11 @@ export type { FlowCallbacks } from './flow.js';
|
|
|
7
7
|
export { requestChallenge, createSession } from './session.js';
|
|
8
8
|
export { makePayment } from './payment.js';
|
|
9
9
|
export { submitProof, submitEncryptedProof } from './prove.js';
|
|
10
|
-
export {
|
|
11
|
-
export { prepareInputs, computeSignalHash, computeScope, computeNullifier,
|
|
12
|
-
export { buildProverToml } from './toml.js';
|
|
13
|
-
export { encryptForTee } from './tee.js';
|
|
14
|
-
export type { EncryptedEnvelope } from './tee.js';
|
|
10
|
+
export { verifyProof } from './verify.js';
|
|
11
|
+
export { prepareInputs, computeSignalHash, computeScope, computeNullifier, } from './inputs.js';
|
|
15
12
|
export type { ProofportSigner } from './signer.js';
|
|
16
13
|
export { EthersWalletSigner, fromEthersWallet, fromPrivateKey } from './signer.js';
|
|
17
14
|
export { CdpWalletSigner, fromExternalWallet } from './cdp.js';
|
|
18
15
|
export type { ExternalWallet } from './cdp.js';
|
|
19
|
-
export { fetchAttestation,
|
|
20
|
-
export { SimpleMerkleTree, findSignerIndex, buildSignerMerkleTree, } from './merkle.js';
|
|
16
|
+
export { fetchAttestation, getSignerAddress, } from './attestation.js';
|
|
21
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,18 +9,12 @@ export { generateProof } from './flow.js';
|
|
|
9
9
|
export { requestChallenge, createSession } from './session.js';
|
|
10
10
|
export { makePayment } from './payment.js';
|
|
11
11
|
export { submitProof, submitEncryptedProof } from './prove.js';
|
|
12
|
-
export {
|
|
13
|
-
// Input computation
|
|
14
|
-
export { prepareInputs, computeSignalHash, computeScope, computeNullifier,
|
|
15
|
-
// Prover.toml builder (for E2E encryption)
|
|
16
|
-
export { buildProverToml } from './toml.js';
|
|
17
|
-
// E2E Encryption
|
|
18
|
-
export { encryptForTee } from './tee.js';
|
|
12
|
+
export { verifyProof } from './verify.js';
|
|
13
|
+
// Input computation (customer-facing helpers)
|
|
14
|
+
export { prepareInputs, computeSignalHash, computeScope, computeNullifier, } from './inputs.js';
|
|
19
15
|
export { EthersWalletSigner, fromEthersWallet, fromPrivateKey } from './signer.js';
|
|
20
16
|
// CDP (Coinbase Developer Platform) signer
|
|
21
17
|
export { CdpWalletSigner, fromExternalWallet } from './cdp.js';
|
|
22
|
-
// Attestation
|
|
23
|
-
export { fetchAttestation,
|
|
24
|
-
// Merkle
|
|
25
|
-
export { SimpleMerkleTree, findSignerIndex, buildSignerMerkleTree, } from './merkle.js';
|
|
18
|
+
// Attestation (customer-facing helpers)
|
|
19
|
+
export { fetchAttestation, getSignerAddress, } from './attestation.js';
|
|
26
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,4CAA4C;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,8CAA8C;AAC9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEnF,2CAA2C;AAC3C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG/D,wCAAwC;AACxC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OIDC Domain Attestation — Input builder.
|
|
3
|
+
*
|
|
4
|
+
* Takes a raw JWT token + scope string, and produces all circuit inputs
|
|
5
|
+
* needed for the oidc_domain_attestation circuit.
|
|
6
|
+
*
|
|
7
|
+
* Steps:
|
|
8
|
+
* 1. Decode JWT header → kid, iss
|
|
9
|
+
* 2. Fetch JWKS via OIDC Discovery → find matching RSA public key
|
|
10
|
+
* 3. Compute RSA limbs (modulus, redc_params, signature) — 18 × 120-bit
|
|
11
|
+
* 4. Compute partial SHA-256 (precompute up to "email" key)
|
|
12
|
+
* 5. Extract email → derive domain
|
|
13
|
+
* 6. Compute scope = keccak256(scope_string)
|
|
14
|
+
* 7. Compute nullifier = keccak256(keccak256(email) ++ scope)
|
|
15
|
+
*/
|
|
16
|
+
export declare const OIDC_MAX_PARTIAL_DATA_LENGTH = 640;
|
|
17
|
+
export declare const OIDC_MAX_DOMAIN_LENGTH = 64;
|
|
18
|
+
export declare const OIDC_MAX_EMAIL_LENGTH = 128;
|
|
19
|
+
export interface OidcCircuitInputs {
|
|
20
|
+
pubkey_modulus_limbs: string[];
|
|
21
|
+
domain: {
|
|
22
|
+
storage: number[];
|
|
23
|
+
len: number;
|
|
24
|
+
};
|
|
25
|
+
scope: number[];
|
|
26
|
+
nullifier: number[];
|
|
27
|
+
partial_data: {
|
|
28
|
+
storage: number[];
|
|
29
|
+
len: number;
|
|
30
|
+
};
|
|
31
|
+
partial_hash: number[];
|
|
32
|
+
full_data_length: number;
|
|
33
|
+
base64_decode_offset: number;
|
|
34
|
+
redc_params_limbs: string[];
|
|
35
|
+
signature_limbs: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface PrepareOidcParams {
|
|
38
|
+
/** Raw JWT string (header.payload.signature) */
|
|
39
|
+
jwt: string;
|
|
40
|
+
/** Scope string for nullifier (e.g. "openstoa:topic:test") */
|
|
41
|
+
scope: string;
|
|
42
|
+
/** Domain to prove. If omitted, auto-extracted from email claim. */
|
|
43
|
+
domain?: string;
|
|
44
|
+
/** Override JWKS URL instead of using OIDC Discovery */
|
|
45
|
+
jwksUrl?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Prepare all circuit inputs for oidc_domain_attestation from a raw JWT.
|
|
49
|
+
*
|
|
50
|
+
* @param params.jwt - Raw JWT string from OIDC provider (e.g. Google id_token)
|
|
51
|
+
* @param params.scope - Scope string for nullifier derivation
|
|
52
|
+
* @param params.domain - Domain to prove (auto-extracted from email if omitted)
|
|
53
|
+
* @param params.jwksUrl - Override JWKS URL (skips OIDC Discovery)
|
|
54
|
+
*/
|
|
55
|
+
export declare function prepareOidcInputs(params: PrepareOidcParams): Promise<OidcCircuitInputs>;
|
|
56
|
+
/**
|
|
57
|
+
* Build a Prover.toml string from OidcCircuitInputs.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildOidcProverToml(inputs: OidcCircuitInputs): string;
|
|
60
|
+
//# sourceMappingURL=oidc-inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc-inputs.d.ts","sourceRoot":"","sources":["../src/oidc-inputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAIzC,MAAM,WAAW,iBAAiB;IAEhC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IAGpB,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoJD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4G7F;AA2BD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAyBrE"}
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OIDC Domain Attestation — Input builder.
|
|
3
|
+
*
|
|
4
|
+
* Takes a raw JWT token + scope string, and produces all circuit inputs
|
|
5
|
+
* needed for the oidc_domain_attestation circuit.
|
|
6
|
+
*
|
|
7
|
+
* Steps:
|
|
8
|
+
* 1. Decode JWT header → kid, iss
|
|
9
|
+
* 2. Fetch JWKS via OIDC Discovery → find matching RSA public key
|
|
10
|
+
* 3. Compute RSA limbs (modulus, redc_params, signature) — 18 × 120-bit
|
|
11
|
+
* 4. Compute partial SHA-256 (precompute up to "email" key)
|
|
12
|
+
* 5. Extract email → derive domain
|
|
13
|
+
* 6. Compute scope = keccak256(scope_string)
|
|
14
|
+
* 7. Compute nullifier = keccak256(keccak256(email) ++ scope)
|
|
15
|
+
*/
|
|
16
|
+
import { ethers } from 'ethers';
|
|
17
|
+
// ─── Circuit constants (must match main.nr) ─────────────────────────────
|
|
18
|
+
export const OIDC_MAX_PARTIAL_DATA_LENGTH = 640;
|
|
19
|
+
export const OIDC_MAX_DOMAIN_LENGTH = 64;
|
|
20
|
+
export const OIDC_MAX_EMAIL_LENGTH = 128;
|
|
21
|
+
// ─── BigInt helpers ─────────────────────────────────────────────────────
|
|
22
|
+
function base64urlToBytes(b64url) {
|
|
23
|
+
const b64 = b64url.replace(/-/g, '+').replace(/_/g, '/');
|
|
24
|
+
const pad = (4 - (b64.length % 4)) % 4;
|
|
25
|
+
const padded = b64 + '='.repeat(pad);
|
|
26
|
+
const binary = atob(padded);
|
|
27
|
+
const bytes = new Uint8Array(binary.length);
|
|
28
|
+
for (let i = 0; i < binary.length; i++) {
|
|
29
|
+
bytes[i] = binary.charCodeAt(i);
|
|
30
|
+
}
|
|
31
|
+
return bytes;
|
|
32
|
+
}
|
|
33
|
+
function bytesToBigInt(bytes) {
|
|
34
|
+
let hex = '0x';
|
|
35
|
+
for (const b of bytes) {
|
|
36
|
+
hex += b.toString(16).padStart(2, '0');
|
|
37
|
+
}
|
|
38
|
+
return BigInt(hex);
|
|
39
|
+
}
|
|
40
|
+
function splitBigIntToChunks(value, chunkSize, numChunks) {
|
|
41
|
+
const mask = (1n << BigInt(chunkSize)) - 1n;
|
|
42
|
+
const chunks = [];
|
|
43
|
+
for (let i = 0; i < numChunks; i++) {
|
|
44
|
+
chunks.push((value >> (BigInt(i) * BigInt(chunkSize))) & mask);
|
|
45
|
+
}
|
|
46
|
+
return chunks;
|
|
47
|
+
}
|
|
48
|
+
// ─── Partial SHA-256 ────────────────────────────────────────────────────
|
|
49
|
+
const SHA256_K = [
|
|
50
|
+
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,
|
|
51
|
+
0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
|
|
52
|
+
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,
|
|
53
|
+
0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
|
|
54
|
+
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
|
|
55
|
+
0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
|
|
56
|
+
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,
|
|
57
|
+
0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
|
|
58
|
+
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,
|
|
59
|
+
0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
|
|
60
|
+
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
|
|
61
|
+
];
|
|
62
|
+
function rotr(n, x) {
|
|
63
|
+
return (x >>> n) | (x << (32 - n));
|
|
64
|
+
}
|
|
65
|
+
function sha256Block(H, block) {
|
|
66
|
+
const w = new Uint32Array(64);
|
|
67
|
+
let a = H[0], b = H[1], c = H[2], d = H[3];
|
|
68
|
+
let e = H[4], f = H[5], g = H[6], h = H[7];
|
|
69
|
+
for (let i = 0; i < 16; i++) {
|
|
70
|
+
w[i] = (block[i * 4] << 24) | (block[i * 4 + 1] << 16) | (block[i * 4 + 2] << 8) | block[i * 4 + 3];
|
|
71
|
+
}
|
|
72
|
+
for (let i = 16; i < 64; i++) {
|
|
73
|
+
const s0 = rotr(7, w[i - 15]) ^ rotr(18, w[i - 15]) ^ (w[i - 15] >>> 3);
|
|
74
|
+
const s1 = rotr(17, w[i - 2]) ^ rotr(19, w[i - 2]) ^ (w[i - 2] >>> 10);
|
|
75
|
+
w[i] = (w[i - 16] + s0 + w[i - 7] + s1) >>> 0;
|
|
76
|
+
}
|
|
77
|
+
for (let i = 0; i < 64; i++) {
|
|
78
|
+
const S1 = rotr(6, e) ^ rotr(11, e) ^ rotr(25, e);
|
|
79
|
+
const ch = (e & f) ^ (~e & g);
|
|
80
|
+
const temp1 = (h + S1 + ch + SHA256_K[i] + w[i]) >>> 0;
|
|
81
|
+
const S0 = rotr(2, a) ^ rotr(13, a) ^ rotr(22, a);
|
|
82
|
+
const maj = (a & b) ^ (a & c) ^ (b & c);
|
|
83
|
+
const temp2 = (S0 + maj) >>> 0;
|
|
84
|
+
h = g;
|
|
85
|
+
g = f;
|
|
86
|
+
f = e;
|
|
87
|
+
e = (d + temp1) >>> 0;
|
|
88
|
+
d = c;
|
|
89
|
+
c = b;
|
|
90
|
+
b = a;
|
|
91
|
+
a = (temp1 + temp2) >>> 0;
|
|
92
|
+
}
|
|
93
|
+
H[0] = (H[0] + a) >>> 0;
|
|
94
|
+
H[1] = (H[1] + b) >>> 0;
|
|
95
|
+
H[2] = (H[2] + c) >>> 0;
|
|
96
|
+
H[3] = (H[3] + d) >>> 0;
|
|
97
|
+
H[4] = (H[4] + e) >>> 0;
|
|
98
|
+
H[5] = (H[5] + f) >>> 0;
|
|
99
|
+
H[6] = (H[6] + g) >>> 0;
|
|
100
|
+
H[7] = (H[7] + h) >>> 0;
|
|
101
|
+
}
|
|
102
|
+
function generatePartialSHA256(data, hashUntilIndex) {
|
|
103
|
+
const blockSize = 64;
|
|
104
|
+
const blockIndex = Math.floor(hashUntilIndex / blockSize);
|
|
105
|
+
const H = new Uint32Array([
|
|
106
|
+
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
|
|
107
|
+
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,
|
|
108
|
+
]);
|
|
109
|
+
for (let i = 0; i < blockIndex; i++) {
|
|
110
|
+
const block = new Uint8Array(blockSize);
|
|
111
|
+
block.set(data.slice(i * blockSize, (i + 1) * blockSize));
|
|
112
|
+
sha256Block(H, block);
|
|
113
|
+
}
|
|
114
|
+
return { partialHash: H, remainingData: data.slice(blockIndex * blockSize) };
|
|
115
|
+
}
|
|
116
|
+
async function fetchJwksUrl(issuer) {
|
|
117
|
+
const discoveryUrl = issuer.endsWith('/')
|
|
118
|
+
? `${issuer}.well-known/openid-configuration`
|
|
119
|
+
: `${issuer}/.well-known/openid-configuration`;
|
|
120
|
+
const resp = await fetch(discoveryUrl);
|
|
121
|
+
if (!resp.ok) {
|
|
122
|
+
throw new Error(`OIDC Discovery failed for ${discoveryUrl}: ${resp.status}`);
|
|
123
|
+
}
|
|
124
|
+
const config = await resp.json();
|
|
125
|
+
if (!config.jwks_uri) {
|
|
126
|
+
throw new Error(`No jwks_uri in OIDC Discovery response from ${discoveryUrl}`);
|
|
127
|
+
}
|
|
128
|
+
return config.jwks_uri;
|
|
129
|
+
}
|
|
130
|
+
async function fetchMatchingKey(jwksUrl, kid) {
|
|
131
|
+
const resp = await fetch(jwksUrl);
|
|
132
|
+
if (!resp.ok) {
|
|
133
|
+
throw new Error(`JWKS fetch failed: ${resp.status}`);
|
|
134
|
+
}
|
|
135
|
+
const jwks = await resp.json();
|
|
136
|
+
const key = jwks.keys.find(k => k.kid === kid);
|
|
137
|
+
if (!key) {
|
|
138
|
+
throw new Error(`No JWKS key matching kid="${kid}". Available: ${jwks.keys.map(k => k.kid).join(', ')}`);
|
|
139
|
+
}
|
|
140
|
+
if (key.kty !== 'RSA') {
|
|
141
|
+
throw new Error(`Expected RSA key, got ${key.kty}`);
|
|
142
|
+
}
|
|
143
|
+
return key;
|
|
144
|
+
}
|
|
145
|
+
// ─── Keccak-256 helpers ─────────────────────────────────────────────────
|
|
146
|
+
function keccak256Bytes(data) {
|
|
147
|
+
return ethers.getBytes(ethers.keccak256(data));
|
|
148
|
+
}
|
|
149
|
+
// ─── Main export ────────────────────────────────────────────────────────
|
|
150
|
+
/**
|
|
151
|
+
* Prepare all circuit inputs for oidc_domain_attestation from a raw JWT.
|
|
152
|
+
*
|
|
153
|
+
* @param params.jwt - Raw JWT string from OIDC provider (e.g. Google id_token)
|
|
154
|
+
* @param params.scope - Scope string for nullifier derivation
|
|
155
|
+
* @param params.domain - Domain to prove (auto-extracted from email if omitted)
|
|
156
|
+
* @param params.jwksUrl - Override JWKS URL (skips OIDC Discovery)
|
|
157
|
+
*/
|
|
158
|
+
export async function prepareOidcInputs(params) {
|
|
159
|
+
const { jwt, scope } = params;
|
|
160
|
+
// 1. Decode JWT
|
|
161
|
+
const [headerB64, payloadB64, signatureB64url] = jwt.split('.');
|
|
162
|
+
if (!headerB64 || !payloadB64 || !signatureB64url) {
|
|
163
|
+
throw new Error('Invalid JWT format: expected 3 dot-separated parts');
|
|
164
|
+
}
|
|
165
|
+
const header = JSON.parse(new TextDecoder().decode(base64urlToBytes(headerB64)));
|
|
166
|
+
const payload = JSON.parse(new TextDecoder().decode(base64urlToBytes(payloadB64)));
|
|
167
|
+
if (header.alg !== 'RS256') {
|
|
168
|
+
throw new Error(`Unsupported JWT algorithm: ${header.alg}. Only RS256 is supported.`);
|
|
169
|
+
}
|
|
170
|
+
if (!header.kid) {
|
|
171
|
+
throw new Error('JWT header missing kid');
|
|
172
|
+
}
|
|
173
|
+
if (!payload.email) {
|
|
174
|
+
throw new Error('JWT payload missing email claim');
|
|
175
|
+
}
|
|
176
|
+
if (!payload.email_verified) {
|
|
177
|
+
throw new Error('JWT email_verified is not true');
|
|
178
|
+
}
|
|
179
|
+
const email = payload.email;
|
|
180
|
+
const atIndex = email.indexOf('@');
|
|
181
|
+
if (atIndex === -1) {
|
|
182
|
+
throw new Error(`Invalid email format: ${email}`);
|
|
183
|
+
}
|
|
184
|
+
const domain = params.domain || email.substring(atIndex + 1);
|
|
185
|
+
// 2. Fetch JWKS and find matching key
|
|
186
|
+
const jwksUrl = params.jwksUrl || await fetchJwksUrl(payload.iss);
|
|
187
|
+
const jwk = await fetchMatchingKey(jwksUrl, header.kid);
|
|
188
|
+
// 3. Compute RSA limbs
|
|
189
|
+
const signedData = new TextEncoder().encode(`${headerB64}.${payloadB64}`);
|
|
190
|
+
const signatureBytes = base64urlToBytes(signatureB64url);
|
|
191
|
+
const signatureBigInt = bytesToBigInt(signatureBytes);
|
|
192
|
+
const modulusBytes = base64urlToBytes(jwk.n);
|
|
193
|
+
const modulusBigInt = bytesToBigInt(modulusBytes);
|
|
194
|
+
const redcParam = (1n << (2n * 2048n + 4n)) / modulusBigInt;
|
|
195
|
+
const pubkeyLimbs = splitBigIntToChunks(modulusBigInt, 120, 18).map(v => v.toString());
|
|
196
|
+
const redcLimbs = splitBigIntToChunks(redcParam, 120, 18).map(v => v.toString());
|
|
197
|
+
const sigLimbs = splitBigIntToChunks(signatureBigInt, 120, 18).map(v => v.toString());
|
|
198
|
+
// 4. Partial SHA-256 (precompute up to "email" key)
|
|
199
|
+
const payloadJson = new TextDecoder().decode(base64urlToBytes(payloadB64));
|
|
200
|
+
const emailKeyIndex = payloadJson.indexOf('"email"');
|
|
201
|
+
if (emailKeyIndex === -1) {
|
|
202
|
+
throw new Error('Could not find "email" key in JWT payload');
|
|
203
|
+
}
|
|
204
|
+
// Align to the base64 group boundary that contains the email key start.
|
|
205
|
+
// Base64 maps 3 decoded bytes → 4 base64 chars. Floor to group start ensures
|
|
206
|
+
// the full "email" key is included in partial_data after base64 decoding.
|
|
207
|
+
const emailKeyIndexB64 = Math.floor(emailKeyIndex / 3) * 4;
|
|
208
|
+
const sliceStart = headerB64.length + 1 + emailKeyIndexB64;
|
|
209
|
+
const { partialHash, remainingData } = generatePartialSHA256(signedData, sliceStart);
|
|
210
|
+
if (remainingData.length > OIDC_MAX_PARTIAL_DATA_LENGTH) {
|
|
211
|
+
throw new Error(`Remaining data after partial SHA (${remainingData.length} bytes) exceeds ` +
|
|
212
|
+
`MAX_PARTIAL_DATA_LENGTH (${OIDC_MAX_PARTIAL_DATA_LENGTH}). JWT payload is too large.`);
|
|
213
|
+
}
|
|
214
|
+
const partialDataPadded = new Uint8Array(OIDC_MAX_PARTIAL_DATA_LENGTH);
|
|
215
|
+
partialDataPadded.set(remainingData);
|
|
216
|
+
const shaCutoffIndex = signedData.length - remainingData.length;
|
|
217
|
+
const payloadBytesInShaPrecompute = shaCutoffIndex - (headerB64.length + 1);
|
|
218
|
+
const base64DecodeOffset = (4 - (payloadBytesInShaPrecompute % 4)) % 4;
|
|
219
|
+
// 5. Domain BoundedVec
|
|
220
|
+
const domainBytes = new TextEncoder().encode(domain);
|
|
221
|
+
if (domainBytes.length > OIDC_MAX_DOMAIN_LENGTH) {
|
|
222
|
+
throw new Error(`Domain "${domain}" exceeds max length ${OIDC_MAX_DOMAIN_LENGTH}`);
|
|
223
|
+
}
|
|
224
|
+
const domainStorage = new Uint8Array(OIDC_MAX_DOMAIN_LENGTH);
|
|
225
|
+
domainStorage.set(domainBytes);
|
|
226
|
+
// 6. Scope = keccak256(scope_string)
|
|
227
|
+
const scopeBytes = keccak256Bytes(new TextEncoder().encode(scope));
|
|
228
|
+
// 7. Nullifier = keccak256(keccak256(email) ++ scope)
|
|
229
|
+
const emailBytes = new TextEncoder().encode(email);
|
|
230
|
+
const emailHash = keccak256Bytes(emailBytes);
|
|
231
|
+
const preimage = new Uint8Array(64);
|
|
232
|
+
preimage.set(emailHash, 0);
|
|
233
|
+
preimage.set(scopeBytes, 32);
|
|
234
|
+
const nullifierBytes = keccak256Bytes(preimage);
|
|
235
|
+
return {
|
|
236
|
+
pubkey_modulus_limbs: pubkeyLimbs,
|
|
237
|
+
domain: { storage: Array.from(domainStorage), len: domainBytes.length },
|
|
238
|
+
scope: Array.from(scopeBytes),
|
|
239
|
+
nullifier: Array.from(nullifierBytes),
|
|
240
|
+
partial_data: { storage: Array.from(partialDataPadded), len: remainingData.length },
|
|
241
|
+
partial_hash: Array.from(partialHash),
|
|
242
|
+
full_data_length: signedData.length,
|
|
243
|
+
base64_decode_offset: base64DecodeOffset,
|
|
244
|
+
redc_params_limbs: redcLimbs,
|
|
245
|
+
signature_limbs: sigLimbs,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
// ─── Prover.toml builder ────────────────────────────────────────────────
|
|
249
|
+
function toHexArray(bytes) {
|
|
250
|
+
const lines = [];
|
|
251
|
+
for (let i = 0; i < bytes.length; i += 16) {
|
|
252
|
+
const chunk = bytes.slice(i, i + 16);
|
|
253
|
+
lines.push(' ' + chunk.map(b => '0x' + b.toString(16).padStart(2, '0')).join(', '));
|
|
254
|
+
}
|
|
255
|
+
return '[\n' + lines.join(',\n') + '\n]';
|
|
256
|
+
}
|
|
257
|
+
function toDecimalArray(values) {
|
|
258
|
+
return '[\n' + values.map((v, i) => {
|
|
259
|
+
const comma = i < values.length - 1 ? ',' : '';
|
|
260
|
+
return ` "${v}"${comma}`;
|
|
261
|
+
}).join('\n') + '\n]';
|
|
262
|
+
}
|
|
263
|
+
function toU32Array(values) {
|
|
264
|
+
return '[\n' + values.map((v, i) => {
|
|
265
|
+
const comma = i < values.length - 1 ? ',' : '';
|
|
266
|
+
return ` ${v >>> 0}${comma}`;
|
|
267
|
+
}).join('\n') + '\n]';
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Build a Prover.toml string from OidcCircuitInputs.
|
|
271
|
+
*/
|
|
272
|
+
export function buildOidcProverToml(inputs) {
|
|
273
|
+
const lines = [];
|
|
274
|
+
lines.push('# Public Inputs');
|
|
275
|
+
lines.push(`pubkey_modulus_limbs = ${toDecimalArray(inputs.pubkey_modulus_limbs)}`);
|
|
276
|
+
lines.push(`scope = ${toHexArray(inputs.scope)}`);
|
|
277
|
+
lines.push(`nullifier = ${toHexArray(inputs.nullifier)}`);
|
|
278
|
+
lines.push('');
|
|
279
|
+
lines.push('# Private Inputs');
|
|
280
|
+
lines.push(`partial_hash = ${toU32Array(inputs.partial_hash)}`);
|
|
281
|
+
lines.push(`full_data_length = ${inputs.full_data_length}`);
|
|
282
|
+
lines.push(`base64_decode_offset = ${inputs.base64_decode_offset}`);
|
|
283
|
+
lines.push(`redc_params_limbs = ${toDecimalArray(inputs.redc_params_limbs)}`);
|
|
284
|
+
lines.push(`signature_limbs = ${toDecimalArray(inputs.signature_limbs)}`);
|
|
285
|
+
lines.push('');
|
|
286
|
+
lines.push('# BoundedVec tables (must be last in TOML)');
|
|
287
|
+
lines.push('[domain]');
|
|
288
|
+
lines.push(`storage = ${toHexArray(inputs.domain.storage)}`);
|
|
289
|
+
lines.push(`len = ${inputs.domain.len}`);
|
|
290
|
+
lines.push('');
|
|
291
|
+
lines.push('[partial_data]');
|
|
292
|
+
lines.push(`storage = ${toHexArray(inputs.partial_data.storage)}`);
|
|
293
|
+
lines.push(`len = ${inputs.partial_data.len}`);
|
|
294
|
+
return lines.join('\n') + '\n';
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=oidc-inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc-inputs.js","sourceRoot":"","sources":["../src/oidc-inputs.ts"],"names":[],"mappings":"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"}
|
package/dist/prove.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClientConfig, CircuitName, ProveInputs, ProveResponse } from './types.js';
|
|
1
|
+
import type { ClientConfig, CircuitName, ProveInputs, OidcProveInputs, ProveResponse } from './types.js';
|
|
2
2
|
import type { EncryptedEnvelope } from './tee.js';
|
|
3
3
|
/**
|
|
4
4
|
* Submit proof generation with x402 payment headers.
|
|
@@ -6,7 +6,7 @@ import type { EncryptedEnvelope } from './tee.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function submitProof(config: ClientConfig, request: {
|
|
8
8
|
circuit: CircuitName;
|
|
9
|
-
inputs: ProveInputs;
|
|
9
|
+
inputs: ProveInputs | OidcProveInputs;
|
|
10
10
|
paymentTxHash: string;
|
|
11
11
|
paymentNonce: string;
|
|
12
12
|
}): Promise<ProveResponse>;
|
package/dist/prove.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prove.d.ts","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"prove.d.ts","sourceRoot":"","sources":["../src/prove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IACP,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,eAAe,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,aAAa,CAAC,CAqBxB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;IACP,OAAO,EAAE,WAAW,CAAC;IACrB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,aAAa,CAAC,CA0BxB"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Client-friendly circuit aliases. */
|
|
2
|
-
export type CircuitName = 'coinbase_kyc' | 'coinbase_country';
|
|
2
|
+
export type CircuitName = 'coinbase_kyc' | 'coinbase_country' | 'oidc_domain';
|
|
3
3
|
/** Canonical circuit IDs matching Nargo.toml names. */
|
|
4
|
-
export type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation';
|
|
4
|
+
export type CircuitId = 'coinbase_attestation' | 'coinbase_country_attestation' | 'oidc_domain_attestation';
|
|
5
5
|
/** Map client-friendly names to canonical circuit IDs. */
|
|
6
6
|
export declare const CIRCUIT_NAME_MAP: Record<CircuitName, CircuitId>;
|
|
7
7
|
/** Map canonical circuit IDs back to client-friendly names. */
|
|
@@ -71,9 +71,13 @@ export interface ProveInputs {
|
|
|
71
71
|
country_list?: string[];
|
|
72
72
|
is_included?: boolean;
|
|
73
73
|
}
|
|
74
|
+
export interface OidcProveInputs {
|
|
75
|
+
jwt: string | undefined;
|
|
76
|
+
scope_string: string;
|
|
77
|
+
}
|
|
74
78
|
export interface ProveRequest {
|
|
75
79
|
circuit: CircuitName;
|
|
76
|
-
inputs?: ProveInputs;
|
|
80
|
+
inputs?: ProveInputs | OidcProveInputs;
|
|
77
81
|
encrypted_payload?: EncryptedProveRequest['encrypted_payload'];
|
|
78
82
|
}
|
|
79
83
|
export interface EncryptedProveRequest {
|
|
@@ -137,6 +141,8 @@ export interface ProofParams {
|
|
|
137
141
|
countryList?: string[];
|
|
138
142
|
/** Whether the country list is an inclusion or exclusion list */
|
|
139
143
|
isIncluded?: boolean;
|
|
144
|
+
/** JWT token for OIDC circuit (oidc_domain) */
|
|
145
|
+
jwt?: string;
|
|
140
146
|
}
|
|
141
147
|
export interface ProofResult {
|
|
142
148
|
proof: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
export const CIRCUIT_NAME_MAP = {
|
|
4
4
|
coinbase_kyc: 'coinbase_attestation',
|
|
5
5
|
coinbase_country: 'coinbase_country_attestation',
|
|
6
|
+
oidc_domain: 'oidc_domain_attestation',
|
|
6
7
|
};
|
|
7
8
|
/** Map canonical circuit IDs back to client-friendly names. */
|
|
8
9
|
export const CIRCUIT_ID_MAP = {
|
|
9
10
|
coinbase_attestation: 'coinbase_kyc',
|
|
10
11
|
coinbase_country_attestation: 'coinbase_country',
|
|
12
|
+
oidc_domain_attestation: 'oidc_domain',
|
|
11
13
|
};
|
|
12
14
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAQ3E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,YAAY,EAAE,sBAAsB;IACpC,gBAAgB,EAAE,8BAA8B;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAQ3E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAmC;IAC9D,YAAY,EAAE,sBAAsB;IACpC,gBAAgB,EAAE,8BAA8B;IAChD,WAAW,EAAE,yBAAyB;CACvC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,oBAAoB,EAAE,cAAc;IACpC,4BAA4B,EAAE,kBAAkB;IAChD,uBAAuB,EAAE,aAAa;CACvC,CAAC"}
|