@agirails/sdk 4.4.9 → 4.5.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.
- package/dist/builders/DeliveryProofBuilder.d.ts +224 -13
- package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
- package/dist/builders/DeliveryProofBuilder.js +247 -13
- package/dist/builders/DeliveryProofBuilder.js.map +1 -1
- package/dist/cli/agirails.d.ts +85 -1
- package/dist/cli/agirails.d.ts.map +1 -1
- package/dist/cli/agirails.js +429 -154
- package/dist/cli/agirails.js.map +1 -1
- package/dist/cli/commands/init.d.ts +54 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +193 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/receipt.d.ts +70 -2
- package/dist/cli/commands/receipt.d.ts.map +1 -1
- package/dist/cli/commands/receipt.js +218 -3
- package/dist/cli/commands/receipt.js.map +1 -1
- package/dist/cli/commands/test.d.ts +77 -1
- package/dist/cli/commands/test.d.ts.map +1 -1
- package/dist/cli/commands/test.js +264 -2
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/lib/runRequest.d.ts +90 -0
- package/dist/cli/lib/runRequest.d.ts.map +1 -1
- package/dist/cli/lib/runRequest.js +300 -9
- package/dist/cli/lib/runRequest.js.map +1 -1
- package/dist/cli/lib/sentinelReflections.d.ts +111 -0
- package/dist/cli/lib/sentinelReflections.d.ts.map +1 -0
- package/dist/cli/lib/sentinelReflections.js +193 -0
- package/dist/cli/lib/sentinelReflections.js.map +1 -0
- package/dist/delivery/MockDeliveryChannel.d.ts +208 -0
- package/dist/delivery/MockDeliveryChannel.d.ts.map +1 -0
- package/dist/delivery/MockDeliveryChannel.js +445 -0
- package/dist/delivery/MockDeliveryChannel.js.map +1 -0
- package/dist/delivery/RelayDeliveryChannel.d.ts +176 -0
- package/dist/delivery/RelayDeliveryChannel.d.ts.map +1 -0
- package/dist/delivery/RelayDeliveryChannel.js +377 -0
- package/dist/delivery/RelayDeliveryChannel.js.map +1 -0
- package/dist/delivery/channel.d.ts +282 -0
- package/dist/delivery/channel.d.ts.map +1 -0
- package/dist/delivery/channel.js +76 -0
- package/dist/delivery/channel.js.map +1 -0
- package/dist/delivery/channelLog.d.ts +115 -0
- package/dist/delivery/channelLog.d.ts.map +1 -0
- package/dist/delivery/channelLog.js +94 -0
- package/dist/delivery/channelLog.js.map +1 -0
- package/dist/delivery/crypto.d.ts +312 -0
- package/dist/delivery/crypto.d.ts.map +1 -0
- package/dist/delivery/crypto.js +495 -0
- package/dist/delivery/crypto.js.map +1 -0
- package/dist/delivery/eip712.d.ts +248 -0
- package/dist/delivery/eip712.d.ts.map +1 -0
- package/dist/delivery/eip712.js +397 -0
- package/dist/delivery/eip712.js.map +1 -0
- package/dist/delivery/envelopeBuilder.d.ts +531 -0
- package/dist/delivery/envelopeBuilder.d.ts.map +1 -0
- package/dist/delivery/envelopeBuilder.js +832 -0
- package/dist/delivery/envelopeBuilder.js.map +1 -0
- package/dist/delivery/index.d.ts +53 -0
- package/dist/delivery/index.d.ts.map +1 -0
- package/dist/delivery/index.js +143 -0
- package/dist/delivery/index.js.map +1 -0
- package/dist/delivery/keys.d.ts +344 -0
- package/dist/delivery/keys.d.ts.map +1 -0
- package/dist/delivery/keys.js +513 -0
- package/dist/delivery/keys.js.map +1 -0
- package/dist/delivery/nonce-keys.d.ts +93 -0
- package/dist/delivery/nonce-keys.d.ts.map +1 -0
- package/dist/delivery/nonce-keys.js +88 -0
- package/dist/delivery/nonce-keys.js.map +1 -0
- package/dist/delivery/setupBuilder.d.ts +403 -0
- package/dist/delivery/setupBuilder.d.ts.map +1 -0
- package/dist/delivery/setupBuilder.js +554 -0
- package/dist/delivery/setupBuilder.js.map +1 -0
- package/dist/delivery/types.d.ts +722 -0
- package/dist/delivery/types.d.ts.map +1 -0
- package/dist/delivery/types.js +150 -0
- package/dist/delivery/types.js.map +1 -0
- package/dist/delivery/validate.d.ts +288 -0
- package/dist/delivery/validate.d.ts.map +1 -0
- package/dist/delivery/validate.js +648 -0
- package/dist/delivery/validate.js.map +1 -0
- package/dist/level1/Agent.d.ts +130 -0
- package/dist/level1/Agent.d.ts.map +1 -1
- package/dist/level1/Agent.js +248 -0
- package/dist/level1/Agent.js.map +1 -1
- package/dist/level1/types/Options.d.ts +62 -0
- package/dist/level1/types/Options.d.ts.map +1 -1
- package/dist/level1/types/Options.js +22 -0
- package/dist/level1/types/Options.js.map +1 -1
- package/dist/runtime/MockRuntime.d.ts +32 -0
- package/dist/runtime/MockRuntime.d.ts.map +1 -1
- package/dist/runtime/MockRuntime.js +44 -0
- package/dist/runtime/MockRuntime.js.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelopeBuilder.js","sourceRoot":"","sources":["../../src/delivery/envelopeBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AIP-16 Delivery Surface — Module Barrel
|
|
3
|
+
* ========================================
|
|
4
|
+
*
|
|
5
|
+
* Public re-export surface for the AGIRAILS delivery layer (AIP-16 Rev 5).
|
|
6
|
+
*
|
|
7
|
+
* Phase 2a foundation: types + EIP-712 domain/types/recovery helpers.
|
|
8
|
+
* Later phases add cryptographic primitives (`crypto.ts`), builders
|
|
9
|
+
* (`setupBuilder.ts`, `envelopeBuilder.ts`), verifiers, the channel
|
|
10
|
+
* client, and a structured error class extending `ACTPError`.
|
|
11
|
+
*
|
|
12
|
+
* Consumers SHOULD import from this barrel rather than reaching into
|
|
13
|
+
* individual files, so future internal refactors do not break call
|
|
14
|
+
* sites:
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import {
|
|
19
|
+
* DeliveryScheme,
|
|
20
|
+
* DeliverySetupSignedV1,
|
|
21
|
+
* DeliveryEnvelopeWireV1,
|
|
22
|
+
* CANONICAL_EMPTY_BYTES32,
|
|
23
|
+
* DELIVERY_DOMAIN_NAME,
|
|
24
|
+
* buildDeliveryDomain,
|
|
25
|
+
* recoverSetupSigner,
|
|
26
|
+
* } from '@agirails/sdk/delivery';
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export type { DeliveryScheme, DeliveryMode, DeliveryPrivacy, ParticipantRole, DeliveryNetwork, DeliverySetupSignedV1, DeliverySetupWireV1, DeliveryEnvelopeSignedV1, DeliveryEnvelopeWireV1, BuildSetupResult, BuildEnvelopeResult, DeliveryErrorCode, DeliveryError, } from './types';
|
|
30
|
+
export { CANONICAL_EMPTY_BYTES32, CANONICAL_EMPTY_BYTES12, CANONICAL_EMPTY_BYTES16, } from './types';
|
|
31
|
+
export { DELIVERY_DOMAIN_NAME, DELIVERY_DOMAIN_VERSION, DELIVERY_SETUP_TYPES_V1, DELIVERY_ENVELOPE_TYPES_V1, chainIdForNetwork, buildDeliveryDomain, recoverSetupSigner, recoverEnvelopeSigner, DeliveryEip712Error, } from './eip712';
|
|
32
|
+
export type { EphemeralKeyPair } from './keys';
|
|
33
|
+
export { X25519_PUBLIC_KEY_LENGTH, X25519_PRIVATE_KEY_LENGTH, X25519_SHARED_SECRET_LENGTH, DELIVERY_SESSION_KEY_LENGTH, TX_ID_BYTES, DELIVERY_HKDF_INFO_V1, generateEphemeralKeyPair, deriveSharedSecret, deriveSessionKey, pubkeyToHex, pubkeyFromHex, DeliveryCryptoError, } from './keys';
|
|
34
|
+
export type { EncryptResult } from './crypto';
|
|
35
|
+
export { AES_GCM_NONCE_LENGTH, AES_GCM_TAG_LENGTH, AES_KEY_LENGTH, encryptBody, decryptBody, bodyHash, bytesToHex, bytesFromHex, } from './crypto';
|
|
36
|
+
export type { ValidationResult } from './validate';
|
|
37
|
+
export { isValidBytes32, isValidBytes12, isValidBytes16, isValidAddress, isValidUintString, isValidScheme, isValidPrivacy, isValidRole, isCanonicalEmptyBytes32, isCanonicalEmptyBytes12, isCanonicalEmptyBytes16, validateSetupSigned, validateSetupWire, validateEnvelopeSigned, validateEnvelopeWire, validateSchemeConsistency, } from './validate';
|
|
38
|
+
export { DELIVERY_NONCE_KEY_SETUP, DELIVERY_NONCE_KEY_ENVELOPE, } from './nonce-keys';
|
|
39
|
+
export type { DeliveryNonceKey } from './nonce-keys';
|
|
40
|
+
export { DeliverySetupBuilder } from './setupBuilder';
|
|
41
|
+
export type { BuildSetupParams } from './setupBuilder';
|
|
42
|
+
export { DEFAULT_SETUP_EXPIRY_SEC, SETUP_TIMESTAMP_SKEW_SEC, DEFAULT_ACCEPTED_CHANNELS, } from './setupBuilder';
|
|
43
|
+
export { DeliveryEnvelopeBuilder } from './envelopeBuilder';
|
|
44
|
+
export type { BuildPublicEnvelopeParams, BuildEncryptedEnvelopeParams, } from './envelopeBuilder';
|
|
45
|
+
export { ENVELOPE_TIMESTAMP_SKEW_SEC, ENVELOPE_AAD_LENGTH, buildEnvelopeAad, } from './envelopeBuilder';
|
|
46
|
+
export type { DeliveryChannel, DeliverySubscription, SetupCallback, EnvelopeCallback, } from './channel';
|
|
47
|
+
export type { LogFn } from './channelLog';
|
|
48
|
+
export { noopLog } from './channelLog';
|
|
49
|
+
export { MockDeliveryChannel } from './MockDeliveryChannel';
|
|
50
|
+
export type { MockDeliveryChannelOptions } from './MockDeliveryChannel';
|
|
51
|
+
export { RelayDeliveryChannel, POLL_INTERVAL_MS, REQUEST_TIMEOUT_MS, } from './RelayDeliveryChannel';
|
|
52
|
+
export type { RelayDeliveryChannelOptions } from './RelayDeliveryChannel';
|
|
53
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,YAAY,EAEV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EAEf,qBAAqB,EACrB,mBAAmB,EAEnB,wBAAwB,EACxB,sBAAsB,EAEtB,gBAAgB,EAChB,mBAAmB,EAEnB,iBAAiB,EACjB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAEL,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAMjB,OAAO,EAEL,oBAAoB,EACpB,uBAAuB,EAEvB,uBAAuB,EACvB,0BAA0B,EAE1B,iBAAiB,EACjB,mBAAmB,EAEnB,kBAAkB,EAClB,qBAAqB,EAErB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAMlB,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAEL,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,WAAW,EAEX,qBAAqB,EAErB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAEhB,WAAW,EACX,aAAa,EAEb,mBAAmB,GACpB,MAAM,QAAQ,CAAC;AAMhB,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAEL,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EAEd,WAAW,EACX,WAAW,EAEX,QAAQ,EAER,UAAU,EACV,YAAY,GACb,MAAM,UAAU,CAAC;AAMlB,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAEL,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,WAAW,EAEX,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EAEvB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EAEpB,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,YAAY,EACV,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAM3B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAMnB,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAMvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AIP-16 Delivery Surface — Module Barrel
|
|
4
|
+
* ========================================
|
|
5
|
+
*
|
|
6
|
+
* Public re-export surface for the AGIRAILS delivery layer (AIP-16 Rev 5).
|
|
7
|
+
*
|
|
8
|
+
* Phase 2a foundation: types + EIP-712 domain/types/recovery helpers.
|
|
9
|
+
* Later phases add cryptographic primitives (`crypto.ts`), builders
|
|
10
|
+
* (`setupBuilder.ts`, `envelopeBuilder.ts`), verifiers, the channel
|
|
11
|
+
* client, and a structured error class extending `ACTPError`.
|
|
12
|
+
*
|
|
13
|
+
* Consumers SHOULD import from this barrel rather than reaching into
|
|
14
|
+
* individual files, so future internal refactors do not break call
|
|
15
|
+
* sites:
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import {
|
|
20
|
+
* DeliveryScheme,
|
|
21
|
+
* DeliverySetupSignedV1,
|
|
22
|
+
* DeliveryEnvelopeWireV1,
|
|
23
|
+
* CANONICAL_EMPTY_BYTES32,
|
|
24
|
+
* DELIVERY_DOMAIN_NAME,
|
|
25
|
+
* buildDeliveryDomain,
|
|
26
|
+
* recoverSetupSigner,
|
|
27
|
+
* } from '@agirails/sdk/delivery';
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.DELIVERY_NONCE_KEY_ENVELOPE = exports.DELIVERY_NONCE_KEY_SETUP = exports.validateSchemeConsistency = exports.validateEnvelopeWire = exports.validateEnvelopeSigned = exports.validateSetupWire = exports.validateSetupSigned = exports.isCanonicalEmptyBytes16 = exports.isCanonicalEmptyBytes12 = exports.isCanonicalEmptyBytes32 = exports.isValidRole = exports.isValidPrivacy = exports.isValidScheme = exports.isValidUintString = exports.isValidAddress = exports.isValidBytes16 = exports.isValidBytes12 = exports.isValidBytes32 = exports.bytesFromHex = exports.bytesToHex = exports.bodyHash = exports.decryptBody = exports.encryptBody = exports.AES_KEY_LENGTH = exports.AES_GCM_TAG_LENGTH = exports.AES_GCM_NONCE_LENGTH = exports.DeliveryCryptoError = exports.pubkeyFromHex = exports.pubkeyToHex = exports.deriveSessionKey = exports.deriveSharedSecret = exports.generateEphemeralKeyPair = exports.DELIVERY_HKDF_INFO_V1 = exports.TX_ID_BYTES = exports.DELIVERY_SESSION_KEY_LENGTH = exports.X25519_SHARED_SECRET_LENGTH = exports.X25519_PRIVATE_KEY_LENGTH = exports.X25519_PUBLIC_KEY_LENGTH = exports.DeliveryEip712Error = exports.recoverEnvelopeSigner = exports.recoverSetupSigner = exports.buildDeliveryDomain = exports.chainIdForNetwork = exports.DELIVERY_ENVELOPE_TYPES_V1 = exports.DELIVERY_SETUP_TYPES_V1 = exports.DELIVERY_DOMAIN_VERSION = exports.DELIVERY_DOMAIN_NAME = exports.CANONICAL_EMPTY_BYTES16 = exports.CANONICAL_EMPTY_BYTES12 = exports.CANONICAL_EMPTY_BYTES32 = void 0;
|
|
32
|
+
exports.REQUEST_TIMEOUT_MS = exports.POLL_INTERVAL_MS = exports.RelayDeliveryChannel = exports.MockDeliveryChannel = exports.noopLog = exports.buildEnvelopeAad = exports.ENVELOPE_AAD_LENGTH = exports.ENVELOPE_TIMESTAMP_SKEW_SEC = exports.DeliveryEnvelopeBuilder = exports.DEFAULT_ACCEPTED_CHANNELS = exports.SETUP_TIMESTAMP_SKEW_SEC = exports.DEFAULT_SETUP_EXPIRY_SEC = exports.DeliverySetupBuilder = void 0;
|
|
33
|
+
var types_1 = require("./types");
|
|
34
|
+
// Canonical empty value constants
|
|
35
|
+
Object.defineProperty(exports, "CANONICAL_EMPTY_BYTES32", { enumerable: true, get: function () { return types_1.CANONICAL_EMPTY_BYTES32; } });
|
|
36
|
+
Object.defineProperty(exports, "CANONICAL_EMPTY_BYTES12", { enumerable: true, get: function () { return types_1.CANONICAL_EMPTY_BYTES12; } });
|
|
37
|
+
Object.defineProperty(exports, "CANONICAL_EMPTY_BYTES16", { enumerable: true, get: function () { return types_1.CANONICAL_EMPTY_BYTES16; } });
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
// EIP-712 domain, types, and recovery helpers (Phase 2a)
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
var eip712_1 = require("./eip712");
|
|
42
|
+
// Domain constants
|
|
43
|
+
Object.defineProperty(exports, "DELIVERY_DOMAIN_NAME", { enumerable: true, get: function () { return eip712_1.DELIVERY_DOMAIN_NAME; } });
|
|
44
|
+
Object.defineProperty(exports, "DELIVERY_DOMAIN_VERSION", { enumerable: true, get: function () { return eip712_1.DELIVERY_DOMAIN_VERSION; } });
|
|
45
|
+
// EIP-712 typed-data schemas (field order IMMUTABLE)
|
|
46
|
+
Object.defineProperty(exports, "DELIVERY_SETUP_TYPES_V1", { enumerable: true, get: function () { return eip712_1.DELIVERY_SETUP_TYPES_V1; } });
|
|
47
|
+
Object.defineProperty(exports, "DELIVERY_ENVELOPE_TYPES_V1", { enumerable: true, get: function () { return eip712_1.DELIVERY_ENVELOPE_TYPES_V1; } });
|
|
48
|
+
// Network + domain helpers
|
|
49
|
+
Object.defineProperty(exports, "chainIdForNetwork", { enumerable: true, get: function () { return eip712_1.chainIdForNetwork; } });
|
|
50
|
+
Object.defineProperty(exports, "buildDeliveryDomain", { enumerable: true, get: function () { return eip712_1.buildDeliveryDomain; } });
|
|
51
|
+
// Recovery helpers
|
|
52
|
+
Object.defineProperty(exports, "recoverSetupSigner", { enumerable: true, get: function () { return eip712_1.recoverSetupSigner; } });
|
|
53
|
+
Object.defineProperty(exports, "recoverEnvelopeSigner", { enumerable: true, get: function () { return eip712_1.recoverEnvelopeSigner; } });
|
|
54
|
+
// Error class
|
|
55
|
+
Object.defineProperty(exports, "DeliveryEip712Error", { enumerable: true, get: function () { return eip712_1.DeliveryEip712Error; } });
|
|
56
|
+
var keys_1 = require("./keys");
|
|
57
|
+
// Length constants
|
|
58
|
+
Object.defineProperty(exports, "X25519_PUBLIC_KEY_LENGTH", { enumerable: true, get: function () { return keys_1.X25519_PUBLIC_KEY_LENGTH; } });
|
|
59
|
+
Object.defineProperty(exports, "X25519_PRIVATE_KEY_LENGTH", { enumerable: true, get: function () { return keys_1.X25519_PRIVATE_KEY_LENGTH; } });
|
|
60
|
+
Object.defineProperty(exports, "X25519_SHARED_SECRET_LENGTH", { enumerable: true, get: function () { return keys_1.X25519_SHARED_SECRET_LENGTH; } });
|
|
61
|
+
Object.defineProperty(exports, "DELIVERY_SESSION_KEY_LENGTH", { enumerable: true, get: function () { return keys_1.DELIVERY_SESSION_KEY_LENGTH; } });
|
|
62
|
+
Object.defineProperty(exports, "TX_ID_BYTES", { enumerable: true, get: function () { return keys_1.TX_ID_BYTES; } });
|
|
63
|
+
// HKDF info string for v1
|
|
64
|
+
Object.defineProperty(exports, "DELIVERY_HKDF_INFO_V1", { enumerable: true, get: function () { return keys_1.DELIVERY_HKDF_INFO_V1; } });
|
|
65
|
+
// Core primitives
|
|
66
|
+
Object.defineProperty(exports, "generateEphemeralKeyPair", { enumerable: true, get: function () { return keys_1.generateEphemeralKeyPair; } });
|
|
67
|
+
Object.defineProperty(exports, "deriveSharedSecret", { enumerable: true, get: function () { return keys_1.deriveSharedSecret; } });
|
|
68
|
+
Object.defineProperty(exports, "deriveSessionKey", { enumerable: true, get: function () { return keys_1.deriveSessionKey; } });
|
|
69
|
+
// Hex format helpers
|
|
70
|
+
Object.defineProperty(exports, "pubkeyToHex", { enumerable: true, get: function () { return keys_1.pubkeyToHex; } });
|
|
71
|
+
Object.defineProperty(exports, "pubkeyFromHex", { enumerable: true, get: function () { return keys_1.pubkeyFromHex; } });
|
|
72
|
+
// Error class
|
|
73
|
+
Object.defineProperty(exports, "DeliveryCryptoError", { enumerable: true, get: function () { return keys_1.DeliveryCryptoError; } });
|
|
74
|
+
var crypto_1 = require("./crypto");
|
|
75
|
+
// Length constants
|
|
76
|
+
Object.defineProperty(exports, "AES_GCM_NONCE_LENGTH", { enumerable: true, get: function () { return crypto_1.AES_GCM_NONCE_LENGTH; } });
|
|
77
|
+
Object.defineProperty(exports, "AES_GCM_TAG_LENGTH", { enumerable: true, get: function () { return crypto_1.AES_GCM_TAG_LENGTH; } });
|
|
78
|
+
Object.defineProperty(exports, "AES_KEY_LENGTH", { enumerable: true, get: function () { return crypto_1.AES_KEY_LENGTH; } });
|
|
79
|
+
// AEAD primitives
|
|
80
|
+
Object.defineProperty(exports, "encryptBody", { enumerable: true, get: function () { return crypto_1.encryptBody; } });
|
|
81
|
+
Object.defineProperty(exports, "decryptBody", { enumerable: true, get: function () { return crypto_1.decryptBody; } });
|
|
82
|
+
// keccak256 body hash (for payloadHash binding)
|
|
83
|
+
Object.defineProperty(exports, "bodyHash", { enumerable: true, get: function () { return crypto_1.bodyHash; } });
|
|
84
|
+
// Hex format helpers (wire-boundary serialization)
|
|
85
|
+
Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return crypto_1.bytesToHex; } });
|
|
86
|
+
Object.defineProperty(exports, "bytesFromHex", { enumerable: true, get: function () { return crypto_1.bytesFromHex; } });
|
|
87
|
+
var validate_1 = require("./validate");
|
|
88
|
+
// Primitive validators
|
|
89
|
+
Object.defineProperty(exports, "isValidBytes32", { enumerable: true, get: function () { return validate_1.isValidBytes32; } });
|
|
90
|
+
Object.defineProperty(exports, "isValidBytes12", { enumerable: true, get: function () { return validate_1.isValidBytes12; } });
|
|
91
|
+
Object.defineProperty(exports, "isValidBytes16", { enumerable: true, get: function () { return validate_1.isValidBytes16; } });
|
|
92
|
+
Object.defineProperty(exports, "isValidAddress", { enumerable: true, get: function () { return validate_1.isValidAddress; } });
|
|
93
|
+
Object.defineProperty(exports, "isValidUintString", { enumerable: true, get: function () { return validate_1.isValidUintString; } });
|
|
94
|
+
Object.defineProperty(exports, "isValidScheme", { enumerable: true, get: function () { return validate_1.isValidScheme; } });
|
|
95
|
+
Object.defineProperty(exports, "isValidPrivacy", { enumerable: true, get: function () { return validate_1.isValidPrivacy; } });
|
|
96
|
+
Object.defineProperty(exports, "isValidRole", { enumerable: true, get: function () { return validate_1.isValidRole; } });
|
|
97
|
+
// Canonical-empty checks
|
|
98
|
+
Object.defineProperty(exports, "isCanonicalEmptyBytes32", { enumerable: true, get: function () { return validate_1.isCanonicalEmptyBytes32; } });
|
|
99
|
+
Object.defineProperty(exports, "isCanonicalEmptyBytes12", { enumerable: true, get: function () { return validate_1.isCanonicalEmptyBytes12; } });
|
|
100
|
+
Object.defineProperty(exports, "isCanonicalEmptyBytes16", { enumerable: true, get: function () { return validate_1.isCanonicalEmptyBytes16; } });
|
|
101
|
+
// Schema validators
|
|
102
|
+
Object.defineProperty(exports, "validateSetupSigned", { enumerable: true, get: function () { return validate_1.validateSetupSigned; } });
|
|
103
|
+
Object.defineProperty(exports, "validateSetupWire", { enumerable: true, get: function () { return validate_1.validateSetupWire; } });
|
|
104
|
+
Object.defineProperty(exports, "validateEnvelopeSigned", { enumerable: true, get: function () { return validate_1.validateEnvelopeSigned; } });
|
|
105
|
+
Object.defineProperty(exports, "validateEnvelopeWire", { enumerable: true, get: function () { return validate_1.validateEnvelopeWire; } });
|
|
106
|
+
// Cross-field consistency
|
|
107
|
+
Object.defineProperty(exports, "validateSchemeConsistency", { enumerable: true, get: function () { return validate_1.validateSchemeConsistency; } });
|
|
108
|
+
// ============================================================================
|
|
109
|
+
// Nonce key constants (AIP-16 Rev5 — per-builder key separation)
|
|
110
|
+
// ============================================================================
|
|
111
|
+
var nonce_keys_1 = require("./nonce-keys");
|
|
112
|
+
Object.defineProperty(exports, "DELIVERY_NONCE_KEY_SETUP", { enumerable: true, get: function () { return nonce_keys_1.DELIVERY_NONCE_KEY_SETUP; } });
|
|
113
|
+
Object.defineProperty(exports, "DELIVERY_NONCE_KEY_ENVELOPE", { enumerable: true, get: function () { return nonce_keys_1.DELIVERY_NONCE_KEY_ENVELOPE; } });
|
|
114
|
+
// ============================================================================
|
|
115
|
+
// Buyer setup builder + verifier (Phase 2b)
|
|
116
|
+
// ============================================================================
|
|
117
|
+
var setupBuilder_1 = require("./setupBuilder");
|
|
118
|
+
Object.defineProperty(exports, "DeliverySetupBuilder", { enumerable: true, get: function () { return setupBuilder_1.DeliverySetupBuilder; } });
|
|
119
|
+
var setupBuilder_2 = require("./setupBuilder");
|
|
120
|
+
Object.defineProperty(exports, "DEFAULT_SETUP_EXPIRY_SEC", { enumerable: true, get: function () { return setupBuilder_2.DEFAULT_SETUP_EXPIRY_SEC; } });
|
|
121
|
+
Object.defineProperty(exports, "SETUP_TIMESTAMP_SKEW_SEC", { enumerable: true, get: function () { return setupBuilder_2.SETUP_TIMESTAMP_SKEW_SEC; } });
|
|
122
|
+
Object.defineProperty(exports, "DEFAULT_ACCEPTED_CHANNELS", { enumerable: true, get: function () { return setupBuilder_2.DEFAULT_ACCEPTED_CHANNELS; } });
|
|
123
|
+
// ============================================================================
|
|
124
|
+
// Provider envelope builder + verifier + decryptor (Phase 2b)
|
|
125
|
+
// ============================================================================
|
|
126
|
+
var envelopeBuilder_1 = require("./envelopeBuilder");
|
|
127
|
+
Object.defineProperty(exports, "DeliveryEnvelopeBuilder", { enumerable: true, get: function () { return envelopeBuilder_1.DeliveryEnvelopeBuilder; } });
|
|
128
|
+
var envelopeBuilder_2 = require("./envelopeBuilder");
|
|
129
|
+
Object.defineProperty(exports, "ENVELOPE_TIMESTAMP_SKEW_SEC", { enumerable: true, get: function () { return envelopeBuilder_2.ENVELOPE_TIMESTAMP_SKEW_SEC; } });
|
|
130
|
+
Object.defineProperty(exports, "ENVELOPE_AAD_LENGTH", { enumerable: true, get: function () { return envelopeBuilder_2.ENVELOPE_AAD_LENGTH; } });
|
|
131
|
+
Object.defineProperty(exports, "buildEnvelopeAad", { enumerable: true, get: function () { return envelopeBuilder_2.buildEnvelopeAad; } });
|
|
132
|
+
var channelLog_1 = require("./channelLog");
|
|
133
|
+
Object.defineProperty(exports, "noopLog", { enumerable: true, get: function () { return channelLog_1.noopLog; } });
|
|
134
|
+
// ============================================================================
|
|
135
|
+
// Channel implementations (Phase 2b)
|
|
136
|
+
// ============================================================================
|
|
137
|
+
var MockDeliveryChannel_1 = require("./MockDeliveryChannel");
|
|
138
|
+
Object.defineProperty(exports, "MockDeliveryChannel", { enumerable: true, get: function () { return MockDeliveryChannel_1.MockDeliveryChannel; } });
|
|
139
|
+
var RelayDeliveryChannel_1 = require("./RelayDeliveryChannel");
|
|
140
|
+
Object.defineProperty(exports, "RelayDeliveryChannel", { enumerable: true, get: function () { return RelayDeliveryChannel_1.RelayDeliveryChannel; } });
|
|
141
|
+
Object.defineProperty(exports, "POLL_INTERVAL_MS", { enumerable: true, get: function () { return RelayDeliveryChannel_1.POLL_INTERVAL_MS; } });
|
|
142
|
+
Object.defineProperty(exports, "REQUEST_TIMEOUT_MS", { enumerable: true, get: function () { return RelayDeliveryChannel_1.REQUEST_TIMEOUT_MS; } });
|
|
143
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/delivery/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AIP-16 Delivery Surface — X25519 Keys, ECDH, HKDF (Phase 2a Foundation)
|
|
3
|
+
* ========================================================================
|
|
4
|
+
*
|
|
5
|
+
* Cryptographic primitives for the encrypted delivery scheme
|
|
6
|
+
* (`x25519-aes256gcm-v1`) of AIP-16 Rev 5.
|
|
7
|
+
*
|
|
8
|
+
* This module is intentionally *primitive-level* — it deals only in
|
|
9
|
+
* raw key material (Uint8Array), 0x-prefixed hex serialization, and
|
|
10
|
+
* the three numbered steps of the ECDH+HKDF derivation:
|
|
11
|
+
*
|
|
12
|
+
* 1. Generate an ephemeral X25519 keypair.
|
|
13
|
+
* 2. Combine the local secret with the peer's public key (ECDH on
|
|
14
|
+
* Curve25519, per RFC 7748) to produce a 32-byte shared secret.
|
|
15
|
+
* 3. Stretch the shared secret to a 32-byte AES-256-GCM key via
|
|
16
|
+
* HKDF-SHA256 (RFC 5869), using the on-chain `txId` as the salt
|
|
17
|
+
* and `"agirails-delivery-v1"` as the info string.
|
|
18
|
+
*
|
|
19
|
+
* AEAD encryption itself, body framing, and EIP-712 signing live in
|
|
20
|
+
* later phases (`crypto.ts`, `envelopeBuilder.ts`); this file is
|
|
21
|
+
* deliberately small so it can be audited end-to-end.
|
|
22
|
+
*
|
|
23
|
+
* ## Library choice
|
|
24
|
+
*
|
|
25
|
+
* X25519 is implemented via `@noble/curves/ed25519` (audited, no
|
|
26
|
+
* native deps, constant-time on supported runtimes). HKDF-SHA256 is
|
|
27
|
+
* provided by Node's built-in `crypto.hkdfSync` — chosen over
|
|
28
|
+
* `@noble/hashes` to minimize the new-dependency surface. Both choices
|
|
29
|
+
* are deterministic and have no global state.
|
|
30
|
+
*
|
|
31
|
+
* ## Memory hygiene
|
|
32
|
+
*
|
|
33
|
+
* Private key material returned by `generateEphemeralKeyPair` is held
|
|
34
|
+
* in plain `Uint8Array`s. The intent of "ephemeral" in AIP-16 is that
|
|
35
|
+
* the caller derives the session key and then drops the reference to
|
|
36
|
+
* the private key. Forward secrecy against compromise of long-term
|
|
37
|
+
* provider/requester keys is provided by *fresh keypair per delivery*;
|
|
38
|
+
* there is no key-rotation mechanism within a single delivery exchange.
|
|
39
|
+
*
|
|
40
|
+
* Callers SHOULD avoid logging `EphemeralKeyPair.privateKey` or any
|
|
41
|
+
* value derived from it.
|
|
42
|
+
*
|
|
43
|
+
* ## What is NOT here
|
|
44
|
+
*
|
|
45
|
+
* - AES-256-GCM seal/open (later: `crypto.ts`).
|
|
46
|
+
* - keccak256 hashing of body bytes (uses ethers in builders).
|
|
47
|
+
* - EIP-712 signing (already in `eip712.ts`).
|
|
48
|
+
* - Smart-wallet equality checks (later: verifier modules).
|
|
49
|
+
*
|
|
50
|
+
* @module delivery/keys
|
|
51
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc7748 RFC 7748 — Elliptic Curves for Security (X25519)}
|
|
52
|
+
* @see {@link https://www.rfc-editor.org/rfc/rfc5869 RFC 5869 — HKDF}
|
|
53
|
+
* @see ./types — `DeliveryErrorCode` (crypto_* codes referenced here)
|
|
54
|
+
* @see ./eip712 — EIP-712 domain & recovery (the *other* foundation module)
|
|
55
|
+
*/
|
|
56
|
+
import type { DeliveryErrorCode } from './types';
|
|
57
|
+
/**
|
|
58
|
+
* Length (in bytes) of an X25519 public key. RFC 7748 §5.
|
|
59
|
+
*
|
|
60
|
+
* Both the buyer's `buyerEphemeralPubkey` field and the provider's
|
|
61
|
+
* `providerEphemeralPubkey` field in the signed EIP-712 payloads carry
|
|
62
|
+
* exactly this many bytes (encoded as `bytes32` in the typed-data
|
|
63
|
+
* schema; X25519 keys happen to also be 32 bytes, which is why a
|
|
64
|
+
* single `bytes32` slot fits).
|
|
65
|
+
*/
|
|
66
|
+
export declare const X25519_PUBLIC_KEY_LENGTH: 32;
|
|
67
|
+
/**
|
|
68
|
+
* Length (in bytes) of an X25519 private key (clamped scalar). RFC 7748 §5.
|
|
69
|
+
*
|
|
70
|
+
* Equal to {@link X25519_PUBLIC_KEY_LENGTH}, which is coincidence — the
|
|
71
|
+
* scalar field of Curve25519 is 252 bits but is encoded into a 32-byte
|
|
72
|
+
* little-endian field with the canonical clamping applied by
|
|
73
|
+
* `@noble/curves`.
|
|
74
|
+
*/
|
|
75
|
+
export declare const X25519_PRIVATE_KEY_LENGTH: 32;
|
|
76
|
+
/**
|
|
77
|
+
* Length (in bytes) of the X25519 shared secret produced by ECDH.
|
|
78
|
+
*
|
|
79
|
+
* Per RFC 7748 the shared secret is the 32-byte little-endian encoding
|
|
80
|
+
* of the resulting u-coordinate.
|
|
81
|
+
*/
|
|
82
|
+
export declare const X25519_SHARED_SECRET_LENGTH: 32;
|
|
83
|
+
/**
|
|
84
|
+
* Length (in bytes) of the session key derived from HKDF. Sized for
|
|
85
|
+
* AES-256-GCM (the only AEAD scheme defined for `x25519-aes256gcm-v1`).
|
|
86
|
+
*/
|
|
87
|
+
export declare const DELIVERY_SESSION_KEY_LENGTH: 32;
|
|
88
|
+
/**
|
|
89
|
+
* Length (in bytes) of an on-chain `txId` (`bytes32`).
|
|
90
|
+
*
|
|
91
|
+
* The txId is used directly as the HKDF salt: it is high-entropy
|
|
92
|
+
* (keccak256 of requester/provider/amount/serviceHash/nonce) and
|
|
93
|
+
* unique per transaction, satisfying RFC 5869's salt recommendation
|
|
94
|
+
* ("a non-secret random value, ideally hash-output length").
|
|
95
|
+
*/
|
|
96
|
+
export declare const TX_ID_BYTES: 32;
|
|
97
|
+
/**
|
|
98
|
+
* HKDF `info` string for v1 delivery session-key derivation.
|
|
99
|
+
*
|
|
100
|
+
* Per RFC 5869 the `info` parameter provides context binding so that
|
|
101
|
+
* the same `(ikm, salt)` pair produces distinct keys for distinct
|
|
102
|
+
* application contexts. Locking this string at v1 prevents accidental
|
|
103
|
+
* key reuse with any future delivery scheme that lands in v2.
|
|
104
|
+
*
|
|
105
|
+
* Encoded as UTF-8 bytes when passed to `hkdfSync`.
|
|
106
|
+
*/
|
|
107
|
+
export declare const DELIVERY_HKDF_INFO_V1: "agirails-delivery-v1";
|
|
108
|
+
/**
|
|
109
|
+
* Error thrown by the delivery key primitives when key material or
|
|
110
|
+
* ECDH/HKDF inputs are malformed, or when the derivation produces a
|
|
111
|
+
* degenerate result (e.g. all-zero shared secret indicating a
|
|
112
|
+
* low-order peer pubkey).
|
|
113
|
+
*
|
|
114
|
+
* Mirrors the `DeliveryEip712Error` pattern from `./eip712.ts` — a
|
|
115
|
+
* plain `Error` subclass with a stable `code` field. The codes here
|
|
116
|
+
* are drawn from the `crypto_*` subset of {@link DeliveryErrorCode}.
|
|
117
|
+
*
|
|
118
|
+
* The higher-level `ACTPError`-based delivery class is introduced
|
|
119
|
+
* alongside the builders/verifiers in a later phase; for the
|
|
120
|
+
* pre-builder foundation we keep the dependency surface minimal (no
|
|
121
|
+
* `ACTPError` import, no `State` import).
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* try {
|
|
126
|
+
* const shared = deriveSharedSecret(myPriv, peerPub);
|
|
127
|
+
* } catch (err) {
|
|
128
|
+
* if (err instanceof DeliveryCryptoError) {
|
|
129
|
+
* console.error(err.code, err.message, err.details);
|
|
130
|
+
* }
|
|
131
|
+
* throw err;
|
|
132
|
+
* }
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
export declare class DeliveryCryptoError extends Error {
|
|
136
|
+
/** Stable machine-actionable error code from the `crypto_*` subset. */
|
|
137
|
+
readonly code: DeliveryErrorCode;
|
|
138
|
+
/** Optional structured details for debugging (expected/actual lengths, etc.). */
|
|
139
|
+
readonly details?: Record<string, unknown>;
|
|
140
|
+
constructor(code: DeliveryErrorCode, message: string, details?: Record<string, unknown>);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* A freshly generated X25519 ephemeral keypair.
|
|
144
|
+
*
|
|
145
|
+
* Returned by {@link generateEphemeralKeyPair}. Carries both the raw
|
|
146
|
+
* 32-byte representations (for direct passing to ECDH) and the
|
|
147
|
+
* canonical lowercase 0x-prefixed hex form of the public key (for
|
|
148
|
+
* embedding into the EIP-712 signed projection as `bytes32`).
|
|
149
|
+
*
|
|
150
|
+
* The hex form is provided for the *public* key only; the private key
|
|
151
|
+
* is intentionally NOT serialized to hex by the generator. Callers
|
|
152
|
+
* that need to persist the private key (which AIP-16 does NOT
|
|
153
|
+
* require — keypairs are ephemeral) must do so explicitly.
|
|
154
|
+
*/
|
|
155
|
+
export interface EphemeralKeyPair {
|
|
156
|
+
/**
|
|
157
|
+
* X25519 public key as 32 raw bytes.
|
|
158
|
+
*
|
|
159
|
+
* Equal to `pubkeyFromHex(publicKeyHex)` — the two forms are kept
|
|
160
|
+
* in lock-step. Pass this to {@link deriveSharedSecret} (as the
|
|
161
|
+
* peer's pubkey on the receiving side, or for self-verification on
|
|
162
|
+
* the sending side).
|
|
163
|
+
*/
|
|
164
|
+
publicKey: Uint8Array;
|
|
165
|
+
/**
|
|
166
|
+
* X25519 private (secret) scalar as 32 raw bytes.
|
|
167
|
+
*
|
|
168
|
+
* SECURITY: this value MUST NOT be logged, persisted to disk, or
|
|
169
|
+
* transmitted across a process boundary. The recommended pattern is
|
|
170
|
+
* to derive the shared secret + session key immediately after
|
|
171
|
+
* generation and let the keypair go out of scope.
|
|
172
|
+
*/
|
|
173
|
+
privateKey: Uint8Array;
|
|
174
|
+
/**
|
|
175
|
+
* Canonical 0x-prefixed lowercase hex form of `publicKey`, length 66
|
|
176
|
+
* characters (`"0x" + 64`). Exactly the value to embed into the
|
|
177
|
+
* `buyerEphemeralPubkey` or `providerEphemeralPubkey` field of the
|
|
178
|
+
* signed EIP-712 projection.
|
|
179
|
+
*/
|
|
180
|
+
publicKeyHex: `0x${string}`;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Generate a fresh X25519 ephemeral keypair using the system CSPRNG
|
|
184
|
+
* (via `@noble/curves`, which delegates to `crypto.getRandomValues` /
|
|
185
|
+
* `node:crypto.randomBytes`).
|
|
186
|
+
*
|
|
187
|
+
* The returned pair is intended to live for a *single* delivery
|
|
188
|
+
* exchange:
|
|
189
|
+
* - Buyer side: generated when constructing the `DeliverySetup`,
|
|
190
|
+
* public key embedded into `buyerEphemeralPubkey`, private key
|
|
191
|
+
* held in memory until the envelope arrives and is decrypted.
|
|
192
|
+
* - Provider side: generated when sealing the envelope, public key
|
|
193
|
+
* embedded into `providerEphemeralPubkey`, private key used to
|
|
194
|
+
* derive the shared secret and then dropped (forward secrecy w.r.t.
|
|
195
|
+
* long-term provider keys).
|
|
196
|
+
*
|
|
197
|
+
* @returns A new {@link EphemeralKeyPair}.
|
|
198
|
+
* @throws {DeliveryCryptoError} `crypto_keygen_failed` if the
|
|
199
|
+
* underlying library returns key material of unexpected length
|
|
200
|
+
* (defensive — should never happen with `@noble/curves` on a
|
|
201
|
+
* conformant runtime).
|
|
202
|
+
*
|
|
203
|
+
* @example
|
|
204
|
+
* ```typescript
|
|
205
|
+
* const kp = generateEphemeralKeyPair();
|
|
206
|
+
* // kp.publicKeyHex → "0x" + 64-hex-char ephemeral pubkey
|
|
207
|
+
* // pass kp.publicKey to deriveSharedSecret(myPriv, theirPub) on the peer
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
export declare function generateEphemeralKeyPair(): EphemeralKeyPair;
|
|
211
|
+
/**
|
|
212
|
+
* Compute the X25519 ECDH shared secret between a local private key
|
|
213
|
+
* and a peer's public key.
|
|
214
|
+
*
|
|
215
|
+
* Per RFC 7748, the shared secret is `X25519(privateKey, peerPubkey)`
|
|
216
|
+
* — the 32-byte little-endian encoding of the u-coordinate of the
|
|
217
|
+
* scalar multiplication. Both inputs MUST be exactly 32 bytes;
|
|
218
|
+
* X25519 itself accepts any 32-byte scalar (the canonical clamping
|
|
219
|
+
* is applied internally by `@noble/curves`), but malformed lengths
|
|
220
|
+
* indicate caller bugs.
|
|
221
|
+
*
|
|
222
|
+
* ## Low-order point check
|
|
223
|
+
*
|
|
224
|
+
* Curve25519 has a small set of "low-order" public keys for which
|
|
225
|
+
* the ECDH output is the all-zero secret regardless of the local
|
|
226
|
+
* private key. A peer that supplies a low-order pubkey can therefore
|
|
227
|
+
* force a known shared secret. We detect this by rejecting all-zero
|
|
228
|
+
* outputs with `crypto_shared_secret_failed`; the caller MUST treat
|
|
229
|
+
* this as a peer-protocol violation, not a transient error.
|
|
230
|
+
*
|
|
231
|
+
* (See RFC 7748 §6.1, which notes that implementations "MAY" reject
|
|
232
|
+
* such inputs; for AGIRAILS we MUST.)
|
|
233
|
+
*
|
|
234
|
+
* @param privateKey - Local X25519 private scalar, exactly 32 bytes.
|
|
235
|
+
* @param peerPubkey - Peer's X25519 public key, exactly 32 bytes.
|
|
236
|
+
* @returns The 32-byte shared secret (NOT the session key — see
|
|
237
|
+
* {@link deriveSessionKey} for the HKDF stretch).
|
|
238
|
+
* @throws {DeliveryCryptoError} `crypto_shared_secret_failed` if
|
|
239
|
+
* either input is the wrong length, if `@noble/curves` raises, or
|
|
240
|
+
* if the resulting shared secret is all-zero (degenerate peer).
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```typescript
|
|
244
|
+
* const shared = deriveSharedSecret(buyerPriv, providerPub);
|
|
245
|
+
* const key = deriveSessionKey(shared, txId);
|
|
246
|
+
* // → 32-byte AES-256-GCM key
|
|
247
|
+
* ```
|
|
248
|
+
*/
|
|
249
|
+
export declare function deriveSharedSecret(privateKey: Uint8Array, peerPubkey: Uint8Array): Uint8Array;
|
|
250
|
+
/**
|
|
251
|
+
* Stretch an X25519 shared secret into a 32-byte AES-256-GCM session
|
|
252
|
+
* key via HKDF-SHA256 (RFC 5869).
|
|
253
|
+
*
|
|
254
|
+
* The derivation parameters are locked for AIP-16 v1:
|
|
255
|
+
* - `ikm` = `sharedSecret` (32 bytes, output of {@link deriveSharedSecret})
|
|
256
|
+
* - `salt` = `txId` (32 bytes, decoded from the 0x-prefixed hex form)
|
|
257
|
+
* - `info` = `"agirails-delivery-v1"` UTF-8 by default (overridable
|
|
258
|
+
* for *testing only* via the optional `info` argument —
|
|
259
|
+
* production callers MUST use the default)
|
|
260
|
+
* - `digest` = SHA-256
|
|
261
|
+
* - `keylen` = 32 bytes
|
|
262
|
+
*
|
|
263
|
+
* Salting with the on-chain `txId` binds the session key to a
|
|
264
|
+
* specific ACTP transaction. Even if two parties exchange the same
|
|
265
|
+
* ephemeral keypairs across two different transactions (which would
|
|
266
|
+
* itself be a protocol violation), the resulting session keys would
|
|
267
|
+
* differ — limiting blast radius.
|
|
268
|
+
*
|
|
269
|
+
* ## Implementation choice: node:crypto
|
|
270
|
+
*
|
|
271
|
+
* We use Node's built-in `crypto.hkdfSync` rather than `@noble/hashes`
|
|
272
|
+
* to keep the dependency surface minimal. The behavior is identical:
|
|
273
|
+
* both implementations follow RFC 5869 step-for-step.
|
|
274
|
+
*
|
|
275
|
+
* Note that `hkdfSync` returns an `ArrayBuffer`; we wrap it in a
|
|
276
|
+
* `Uint8Array` view for ergonomic interop with `@noble/curves` and
|
|
277
|
+
* the rest of the SDK.
|
|
278
|
+
*
|
|
279
|
+
* @param sharedSecret - The 32-byte ECDH output from {@link deriveSharedSecret}.
|
|
280
|
+
* @param txId - The on-chain transaction id (`bytes32`) as a 0x-prefixed
|
|
281
|
+
* lowercase hex string (66 chars total).
|
|
282
|
+
* @param info - Optional info string override. Defaults to
|
|
283
|
+
* {@link DELIVERY_HKDF_INFO_V1}. Production callers MUST omit this
|
|
284
|
+
* argument; it exists solely so tests can assert that distinct
|
|
285
|
+
* info strings produce distinct keys (negative test).
|
|
286
|
+
* @returns A 32-byte session key suitable for AES-256-GCM.
|
|
287
|
+
* @throws {DeliveryCryptoError} `crypto_hkdf_failed` on length mismatch,
|
|
288
|
+
* malformed `txId`, or underlying `hkdfSync` failure.
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* ```typescript
|
|
292
|
+
* const key = deriveSessionKey(shared, '0xabc…32bytes…');
|
|
293
|
+
* // → 32-byte Uint8Array, ready for createCipheriv('aes-256-gcm', key, nonce)
|
|
294
|
+
* ```
|
|
295
|
+
*/
|
|
296
|
+
export declare function deriveSessionKey(sharedSecret: Uint8Array, txId: `0x${string}`, info?: string): Uint8Array;
|
|
297
|
+
/**
|
|
298
|
+
* Serialize a 32-byte X25519 public key to its canonical 0x-prefixed
|
|
299
|
+
* lowercase hex form.
|
|
300
|
+
*
|
|
301
|
+
* This is exactly the form embedded into the `bytes32` slots of the
|
|
302
|
+
* signed EIP-712 payloads (`buyerEphemeralPubkey`,
|
|
303
|
+
* `providerEphemeralPubkey`). The lowercase normalization ensures
|
|
304
|
+
* that two SDKs producing the same key produce byte-identical hex
|
|
305
|
+
* strings; the JSON serialization of the wire envelope then has
|
|
306
|
+
* exactly one valid encoding, which is required for any downstream
|
|
307
|
+
* `JSON.stringify` + hash anchoring.
|
|
308
|
+
*
|
|
309
|
+
* @param pubkey - X25519 public key, exactly 32 bytes.
|
|
310
|
+
* @returns The 0x-prefixed lowercase hex form (66 chars).
|
|
311
|
+
* @throws {DeliveryCryptoError} `crypto_keygen_failed` if `pubkey` is
|
|
312
|
+
* not a `Uint8Array` of length 32.
|
|
313
|
+
*
|
|
314
|
+
* @example
|
|
315
|
+
* ```typescript
|
|
316
|
+
* pubkeyToHex(new Uint8Array(32)); // "0x00...00" (32 zero bytes)
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
export declare function pubkeyToHex(pubkey: Uint8Array): `0x${string}`;
|
|
320
|
+
/**
|
|
321
|
+
* Deserialize a 0x-prefixed hex string into a 32-byte X25519 public
|
|
322
|
+
* key.
|
|
323
|
+
*
|
|
324
|
+
* Accepts both uppercase and lowercase hex digits in the input (for
|
|
325
|
+
* resilience with legacy systems and Ethereum's mixed-case checksum
|
|
326
|
+
* convention — though X25519 keys are NOT checksummed). The output is
|
|
327
|
+
* always raw bytes; if you need the canonical hex form, call
|
|
328
|
+
* `pubkeyToHex` on the result, which will be lowercase.
|
|
329
|
+
*
|
|
330
|
+
* @param hex - 0x-prefixed hex string, exactly 66 characters (`0x` +
|
|
331
|
+
* 64 hex chars).
|
|
332
|
+
* @returns The 32-byte X25519 public key.
|
|
333
|
+
* @throws {DeliveryCryptoError} `crypto_keygen_failed` if `hex` is
|
|
334
|
+
* missing the `0x` prefix, the wrong length, or contains non-hex
|
|
335
|
+
* characters.
|
|
336
|
+
*
|
|
337
|
+
* @example
|
|
338
|
+
* ```typescript
|
|
339
|
+
* const bytes = pubkeyFromHex('0x' + 'ab'.repeat(32));
|
|
340
|
+
* // → Uint8Array(32) [0xab, 0xab, …]
|
|
341
|
+
* ```
|
|
342
|
+
*/
|
|
343
|
+
export declare function pubkeyFromHex(hex: string): Uint8Array;
|
|
344
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/delivery/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAMjD;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,IAAc,CAAC;AAEpD;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,IAAc,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,IAAc,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,IAAc,CAAC;AAEvD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,IAAc,CAAC;AAEvC;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,wBAAkC,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,uEAAuE;IACvE,SAAgB,IAAI,EAAE,iBAAiB,CAAC;IACxC,iFAAiF;IACjF,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGhD,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CASpC;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,SAAS,EAAE,UAAU,CAAC;IAEtB;;;;;;;OAOG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;;;;OAKG;IACH,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;CAC7B;AAwID;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,wBAAwB,IAAI,gBAAgB,CAsC3D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,GACrB,UAAU,CA2CZ;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,UAAU,EACxB,IAAI,EAAE,KAAK,MAAM,EAAE,EACnB,IAAI,GAAE,MAA8B,GACnC,UAAU,CAgEZ;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,MAAM,EAAE,CAQ7D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAKrD"}
|