@agenticprimitives/key-custody 1.0.0-alpha.10 → 1.0.0-alpha.12

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 (40) hide show
  1. package/bin/ap-provision-gcp.mjs +25 -7
  2. package/dist/account.d.ts +1 -1
  3. package/dist/account.d.ts.map +1 -1
  4. package/dist/derive-subject.d.ts +1 -1
  5. package/dist/derive-subject.d.ts.map +1 -1
  6. package/dist/derive-subject.js +1 -1
  7. package/dist/derive-subject.js.map +1 -1
  8. package/dist/factories.d.ts +27 -1
  9. package/dist/factories.d.ts.map +1 -1
  10. package/dist/factories.js +26 -3
  11. package/dist/factories.js.map +1 -1
  12. package/dist/index.d.ts +12 -12
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +13 -11
  15. package/dist/index.js.map +1 -1
  16. package/dist/kms/provision-gcp.d.ts +53 -20
  17. package/dist/kms/provision-gcp.d.ts.map +1 -1
  18. package/dist/kms/provision-gcp.js +157 -35
  19. package/dist/kms/provision-gcp.js.map +1 -1
  20. package/dist/kms-viem-account.d.ts +1 -1
  21. package/dist/kms-viem-account.d.ts.map +1 -1
  22. package/dist/providers/aws.d.ts +1 -1
  23. package/dist/providers/aws.d.ts.map +1 -1
  24. package/dist/providers/gcp.d.ts +18 -2
  25. package/dist/providers/gcp.d.ts.map +1 -1
  26. package/dist/providers/gcp.js +53 -11
  27. package/dist/providers/gcp.js.map +1 -1
  28. package/dist/providers/local.d.ts +1 -1
  29. package/dist/providers/local.d.ts.map +1 -1
  30. package/dist/providers/local.js +1 -1
  31. package/dist/providers/local.js.map +1 -1
  32. package/dist/relay-only.d.ts +1 -1
  33. package/dist/relay-only.d.ts.map +1 -1
  34. package/dist/relay-only.js +1 -1
  35. package/dist/relay-only.js.map +1 -1
  36. package/dist/relayer-account.d.ts +1 -1
  37. package/dist/relayer-account.d.ts.map +1 -1
  38. package/dist/relayer-account.js +1 -1
  39. package/dist/relayer-account.js.map +1 -1
  40. package/package.json +4 -4
@@ -1,16 +1,26 @@
1
1
  #!/usr/bin/env node
2
- // ap-provision-gcp — provision GCP Cloud KMS secp256k1 signing keys for a set of
3
- // signing identities, grant the runtime service account roles/cloudkms.signer
4
- // per key, and print the identity → key-version map + derived EVM addresses
5
- // (spec 276 KCS-D3). Thin Node wrapper over @agenticprimitives/key-custody/provision-gcp.
2
+ // ap-provision-gcp — provision GCP Cloud KMS keys for a set of identities, grant the
3
+ // runtime service account a per-key IAM role, and print the identity → key map (+
4
+ // derived EVM addresses for signing keys) (spec 276 KCS-D3). Thin Node wrapper over
5
+ // @agenticprimitives/key-custody/provision-gcp.
6
6
  //
7
+ // # secp256k1 signing keys (default):
7
8
  // ap-provision-gcp \
8
9
  // --project my-proj --location us-east1 --keyring my-ring \
9
10
  // --service-account runtime@my-proj.iam.gserviceaccount.com \
10
11
  // --identities signer-a,signer-b [--protection HSM] [--dry-run]
11
12
  //
12
- // --dry-run prints the gcloud steps without executing. Requires `gcloud` on PATH
13
- // (authenticated) for a real run.
13
+ // # symmetric per-person vault KEKs (spec 278) — identities are person SA addresses:
14
+ // ap-provision-gcp --purpose encrypt-decrypt \
15
+ // --project my-proj --location us-east1 --keyring vault-keks \
16
+ // --service-account demo-mcp-runtime@my-proj.iam.gserviceaccount.com \
17
+ // --identities 0xPersonSA1,0xPersonSA2
18
+ //
19
+ // --purpose encrypt-decrypt mints GOOGLE_SYMMETRIC_ENCRYPTION KEKs + grants the runtime SA
20
+ // roles/cloudkms.cryptoKeyEncrypterDecrypter per key; the printed keyMap entry (the version-less
21
+ // cryptoKey resource) is the `kmsKeyRef` the spec-278 VaultKeyBinding carries. --iam-role
22
+ // overrides the granted role. --dry-run prints the gcloud steps without executing. Requires
23
+ // `gcloud` on PATH (authenticated) for a real run.
14
24
  import { execFileSync } from 'node:child_process';
15
25
  import { planGcpProvision, executeGcpProvision } from '../dist/kms/provision-gcp.js';
16
26
 
@@ -35,7 +45,13 @@ const required = ['project', 'location', 'keyring', 'service-account', 'identiti
35
45
  const missing = required.filter((k) => !args[k]);
36
46
  if (missing.length) {
37
47
  console.error(`ap-provision-gcp: missing required flag(s): ${missing.map((m) => '--' + m).join(', ')}`);
38
- console.error('Usage: ap-provision-gcp --project <p> --location <l> --keyring <r> --service-account <email> --identities a,b[,c] [--protection HSM|SOFTWARE] [--dry-run]');
48
+ console.error('Usage: ap-provision-gcp --project <p> --location <l> --keyring <r> --service-account <email> --identities a,b[,c] [--purpose asymmetric-signing|encrypt-decrypt] [--iam-role <role>] [--protection HSM|SOFTWARE] [--dry-run]');
49
+ process.exit(2);
50
+ }
51
+
52
+ const purpose = args.purpose ?? 'asymmetric-signing';
53
+ if (!['asymmetric-signing', 'encrypt-decrypt'].includes(purpose)) {
54
+ console.error(`ap-provision-gcp: --purpose must be 'asymmetric-signing' or 'encrypt-decrypt' (got '${purpose}')`);
39
55
  process.exit(2);
40
56
  }
41
57
 
@@ -46,6 +62,8 @@ const plan = {
46
62
  identities: String(args.identities).split(',').map((s) => s.trim()).filter(Boolean),
47
63
  runtimeServiceAccount: args['service-account'],
48
64
  protectionLevel: args.protection ?? 'HSM',
65
+ purpose,
66
+ ...(args['iam-role'] ? { iamRole: args['iam-role'] } : {}),
49
67
  };
50
68
 
51
69
  if (args['dry-run']) {
package/dist/account.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Hex, type Address } from 'viem';
2
- import type { KmsAccountBackend } from './types';
2
+ import type { KmsAccountBackend } from './types.js';
3
3
  interface KMSSignerShape {
4
4
  readonly address: Address;
5
5
  readonly keyId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyC,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,UAAU,cAAc;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IACvD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,aAAa,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAClB;AAWD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,GAC9F,OAAO,CAAC,cAAc,CAAC,CA0CzB"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../src/account.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyC,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,UAAU,cAAc;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IACvD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,aAAa,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAClB;AAWD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,GAC9F,OAAO,CAAC,cAAc,CAAC,CA0CzB"}
@@ -1,5 +1,5 @@
1
1
  import { type Hex } from 'viem';
2
- import type { BuildOpts, KmsAccountBackend } from './types';
2
+ import type { BuildOpts, KmsAccountBackend } from './types.js';
3
3
  /** The Google (OIDC) subject a custodian key is bound to. */
4
4
  export interface SubjectId {
5
5
  /** OIDC issuer, e.g. `https://accounts.google.com`. */
@@ -1 +1 @@
1
- {"version":3,"file":"derive-subject.d.ts","sourceRoot":"","sources":["../src/derive-subject.ts"],"names":[],"mappings":"AA8BA,OAAO,EAA0B,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAc,MAAM,SAAS,CAAC;AAMxE,6DAA6D;AAC7D,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,OAAO,EAAE,SAAS,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAUlE;AAkBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,GAAG,CAetF;AAoCD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAa9E"}
1
+ {"version":3,"file":"derive-subject.d.ts","sourceRoot":"","sources":["../src/derive-subject.ts"],"names":[],"mappings":"AA8BA,OAAO,EAA0B,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAc,MAAM,YAAY,CAAC;AAM3E,6DAA6D;AAC7D,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,OAAO,EAAE,SAAS,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAUlE;AAkBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,GAAG,CAetF;AAoCD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAa9E"}
@@ -28,7 +28,7 @@ import { hkdf } from '@noble/hashes/hkdf.js';
28
28
  import { sha256 } from '@noble/hashes/sha2.js';
29
29
  import { secp256k1 } from '@noble/curves/secp256k1.js';
30
30
  import { hexToBytes, bytesToHex } from 'viem';
31
- import { LocalSecp256k1Signer } from './providers/local';
31
+ import { LocalSecp256k1Signer } from './providers/local.js';
32
32
  const DERIVE_INFO_PREFIX = 'kms-custodian:v1';
33
33
  const SECP256K1_N = secp256k1.Point.Fn.ORDER;
34
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"derive-subject.js","sourceRoot":"","sources":["../src/derive-subject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derive-subject.js","sourceRoot":"","sources":["../src/derive-subject.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,31 @@
1
- import type { A2AKeyProvider, BuildOpts, KmsAccountBackend } from './types';
1
+ import type { AuditSink } from '@agenticprimitives/audit';
2
+ import type { A2AKeyProvider, BuildOpts, KmsAccountBackend } from './types.js';
2
3
  export declare function buildKeyProvider(opts: BuildOpts): A2AKeyProvider;
4
+ /**
5
+ * Per-person vault KEK selection (spec 278 P3 / VKB-D1, VKB-D2). Returns the
6
+ * envelope provider a vault host should use to wrap/unwrap a SPECIFIC person's
7
+ * vault objects.
8
+ *
9
+ * Fail-closed by design: a person-owned vault MUST resolve to a per-person KEK
10
+ * (`kmsKeyRef`, from that person's `VaultKeyBinding` — provisioned via spec 276
11
+ * `provision-gcp`). There is NO global key for person data. The local-aes path
12
+ * is permitted ONLY for anonymous/seeded test fixtures and ONLY when the caller
13
+ * explicitly opts in (`allowFixtureKey: true`) — never for a real person vault.
14
+ * With neither a `kmsKeyRef` nor an explicit fixture allowance, this THROWS.
15
+ */
16
+ export interface SelectVaultKeyProviderOpts {
17
+ /** The person's KEK resource name (from their VaultKeyBinding). Selects a per-person GCP KEK. */
18
+ kmsKeyRef?: string;
19
+ /** Service-account JSON for the GCP KEK (required with `kmsKeyRef`). */
20
+ serviceAccountJson?: string;
21
+ /** Audit sink → envelope wrap/unwrap emit `key-custody.envelope.*`. */
22
+ auditSink?: AuditSink;
23
+ /** Set ONLY for anonymous/seeded fixtures; uses local-aes. Never for a real person vault. */
24
+ allowFixtureKey?: boolean;
25
+ /** Fixture master key (local-aes) — used only when `allowFixtureKey` is true. */
26
+ fixtureKeyHex?: string;
27
+ }
28
+ export declare function selectVaultKeyProvider(opts: SelectVaultKeyProviderOpts): A2AKeyProvider;
3
29
  export declare function buildSignerBackend(opts: BuildOpts): KmsAccountBackend;
4
30
  /**
5
31
  * @deprecated Renamed in H7-B.1 to make the lie loud. Use
@@ -1 +1 @@
1
- {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAc,MAAM,SAAS,CAAC;AAyDxF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,CAYhE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,CAgBrE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,iBAAiB,CAU7F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,GACd,iBAAiB,CAyBnB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,cAAc,CAMlF"}
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,iBAAiB,EAAc,MAAM,YAAY,CAAC;AAyD3F,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,CAehE;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,0BAA0B;IACzC,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,6FAA6F;IAC7F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,cAAc,CAqBvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,CAgBrE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,iBAAiB,CAU7F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,SAAS,GACd,iBAAiB,CAyBnB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,cAAc,CAMlF"}
package/dist/factories.js CHANGED
@@ -1,6 +1,6 @@
1
- import { LocalAesProvider, LocalSecp256k1Signer } from './providers/local';
2
- import { AwsKmsProvider, AwsKmsSigner } from './providers/aws';
3
- import { GcpKmsProvider, GcpKmsSigner } from './providers/gcp';
1
+ import { LocalAesProvider, LocalSecp256k1Signer } from './providers/local.js';
2
+ import { AwsKmsProvider, AwsKmsSigner } from './providers/aws.js';
3
+ import { GcpKmsProvider, GcpKmsSigner } from './providers/gcp.js';
4
4
  /**
5
5
  * Resolve effective environment for production-default gates (audit H1).
6
6
  * 1. Explicit `opts.environment` wins.
@@ -65,9 +65,32 @@ export function buildKeyProvider(opts) {
65
65
  return new GcpKmsProvider({
66
66
  cryptoKeyName: opts.config?.cryptoKeyName,
67
67
  serviceAccountJson: opts.config?.serviceAccountJson,
68
+ // spec 278 P0/P3: thread the audit sink so envelope wrap/unwrap emit
69
+ // `key-custody.envelope.{wrap,unwrap}` on the production path.
70
+ auditSink: opts.auditSink,
68
71
  });
69
72
  }
70
73
  }
74
+ export function selectVaultKeyProvider(opts) {
75
+ if (opts.kmsKeyRef) {
76
+ if (!opts.serviceAccountJson) {
77
+ throw new Error('[key-custody] selectVaultKeyProvider: serviceAccountJson is required with a kmsKeyRef (per-person KEK).');
78
+ }
79
+ return new GcpKmsProvider({
80
+ cryptoKeyName: opts.kmsKeyRef,
81
+ serviceAccountJson: opts.serviceAccountJson,
82
+ auditSink: opts.auditSink,
83
+ });
84
+ }
85
+ if (opts.allowFixtureKey) {
86
+ // Anonymous / seeded fixtures only (spec 278 VKB-D1 exception). LocalAesProvider
87
+ // keeps its own production guard; this path is testnet/fixture-grade by contract.
88
+ return new LocalAesProvider({ sessionSecretHex: opts.fixtureKeyHex });
89
+ }
90
+ throw new Error('[key-custody] selectVaultKeyProvider: a person-owned vault requires a per-person `kmsKeyRef` ' +
91
+ '(from the VaultKeyBinding). No global key is permitted for person data (spec 278 VKB-D1). ' +
92
+ 'For anonymous/seeded fixtures only, pass `allowFixtureKey: true`.');
93
+ }
71
94
  export function buildSignerBackend(opts) {
72
95
  switch (backendOrEnv(opts)) {
73
96
  case 'local-aes':
@@ -1 +1 @@
1
- {"version":3,"file":"factories.js","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factories.js","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  import type { Address, Hex } from '@agenticprimitives/types';
2
2
  export type { Address, Hex };
3
- export type { A2AKeyProvider, KmsAccountBackend, BuildOpts, KmsBackend, Secret } from './types';
4
- export { loadSecret, loadSecretFromEnv, unwrapSecret, isSecret } from './types';
5
- export { buildKeyProvider, buildSignerBackend, buildToolExecutorBackendNoIsolation, buildMacProvider, } from './factories';
6
- export { deriveSubjectSigner, subjectCanonicalMessage, type SubjectId, type DeriveSubjectOpts, } from './derive-subject';
7
- export { getRelayOnlySigner } from './relay-only';
8
- export { createKmsAccount } from './account';
9
- export { createKmsViemAccount } from './kms-viem-account';
10
- export { createRelayerAccount, type CreateRelayerAccountOpts, } from './relayer-account';
11
- export { createSpendCappedAccount, SpendCapExceededError, type CreateSpendCappedAccountOpts, } from './spend-capped-account';
12
- export { canonicalContextBytes } from './aad';
13
- export { LocalAesProvider, LocalSecp256k1Signer } from './providers/local';
14
- export { GcpKmsProvider, GcpKmsSigner } from './providers/gcp';
3
+ export type { A2AKeyProvider, KmsAccountBackend, BuildOpts, KmsBackend, Secret } from './types.js';
4
+ export { loadSecret, loadSecretFromEnv, unwrapSecret, isSecret } from './types.js';
5
+ export { buildKeyProvider, buildSignerBackend, buildToolExecutorBackendNoIsolation, buildMacProvider, selectVaultKeyProvider, type SelectVaultKeyProviderOpts, } from './factories.js';
6
+ export { deriveSubjectSigner, subjectCanonicalMessage, type SubjectId, type DeriveSubjectOpts, } from './derive-subject.js';
7
+ export { getRelayOnlySigner } from './relay-only.js';
8
+ export { createKmsAccount } from './account.js';
9
+ export { createKmsViemAccount } from './kms-viem-account.js';
10
+ export { createRelayerAccount, type CreateRelayerAccountOpts, } from './relayer-account.js';
11
+ export { createSpendCappedAccount, SpendCapExceededError, type CreateSpendCappedAccountOpts, } from './spend-capped-account.js';
12
+ export { canonicalContextBytes } from './aad.js';
13
+ export { LocalAesProvider, LocalSecp256k1Signer } from './providers/local.js';
14
+ export { GcpKmsProvider, GcpKmsSigner } from './providers/gcp.js';
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE7D,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEhF,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAWlB,mCAAmC,EACnC,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,4BAA4B,GAClC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAU3E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE7D,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAWlB,mCAAmC,EACnC,gBAAgB,EAEhB,sBAAsB,EACtB,KAAK,0BAA0B,GAChC,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,GAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAU9E,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // @agenticprimitives/key-custody — public API
2
2
  //
3
3
  // See ../../specs/203-key-custody.md for the full contract.
4
- export { loadSecret, loadSecretFromEnv, unwrapSecret, isSecret } from './types';
4
+ export { loadSecret, loadSecretFromEnv, unwrapSecret, isSecret } from './types.js';
5
5
  export { buildKeyProvider, buildSignerBackend,
6
6
  // R11.3 / PKG-KEY-CUSTODY-001 follow-up — `buildToolExecutorBackend`
7
7
  // is NOT re-exported here. Its v0 implementation is the always-throwing
@@ -13,19 +13,21 @@ export { buildKeyProvider, buildSignerBackend,
13
13
  // either implements HKDF per-tool isolation or graduates
14
14
  // `buildToolExecutorBackendNoIsolation` to the canonical name. Until
15
15
  // then, the public surface is the explicit-name one only.
16
- buildToolExecutorBackendNoIsolation, buildMacProvider, } from './factories';
16
+ buildToolExecutorBackendNoIsolation, buildMacProvider,
17
+ // spec 278 P3 — per-person vault KEK selection (fail-closed; no global key for person data).
18
+ selectVaultKeyProvider, } from './factories.js';
17
19
  // `deriveSubjectPrivateKeyHex` is intentionally NOT re-exported here — it returns
18
20
  // a per-subject raw private key (security-sensitive). It stays exported from
19
21
  // `./derive-subject` for in-package unit tests but is not part of the public API.
20
22
  // See `capability.manifest.json:publicExports` (audit row ARCH-006 / PKG-KEY-CUSTODY-002 closure).
21
- export { deriveSubjectSigner, subjectCanonicalMessage, } from './derive-subject';
22
- export { getRelayOnlySigner } from './relay-only';
23
- export { createKmsAccount } from './account';
24
- export { createKmsViemAccount } from './kms-viem-account';
25
- export { createRelayerAccount, } from './relayer-account';
26
- export { createSpendCappedAccount, SpendCapExceededError, } from './spend-capped-account';
27
- export { canonicalContextBytes } from './aad';
28
- export { LocalAesProvider, LocalSecp256k1Signer } from './providers/local';
23
+ export { deriveSubjectSigner, subjectCanonicalMessage, } from './derive-subject.js';
24
+ export { getRelayOnlySigner } from './relay-only.js';
25
+ export { createKmsAccount } from './account.js';
26
+ export { createKmsViemAccount } from './kms-viem-account.js';
27
+ export { createRelayerAccount, } from './relayer-account.js';
28
+ export { createSpendCappedAccount, SpendCapExceededError, } from './spend-capped-account.js';
29
+ export { canonicalContextBytes } from './aad.js';
30
+ export { LocalAesProvider, LocalSecp256k1Signer } from './providers/local.js';
29
31
  // R11.3 — `AwsKmsProvider` / `AwsKmsSigner` are NOT re-exported here.
30
32
  // Their current implementations throw a `not yet implemented in v0;
31
33
  // use LocalAesProvider for the demo` message at construction time. A
@@ -35,5 +37,5 @@ export { LocalAesProvider, LocalSecp256k1Signer } from './providers/local';
35
37
  // factory throws a clear error when selected. v1 is GCP-only +
36
38
  // local-aes (dev). When AWS lands, re-add the export alongside the
37
39
  // LocalAes + Gcp providers.
38
- export { GcpKmsProvider, GcpKmsSigner } from './providers/gcp';
40
+ export { GcpKmsProvider, GcpKmsSigner } from './providers/gcp.js';
39
41
  //# 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":"AAAA,8CAA8C;AAC9C,EAAE;AACF,4DAA4D;AAM5D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEhF,OAAO,EACL,gBAAgB,EAChB,kBAAkB;AAClB,qEAAqE;AACrE,wEAAwE;AACxE,iDAAiD;AACjD,6DAA6D;AAC7D,wEAAwE;AACxE,qEAAqE;AACrE,oEAAoE;AACpE,yDAAyD;AACzD,qEAAqE;AACrE,0DAA0D;AAC1D,mCAAmC,EACnC,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,kFAAkF;AAClF,6EAA6E;AAC7E,kFAAkF;AAClF,mGAAmG;AACnG,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAGxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,oBAAoB,GAErB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GAEtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,sEAAsE;AACtE,oEAAoE;AACpE,qEAAqE;AACrE,uEAAuE;AACvE,yEAAyE;AACzE,qEAAqE;AACrE,+DAA+D;AAC/D,mEAAmE;AACnE,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,4DAA4D;AAM5D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnF,OAAO,EACL,gBAAgB,EAChB,kBAAkB;AAClB,qEAAqE;AACrE,wEAAwE;AACxE,iDAAiD;AACjD,6DAA6D;AAC7D,wEAAwE;AACxE,qEAAqE;AACrE,oEAAoE;AACpE,yDAAyD;AACzD,qEAAqE;AACrE,0DAA0D;AAC1D,mCAAmC,EACnC,gBAAgB;AAChB,6FAA6F;AAC7F,sBAAsB,GAEvB,MAAM,gBAAgB,CAAC;AACxB,kFAAkF;AAClF,6EAA6E;AAC7E,kFAAkF;AAClF,mGAAmG;AACnG,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAGxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GAEtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,sEAAsE;AACtE,oEAAoE;AACpE,qEAAqE;AACrE,uEAAuE;AACvE,yEAAyE;AACzE,qEAAqE;AACrE,+DAA+D;AAC/D,mEAAmE;AACnE,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,56 +1,89 @@
1
1
  import { type Hex } from './secp256k1-core.js';
2
+ /** Key purpose. `asymmetric-signing` = secp256k1 EVM signer (default). `encrypt-decrypt` =
3
+ * symmetric KEK for envelope wrapping (spec 277/278 per-person vault key). */
4
+ export type KeyPurpose = 'asymmetric-signing' | 'encrypt-decrypt';
2
5
  export interface ProvisionPlan {
3
6
  project: string;
4
7
  location: string;
5
8
  keyRing: string;
6
- /** Opaque signing-identity labels → one HSM secp256k1 key each. NO vertical names here. */
9
+ /** Signing/KEK identity labels — arbitrary (dotted agent names ok); sanitized to key ids (B2). */
7
10
  identities: string[];
8
- /** Service-account email to grant `roles/cloudkms.signer`, scoped per key. */
11
+ /** Service-account email to grant the per-key IAM role. */
9
12
  runtimeServiceAccount: string;
10
- /** secp256k1 in GCP requires HSM; SOFTWARE is rejected by GCP for this curve. Default HSM. */
13
+ /** secp256k1 requires HSM; SOFTWARE is rejected by GCP for that curve. Default HSM. */
11
14
  protectionLevel?: 'HSM' | 'SOFTWARE';
15
+ /** Default `asymmetric-signing`. `encrypt-decrypt` mints a symmetric KEK (spec 278 vault key). */
16
+ purpose?: KeyPurpose;
17
+ /** Per-key IAM role (B3). Default: `roles/cloudkms.signerVerifier` for signing,
18
+ * `roles/cloudkms.cryptoKeyEncrypterDecrypter` for encrypt-decrypt. */
19
+ iamRole?: string;
12
20
  }
13
21
  export type StepKind = 'create-keyring' | 'create-key' | 'grant-iam';
14
- export interface GcloudStep {
22
+ /** REST-executor parameters carried alongside the gcloud `argv` so both executors work. */
23
+ export interface ProvisionStepRest {
24
+ project: string;
25
+ location: string;
26
+ keyRing: string;
27
+ keyId?: string;
28
+ purpose?: KeyPurpose;
29
+ protectionLevel?: 'HSM' | 'SOFTWARE';
30
+ role?: string;
31
+ member?: string;
32
+ }
33
+ export interface ProvisionStep {
15
34
  id: string;
16
35
  kind: StepKind;
17
36
  description: string;
18
37
  /** argv for `gcloud` (no shell string — avoids injection). */
19
38
  argv: string[];
20
- /** Present for create-key / grant-iam steps. */
39
+ /** The ORIGINAL identity label (create-key / grant-iam). */
21
40
  identity?: string;
41
+ /** The sanitized GCP key id used in the resource name. */
42
+ keyId?: string;
22
43
  /** The key resource this step targets (create-key / grant-iam). */
23
44
  cryptoKeyName?: string;
45
+ /** Structured params the REST executor uses (the gcloud executor uses `argv`). */
46
+ rest: ProvisionStepRest;
24
47
  }
48
+ /** @deprecated name — kept for back-compat; use `ProvisionStep`. */
49
+ export type GcloudStep = ProvisionStep;
25
50
  export interface StepExecutor {
26
- /** Run a planned step. Return `{ alreadyExists: true }` to mark an idempotent skip
27
- * (the resource already existed); throw for any real failure. */
28
- run(step: GcloudStep): Promise<{
51
+ /** Run a planned step. Return `{ alreadyExists: true }` for an idempotent skip; throw on real failure. */
52
+ run(step: ProvisionStep): Promise<{
29
53
  stdout: string;
30
54
  alreadyExists?: boolean;
31
55
  }>;
32
- /** Fetch a key version's SPKI PEM (for address verification) — via gcloud or REST. */
56
+ /** Fetch a key version's SPKI PEM (asymmetric keys only — for address verification). */
33
57
  getPublicKeyPem(cryptoKeyVersionName: string): Promise<string>;
34
58
  }
35
59
  export interface ProvisionResult {
36
- /** identity → full `…/cryptoKeyVersions/1` resource name. */
60
+ /** identity (ORIGINAL label) → key resource: `…/cryptoKeyVersions/1` for signing keys,
61
+ * the version-less `…/cryptoKeys/<id>` for encrypt-decrypt KEKs (what the provider wants). */
37
62
  keyMap: Record<string, string>;
38
- /** identity → derived EVM address (verify against expectations BEFORE wiring env). */
63
+ /** identity → derived EVM address (signing keys only; verify BEFORE wiring env). */
39
64
  addresses: Record<string, Hex>;
40
65
  granted: Array<{
41
66
  key: string;
42
67
  member: string;
43
- role: 'roles/cloudkms.signer';
68
+ role: string;
44
69
  }>;
45
- /** Step ids that were skipped because the resource already existed (idempotent re-run). */
70
+ /** Step ids skipped because the resource already existed (idempotent re-run). */
46
71
  alreadyExisted: string[];
47
72
  }
48
- /** First key version GCP creates for an asymmetric-signing key. */
49
- export declare function keyVersionName(plan: ProvisionPlan, identity: string): string;
50
- /** Emit the ordered gcloud steps for a provisioning plan. Pure — no execution. */
51
- export declare function planGcpProvision(plan: ProvisionPlan): GcloudStep[];
52
- /** Execute a provisioning plan through an injected executor. Idempotent: steps whose
53
- * resource already exists are skipped and reported. After create+grant, fetches each
54
- * key's public key and derives its EVM address so the operator can verify before wiring. */
73
+ /** Sanitize an arbitrary identity label to a GCP cryptoKey id ([a-zA-Z0-9_-], ≤63) (B2). */
74
+ export declare function sanitizeKeyId(identity: string): string;
75
+ /** First key version GCP creates (asymmetric keys — the version is what you sign with). */
76
+ export declare function keyVersionName(plan: ProvisionPlan, keyId: string): string;
77
+ /** Emit the ordered steps for a provisioning plan. Pure — no execution. */
78
+ export declare function planGcpProvision(plan: ProvisionPlan): ProvisionStep[];
79
+ /** Execute a provisioning plan through an injected executor. Idempotent: steps whose resource
80
+ * already exists are skipped + reported. For asymmetric keys, fetches each key's public key and
81
+ * derives its EVM address (verify before wiring); encrypt-decrypt KEKs have no public key, so the
82
+ * keyMap points at the version-less cryptoKey resource and no address is derived. */
55
83
  export declare function executeGcpProvision(plan: ProvisionPlan, exec: StepExecutor): Promise<ProvisionResult>;
84
+ /** Build a Cloud KMS REST StepExecutor from a service-account JSON (single-line or base64 — B4).
85
+ * Zero gcloud dependency; SA-JWT → KMS REST. Idempotent (409 ALREADY_EXISTS → skip). */
86
+ export declare function createGcpRestStepExecutor(opts: {
87
+ serviceAccountJson: string | object;
88
+ }): StepExecutor;
56
89
  //# sourceMappingURL=provision-gcp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision-gcp.d.ts","sourceRoot":"","sources":["../../src/kms/provision-gcp.ts"],"names":[],"mappings":"AAaA,OAAO,EAAsB,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,8EAA8E;IAC9E,qBAAqB,EAAE,MAAM,CAAC;IAC9B,8FAA8F;IAC9F,eAAe,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;CACtC;AAED,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,YAAY,GAAG,WAAW,CAAC;AAErE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B;sEACkE;IAClE,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5E,sFAAsF;IACtF,eAAe,CAAC,oBAAoB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,uBAAuB,CAAA;KAAE,CAAC,CAAC;IAC/E,2FAA2F;IAC3F,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAMD,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,UAAU,EAAE,CA2DlE;AAED;;6FAE6F;AAC7F,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAuB3G"}
1
+ {"version":3,"file":"provision-gcp.d.ts","sourceRoot":"","sources":["../../src/kms/provision-gcp.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,47 @@
1
- // GCP Cloud KMS provisioning helper (spec 276 KCS-D3). Ports smart-agent's
2
- // G-PR-6 operator runbook into a reusable, peer-dependency-free primitive.
1
+ // GCP Cloud KMS provisioning helper (spec 276 KCS-D3 + upstream backlog B1/B2/B3).
3
2
  //
4
- // PURE PLANNING + INJECTED EXECUTION: `planGcpProvision` emits the gcloud steps;
5
- // `executeGcpProvision` runs them through a caller-supplied `StepExecutor` (a
6
- // gcloud runner, a REST runner, or a test fake). The package never shells out
7
- // itself — that keeps it Workers-safe and unit-testable. The CLI (`bin/ap-provision-gcp.mjs`)
8
- // supplies a Node child_process executor.
3
+ // PURE PLANNING + INJECTED EXECUTION: `planGcpProvision` emits the ordered steps;
4
+ // `executeGcpProvision` runs them through a `StepExecutor`. Two executors ship:
5
+ // - `createGcpRestStepExecutor` — gcloud-FREE: SA-JWT → Cloud KMS REST (B1).
6
+ // Works on Workers (no gRPC SDK); a "drop the SA key and run" path.
7
+ // - the CLI (`bin/ap-provision-gcp.mjs`) supplies a Node child_process gcloud runner.
9
8
  //
10
- // No vertical identity names are baked in — `identities` are opaque labels the
11
- // caller supplies (ADR-0021). Per-key (not per-keyring) IAM enforces master-key
12
- // separation (key-custody CLAUDE.md invariant).
9
+ // B2: `identities` are arbitrary labels (dotted agent names ok); each is sanitized to a
10
+ // GCP key id internally, and the result maps are keyed by the ORIGINAL label.
11
+ // B3: the granted IAM role is configurable (default derives from the key purpose).
12
+ // Per-key (not per-keyring) IAM enforces master-key separation (CLAUDE.md invariant).
13
13
  import { addressFromSpkiPem } from './secp256k1-core.js';
14
- function keyResourceName(plan, identity) {
15
- return `projects/${plan.project}/locations/${plan.location}/keyRings/${plan.keyRing}/cryptoKeys/${identity}`;
14
+ import { fetchAccessToken, callKms } from './gcp-transport.js';
15
+ import { parseServiceAccountJson } from './key-map.js';
16
+ /** Sanitize an arbitrary identity label to a GCP cryptoKey id ([a-zA-Z0-9_-], ≤63) (B2). */
17
+ export function sanitizeKeyId(identity) {
18
+ // Trim leading/trailing '-' with linear string ops — NOT a regex. The `/^-+|-+$/g`
19
+ // alternation is ReDoS-prone (polynomial on a long run of '-'); a scan is O(n).
20
+ const collapsed = identity.replace(/[^a-zA-Z0-9_-]/g, '-');
21
+ let start = 0;
22
+ let end = collapsed.length;
23
+ while (start < end && collapsed[start] === '-')
24
+ start++;
25
+ while (end > start && collapsed[end - 1] === '-')
26
+ end--;
27
+ const id = collapsed.slice(start, end).slice(0, 63);
28
+ if (!id)
29
+ throw new Error(`sanitizeKeyId: identity "${identity}" sanitizes to an empty key id`);
30
+ return id;
16
31
  }
17
- /** First key version GCP creates for an asymmetric-signing key. */
18
- export function keyVersionName(plan, identity) {
19
- return `${keyResourceName(plan, identity)}/cryptoKeyVersions/1`;
32
+ function keyResourceName(plan, keyId) {
33
+ return `projects/${plan.project}/locations/${plan.location}/keyRings/${plan.keyRing}/cryptoKeys/${keyId}`;
20
34
  }
21
- /** Emit the ordered gcloud steps for a provisioning plan. Pure — no execution. */
35
+ /** First key version GCP creates (asymmetric keys — the version is what you sign with). */
36
+ export function keyVersionName(plan, keyId) {
37
+ return `${keyResourceName(plan, keyId)}/cryptoKeyVersions/1`;
38
+ }
39
+ function defaultRole(purpose) {
40
+ return purpose === 'encrypt-decrypt'
41
+ ? 'roles/cloudkms.cryptoKeyEncrypterDecrypter'
42
+ : 'roles/cloudkms.signerVerifier';
43
+ }
44
+ /** Emit the ordered steps for a provisioning plan. Pure — no execution. */
22
45
  export function planGcpProvision(plan) {
23
46
  if (!plan.project || !plan.location || !plan.keyRing) {
24
47
  throw new Error('planGcpProvision: project, location, and keyRing are required');
@@ -31,58 +54,80 @@ export function planGcpProvision(plan) {
31
54
  const dupes = plan.identities.filter((id, i) => plan.identities.indexOf(id) !== i);
32
55
  if (dupes.length)
33
56
  throw new Error(`planGcpProvision: duplicate identities: ${[...new Set(dupes)].join(', ')}`);
57
+ const purpose = plan.purpose ?? 'asymmetric-signing';
34
58
  const protection = (plan.protectionLevel ?? 'HSM').toLowerCase();
59
+ const role = plan.iamRole ?? defaultRole(purpose);
60
+ const gcloudPurpose = purpose === 'encrypt-decrypt' ? 'encryption' : 'asymmetric-signing';
61
+ const gcloudAlgo = purpose === 'encrypt-decrypt' ? 'google-symmetric-encryption' : 'ec-sign-secp256k1-sha256';
62
+ // B2: map ORIGINAL identity → sanitized keyId; reject collisions (two labels → one key id).
63
+ const keyIdByIdentity = new Map();
64
+ const seen = new Map();
65
+ for (const identity of plan.identities) {
66
+ const keyId = sanitizeKeyId(identity);
67
+ const prior = seen.get(keyId);
68
+ if (prior && prior !== identity) {
69
+ throw new Error(`planGcpProvision: identities "${prior}" and "${identity}" both sanitize to key id "${keyId}"`);
70
+ }
71
+ seen.set(keyId, identity);
72
+ keyIdByIdentity.set(identity, keyId);
73
+ }
35
74
  const steps = [
36
75
  {
37
76
  id: 'keyring',
38
77
  kind: 'create-keyring',
39
78
  description: `Create key ring ${plan.keyRing} in ${plan.location}`,
40
79
  argv: ['kms', 'keyrings', 'create', plan.keyRing, '--location', plan.location, '--project', plan.project],
80
+ rest: { project: plan.project, location: plan.location, keyRing: plan.keyRing },
41
81
  },
42
82
  ];
43
83
  for (const identity of plan.identities) {
44
- if (!/^[a-zA-Z0-9_-]+$/.test(identity)) {
45
- throw new Error(`planGcpProvision: identity "${identity}" must match [a-zA-Z0-9_-]+ (a GCP key id)`);
46
- }
47
- const cryptoKeyName = keyResourceName(plan, identity);
84
+ const keyId = keyIdByIdentity.get(identity);
85
+ const cryptoKeyName = keyResourceName(plan, keyId);
48
86
  steps.push({
49
87
  id: `key:${identity}`,
50
88
  kind: 'create-key',
51
89
  identity,
90
+ keyId,
52
91
  cryptoKeyName,
53
- description: `Create HSM secp256k1 signing key ${identity}`,
92
+ description: `Create ${protection.toUpperCase()} ${purpose} key ${keyId} (for "${identity}")`,
54
93
  argv: [
55
- 'kms', 'keys', 'create', identity,
94
+ 'kms', 'keys', 'create', keyId,
56
95
  '--keyring', plan.keyRing,
57
96
  '--location', plan.location,
58
97
  '--project', plan.project,
59
- '--purpose', 'asymmetric-signing',
60
- '--default-algorithm', 'ec-sign-secp256k1-sha256',
98
+ '--purpose', gcloudPurpose,
99
+ '--default-algorithm', gcloudAlgo,
61
100
  '--protection-level', protection,
62
101
  ],
102
+ rest: { project: plan.project, location: plan.location, keyRing: plan.keyRing, keyId, purpose, protectionLevel: plan.protectionLevel ?? 'HSM' },
63
103
  });
64
104
  steps.push({
65
105
  id: `iam:${identity}`,
66
106
  kind: 'grant-iam',
67
107
  identity,
108
+ keyId,
68
109
  cryptoKeyName,
69
- description: `Grant roles/cloudkms.signer on ${identity} to ${plan.runtimeServiceAccount}`,
110
+ description: `Grant ${role} on ${keyId} to ${plan.runtimeServiceAccount}`,
70
111
  argv: [
71
- 'kms', 'keys', 'add-iam-policy-binding', identity,
112
+ 'kms', 'keys', 'add-iam-policy-binding', keyId,
72
113
  '--keyring', plan.keyRing,
73
114
  '--location', plan.location,
74
115
  '--project', plan.project,
75
116
  '--member', `serviceAccount:${plan.runtimeServiceAccount}`,
76
- '--role', 'roles/cloudkms.signer',
117
+ '--role', role,
77
118
  ],
119
+ rest: { project: plan.project, location: plan.location, keyRing: plan.keyRing, keyId, role, member: plan.runtimeServiceAccount },
78
120
  });
79
121
  }
80
122
  return steps;
81
123
  }
82
- /** Execute a provisioning plan through an injected executor. Idempotent: steps whose
83
- * resource already exists are skipped and reported. After create+grant, fetches each
84
- * key's public key and derives its EVM address so the operator can verify before wiring. */
124
+ /** Execute a provisioning plan through an injected executor. Idempotent: steps whose resource
125
+ * already exists are skipped + reported. For asymmetric keys, fetches each key's public key and
126
+ * derives its EVM address (verify before wiring); encrypt-decrypt KEKs have no public key, so the
127
+ * keyMap points at the version-less cryptoKey resource and no address is derived. */
85
128
  export async function executeGcpProvision(plan, exec) {
129
+ const purpose = plan.purpose ?? 'asymmetric-signing';
130
+ const role = plan.iamRole ?? defaultRole(purpose);
86
131
  const steps = planGcpProvision(plan);
87
132
  const alreadyExisted = [];
88
133
  const granted = [];
@@ -91,17 +136,94 @@ export async function executeGcpProvision(plan, exec) {
91
136
  if (r.alreadyExists)
92
137
  alreadyExisted.push(step.id);
93
138
  if (step.kind === 'grant-iam' && step.cryptoKeyName) {
94
- granted.push({ key: step.cryptoKeyName, member: `serviceAccount:${plan.runtimeServiceAccount}`, role: 'roles/cloudkms.signer' });
139
+ granted.push({ key: step.cryptoKeyName, member: `serviceAccount:${plan.runtimeServiceAccount}`, role });
95
140
  }
96
141
  }
97
142
  const keyMap = {};
98
143
  const addresses = {};
99
144
  for (const identity of plan.identities) {
100
- const versionName = keyVersionName(plan, identity);
101
- keyMap[identity] = versionName;
102
- const pem = await exec.getPublicKeyPem(versionName);
103
- addresses[identity] = addressFromSpkiPem(pem);
145
+ const keyId = sanitizeKeyId(identity);
146
+ if (purpose === 'encrypt-decrypt') {
147
+ // The envelope provider's `kmsKeyRef` is the version-less cryptoKey resource.
148
+ keyMap[identity] = keyResourceName(plan, keyId);
149
+ }
150
+ else {
151
+ const versionName = keyVersionName(plan, keyId);
152
+ keyMap[identity] = versionName;
153
+ addresses[identity] = addressFromSpkiPem(await exec.getPublicKeyPem(versionName));
154
+ }
104
155
  }
105
156
  return { keyMap, addresses, granted, alreadyExisted };
106
157
  }
158
+ // ─── B1: gcloud-free REST StepExecutor ─────────────────────────────────────
159
+ const GCP_PURPOSE = { 'asymmetric-signing': 'ASYMMETRIC_SIGN', 'encrypt-decrypt': 'ENCRYPT_DECRYPT' };
160
+ const GCP_ALGORITHM = { 'asymmetric-signing': 'EC_SIGN_SECP256K1_SHA256', 'encrypt-decrypt': 'GOOGLE_SYMMETRIC_ENCRYPTION' };
161
+ /** Build a Cloud KMS REST StepExecutor from a service-account JSON (single-line or base64 — B4).
162
+ * Zero gcloud dependency; SA-JWT → KMS REST. Idempotent (409 ALREADY_EXISTS → skip). */
163
+ export function createGcpRestStepExecutor(opts) {
164
+ const sa = parseServiceAccountJson(opts.serviceAccountJson);
165
+ let cached;
166
+ async function token() {
167
+ const now = Math.floor(Date.now() / 1000);
168
+ if (!cached || cached.expiresAt <= now)
169
+ cached = await fetchAccessToken(sa);
170
+ return cached.accessToken;
171
+ }
172
+ const isConflict = (e) => e instanceof Error && /HTTP 409|ALREADY_EXISTS/i.test(e.message);
173
+ return {
174
+ async run(step) {
175
+ const t = await token();
176
+ const r = step.rest;
177
+ const loc = `projects/${r.project}/locations/${r.location}`;
178
+ if (step.kind === 'create-keyring') {
179
+ try {
180
+ await callKms(t, `${loc}/keyRings?keyRingId=${encodeURIComponent(r.keyRing)}`, { method: 'POST', body: {} });
181
+ return { stdout: 'keyring created' };
182
+ }
183
+ catch (e) {
184
+ if (isConflict(e))
185
+ return { stdout: 'keyring exists', alreadyExists: true };
186
+ throw e;
187
+ }
188
+ }
189
+ if (step.kind === 'create-key') {
190
+ const purpose = r.purpose ?? 'asymmetric-signing';
191
+ try {
192
+ await callKms(t, `${loc}/keyRings/${encodeURIComponent(r.keyRing)}/cryptoKeys?cryptoKeyId=${encodeURIComponent(r.keyId)}`, {
193
+ method: 'POST',
194
+ body: {
195
+ purpose: GCP_PURPOSE[purpose],
196
+ versionTemplate: { algorithm: GCP_ALGORITHM[purpose], protectionLevel: (r.protectionLevel ?? 'HSM') },
197
+ },
198
+ });
199
+ return { stdout: 'key created' };
200
+ }
201
+ catch (e) {
202
+ if (isConflict(e))
203
+ return { stdout: 'key exists', alreadyExists: true };
204
+ throw e;
205
+ }
206
+ }
207
+ // grant-iam: read-modify-write the key's IAM policy (idempotent; member added once).
208
+ const keyPath = `${loc}/keyRings/${encodeURIComponent(r.keyRing)}/cryptoKeys/${encodeURIComponent(r.keyId)}`;
209
+ const policy = await callKms(t, `${keyPath}:getIamPolicy`, { method: 'GET' });
210
+ const member = `serviceAccount:${r.member}`;
211
+ const bindings = policy.bindings ?? [];
212
+ let binding = bindings.find((b) => b.role === r.role);
213
+ if (!binding) {
214
+ binding = { role: r.role, members: [] };
215
+ bindings.push(binding);
216
+ }
217
+ if (binding.members.includes(member))
218
+ return { stdout: 'iam binding already present', alreadyExists: true };
219
+ binding.members.push(member);
220
+ await callKms(t, `${keyPath}:setIamPolicy`, { method: 'POST', body: { policy: { ...policy, bindings } } });
221
+ return { stdout: 'iam granted' };
222
+ },
223
+ async getPublicKeyPem(cryptoKeyVersionName) {
224
+ const res = await callKms(await token(), `${cryptoKeyVersionName}/publicKey`, { method: 'GET' });
225
+ return res.pem;
226
+ },
227
+ };
228
+ }
107
229
  //# sourceMappingURL=provision-gcp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision-gcp.js","sourceRoot":"","sources":["../../src/kms/provision-gcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provision-gcp.js","sourceRoot":"","sources":["../../src/kms/provision-gcp.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { type LocalAccount } from 'viem';
2
- import type { KmsAccountBackend } from './types';
2
+ import type { KmsAccountBackend } from './types.js';
3
3
  export declare function createKmsViemAccount(backend: KmsAccountBackend): Promise<LocalAccount>;
4
4
  //# sourceMappingURL=kms-viem-account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kms-viem-account.d.ts","sourceRoot":"","sources":["../src/kms-viem-account.ts"],"names":[],"mappings":"AAqBA,OAAO,EASL,KAAK,YAAY,EAElB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA0BjD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwC5F"}
1
+ {"version":3,"file":"kms-viem-account.d.ts","sourceRoot":"","sources":["../src/kms-viem-account.ts"],"names":[],"mappings":"AAqBA,OAAO,EASL,KAAK,YAAY,EAElB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA0BpD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwC5F"}
@@ -1,4 +1,4 @@
1
- import type { A2AKeyProvider, KmsAccountBackend } from '../types';
1
+ import type { A2AKeyProvider, KmsAccountBackend } from '../types.js';
2
2
  import type { Address } from '@agenticprimitives/types';
3
3
  export declare const AWS_KMS_NOT_IMPLEMENTED: string;
4
4
  export declare class AwsKmsProvider implements A2AKeyProvider {
@@ -1 +1 @@
1
- {"version":3,"file":"aws.d.ts","sourceRoot":"","sources":["../../src/providers/aws.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,eAAO,MAAM,uBAAuB,QAEyE,CAAC;AAE9G,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,UAAU,6BAA6B;;IAG1C,sBAAsB,IAAI,OAAO,CAAC,KAAK,CAAC;IACxC,qBAAqB,IAAI,OAAO,CAAC,KAAK,CAAC;CAC9C;AAED,qBAAa,YAAa,YAAW,iBAAiB;IACpD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;;IAGjC,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;IAC/B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;CAC3C"}
1
+ {"version":3,"file":"aws.d.ts","sourceRoot":"","sources":["../../src/providers/aws.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,eAAO,MAAM,uBAAuB,QAEyE,CAAC;AAE9G,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,UAAU,6BAA6B;;IAG1C,sBAAsB,IAAI,OAAO,CAAC,KAAK,CAAC;IACxC,qBAAqB,IAAI,OAAO,CAAC,KAAK,CAAC;CAC9C;AAED,qBAAa,YAAa,YAAW,iBAAiB;IACpD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;;IAGjC,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;IAC/B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;CAC3C"}
@@ -1,6 +1,6 @@
1
1
  import type { Address } from 'viem';
2
2
  import { type AuditSink } from '@agenticprimitives/audit';
3
- import type { A2AKeyProvider, KmsAccountBackend } from '../types';
3
+ import type { A2AKeyProvider, KmsAccountBackend } from '../types.js';
4
4
  export { base64UrlEncode, pemToDer, parseDerEcdsa, normalizeLowS, bigIntTo32Bytes, parseSpkiUncompressedSecp256k1PubKey, publicKeyToAddress, findRecoveryByte, } from '../kms/secp256k1-core.js';
5
5
  export { signJwt, fetchAccessToken } from '../kms/gcp-transport.js';
6
6
  export interface GcpKmsSignerOpts {
@@ -47,14 +47,30 @@ export interface GcpKmsProviderOpts {
47
47
  cryptoKeyName: string;
48
48
  /** Raw JSON string of the service-account key file. */
49
49
  serviceAccountJson: string;
50
+ /**
51
+ * Optional audit sink (spec 278 P0). When set, each envelope op emits a
52
+ * `key-custody.envelope.{wrap,unwrap}` row carrying refs/hashes ONLY
53
+ * (`keyId`, `keyVersion`, `aadHash`) — never the data key or plaintext.
54
+ * Fail-soft: an audit failure never breaks the crypto op.
55
+ */
56
+ auditSink?: AuditSink;
50
57
  }
51
58
  export declare class GcpKmsProvider implements A2AKeyProvider {
52
59
  /** Only used when the GCP encrypt response doesn't carry a `name` (test fixtures). */
53
60
  readonly keyVersion = "gcp-kms:unknown";
54
61
  private readonly keyName;
55
62
  private readonly serviceAccount;
63
+ private readonly auditSink?;
56
64
  private cachedToken?;
57
- constructor(opts?: Partial<GcpKmsProviderOpts>);
65
+ constructor(opts?: Partial<GcpKmsProviderOpts> & {
66
+ auditSink?: AuditSink;
67
+ });
68
+ /**
69
+ * Emit an envelope-op audit row (spec 278 P0). Refs/hashes ONLY — the AAD is
70
+ * hashed (never logged raw, since it can carry owner/resource identifiers),
71
+ * and the data key / plaintext never appear. Fail-soft.
72
+ */
73
+ private emitEnvelopeAudit;
58
74
  private getAccessToken;
59
75
  generateSessionDataKey(input: {
60
76
  aadContext: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"gcp.d.ts","sourceRoot":"","sources":["../../src/providers/gcp.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AA0BlE,OAAO,EACL,eAAe,EACf,QAAQ,EACR,aAAa,EACb,aAAa,EACb,eAAe,EACf,oCAAoC,EACpC,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uDAAuD;IACvD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAMD,qBAAa,YAAa,YAAW,iBAAiB;IACpD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;IACvC,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,aAAa,CAAC,CAAU;gBAEpB,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;YAyB1D,iBAAiB;IAQzB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAOpC,aAAa,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,UAAU,CAAC;QACnB,YAAY,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3E,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;CA4C9E;AAeD,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAuBD,qBAAa,cAAe,YAAW,cAAc;IACnD,sFAAsF;IACtF,QAAQ,CAAC,UAAU,qBAAqB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,WAAW,CAAC,CAAc;gBAEtB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;YAwBhC,cAAc;IAStB,sBAAsB,CAAC,KAAK,EAAE;QAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC;QACV,gBAAgB,EAAE,UAAU,CAAC;QAC7B,gBAAgB,EAAE,UAAU,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAmBI,qBAAqB,CAAC,KAAK,EAAE;QACjC,gBAAgB,EAAE,UAAU,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,UAAU,CAAC;CAqBxB"}
1
+ {"version":3,"file":"gcp.d.ts","sourceRoot":"","sources":["../../src/providers/gcp.ts"],"names":[],"mappings":"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"}
@@ -8,14 +8,20 @@
8
8
  // the optional audit sink (`key-custody.sign`). One implementation, two
9
9
  // surfaces — no second KMS path.
10
10
  //
11
- // GcpKmsProvider (envelope encryption via GCP KMS Encrypt/Decrypt) remains a
12
- // stub — that's a separate v0.2 follow-up. The signer covers the production
13
- // path for the agent's master-key requirement.
11
+ // GcpKmsProvider (envelope encryption via GCP KMS Encrypt/Decrypt) is
12
+ // IMPLEMENTED: it wraps/unwraps a per-row 32-byte data key with Cloud KMS
13
+ // :encrypt/:decrypt under the AAD-bound EncryptionContext, and (spec 278 P0)
14
+ // emits a `key-custody.envelope.{wrap,unwrap}` audit row per op (refs/hashes
15
+ // only). It uses a DIFFERENT symmetric KMS key from the signer (master-key
16
+ // separation). Residual per-person-KEK selection + person-SA AAD binding is
17
+ // spec 278 (per-person vault key binding), not a crypto gap.
14
18
  import { keccak_256 } from '@noble/hashes/sha3.js';
19
+ import { sha256 } from '@noble/hashes/sha2.js';
15
20
  import { buildEvent } from '@agenticprimitives/audit';
16
- import { canonicalContextBytes } from '../aad';
21
+ import { canonicalContextBytes } from '../aad.js';
17
22
  import { bytesToHex, base64Decode, base64Encode, pemToDer, bigIntTo32Bytes, parseDerEcdsa, normalizeLowS, parseSpkiUncompressedSecp256k1PubKey, publicKeyToAddress, findRecoveryByte, } from '../kms/secp256k1-core.js';
18
23
  import { fetchAccessToken, callKms, createGcpKmsTransport, } from '../kms/gcp-transport.js';
24
+ import { parseServiceAccountJson } from '../kms/key-map.js';
19
25
  // Re-export the consumer-safe helpers under their established names so existing
20
26
  // importers (unit tests + any downstream) keep resolving them from this module.
21
27
  // New code should prefer the `@agenticprimitives/key-custody/kms-core` subpath.
@@ -41,12 +47,15 @@ export class GcpKmsSigner {
41
47
  if (!jsonStr) {
42
48
  throw new Error('GcpKmsSigner: GCP_SERVICE_ACCOUNT_JSON (service-account JSON string) is required.');
43
49
  }
50
+ // Backlog B4: accept the SAME formats parseServiceAccountJson does (single-line JSON OR
51
+ // base64-encoded JSON) so one secret value satisfies both the kms-core validator and this
52
+ // backend — base64 dodges the literal-newline paste hazard (B5).
44
53
  let parsed;
45
54
  try {
46
- parsed = JSON.parse(jsonStr);
55
+ parsed = parseServiceAccountJson(jsonStr);
47
56
  }
48
- catch {
49
- throw new Error('GcpKmsSigner: GCP_SERVICE_ACCOUNT_JSON is not valid JSON.');
57
+ catch (e) {
58
+ throw new Error(`GcpKmsSigner: GCP_SERVICE_ACCOUNT_JSON invalid — ${e instanceof Error ? e.message : String(e)}`);
50
59
  }
51
60
  if (!parsed.client_email || !parsed.private_key) {
52
61
  throw new Error('GcpKmsSigner: service-account JSON missing client_email or private_key.');
@@ -127,6 +136,7 @@ export class GcpKmsProvider {
127
136
  keyVersion = 'gcp-kms:unknown';
128
137
  keyName;
129
138
  serviceAccount;
139
+ auditSink;
130
140
  cachedToken;
131
141
  constructor(opts) {
132
142
  const keyName = opts?.cryptoKeyName ?? process.env.GCP_KMS_ENCRYPT_KEY_NAME;
@@ -137,18 +147,47 @@ export class GcpKmsProvider {
137
147
  if (!jsonStr) {
138
148
  throw new Error('GcpKmsProvider: GCP_SERVICE_ACCOUNT_JSON (service-account JSON string) is required.');
139
149
  }
150
+ // Backlog B4: accept single-line JSON OR base64-encoded JSON (parseServiceAccountJson), so the
151
+ // SAME GCP_SERVICE_ACCOUNT_JSON secret satisfies the signer, this envelope provider, and the
152
+ // kms-core validator — base64 dodges the literal-newline paste hazard (B5).
140
153
  let parsed;
141
154
  try {
142
- parsed = JSON.parse(jsonStr);
155
+ parsed = parseServiceAccountJson(jsonStr);
143
156
  }
144
- catch {
145
- throw new Error('GcpKmsProvider: GCP_SERVICE_ACCOUNT_JSON is not valid JSON.');
157
+ catch (e) {
158
+ throw new Error(`GcpKmsProvider: GCP_SERVICE_ACCOUNT_JSON invalid — ${e instanceof Error ? e.message : String(e)}`);
146
159
  }
147
160
  if (!parsed.client_email || !parsed.private_key) {
148
161
  throw new Error('GcpKmsProvider: service-account JSON missing client_email or private_key.');
149
162
  }
150
163
  this.keyName = keyName;
151
164
  this.serviceAccount = parsed;
165
+ this.auditSink = opts?.auditSink;
166
+ }
167
+ /**
168
+ * Emit an envelope-op audit row (spec 278 P0). Refs/hashes ONLY — the AAD is
169
+ * hashed (never logged raw, since it can carry owner/resource identifiers),
170
+ * and the data key / plaintext never appear. Fail-soft.
171
+ */
172
+ async emitEnvelopeAudit(action, aadBytes, keyVersion) {
173
+ if (!this.auditSink)
174
+ return;
175
+ try {
176
+ await this.auditSink.write(buildEvent({
177
+ action,
178
+ outcome: 'success',
179
+ actor: { type: 'system', id: 'gcp-kms-provider' },
180
+ subject: { type: 'vault-data-key', id: keyVersion },
181
+ context: {
182
+ keyId: this.keyName,
183
+ keyVersion,
184
+ aadHash: bytesToHex(sha256(aadBytes)),
185
+ },
186
+ }));
187
+ }
188
+ catch {
189
+ /* fail-soft — an audit failure must not break the crypto op */
190
+ }
152
191
  }
153
192
  async getAccessToken() {
154
193
  const now = Math.floor(Date.now() / 1000);
@@ -172,6 +211,7 @@ export class GcpKmsProvider {
172
211
  });
173
212
  const encryptedDataKey = base64Decode(res.ciphertext);
174
213
  const keyVersion = parseCryptoKeyVersion(res.name) ?? this.keyVersion;
214
+ await this.emitEnvelopeAudit('key-custody.envelope.wrap', aadBytes, keyVersion);
175
215
  return { plaintextDataKey, encryptedDataKey, keyId: this.keyName, keyVersion };
176
216
  }
177
217
  async decryptSessionDataKey(input) {
@@ -191,7 +231,9 @@ export class GcpKmsProvider {
191
231
  additionalAuthenticatedData: base64Encode(aadBytes),
192
232
  },
193
233
  });
194
- return base64Decode(res.plaintext);
234
+ const plaintextDataKey = base64Decode(res.plaintext);
235
+ await this.emitEnvelopeAudit('key-custody.envelope.unwrap', aadBytes, input.keyVersion);
236
+ return plaintextDataKey;
195
237
  }
196
238
  }
197
239
  //# sourceMappingURL=gcp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gcp.js","sourceRoot":"","sources":["../../src/providers/gcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gcp.js","sourceRoot":"","sources":["../../src/providers/gcp.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { hexToBytes, bytesToHex, toHex, type Address, type Hex } from 'viem';
2
- import type { A2AKeyProvider, KmsAccountBackend } from '../types';
2
+ import type { A2AKeyProvider, KmsAccountBackend } from '../types.js';
3
3
  import { type AuditSink } from '@agenticprimitives/audit';
4
4
  export declare class LocalAesProvider implements A2AKeyProvider {
5
5
  readonly keyVersion = "local-v1";
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/providers/local.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElE,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAiHtE,qBAAa,gBAAiB,YAAW,cAAc;IACrD,QAAQ,CAAC,UAAU,cAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE;IAe1C,sBAAsB,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;;;;;;IAiBpE,qBAAqB,CAAC,KAAK,EAAE;QACjC,gBAAgB,EAAE,UAAU,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB;IAmBK,WAAW,CAAC,KAAK,EAAE;QAAE,gBAAgB,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;;;;CAW7F;AAED,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;gBAE3B,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;IAQ9D,aAAa,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,UAAU,CAAC;QACnB,YAAY,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3E;;;;;IA2DK,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI1C,yEAAyE;IACzE,UAAU,IAAI,OAAO;CAGtB;AAaD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/providers/local.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAiHtE,qBAAa,gBAAiB,YAAW,cAAc;IACrD,QAAQ,CAAC,UAAU,cAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE;IAe1C,sBAAsB,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;;;;;;IAiBpE,qBAAqB,CAAC,KAAK,EAAE;QACjC,gBAAgB,EAAE,UAAU,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB;IAmBK,WAAW,CAAC,KAAK,EAAE;QAAE,gBAAgB,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;;;;CAW7F;AAED,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAY;gBAE3B,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;IAQ9D,aAAa,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,UAAU,CAAC;QACnB,YAAY,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3E;;;;;IA2DK,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI1C,yEAAyE;IACzE,UAAU,IAAI,OAAO;CAGtB;AAaD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC"}
@@ -18,7 +18,7 @@ import { hkdf } from '@noble/hashes/hkdf.js';
18
18
  import { secp256k1 } from '@noble/curves/secp256k1.js';
19
19
  import { keccak_256 } from '@noble/hashes/sha3.js';
20
20
  import { hexToBytes, bytesToHex, toHex } from 'viem';
21
- import { canonicalContextBytes } from '../aad';
21
+ import { canonicalContextBytes } from '../aad.js';
22
22
  import { buildEvent } from '@agenticprimitives/audit';
23
23
  const HKDF_INFO = 'agenticprimitives/local-aes:v1';
24
24
  const SALT_BYTES = 16;
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/providers/local.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/providers/local.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { BuildOpts, KmsAccountBackend } from './types';
1
+ import type { BuildOpts, KmsAccountBackend } from './types.js';
2
2
  export declare function getRelayOnlySigner(opts: BuildOpts): KmsAccountBackend;
3
3
  //# sourceMappingURL=relay-only.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-only.d.ts","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAI5D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,CAerE"}
1
+ {"version":3,"file":"relay-only.d.ts","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAI/D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,iBAAiB,CAerE"}
@@ -1,7 +1,7 @@
1
1
  // getRelayOnlySigner — wraps a KmsAccountBackend so any sign call throws.
2
2
  // Used in Phase B to guarantee the master signer can only broadcast, never
3
3
  // sign on the user's authority.
4
- import { buildSignerBackend } from './factories';
4
+ import { buildSignerBackend } from './factories.js';
5
5
  export function getRelayOnlySigner(opts) {
6
6
  const inner = buildSignerBackend(opts);
7
7
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"relay-only.js","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,gCAAgC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,UAAU,kBAAkB,CAAC,IAAe;IAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO;QACL,sEAAsE;QACtE,2CAA2C;QAC3C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,CAAC,gBAAgB;YACpB,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,aAAa;YACjB,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"relay-only.js","sourceRoot":"","sources":["../src/relay-only.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,gCAAgC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,MAAM,UAAU,kBAAkB,CAAC,IAAe;IAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO;QACL,sEAAsE;QACtE,2CAA2C;QAC3C,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,CAAC,gBAAgB;YACpB,OAAO,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,aAAa;YACjB,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type LocalAccount } from 'viem';
2
2
  import { type AuditSink } from '@agenticprimitives/audit';
3
- import type { KmsAccountBackend } from './types';
3
+ import type { KmsAccountBackend } from './types.js';
4
4
  /**
5
5
  * Caller-supplied options for `createRelayerAccount`.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"relayer-account.d.ts","sourceRoot":"","sources":["../src/relayer-account.ts"],"names":[],"mappings":"AA2CA,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,MAAM,CAAC;AACd,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AA6CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAgDvB"}
1
+ {"version":3,"file":"relayer-account.d.ts","sourceRoot":"","sources":["../src/relayer-account.ts"],"names":[],"mappings":"AA2CA,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,MAAM,CAAC;AACd,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AA6CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAgDvB"}
@@ -42,7 +42,7 @@
42
42
  // `composeFailHardSinks` from @agenticprimitives/audit.
43
43
  import { hashMessage, hashTypedData, keccak256, serializeTransaction, } from 'viem';
44
44
  import { buildEvent } from '@agenticprimitives/audit';
45
- import { createKmsViemAccount } from './kms-viem-account';
45
+ import { createKmsViemAccount } from './kms-viem-account.js';
46
46
  function digestFingerprint(digest) {
47
47
  // 18 chars = 9 bytes of the keccak hash. Enough to disambiguate in
48
48
  // logs; far too short to be a preimage. Same redaction shape used by
@@ -1 +1 @@
1
- {"version":3,"file":"relayer-account.js","sourceRoot":"","sources":["../src/relayer-account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relayer-account.js","sourceRoot":"","sources":["../src/relayer-account.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticprimitives/key-custody",
3
- "version": "1.0.0-alpha.10",
3
+ "version": "1.0.0-alpha.12",
4
4
  "description": "Pluggable envelope encryption + signers + HMAC providers (local-AES / AWS KMS / GCP KMS). Pure crypto primitives; no session lifecycle (that's in delegation).",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -76,9 +76,9 @@
76
76
  },
77
77
  "peerDependencies": {
78
78
  "viem": "^2.52.2",
79
- "@agenticprimitives/audit": "1.0.0-alpha.10",
80
- "@agenticprimitives/types": "1.0.0-alpha.10",
81
- "@agenticprimitives/connect-auth": "1.0.0-alpha.10"
79
+ "@agenticprimitives/audit": "1.0.0-alpha.12",
80
+ "@agenticprimitives/connect-auth": "1.0.0-alpha.12",
81
+ "@agenticprimitives/types": "1.0.0-alpha.12"
82
82
  },
83
83
  "peerDependenciesMeta": {
84
84
  "@agenticprimitives/audit": {