@learncard/sss-key-manager 0.2.0 → 0.2.2

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.
Files changed (63) hide show
  1. package/README.md +13 -0
  2. package/dist/escrow-attestation.d.ts +2 -5
  3. package/dist/escrow-attestation.d.ts.map +1 -1
  4. package/dist/escrow-authority.d.ts +112 -0
  5. package/dist/escrow-authority.d.ts.map +1 -0
  6. package/dist/escrow-authority.types.d.ts +51 -0
  7. package/dist/escrow-authority.types.d.ts.map +1 -0
  8. package/dist/escrow-crypto.d.ts +9 -1
  9. package/dist/escrow-crypto.d.ts.map +1 -1
  10. package/dist/escrow-enrollment-intent.d.ts +13 -0
  11. package/dist/escrow-enrollment-intent.d.ts.map +1 -0
  12. package/dist/escrow-enrollment-intent.types.d.ts +28 -0
  13. package/dist/escrow-enrollment-intent.types.d.ts.map +1 -0
  14. package/dist/escrow-nitro-attestation.d.ts +34 -0
  15. package/dist/escrow-nitro-attestation.d.ts.map +1 -0
  16. package/dist/index.d.ts +11 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/sss-key-manager.cjs.development.js +4478 -424
  19. package/dist/sss-key-manager.cjs.development.js.map +4 -4
  20. package/dist/sss-key-manager.cjs.production.min.js +37 -32
  21. package/dist/sss-key-manager.cjs.production.min.js.map +4 -4
  22. package/dist/sss-key-manager.esm.js +1813 -265
  23. package/dist/sss-key-manager.esm.js.map +4 -4
  24. package/dist/sss-strategy.d.ts.map +1 -1
  25. package/dist/types.d.ts +31 -5
  26. package/dist/types.d.ts.map +1 -1
  27. package/package.json +7 -3
  28. package/src/__fixtures__/escrow-authority-v1.json +96 -0
  29. package/src/__fixtures__/escrow-carry-contact-contract-v1.json +33 -0
  30. package/src/__fixtures__/escrow-enrollment-intent-v1.json +26 -0
  31. package/src/__fixtures__/escrow-vectors-rust.json +82 -0
  32. package/src/__fixtures__/escrow-vectors.json +103 -0
  33. package/src/__fixtures__/nitro-attestation/bad-signature.cbor.b64 +1 -0
  34. package/src/__fixtures__/nitro-attestation/debug-zero-pcrs.cbor.b64 +1 -0
  35. package/src/__fixtures__/nitro-attestation/legacy-user-data.cbor.b64 +1 -0
  36. package/src/__fixtures__/nitro-attestation/manifest.json +60 -0
  37. package/src/__fixtures__/nitro-attestation/nonce-mismatch.cbor.b64 +1 -0
  38. package/src/__fixtures__/nitro-attestation/root.pem +12 -0
  39. package/src/__fixtures__/nitro-attestation/stale-timestamp.cbor.b64 +1 -0
  40. package/src/__fixtures__/nitro-attestation/tampered-previous-key-ids.cbor.b64 +1 -0
  41. package/src/__fixtures__/nitro-attestation/truncated-chain.cbor.b64 +1 -0
  42. package/src/__fixtures__/nitro-attestation/valid.cbor.b64 +1 -0
  43. package/src/__fixtures__/nitro-attestation/wrong-pcr0.cbor.b64 +1 -0
  44. package/src/__fixtures__/nitro-attestation/wrong-root.cbor.b64 +1 -0
  45. package/src/__fixtures__/nitro-attestation-real/staging-nsm-document.json +16 -0
  46. package/src/escrow-attestation.test.ts +7 -2
  47. package/src/escrow-attestation.ts +72 -10
  48. package/src/escrow-authority.test.ts +643 -0
  49. package/src/escrow-authority.ts +597 -0
  50. package/src/escrow-authority.types.ts +56 -0
  51. package/src/escrow-crypto.ts +39 -1
  52. package/src/escrow-enrollment-intent.test.ts +224 -0
  53. package/src/escrow-enrollment-intent.ts +236 -0
  54. package/src/escrow-enrollment-intent.types.ts +28 -0
  55. package/src/escrow-nitro-attestation.test.ts +276 -0
  56. package/src/escrow-nitro-attestation.ts +317 -0
  57. package/src/escrow-vectors.test.ts +198 -0
  58. package/src/index.ts +35 -1
  59. package/src/sss-authority.test.ts +889 -0
  60. package/src/sss-session-writes.test.ts +2 -2
  61. package/src/sss-strategy.test.ts +95 -2
  62. package/src/sss-strategy.ts +596 -115
  63. package/src/types.ts +34 -4
@@ -1 +1 @@
1
- {"version":3,"file":"sss-strategy.d.ts","sourceRoot":"","sources":["../src/sss-strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sss-strategy.d.ts","sourceRoot":"","sources":["../src/sss-strategy.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Re-exports provider-agnostic interfaces from @learncard/types
5
5
  * and defines SSS-specific types (recovery shapes, backup files, etc.).
6
6
  */
7
- export { AuthSessionError, type AuthProviderType, type AuthUser, type AuthProvider, type RecoveryMethodInfo, type RecoveryResult, type IdentityRecoverySession, type ServerKeyStatus, type SssActivationState, type KeyDerivationStrategy, type DidAuthVpSigner, type EscrowEnrollmentOptions, type EscrowEnrollmentState, type EscrowPinStatus, } from '@learncard/types';
7
+ export { AuthSessionError, type AuthProviderType, type AuthUser, type AuthProvider, type RecoveryMethodInfo, type RecoveryResult, type IdentityRecoverySession, type ServerKeyStatus, type SssActivationState, type KeyDerivationStrategy, type DidAuthVpSigner, type EscrowEnrollmentOptions, type EscrowEnrollmentState, type EscrowBlobStaleReason, type EscrowPinStatus, } from '@learncard/types';
8
8
  import type { AuthProvider, AuthProviderType, KeyDerivationStrategy, RecoveryMethodInfo, SssActivationState } from '@learncard/types';
9
9
  export type ContactMethodType = 'email' | 'phone';
10
10
  export interface ContactMethod {
@@ -28,10 +28,21 @@ export type EscrowAttestationPolicy = {
28
28
  pinnedPublicKeys: string[];
29
29
  } | {
30
30
  mode: 'nitro';
31
- pinnedMeasurements: {
31
+ /** Legacy image-only pins remain assignable but never match an attestation. */
32
+ pinnedMeasurements: ({
33
+ pcr0: string;
34
+ pcr1: string;
35
+ pcr2: string;
36
+ imageSha384?: string;
37
+ } | {
32
38
  imageSha384: string;
33
- }[];
34
- rootCertificatePem?: string;
39
+ pcr0?: string;
40
+ pcr1?: string;
41
+ pcr2?: string;
42
+ })[];
43
+ rootCertificateSha256?: string;
44
+ /** Maximum age in milliseconds; defaults to five minutes. */
45
+ maxAgeMs?: number;
35
46
  };
36
47
  /** Public status of an escrow recovery waiting period. */
37
48
  export interface EscrowHoldStatus {
@@ -42,9 +53,18 @@ export interface EscrowHoldStatus {
42
53
  releaseAfter: string;
43
54
  cancelledAt?: string;
44
55
  completedAt?: string;
56
+ /** Only present for an authority-mode hold-policy hold; `confirmed` only appears alongside it. */
57
+ requiresConfirmation?: boolean;
58
+ confirmed?: boolean;
59
+ /** Opaque enclave-signed `SignedHoldRecord`; present only in authority
60
+ * (nitro) mode. Callers must verify it with `verifyEscrowHoldRecord`
61
+ * before trusting any field inside it — see escrow-authority.ts. */
62
+ holdRecord?: import('./escrow-authority').EscrowHoldRecordLike;
45
63
  }
46
64
  /** Persist these secrets securely until completion; a null token means an existing hold. */
47
65
  export type EscrowRecoveryStart = EscrowHoldStatus & {
66
+ /** Persist with the secrets, never rebuild from server status. Required for Nitro resume. */
67
+ expectations?: import('@learncard/types').EscrowRecoveryExpectations;
48
68
  resumeToken: string | null;
49
69
  clientEphemeralPrivateKey: string;
50
70
  pinSalt?: string;
@@ -92,11 +112,14 @@ export type RecoveryMethod = PasskeyRecoveryMethod | BackupFileRecoveryMethod |
92
112
  export type RecoveryInput = {
93
113
  method: 'escrow-pin';
94
114
  pin: string;
115
+ expectedDid?: string;
95
116
  } | {
96
117
  method: 'escrow';
97
118
  holdId: string;
98
119
  resumeToken: string;
99
120
  clientEphemeralPrivateKey: string;
121
+ /** Original start bindings loaded with the private key, required for Nitro. */
122
+ expectations?: import('@learncard/types').EscrowRecoveryExpectations;
100
123
  } | {
101
124
  method: 'passkey';
102
125
  credentialId: string;
@@ -216,7 +239,10 @@ export interface SSSKeyManagerConfig {
216
239
  * The SSS key derivation strategy — a KeyDerivationStrategy narrowed
217
240
  * with SSS-specific recovery input/output types.
218
241
  */
219
- export type SSSKeyDerivationStrategy = KeyDerivationStrategy<RecoveryInput, RecoverySetupInput, RecoverySetupResult, RecoveryConfirmationInput>;
242
+ export type SSSKeyDerivationStrategy = KeyDerivationStrategy<RecoveryInput, RecoverySetupInput, RecoverySetupResult, RecoveryConfirmationInput> & {
243
+ /** Last receipt/snapshot-verified ciphertext for this session, never a freshness oracle. */
244
+ getVerifiedEscrowEnvelope?(): import('./escrow-crypto').EscrowEnvelope | null;
245
+ };
220
246
  /** @deprecated Use KeyDerivationStrategy instead. Kept for legacy SSSKeyManager class. */
221
247
  export interface KeyDerivationProvider {
222
248
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@learncard/sss-key-manager",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Shamir Secret Sharing key manager for LearnCard - replaces Web3Auth SFA",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/sss-key-manager.esm.js",
@@ -10,7 +10,8 @@
10
10
  "src"
11
11
  ],
12
12
  "scripts": {
13
- "build": "node ./scripts/build.mjs && shx cp ./scripts/mixedEntrypoint.js ./dist/index.js && tsc --p tsconfig.json",
13
+ "build": "node ./scripts/build.mjs && shx cp ./scripts/mixedEntrypoint.js ./dist/index.js && tsc --p tsconfig.json && node ./scripts/check-cjs.mjs",
14
+ "check:cjs": "bun run build",
14
15
  "dev": "node ./scripts/build.mjs --watch",
15
16
  "test": "vitest run",
16
17
  "test:watch": "vitest",
@@ -38,10 +39,13 @@
38
39
  "vitest": "4.1.11"
39
40
  },
40
41
  "dependencies": {
41
- "@learncard/types": "5.22.0",
42
+ "@learncard/types": "5.23.1",
42
43
  "@noble/ed25519": "^2.0.0",
44
+ "@peculiar/x509": "^2.1.0",
43
45
  "@scure/bip39": "^1.2.1",
46
+ "cborg": "^6.1.2",
44
47
  "hash-wasm": "^4.11.0",
48
+ "reflect-metadata": "^0.2.2",
45
49
  "shamir-secret-sharing": "^0.0.4"
46
50
  },
47
51
  "peerDependencies": {
@@ -0,0 +1,96 @@
1
+ {
2
+ "attestation": {
3
+ "document": "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",
4
+ "issuedAt": "2026-09-25T00:00:00Z",
5
+ "keyId": "test-key.1",
6
+ "measurements": {},
7
+ "mode": "nitro",
8
+ "previousKeyIds": ["test-key.0"],
9
+ "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnX5GwyaaFpFYdl7m9ft+aF3MG6GanWFe7rvTqEGNoojfQtaaRXWNmYbC9affj2Twoy2RlWkOTGFETJQC5/f93w=="
10
+ },
11
+ "committed": {
12
+ "envelope": {
13
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
14
+ "ciphertext": "S96eKmzfe/5DXEmEGqi7BDdt8uJH0OUIcAi3GpbZd6awzw6ESw13MQJbcJTjYSrBQs5HjY2vMQ4g0NKD5SV/e2IVINm8/4DMONdGA7QBQBBiyJMrkd8D1PG4n158julYSLYW23wV1nzDmBR4CV75PNrlPDFUHxhPsB3FNPOI0DgU6U4FWEa+bPnKzlreDf7gg//eHkXb1eFk03/mnTJbeg9UMbJumWVW/suUb8kFe2bM0aDDr4PTtnSeGIBbMN1Vyx60E4D3Kf8zj7JDyxMIAeq+1G4wiVmk0hmLQkZHJLJB2+7GFG9WYDlAURADyY8TfKjQj0mu3jprvmxB/0AYmXxwdD5xwFw8aPP7sfBVPQ==",
15
+ "ephemeralPublicKey": "BBG5nTX3CmOrXNjR8EYzX6uqe2IZR7f5OzIVliIhNOhsChy0+F5LRygXKE5omQ6APUnxKLTiqqm/BQvfsLqnclY=",
16
+ "iv": "rVGvjLFM1nwaey1f",
17
+ "keyId": "test-key.1",
18
+ "salt": "az337mLgh/FKQS5a8rgEhEf/IwRlXqETsri1auxtnCE=",
19
+ "version": 1
20
+ },
21
+ "receipt": {
22
+ "keyId": "test-key.1",
23
+ "kind": "commit",
24
+ "measurement": [
25
+ 104, 246, 220, 65, 85, 5, 178, 132, 55, 240, 220, 184, 36, 221, 238, 197, 123, 192,
26
+ 254, 252, 44, 2, 36, 71, 113, 41, 136, 81, 211, 167, 12, 127
27
+ ],
28
+ "payload": "eyJjb21taXQiOnsiYmluZGluZyI6eyJkaWRIYXNoIjpbNiw4OCwxMjgsMTQyLDEzMywyMDQsMTMxLDIzLDE1NiwyMTIsMjIyLDM3LDE3NiwxMTIsMjAzLDE4NywzMiwxNTMsMjA4LDIxLDExNCw2MCwxMjIsMTc2LDIxNywxOSw3MiwxNCwxMywyMTcsNiwyMDFdLCJnZW5lcmF0aW9uIjoic3RhZ2luZy1nMiIsInRlbmFudCI6ImxlYXJuY2FyZCJ9LCJleGVjdXRpb25JZCI6WzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLCJyZXZpc2lvbnMiOnsiZW5yb2xsbWVudCI6OCwib3BlcmF0aW9uIjoxMn0sInNjaGVtYVZlcnNpb24iOjEsInRyYW5zYWN0aW9uRGlnZXN0IjpbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyXX0sImVucm9sbG1lbnRFcG9jaCI6NCwiZXZlbnRIYXNoIjpbMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzXSwicmVxdWVzdERpZ2VzdCI6WzE2MiwxNDEsMTk2LDIsMTk1LDE4MSw5MSwyOSw3OSwxNDIsMTIzLDMxLDUwLDEyNCw2Myw5NiwxMTUsMTI1LDUzLDE0MCwxMCw4NSwxMTYsMjQxLDkxLDExOSw2NCwyMDgsMTE5LDE0Nyw2Nyw3Nl0sInJlc3VsdEJsb2JJZGVudGl0eSI6WzQ5LDIyMCwzNSwxMjYsMjAsMjM1LDQ3LDQ5LDIyLDIyMCw4NSw4OSwxNjksNCwyMTUsNDcsMTEzLDIxNSwxMDMsMzQsNywxMDgsNDYsMjE3LDE0OCwxOTYsMTYsMTQsOTUsMTk4LDYwLDE0N119",
29
+ "signature": "Jy3/K0leJzFJqc13bcBRFw2pVKuBf8+yGzuQz+isGUQT20R+Cbxudwmf7bWUSVOOGUQuyBhkHA4IUvFXGZrBWg==",
30
+ "version": 1
31
+ }
32
+ },
33
+ "description": "Public fixture key 2a repeated 32 times; NEVER use this key or fake CA in production. Opaque envelope fixtures exercise signature bindings, not decrypted plaintext authorization.",
34
+ "intent": {
35
+ "action": "carry",
36
+ "allowRewrap": true,
37
+ "authorityGeneration": "staging-g2",
38
+ "did": "did:key:z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw",
39
+ "enrollmentEpoch": 4,
40
+ "expectedEnrollmentVersion": 7,
41
+ "pinAction": "keep",
42
+ "recoveryEmail": null,
43
+ "recoveryLanguage": null,
44
+ "requestId": "golden-carry-1",
45
+ "shareVersion": 42,
46
+ "sourceBlobIdentity": "8090217ef11060bfa380c4a4b26d76a64811216176ecb60749652fabf3b09425",
47
+ "targetBlobIdentity": "31dc237e14eb2f3116dc5559a904d72f71d76722076c2ed994c4100e5fc63c93",
48
+ "tenant": "learncard",
49
+ "version": 2
50
+ },
51
+ "ledgerPublicKey": "BAyQHUI8gxyoXifHPCY7oTJyG7nXqExPA4CypnVv1gEzHIhwI03sh4UEwXQUT6SxS2amUWkWBtgXPlW9N+OBVp4=",
52
+ "measurement": "68f6dc415505b28437f0dcb824ddeec57bc0fefc2c02244771298851d3a70c7f",
53
+ "nonce": "0909090909090909090909090909090909090909090909090909090909090909",
54
+ "nowMs": 1790294401000,
55
+ "pcrs": {
56
+ "0": "010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101",
57
+ "1": "020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202",
58
+ "2": "030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303"
59
+ },
60
+ "rootSha256": "d71ae13f792676894bf8549178ea45acc360b1935e628f678d9e2f3befae9dfe",
61
+ "snapshot": {
62
+ "proof": {
63
+ "keyId": "test-key.1",
64
+ "kind": "snapshot",
65
+ "measurement": [
66
+ 104, 246, 220, 65, 85, 5, 178, 132, 55, 240, 220, 184, 36, 221, 238, 197, 123, 192,
67
+ 254, 252, 44, 2, 36, 71, 113, 41, 136, 81, 211, 167, 12, 127
68
+ ],
69
+ "payload": "WyIwOTA5MDkwOTA5MDkwOTA5MDkwOTA5MDkwOTA5MDkwOTA5MDkwOTA5MDkwOTA5MDkwOTA5MDkwOTA5MDkwOTA5Iix7ImF0dGVtcHRzVXNlZCI6OCwiYXV0aG9yaXR5R2VuZXJhdGlvbiI6InN0YWdpbmctZzIiLCJkaWQiOiJkaWQ6a2V5Ono2TWt0d3VwZG1MWFZWcVR6Q3c0aTQ2cjR1R3lvc0dYUm5SM1hqTjRacTdvTU1zdyIsImVucm9sbG1lbnRFcG9jaCI6MywiZW5yb2xsbWVudFZlcnNpb24iOjcsImVudmVsb3BlIjp7ImFsZ29yaXRobSI6IlAtMjU2LUhLREYtU0hBMjU2LUFFUy0yNTYtR0NNIiwiY2lwaGVydGV4dCI6ImdwMUhLcVgvWlVZNmxrWm1DYUk1eVVGZS9TRTdYTXJiQ0FReFN6dHA3U2kwRnhBTFlKTUxoN2lMZ0FvR1ZQbWg4bEtMSEpyMVY2RDBWN01OcXF2NXV2L2dscnY4eU9rMmI2YlhkU290OVowaGpKT1FURDhlNXBnTEp4WFNGUExYV1E9PSIsImVwaGVtZXJhbFB1YmxpY0tleSI6IkJFL2VhQTVTVXlTRjdSTnJUWVE1bW5WcFlMMW1IVkV5Z25RS1R1c0FEVXpZeHMrbVk3R1RQNHZxSWFxWFRxRkFKaXZ1M3Z0cFdUN1ZQTWp1MEE3ejFRaz0iLCJpdiI6IkJzSjZxZmhYbUtDbVR2MkkiLCJrZXlJZCI6InRlc3Qta2V5LjAiLCJzYWx0IjoiNHVzNWVXait1dXJ4OERGN2xJc1hHdWhFdFo5eE1ieFhvUTZ1dTE1ZnlCWT0iLCJ2ZXJzaW9uIjoxfSwiaGFzUGluIjp0cnVlLCJwaW5HZW5lcmF0aW9uIjoyLCJzaGFyZVZlcnNpb24iOjEsInN0YXR1cyI6ImFjdGl2ZSIsInRlbmFudCI6ImxlYXJuY2FyZCJ9XQ==",
70
+ "signature": "GKq+/xitQWTtCWaHOFFu7C3B9Qzwz296OuHhTZYUFJtS+OiHg5yDsQoTRKURtzWQFYKQxNhT8fogjNQXwBGYkw==",
71
+ "version": 1
72
+ },
73
+ "state": {
74
+ "attemptsUsed": 8,
75
+ "authorityGeneration": "staging-g2",
76
+ "did": "did:key:z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw",
77
+ "enrollmentEpoch": 3,
78
+ "enrollmentVersion": 7,
79
+ "envelope": {
80
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
81
+ "ciphertext": "gp1HKqX/ZUY6lkZmCaI5yUFe/SE7XMrbCAQxSztp7Si0FxALYJMLh7iLgAoGVPmh8lKLHJr1V6D0V7MNqqv5uv/glrv8yOk2b6bXdSot9Z0hjJOQTD8e5pgLJxXSFPLXWQ==",
82
+ "ephemeralPublicKey": "BE/eaA5SUySF7RNrTYQ5mnVpYL1mHVEygnQKTusADUzYxs+mY7GTP4vqIaqXTqFAJivu3vtpWT7VPMju0A7z1Qk=",
83
+ "iv": "BsJ6qfhXmKCmTv2I",
84
+ "keyId": "test-key.0",
85
+ "salt": "4us5eWj+uurx8DF7lIsXGuhEtZ9xMbxXoQ6uu15fyBY=",
86
+ "version": 1
87
+ },
88
+ "hasPin": true,
89
+ "pinGeneration": 2,
90
+ "shareVersion": 1,
91
+ "status": "active",
92
+ "tenant": "learncard"
93
+ }
94
+ },
95
+ "testOnly": true
96
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "description": "P2-d cross-language contract: the enclave authority policy (apply_enrollment_intent, authority.rs) rejects a Carry target blob whose PLAINTEXT already carries a non-null recoveryEmail/recoveryLanguage — on carry the enclave always fills those fields in from the source blob instead — but accepts the identical blob shape for Enroll/Replace (where the signed intent is required to bind a matching contact instead). Rust (policy/authority/tests.rs) builds and submits a real target blob with each case's fields and asserts apply_enrollment_intent's accept/reject outcome through the real enclave policy; TypeScript (escrow-authority.test.ts) asserts the same outcome via resolveEscrowEnrollmentAction plus the same rule the enclave enforces. Each case is independent: did/shareVersion/epoch are illustrative, not cross-referenced. recoveryEmail/recoveryLanguage are always both-null or both-set, matching the blob plaintext's own format invariant.",
3
+ "cases": [
4
+ {
5
+ "name": "enroll accepts a target with contact fields",
6
+ "action": "enroll",
7
+ "blobRecoveryEmail": "owner@example.com",
8
+ "blobRecoveryLanguage": "en",
9
+ "expected": "accept"
10
+ },
11
+ {
12
+ "name": "replace accepts a target with contact fields",
13
+ "action": "replace",
14
+ "blobRecoveryEmail": "owner@example.com",
15
+ "blobRecoveryLanguage": "en",
16
+ "expected": "accept"
17
+ },
18
+ {
19
+ "name": "carry rejects a target that already carries contact fields",
20
+ "action": "carry",
21
+ "blobRecoveryEmail": "owner@example.com",
22
+ "blobRecoveryLanguage": "en",
23
+ "expected": "reject"
24
+ },
25
+ {
26
+ "name": "carry accepts a target with no contact fields",
27
+ "action": "carry",
28
+ "blobRecoveryEmail": null,
29
+ "blobRecoveryLanguage": null,
30
+ "expected": "accept"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "description": "Public RFC8032 test seed only; never use for accounts. Envelope indices refer to escrow-vectors.json. This tests intent binding, not plaintext authorization.",
3
+ "seedHex": "9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60",
4
+ "publicKeyHex": "d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a",
5
+ "sourceFixtureIndex": 0,
6
+ "targetFixtureIndex": 1,
7
+ "canonicalHex": "6c6561726e636172642d657363726f772d656e726f6c6c6d656e742d696e74656e742d7632000000000400000002000000096c6561726e63617264000000386469643a6b65793a7a364d6b74777570646d4c58565671547a43773469343672347547796f734758526e5233586a4e345a71376f4d4d73770000000a73746167696e672d67320000000800000000000000070000000103000000208090217ef11060bfa380c4a4b26d76a64811216176ecb60749652fabf3b094250000002031dc237e14eb2f3116dc5559a904d72f71d76722076c2ed994c4100e5fc63c930000000103000000040000002a0000000800000000000000040000000e676f6c64656e2d63617272792d3100000001010000000000000000",
8
+ "intent": {
9
+ "version": 2,
10
+ "tenant": "learncard",
11
+ "did": "did:key:z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw",
12
+ "authorityGeneration": "staging-g2",
13
+ "expectedEnrollmentVersion": 7,
14
+ "action": "carry",
15
+ "sourceBlobIdentity": "8090217ef11060bfa380c4a4b26d76a64811216176ecb60749652fabf3b09425",
16
+ "targetBlobIdentity": "31dc237e14eb2f3116dc5559a904d72f71d76722076c2ed994c4100e5fc63c93",
17
+ "pinAction": "keep",
18
+ "shareVersion": 42,
19
+ "enrollmentEpoch": 4,
20
+ "requestId": "golden-carry-1",
21
+ "allowRewrap": true,
22
+ "recoveryEmail": null,
23
+ "recoveryLanguage": null
24
+ },
25
+ "signature": "9vlbx0xm5clOZIQ0aWKnKYL8tMeirW9Cd7oK6a31aEIqw7mOeneio+wNIKXh1uZRPW0JxQSOHJtqaexf01DxDw=="
26
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "enclave": {
3
+ "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECVRoc4kHR3+X+iXmKIV9/iMO9qvg8HUkImCcysqCx/VL0fEDRtfEBjczuzZN4gynIZyZLdwpjbCA8cWXjcAbKg==",
4
+ "privateKey": "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgbhFeSMtxwXqJIj6OWV0dHcWnEmgEM9wtsjuUUOdaPeqhRANCAAQJVGhziQdHf5f6JeYohX3+Iw72q+DwdSQiYJzKyoLH9UvR8QNG18QGNzO7Nk3iDKchnJkt3CmNsIDxxZeNwBsq"
5
+ },
6
+ "blobs": [
7
+ {
8
+ "plaintext": {
9
+ "version": 1,
10
+ "recoveryShare": "abcde",
11
+ "did": "did:example:legacy",
12
+ "shareVersion": 1
13
+ },
14
+ "envelope": {
15
+ "version": 1,
16
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
17
+ "keyId": "rust-key.1",
18
+ "ephemeralPublicKey": "BPwtxvI3oAEajX0fj/jul5WHsViEp7BV6A4ivXhkgtWenYc2Ouo2TuZOYHsbc++3CGA4QXQPiCxQnqkPPrwUByI=",
19
+ "salt": "dKH9sN2lp60pdk1uXy3hLwqIEbEhrJv6lVKgp8G0ziY=",
20
+ "iv": "nUjpAFLA61XUv6IU",
21
+ "ciphertext": "fTRtp3brvlYAuB8Ta4ktH1AKFNd42QXnh/BMCgvdd6KMXMPP5veaixxM5Givr5oD2TChw/hyamMR6Rv5RZI33Pkk/DEYLmZl4NVCi70w/alrDIaP0XVKLAFtIm7MZDvYhw=="
22
+ }
23
+ },
24
+ {
25
+ "plaintext": {
26
+ "version": 1,
27
+ "recoveryShare": "0001abababababababababababababababababababababababababababababababababababababababababababababababab",
28
+ "did": "did:example:pin",
29
+ "shareVersion": 42,
30
+ "pinVerifier": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
31
+ },
32
+ "envelope": {
33
+ "version": 1,
34
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
35
+ "keyId": "rust-key.1",
36
+ "ephemeralPublicKey": "BAk7irFe8DkxDb/fWm/VF9muFjIoVW6/xt6Nza4eEJc5c0GR8Y3SzTZHhpWRYcPXPkKRizHt0r+AJT+MQTiF60U=",
37
+ "salt": "4OQwfSWhLI2OExTkJ/1DrYN5/m2sdyXQgd8PXQ+PEYw=",
38
+ "iv": "53dwpmMCTVw/cK+y",
39
+ "ciphertext": "gJbHdZ68WA3X0HSH8qcfuPsCk0ewPbMc1O9D+jndB6KoG4BpuJK10D3tF0Y2MahZQnIhuxSmyaMkO7UGESuXJZ5WUYT8i5cLQt7aWfLTmMSqKBzr6ZEGQnWjXfaCfjkwhMQ1mw3XrCwtPocJDbyh6YKRuslNqapAPg9pjNSO8HyMQku3OzBajLLSVgpSiCmP+baq0bESwdGRtoSR45TwhO2M/Ku5TKS4mhkhc1blglsT4PlS4pmGBTx4chyiAIKplimZOiNcHMV3o/3ffqF4OFHU1C0oWz2T8pd1DOOoqcSAahw3Aus3pUPxtd7GC1q1/uoY2EqqMb57nE7TU8LlMVxOC+HmJagjWGf7GkLzpg=="
40
+ }
41
+ }
42
+ ],
43
+ "releases": [
44
+ {
45
+ "plaintext": {
46
+ "version": 1,
47
+ "recoveryShare": "abcde",
48
+ "did": "did:example:legacy",
49
+ "shareVersion": 1,
50
+ "holdId": "hold-0.test_1"
51
+ },
52
+ "envelope": {
53
+ "version": 1,
54
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
55
+ "keyId": "client",
56
+ "ephemeralPublicKey": "BN2LoJ9k9yh5SR5063D0jtiO7KoBBrExFnhdF4+Kf0I9sAzEG/mahOBt70qzcTmLoYMyVgydQqGRZfKkaYFSIac=",
57
+ "salt": "ZFpydJ/zt2zPy2iAOwBzn16wiSM/pOri1xNoDU2mLQA=",
58
+ "iv": "nZ4LNzSu+Z/jXGR4",
59
+ "ciphertext": "pplV/CIqyJwk9+gBsL5GgNP8iV+phfJA9BnCrsGvUDQ5JNQSehoCh8XRaZbpvVKwP+5SLK/6dg1R2uwe24+/yTF2lS4H/WEZRfeLxdOxeLfAxnhBnVgGBYr+ej2WG8oXq8JmPQcMeR10pkS55qxdqq7W3xYfwTcr1iY="
60
+ }
61
+ },
62
+ {
63
+ "plaintext": {
64
+ "version": 1,
65
+ "recoveryShare": "0001abababababababababababababababababababababababababababababababababababababababababababababababab",
66
+ "did": "did:example:pin",
67
+ "shareVersion": 42,
68
+ "pinVerifier": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
69
+ "holdId": "hold-1.test_1"
70
+ },
71
+ "envelope": {
72
+ "version": 1,
73
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
74
+ "keyId": "client",
75
+ "ephemeralPublicKey": "BHVxS4Dg37HGkVi6wdP40EmflisEuT7tlPH3/FsHJFK6+pJ579HDa/t24+PeciTjO5OvJvzKwBZNhsA0sy20AnA=",
76
+ "salt": "Dbun+NEj/gq+Ru8icMGzBq4KKgjvS+qIj6nEnzol40I=",
77
+ "iv": "KLZ97qA9/jwJ+F3b",
78
+ "ciphertext": "H/VkToIgIszzXBhdvdFZdYIt9dFzfELqDaULp+pPA1a3MOOavtUMvgl1JB6LNOjD30VEKgS5Y5Oripg1sWdk7cTY84JcvgY5sxUuz86h+MmfVeyw5Txh0ljTDSLagxJLOD+WHt0XmGUIcIUe8PAXoASvqEVj9Zud4ZXe/TO4agN8+NnFSkyDgPFDevjKy464LqEom71XbR2po1rBYhWJsCj2AxnvaB5bvPOl9/DjLSGmFi+kxi2C3Nn67LMNdWBKu/KswzUTrkwkQOUXN0JnJIxtV2ekEHxSkyrrUAAsGlci3nzshGH6b30bntIkHY7+2lcUIgv1HbTm6nFuLrgas00YEW+OralLZT5Ecnb1E2H25s8ggp/gc4GvfP9IrltwwYWr9ASY2Hg="
79
+ }
80
+ }
81
+ ]
82
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "enclave": {
3
+ "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpTASV7h4ee5sUGyezG1X44nInGSFG5wav5yoQusCEIO00iviTJWT79XdNOm02TzebGjfa2TVCXthzu4QfIO2Fw==",
4
+ "privateKey": "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgCzsEW6rxqKzVciILkUfgmZ25b7T5cPdax1n2fqLZjVOhRANCAASlMBJXuHh57mxQbJ7MbVfjicicZIUbnBq/nKhC6wIQg7TSK+JMlZPv1d006bTZPN5saN9rZNUJe2HO7hB8g7YX"
5
+ },
6
+ "client": {
7
+ "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdy0mWEgDJgxBp060ByBci6pxD/tbBvYK8vCAU/ixGGmaX+MBWhlWq3lgWnHdWJrW13ng+b3nvvspGkhTo7wjsw==",
8
+ "privateKey": "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7DOfqlt6mZyWss4eyu8mbCe+rOE7MgoY1nBTd66FhnahRANCAAR3LSZYSAMmDEGnTrQHIFyLqnEP+1sG9gry8IBT+LEYaZpf4wFaGVareWBacd1YmtbXeeD5vee++ykaSFOjvCOz"
9
+ },
10
+ "blobs": [
11
+ {
12
+ "plaintext": {
13
+ "version": 1,
14
+ "recoveryShare": "abcde",
15
+ "did": "did:example:legacy",
16
+ "shareVersion": 1
17
+ },
18
+ "envelope": {
19
+ "version": 1,
20
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
21
+ "keyId": "test-key.0",
22
+ "ephemeralPublicKey": "BE/eaA5SUySF7RNrTYQ5mnVpYL1mHVEygnQKTusADUzYxs+mY7GTP4vqIaqXTqFAJivu3vtpWT7VPMju0A7z1Qk=",
23
+ "salt": "4us5eWj+uurx8DF7lIsXGuhEtZ9xMbxXoQ6uu15fyBY=",
24
+ "iv": "BsJ6qfhXmKCmTv2I",
25
+ "ciphertext": "gp1HKqX/ZUY6lkZmCaI5yUFe/SE7XMrbCAQxSztp7Si0FxALYJMLh7iLgAoGVPmh8lKLHJr1V6D0V7MNqqv5uv/glrv8yOk2b6bXdSot9Z0hjJOQTD8e5pgLJxXSFPLXWQ=="
26
+ }
27
+ },
28
+ {
29
+ "plaintext": {
30
+ "version": 1,
31
+ "recoveryShare": "0001abababababababababababababababababababababababababababababababababababababababababababababababab",
32
+ "did": "did:example:pin",
33
+ "shareVersion": 42,
34
+ "pinVerifier": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
35
+ },
36
+ "envelope": {
37
+ "version": 1,
38
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
39
+ "keyId": "test-key.1",
40
+ "ephemeralPublicKey": "BBG5nTX3CmOrXNjR8EYzX6uqe2IZR7f5OzIVliIhNOhsChy0+F5LRygXKE5omQ6APUnxKLTiqqm/BQvfsLqnclY=",
41
+ "salt": "az337mLgh/FKQS5a8rgEhEf/IwRlXqETsri1auxtnCE=",
42
+ "iv": "rVGvjLFM1nwaey1f",
43
+ "ciphertext": "S96eKmzfe/5DXEmEGqi7BDdt8uJH0OUIcAi3GpbZd6awzw6ESw13MQJbcJTjYSrBQs5HjY2vMQ4g0NKD5SV/e2IVINm8/4DMONdGA7QBQBBiyJMrkd8D1PG4n158julYSLYW23wV1nzDmBR4CV75PNrlPDFUHxhPsB3FNPOI0DgU6U4FWEa+bPnKzlreDf7gg//eHkXb1eFk03/mnTJbeg9UMbJumWVW/suUb8kFe2bM0aDDr4PTtnSeGIBbMN1Vyx60E4D3Kf8zj7JDyxMIAeq+1G4wiVmk0hmLQkZHJLJB2+7GFG9WYDlAURADyY8TfKjQj0mu3jprvmxB/0AYmXxwdD5xwFw8aPP7sfBVPQ=="
44
+ }
45
+ },
46
+ {
47
+ "plaintext": {
48
+ "version": 1,
49
+ "recoveryShare": "efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef",
50
+ "did": "did:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx😀",
51
+ "shareVersion": 9007199254740992
52
+ },
53
+ "envelope": {
54
+ "version": 1,
55
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
56
+ "keyId": "test-key.2",
57
+ "ephemeralPublicKey": "BPF39ybbW51gQFsbeHrnruzOuBmnmuPkl+5VIK5JvF+hzC0ciDEwJOs3yd/fmktXzMBg+nmSkyC849sMK6kxlW8=",
58
+ "salt": "LvNEFYbYngxS/DyHukK29JwmvKLmL2x6JW+1t8u3Uhg=",
59
+ "iv": "UTcs8MFqb7yK33gQ",
60
+ "ciphertext": "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"
61
+ }
62
+ }
63
+ ],
64
+ "releases": [
65
+ {
66
+ "plaintext": {
67
+ "version": 1,
68
+ "recoveryShare": "abcde",
69
+ "did": "did:example:legacy",
70
+ "shareVersion": 1,
71
+ "holdId": "hold-0.test_1"
72
+ },
73
+ "envelope": {
74
+ "version": 1,
75
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
76
+ "keyId": "client",
77
+ "ephemeralPublicKey": "BBDuaPVKz1B53f8KnGQQ26TC+O+vHWaYDq6TjOikq4O45WfpStFRLJl2AsfKEbBggK3mnMtK27/Ytn2nFMo6G2w=",
78
+ "salt": "+PoOMi4Sh+rpBZtJkh8u4WhDlAOyD7J7RLMSouKblNQ=",
79
+ "iv": "7i0+Kj1HwJZwZbJY",
80
+ "ciphertext": "Hc1Wq7qXUa3223Mt7KEh/NLVDCbq4lEqdOa1g78frREQjluqQgcFey9A72kvOMI0p5qTBmkvB6RoL1LQkfgz8a1x40WpRf14o6twntmkV42Zw76e/MBRIQypRuRJZ9S3wnvzAR9lykpjytQ7/OgA3kIV1WDVvlOkE4Y="
81
+ }
82
+ },
83
+ {
84
+ "plaintext": {
85
+ "version": 1,
86
+ "recoveryShare": "0001abababababababababababababababababababababababababababababababababababababababababababababababab",
87
+ "did": "did:example:pin",
88
+ "shareVersion": 42,
89
+ "pinVerifier": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
90
+ "holdId": "hold-1.test_1"
91
+ },
92
+ "envelope": {
93
+ "version": 1,
94
+ "algorithm": "P-256-HKDF-SHA256-AES-256-GCM",
95
+ "keyId": "client",
96
+ "ephemeralPublicKey": "BF8jvFLDagh35j5vTx3t3jKG0uhcW1y/CO/ej89szkKX9uED9FdxTdm7NsbfwQNkpCC1XozKg1qGtA0D1/eTEMQ=",
97
+ "salt": "NBUSfI+aKofr/ZQlOREiJhYHz4EBY2f9wGkM0T6T308=",
98
+ "iv": "Z0HGBBwYMXgv4S47",
99
+ "ciphertext": "b7Zds4XZ/Of8eGacazIa4o+xoViK5a5HZ7mNP69Dn4ItjAfrDQkOQLuPSFDdCyB4I9zbmiTS4qm5m65Da4BcSixJ88Q21wQ3bCHXf+gb9ZaXnWJ1kWmmSkpE69T6TEu/TgMpvKKgdzKyZLoQCTyKUwUj1kUEK9s3a/XQ5S7dE2k1zwzzslQRlN2oEwBMYy1gGHpp+ySxGlNnnjLq1Sdevz8rq9U2gTOVV4M7sKCgFQytdJLmlixZuQttYXLssC6Yx8Z9gmzls6dt6seljU8akawKGOxh11Oyjca4JZhB0XKmhcWSKON/iBjH/5MDNWtIiB1UWzidVPPkcpefGY7xshd24t9a9k/UexgWORQf1RqL9epmxi7ETh0khesyFs/pU0l28l4igow="
100
+ }
101
+ }
102
+ ]
103
+ }
@@ -0,0 +1 @@
1
+ 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
@@ -0,0 +1 @@
1
+ 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
@@ -0,0 +1 @@
1
+ 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