@enbox/agent 0.1.3 → 0.1.4
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/browser.mjs +45 -52
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/crypto-api.js +6 -13
- package/dist/esm/crypto-api.js.map +1 -1
- package/dist/esm/dwn-api.js +80 -78
- package/dist/esm/dwn-api.js.map +1 -1
- package/dist/esm/hd-identity-vault.js +4 -5
- package/dist/esm/hd-identity-vault.js.map +1 -1
- package/dist/esm/identity-api.js +1 -1
- package/dist/esm/identity-api.js.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/local-key-manager.js +31 -32
- package/dist/esm/local-key-manager.js.map +1 -1
- package/dist/esm/prototyping/crypto/jose/jwe-compact.js +1 -2
- package/dist/esm/prototyping/crypto/jose/jwe-compact.js.map +1 -1
- package/dist/esm/prototyping/crypto/jose/jwe-flattened.js +15 -4
- package/dist/esm/prototyping/crypto/jose/jwe-flattened.js.map +1 -1
- package/dist/esm/prototyping/crypto/jose/jwe.js +1 -1
- package/dist/esm/prototyping/crypto/jose/jwe.js.map +1 -1
- package/dist/esm/store-data.js +3 -3
- package/dist/esm/store-data.js.map +1 -1
- package/dist/esm/store-did.js +1 -1
- package/dist/esm/store-did.js.map +1 -1
- package/dist/esm/sync-engine-level.js +49 -11
- package/dist/esm/sync-engine-level.js.map +1 -1
- package/dist/esm/test-harness.js +24 -8
- package/dist/esm/test-harness.js.map +1 -1
- package/dist/esm/types/dwn.js +1 -1
- package/dist/esm/types/dwn.js.map +1 -1
- package/dist/esm/web5-user-agent.js +1 -1
- package/dist/esm/web5-user-agent.js.map +1 -1
- package/dist/types/crypto-api.d.ts +8 -12
- package/dist/types/crypto-api.d.ts.map +1 -1
- package/dist/types/dwn-api.d.ts +10 -10
- package/dist/types/dwn-api.d.ts.map +1 -1
- package/dist/types/hd-identity-vault.d.ts.map +1 -1
- package/dist/types/identity-api.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/local-key-manager.d.ts +15 -18
- package/dist/types/local-key-manager.d.ts.map +1 -1
- package/dist/types/prototyping/crypto/jose/jwe-compact.d.ts +1 -3
- package/dist/types/prototyping/crypto/jose/jwe-compact.d.ts.map +1 -1
- package/dist/types/prototyping/crypto/jose/jwe-flattened.d.ts +1 -3
- package/dist/types/prototyping/crypto/jose/jwe-flattened.d.ts.map +1 -1
- package/dist/types/prototyping/crypto/jose/jwe.d.ts +1 -3
- package/dist/types/prototyping/crypto/jose/jwe.d.ts.map +1 -1
- package/dist/types/store-data.d.ts +2 -2
- package/dist/types/store-did.d.ts.map +1 -1
- package/dist/types/sync-engine-level.d.ts +18 -6
- package/dist/types/sync-engine-level.d.ts.map +1 -1
- package/dist/types/test-harness.d.ts.map +1 -1
- package/dist/types/types/agent.d.ts +1 -1
- package/dist/types/types/agent.d.ts.map +1 -1
- package/dist/types/types/dwn.d.ts +2 -2
- package/dist/types/types/dwn.d.ts.map +1 -1
- package/dist/types/types/key-manager.d.ts +15 -22
- package/dist/types/types/key-manager.d.ts.map +1 -1
- package/dist/types/utils-internal.d.ts +1 -1
- package/dist/types/utils-internal.d.ts.map +1 -1
- package/dist/types/web5-user-agent.d.ts +1 -1
- package/dist/types/web5-user-agent.d.ts.map +1 -1
- package/package.json +10 -12
- package/src/crypto-api.ts +24 -20
- package/src/dwn-api.ts +109 -102
- package/src/hd-identity-vault.ts +4 -5
- package/src/identity-api.ts +2 -1
- package/src/index.ts +0 -2
- package/src/local-key-manager.ts +43 -44
- package/src/prototyping/crypto/jose/jwe-compact.ts +3 -7
- package/src/prototyping/crypto/jose/jwe-flattened.ts +20 -9
- package/src/prototyping/crypto/jose/jwe.ts +2 -6
- package/src/store-data.ts +3 -3
- package/src/store-did.ts +1 -1
- package/src/sync-engine-level.ts +59 -16
- package/src/test-harness.ts +23 -8
- package/src/types/agent.ts +1 -1
- package/src/types/dwn.ts +2 -2
- package/src/types/key-manager.ts +31 -22
- package/src/utils-internal.ts +1 -1
- package/src/web5-user-agent.ts +2 -2
- package/dist/browser.js +0 -2213
- package/dist/browser.js.map +0 -7
- package/dist/esm/dwn-registrar.js +0 -120
- package/dist/esm/dwn-registrar.js.map +0 -1
- package/dist/esm/prototyping/clients/dwn-rpc-types.js +0 -2
- package/dist/esm/prototyping/clients/dwn-rpc-types.js.map +0 -1
- package/dist/esm/prototyping/clients/dwn-server-info-cache-memory.js +0 -74
- package/dist/esm/prototyping/clients/dwn-server-info-cache-memory.js.map +0 -1
- package/dist/esm/prototyping/clients/http-dwn-rpc-client.js +0 -112
- package/dist/esm/prototyping/clients/http-dwn-rpc-client.js.map +0 -1
- package/dist/esm/prototyping/clients/json-rpc-socket.js +0 -167
- package/dist/esm/prototyping/clients/json-rpc-socket.js.map +0 -1
- package/dist/esm/prototyping/clients/json-rpc.js +0 -58
- package/dist/esm/prototyping/clients/json-rpc.js.map +0 -1
- package/dist/esm/prototyping/clients/server-info-types.js +0 -2
- package/dist/esm/prototyping/clients/server-info-types.js.map +0 -1
- package/dist/esm/prototyping/clients/web-socket-clients.js +0 -90
- package/dist/esm/prototyping/clients/web-socket-clients.js.map +0 -1
- package/dist/esm/prototyping/common/object.js +0 -14
- package/dist/esm/prototyping/common/object.js.map +0 -1
- package/dist/esm/prototyping/common/type-utils.js +0 -2
- package/dist/esm/prototyping/common/type-utils.js.map +0 -1
- package/dist/esm/prototyping/crypto/algorithms/aes-gcm.js +0 -147
- package/dist/esm/prototyping/crypto/algorithms/aes-gcm.js.map +0 -1
- package/dist/esm/prototyping/crypto/algorithms/aes-kw.js +0 -136
- package/dist/esm/prototyping/crypto/algorithms/aes-kw.js.map +0 -1
- package/dist/esm/prototyping/crypto/algorithms/ecdsa.js +0 -311
- package/dist/esm/prototyping/crypto/algorithms/ecdsa.js.map +0 -1
- package/dist/esm/prototyping/crypto/algorithms/eddsa.js +0 -268
- package/dist/esm/prototyping/crypto/algorithms/eddsa.js.map +0 -1
- package/dist/esm/prototyping/crypto/algorithms/hkdf.js +0 -38
- package/dist/esm/prototyping/crypto/algorithms/hkdf.js.map +0 -1
- package/dist/esm/prototyping/crypto/algorithms/pbkdf2.js +0 -40
- package/dist/esm/prototyping/crypto/algorithms/pbkdf2.js.map +0 -1
- package/dist/esm/prototyping/crypto/crypto-error.js +0 -41
- package/dist/esm/prototyping/crypto/crypto-error.js.map +0 -1
- package/dist/esm/prototyping/crypto/types/crypto-api.js +0 -2
- package/dist/esm/prototyping/crypto/types/crypto-api.js.map +0 -1
- package/dist/esm/prototyping/crypto/types/key-converter.js +0 -2
- package/dist/esm/prototyping/crypto/types/key-converter.js.map +0 -1
- package/dist/esm/prototyping/crypto/types/key-deriver.js +0 -2
- package/dist/esm/prototyping/crypto/types/key-deriver.js.map +0 -1
- package/dist/esm/prototyping/crypto/types/key-io.js +0 -2
- package/dist/esm/prototyping/crypto/types/key-io.js.map +0 -1
- package/dist/esm/prototyping/crypto/types/key-manager.js +0 -2
- package/dist/esm/prototyping/crypto/types/key-manager.js.map +0 -1
- package/dist/esm/prototyping/crypto/types/params-direct.js +0 -2
- package/dist/esm/prototyping/crypto/types/params-direct.js.map +0 -1
- package/dist/esm/prototyping/crypto/types/params-kms.js +0 -2
- package/dist/esm/prototyping/crypto/types/params-kms.js.map +0 -1
- package/dist/esm/prototyping/crypto/utils.js +0 -19
- package/dist/esm/prototyping/crypto/utils.js.map +0 -1
- package/dist/esm/prototyping/dids/resolver-cache-memory.js +0 -77
- package/dist/esm/prototyping/dids/resolver-cache-memory.js.map +0 -1
- package/dist/esm/prototyping/dids/utils.js +0 -9
- package/dist/esm/prototyping/dids/utils.js.map +0 -1
- package/dist/esm/rpc-client.js +0 -123
- package/dist/esm/rpc-client.js.map +0 -1
- package/dist/types/dwn-registrar.d.ts +0 -29
- package/dist/types/dwn-registrar.d.ts.map +0 -1
- package/dist/types/prototyping/clients/dwn-rpc-types.d.ts +0 -45
- package/dist/types/prototyping/clients/dwn-rpc-types.d.ts.map +0 -1
- package/dist/types/prototyping/clients/dwn-server-info-cache-memory.d.ts +0 -57
- package/dist/types/prototyping/clients/dwn-server-info-cache-memory.d.ts.map +0 -1
- package/dist/types/prototyping/clients/http-dwn-rpc-client.d.ts +0 -13
- package/dist/types/prototyping/clients/http-dwn-rpc-client.d.ts.map +0 -1
- package/dist/types/prototyping/clients/json-rpc-socket.d.ts +0 -43
- package/dist/types/prototyping/clients/json-rpc-socket.d.ts.map +0 -1
- package/dist/types/prototyping/clients/json-rpc.d.ts +0 -49
- package/dist/types/prototyping/clients/json-rpc.d.ts.map +0 -1
- package/dist/types/prototyping/clients/server-info-types.d.ts +0 -20
- package/dist/types/prototyping/clients/server-info-types.d.ts.map +0 -1
- package/dist/types/prototyping/clients/web-socket-clients.d.ts +0 -10
- package/dist/types/prototyping/clients/web-socket-clients.d.ts.map +0 -1
- package/dist/types/prototyping/common/object.d.ts +0 -2
- package/dist/types/prototyping/common/object.d.ts.map +0 -1
- package/dist/types/prototyping/common/type-utils.d.ts +0 -7
- package/dist/types/prototyping/common/type-utils.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/algorithms/aes-gcm.d.ts +0 -151
- package/dist/types/prototyping/crypto/algorithms/aes-gcm.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/algorithms/aes-kw.d.ts +0 -108
- package/dist/types/prototyping/crypto/algorithms/aes-kw.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/algorithms/ecdsa.d.ts +0 -160
- package/dist/types/prototyping/crypto/algorithms/ecdsa.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/algorithms/eddsa.d.ts +0 -157
- package/dist/types/prototyping/crypto/algorithms/eddsa.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/algorithms/hkdf.d.ts +0 -20
- package/dist/types/prototyping/crypto/algorithms/hkdf.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/algorithms/pbkdf2.d.ts +0 -20
- package/dist/types/prototyping/crypto/algorithms/pbkdf2.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/crypto-error.d.ts +0 -29
- package/dist/types/prototyping/crypto/crypto-error.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/types/crypto-api.d.ts +0 -34
- package/dist/types/prototyping/crypto/types/crypto-api.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/types/key-converter.d.ts +0 -49
- package/dist/types/prototyping/crypto/types/key-converter.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/types/key-deriver.d.ts +0 -50
- package/dist/types/prototyping/crypto/types/key-deriver.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/types/key-io.d.ts +0 -49
- package/dist/types/prototyping/crypto/types/key-io.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/types/key-manager.d.ts +0 -69
- package/dist/types/prototyping/crypto/types/key-manager.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/types/params-direct.d.ts +0 -75
- package/dist/types/prototyping/crypto/types/params-direct.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/types/params-kms.d.ts +0 -63
- package/dist/types/prototyping/crypto/types/params-kms.d.ts.map +0 -1
- package/dist/types/prototyping/crypto/utils.d.ts +0 -7
- package/dist/types/prototyping/crypto/utils.d.ts.map +0 -1
- package/dist/types/prototyping/dids/resolver-cache-memory.d.ts +0 -57
- package/dist/types/prototyping/dids/resolver-cache-memory.d.ts.map +0 -1
- package/dist/types/prototyping/dids/utils.d.ts +0 -3
- package/dist/types/prototyping/dids/utils.d.ts.map +0 -1
- package/dist/types/rpc-client.d.ts +0 -51
- package/dist/types/rpc-client.d.ts.map +0 -1
- package/src/dwn-registrar.ts +0 -127
- package/src/prototyping/clients/dwn-rpc-types.ts +0 -55
- package/src/prototyping/clients/dwn-server-info-cache-memory.ts +0 -79
- package/src/prototyping/clients/http-dwn-rpc-client.ts +0 -119
- package/src/prototyping/clients/json-rpc-socket.ts +0 -189
- package/src/prototyping/clients/json-rpc.ts +0 -113
- package/src/prototyping/clients/server-info-types.ts +0 -21
- package/src/prototyping/clients/web-socket-clients.ts +0 -103
- package/src/prototyping/common/object.ts +0 -15
- package/src/prototyping/common/type-utils.ts +0 -6
- package/src/prototyping/crypto/algorithms/aes-gcm.ts +0 -211
- package/src/prototyping/crypto/algorithms/aes-kw.ts +0 -160
- package/src/prototyping/crypto/algorithms/ecdsa.ts +0 -366
- package/src/prototyping/crypto/algorithms/eddsa.ts +0 -311
- package/src/prototyping/crypto/algorithms/hkdf.ts +0 -38
- package/src/prototyping/crypto/algorithms/pbkdf2.ts +0 -41
- package/src/prototyping/crypto/crypto-error.ts +0 -45
- package/src/prototyping/crypto/types/crypto-api.ts +0 -77
- package/src/prototyping/crypto/types/key-converter.ts +0 -53
- package/src/prototyping/crypto/types/key-deriver.ts +0 -56
- package/src/prototyping/crypto/types/key-io.ts +0 -51
- package/src/prototyping/crypto/types/key-manager.ts +0 -83
- package/src/prototyping/crypto/types/params-direct.ts +0 -95
- package/src/prototyping/crypto/types/params-kms.ts +0 -76
- package/src/prototyping/crypto/utils.ts +0 -41
- package/src/prototyping/dids/resolver-cache-memory.ts +0 -83
- package/src/prototyping/dids/utils.ts +0 -10
- package/src/rpc-client.ts +0 -160
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import type { Cipher, Jwk, KeyIdentifier, KeyWrapper, KmsExportKeyParams, KmsImportKeyParams, PublicKeyJwk } from '@enbox/crypto';
|
|
2
|
-
import type { KeyManager } from '../prototyping/crypto/types/key-manager.js';
|
|
1
|
+
import type { Cipher, Jwk, KeyDeleter, KeyExporter, KeyIdentifier, KeyImporter, KeyManager, KeyWrapper, KmsCipherParams, KmsDeleteKeyParams, KmsExportKeyParams, KmsImportKeyParams, KmsUriUnwrapKeyParams, KmsUriWrapKeyParams, PublicKeyJwk } from '@enbox/crypto';
|
|
3
2
|
import type { Web5PlatformAgent } from './agent.js';
|
|
4
|
-
|
|
5
|
-
import type { KmsCipherParams, KmsDeleteKeyParams, KmsUnwrapKeyParams, KmsWrapKeyParams } from '../prototyping/crypto/types/params-kms.js';
|
|
6
|
-
export interface AgentKeyManager extends KeyManager, Cipher<KmsCipherParams, KmsCipherParams>, KeyImporter<KmsImportKeyParams, KeyIdentifier>, KeyExporter<KmsExportKeyParams, Jwk>, KeyDeleter<KmsDeleteKeyParams>, KeyWrapper<KmsWrapKeyParams, KmsUnwrapKeyParams> {
|
|
3
|
+
export interface AgentKeyManager extends KeyManager, Cipher<KmsCipherParams, KmsCipherParams>, KeyImporter<KmsImportKeyParams, KeyIdentifier>, KeyExporter<KmsExportKeyParams, Jwk>, KeyDeleter<KmsDeleteKeyParams>, KeyWrapper<KmsUriWrapKeyParams, KmsUriUnwrapKeyParams> {
|
|
7
4
|
agent: Web5PlatformAgent;
|
|
8
5
|
/**
|
|
9
6
|
* Derives an HD child public key from a stored private key using HKDF-SHA256
|
|
@@ -11,7 +8,7 @@ export interface AgentKeyManager extends KeyManager, Cipher<KmsCipherParams, Kms
|
|
|
11
8
|
*
|
|
12
9
|
* The private key never leaves the KMS boundary — only the public key is returned.
|
|
13
10
|
*
|
|
14
|
-
* @param params.keyUri - URI of the stored ancestor private key (
|
|
11
|
+
* @param params.keyUri - URI of the stored ancestor private key (X25519)
|
|
15
12
|
* @param params.derivationPath - Array of HKDF path segments to derive through
|
|
16
13
|
* @returns The derived child public key as a JWK
|
|
17
14
|
*/
|
|
@@ -20,30 +17,26 @@ export interface AgentKeyManager extends KeyManager, Cipher<KmsCipherParams, Kms
|
|
|
20
17
|
derivationPath: string[];
|
|
21
18
|
}): Promise<PublicKeyJwk>;
|
|
22
19
|
/**
|
|
23
|
-
*
|
|
20
|
+
* Unwraps a JWE-encrypted Content Encryption Key (CEK) using a derived X25519 private key.
|
|
24
21
|
*
|
|
25
22
|
* This method:
|
|
26
23
|
* 1. Derives the leaf private key via HKDF through the derivation path
|
|
27
|
-
* 2. Performs
|
|
28
|
-
* 3.
|
|
24
|
+
* 2. Performs ECDH-ES key agreement with the ephemeral public key
|
|
25
|
+
* 3. Derives the KEK via Concat KDF and unwraps the CEK with AES-256 Key Unwrap
|
|
29
26
|
*
|
|
30
|
-
* The derived private key is used internally and discarded after
|
|
27
|
+
* The derived private key is used internally and discarded after unwrapping.
|
|
31
28
|
*
|
|
32
|
-
* @param params.keyUri - URI of the stored ancestor private key (
|
|
29
|
+
* @param params.keyUri - URI of the stored ancestor private key (X25519)
|
|
33
30
|
* @param params.derivationPath - Array of HKDF path segments to derive the leaf key
|
|
34
|
-
* @param params.
|
|
35
|
-
* @param params.ephemeralPublicKey - Ephemeral public key from
|
|
36
|
-
* @
|
|
37
|
-
* @param params.messageAuthenticationCode - MAC tag for integrity verification
|
|
38
|
-
* @returns The decrypted plaintext bytes
|
|
31
|
+
* @param params.encryptedKey - The wrapped CEK bytes from the JWE recipient
|
|
32
|
+
* @param params.ephemeralPublicKey - Ephemeral X25519 public key from the JWE recipient header
|
|
33
|
+
* @returns The unwrapped CEK bytes (typically 32 bytes for AES-256)
|
|
39
34
|
*/
|
|
40
|
-
|
|
35
|
+
jweKeyUnwrap(params: {
|
|
41
36
|
keyUri: KeyIdentifier;
|
|
42
37
|
derivationPath: string[];
|
|
43
|
-
|
|
44
|
-
ephemeralPublicKey:
|
|
45
|
-
initializationVector: Uint8Array;
|
|
46
|
-
messageAuthenticationCode: Uint8Array;
|
|
38
|
+
encryptedKey: Uint8Array;
|
|
39
|
+
ephemeralPublicKey: PublicKeyJwk;
|
|
47
40
|
}): Promise<Uint8Array>;
|
|
48
41
|
/**
|
|
49
42
|
* Derives an HD child private key from a stored private key using HKDF-SHA256
|
|
@@ -59,7 +52,7 @@ export interface AgentKeyManager extends KeyManager, Cipher<KmsCipherParams, Kms
|
|
|
59
52
|
* immediately encrypted with the recipient's public key and the raw bytes
|
|
60
53
|
* are discarded after encryption.
|
|
61
54
|
*
|
|
62
|
-
* @param params.keyUri - URI of the stored ancestor private key (
|
|
55
|
+
* @param params.keyUri - URI of the stored ancestor private key (X25519)
|
|
63
56
|
* @param params.derivationPath - Array of HKDF path segments to derive through
|
|
64
57
|
* @returns The derived child private key as raw bytes
|
|
65
58
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-manager.d.ts","sourceRoot":"","sources":["../../../src/types/key-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"key-manager.d.ts","sourceRoot":"","sources":["../../../src/types/key-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,GAAG,EACH,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACb,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,eAAgB,SAAQ,UAAU,EACjD,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,EACxC,WAAW,CAAC,kBAAkB,EAAE,aAAa,CAAC,EAC9C,WAAW,CAAC,kBAAkB,EAAE,GAAG,CAAC,EACpC,UAAU,CAAC,kBAAkB,CAAC,EAC9B,UAAU,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;IAEtD,KAAK,EAAE,iBAAiB,CAAC;IAEzB;;;;;;;;;OASG;IACH,eAAe,CAAC,MAAM,EAAE;QACtB,MAAM,EAAE,aAAa,CAAC;QACtB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE1B;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,aAAa,CAAC;QACtB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,YAAY,EAAE,UAAU,CAAC;QACzB,kBAAkB,EAAE,YAAY,CAAC;KAClC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAExB;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAAqB,CAAC,MAAM,EAAE;QAC5B,MAAM,EAAE,aAAa,CAAC;QACtB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACzB"}
|
|
@@ -19,7 +19,7 @@ export declare class DeterministicKeyGenerator extends LocalKeyManager {
|
|
|
19
19
|
}): Promise<void>;
|
|
20
20
|
exportKey({ keyUri }: KmsExportKeyParams): Promise<Jwk>;
|
|
21
21
|
generateKey(_params: {
|
|
22
|
-
algorithm: 'Ed25519' | 'secp256k1' | 'secp256r1';
|
|
22
|
+
algorithm: 'Ed25519' | 'secp256k1' | 'secp256r1' | 'X25519';
|
|
23
23
|
}): Promise<KeyIdentifier>;
|
|
24
24
|
getPublicKey({ keyUri }: KmsGetPublicKeyParams): Promise<Jwk>;
|
|
25
25
|
sign({ keyUri, data }: KmsSignParams): Promise<Uint8Array>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-internal.d.ts","sourceRoot":"","sources":["../../src/utils-internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAElH,OAAO,EAAiC,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,qBAAa,yBAA0B,SAAQ,eAAe;IAC5D,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,aAAa,CAAkC;;IAQ1C,iBAAiB,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzE,SAAS,CAAC,EAAE,MAAM,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAYF,WAAW,CAAC,OAAO,EAAE;QAChC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"utils-internal.d.ts","sourceRoot":"","sources":["../../src/utils-internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAElH,OAAO,EAAiC,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,qBAAa,yBAA0B,SAAQ,eAAe;IAC5D,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,aAAa,CAAkC;;IAQ1C,iBAAiB,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,GAAG,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzE,SAAS,CAAC,EAAE,MAAM,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAYF,WAAW,CAAC,OAAO,EAAE;QAChC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAA;KAC5D,GAAG,OAAO,CAAC,aAAa,CAAC;IAYb,YAAY,CAAC,EAAE,MAAM,EAAE,EAChC,qBAAqB,GACtB,OAAO,CAAC,GAAG,CAAC;IAeF,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAChC,aAAa,GACZ,OAAO,CAAC,UAAU,CAAC;CAcvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAClE,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBlB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AgentKeyManager } from './types/key-manager.js';
|
|
2
2
|
import type { BearerDid } from '@enbox/dids';
|
|
3
3
|
import type { Web5PlatformAgent } from './types/agent.js';
|
|
4
|
-
import type { Web5Rpc } from '
|
|
4
|
+
import type { Web5Rpc } from '@enbox/dwn-clients';
|
|
5
5
|
import type { DidInterface, DidRequest, DidResponse } from './did-api.js';
|
|
6
6
|
import type { DwnInterface, DwnResponse, ProcessDwnRequest, SendDwnRequest } from './types/dwn.js';
|
|
7
7
|
import type { ProcessVcRequest, SendVcRequest, VcResponse } from './types/vc.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web5-user-agent.d.ts","sourceRoot":"","sources":["../../src/web5-user-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"web5-user-agent.d.ts","sourceRoot":"","sources":["../../src/web5-user-agent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enbox/agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/esm/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -8,14 +8,14 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"clean": "rimraf dist",
|
|
10
10
|
"build:esm": "rimraf dist/esm dist/types && bun tsc -p tsconfig.json",
|
|
11
|
-
"build:browser": "rimraf dist/browser.mjs
|
|
12
|
-
"build:tests:browser": "rimraf tests/compiled && bun build/esbuild-tests.cjs",
|
|
11
|
+
"build:browser": "rimraf dist/browser.mjs && bun ../../build/browser-bundle.js --node-shims",
|
|
13
12
|
"build": "bun run clean && bun run build:esm && bun run build:browser",
|
|
14
13
|
"lint": "eslint . --max-warnings 0",
|
|
15
14
|
"lint:fix": "eslint . --fix",
|
|
16
15
|
"test:node": "bun test --timeout 10000 .spec.ts",
|
|
17
16
|
"test:node:coverage": "bun test --timeout 10000 --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir=coverage .spec.ts",
|
|
18
|
-
"test:browser": "bun
|
|
17
|
+
"test:browser": "bunx --bun vitest --config vitest.browser.config.ts --run",
|
|
18
|
+
"test:browser:coverage": "bunx --bun vitest --config vitest.browser.config.ts --run --coverage --coverage.provider=istanbul --coverage.reportsDirectory=./coverage-browser"
|
|
19
19
|
},
|
|
20
20
|
"homepage": "https://github.com/enboxorg/enbox/tree/main/packages/agent#readme",
|
|
21
21
|
"bugs": "https://github.com/enboxorg/enbox/issues",
|
|
@@ -71,7 +71,8 @@
|
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
73
|
"@scure/bip39": "1.2.2",
|
|
74
|
-
"@enbox/dwn-
|
|
74
|
+
"@enbox/dwn-clients": "0.0.2",
|
|
75
|
+
"@enbox/dwn-sdk-js": "0.0.5",
|
|
75
76
|
"@enbox/common": "0.0.3",
|
|
76
77
|
"@enbox/crypto": "0.0.3",
|
|
77
78
|
"@enbox/dids": "0.0.3",
|
|
@@ -82,23 +83,20 @@
|
|
|
82
83
|
"ulidx": "2.1.0"
|
|
83
84
|
},
|
|
84
85
|
"devDependencies": {
|
|
85
|
-
"@playwright/test": "1.45.3",
|
|
86
86
|
"@types/dns-packet": "5.6.4",
|
|
87
87
|
"@types/ms": "0.7.31",
|
|
88
88
|
"@types/node": "20.14.8",
|
|
89
89
|
"@types/sinon": "17.0.3",
|
|
90
90
|
"@typescript-eslint/eslint-plugin": "8.32.1",
|
|
91
91
|
"@typescript-eslint/parser": "8.32.1",
|
|
92
|
-
"@
|
|
93
|
-
"@
|
|
92
|
+
"@vitest/browser-playwright": "4.0.18",
|
|
93
|
+
"@vitest/coverage-istanbul": "4.0.18",
|
|
94
94
|
"abstract-level": "1.0.4",
|
|
95
95
|
"bun-types": "latest",
|
|
96
|
-
"esbuild": "0.19.8",
|
|
97
96
|
"eslint": "9.7.0",
|
|
98
|
-
"node-stdlib-browser": "1.2.0",
|
|
99
|
-
"playwright": "1.45.3",
|
|
100
97
|
"rimraf": "4.4.0",
|
|
101
98
|
"sinon": "18.0.0",
|
|
102
|
-
"typescript": "5.5.4"
|
|
99
|
+
"typescript": "5.5.4",
|
|
100
|
+
"vitest": "4.0.18"
|
|
103
101
|
}
|
|
104
102
|
}
|
package/src/crypto-api.ts
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
AesGcmParams,
|
|
3
|
+
AsymmetricKeyConverter,
|
|
3
4
|
AsymmetricKeyGenerator,
|
|
4
5
|
BytesToPrivateKeyParams,
|
|
5
6
|
BytesToPublicKeyParams,
|
|
6
7
|
Cipher,
|
|
7
8
|
CipherParams,
|
|
8
9
|
CryptoAlgorithm,
|
|
10
|
+
CryptoApi,
|
|
9
11
|
DeriveKeyBytesParams,
|
|
12
|
+
DeriveKeyFromBytesParams,
|
|
10
13
|
DigestParams,
|
|
11
14
|
GenerateKeyParams,
|
|
12
15
|
GetPublicKeyParams,
|
|
13
16
|
Hasher,
|
|
14
17
|
HkdfParams,
|
|
15
18
|
Jwk,
|
|
19
|
+
KeyBytesDeriver,
|
|
20
|
+
KeyConverter,
|
|
16
21
|
KeyWrapper,
|
|
17
|
-
KmsGetKeyUriParams,
|
|
18
22
|
Pbkdf2Params,
|
|
19
23
|
PrivateKeyToBytesParams,
|
|
20
24
|
PublicKeyToBytesParams,
|
|
@@ -24,19 +28,19 @@ import type {
|
|
|
24
28
|
VerifyParams,
|
|
25
29
|
WrapKeyParams } from '@enbox/crypto';
|
|
26
30
|
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
import {
|
|
32
|
+
AesGcmAlgorithm,
|
|
33
|
+
AesKwAlgorithm,
|
|
34
|
+
computeJwkThumbprint,
|
|
35
|
+
CryptoError,
|
|
36
|
+
CryptoErrorCode,
|
|
37
|
+
EcdsaAlgorithm,
|
|
38
|
+
EdDsaAlgorithm,
|
|
39
|
+
HkdfAlgorithm,
|
|
40
|
+
Pbkdf2Algorithm,
|
|
41
|
+
Sha2Algorithm,
|
|
42
|
+
X25519Algorithm,
|
|
43
|
+
} from '@enbox/crypto';
|
|
40
44
|
|
|
41
45
|
export interface CryptoApiBytesToPrivateKeyParams extends BytesToPrivateKeyParams {
|
|
42
46
|
algorithm: KeyConversionAlgorithm;
|
|
@@ -87,7 +91,7 @@ export interface CryptoApiDeriveKeyBytesOptions {
|
|
|
87
91
|
* The `CryptoApiDeriveKeyParams` interface defines the algorithm-specific parameters that
|
|
88
92
|
* should be passed into the {@link AgentCryptoApi.deriveKey | `AgentCryptoApi.deriveKey()`} method.
|
|
89
93
|
*/
|
|
90
|
-
export type CryptoApiDeriveKeyParams<T extends DeriveKeyAlgorithm> =
|
|
94
|
+
export type CryptoApiDeriveKeyParams<T extends DeriveKeyAlgorithm> = DeriveKeyFromBytesParams & {
|
|
91
95
|
/**
|
|
92
96
|
* A string defining the name of key derivation function to use. The value must be one of the
|
|
93
97
|
* following:
|
|
@@ -171,6 +175,11 @@ const supportedAlgorithms = {
|
|
|
171
175
|
implementation : Sha2Algorithm,
|
|
172
176
|
names : ['SHA-256'],
|
|
173
177
|
operations : ['digest'],
|
|
178
|
+
},
|
|
179
|
+
'X25519': {
|
|
180
|
+
implementation : X25519Algorithm,
|
|
181
|
+
names : ['X25519'],
|
|
182
|
+
operations : ['bytesToPrivateKey', 'generateKey'],
|
|
174
183
|
}
|
|
175
184
|
} as const;
|
|
176
185
|
|
|
@@ -412,11 +421,6 @@ export class AgentCryptoApi implements CryptoApi<
|
|
|
412
421
|
return privateKey;
|
|
413
422
|
}
|
|
414
423
|
|
|
415
|
-
// ! TODO: Remove this once the `Dsa` interface is updated in @enbox/crypto to remove KMS-specific methods.
|
|
416
|
-
public async getKeyUri(_params: KmsGetKeyUriParams): Promise<string> {
|
|
417
|
-
throw new Error('Method not implemented.');
|
|
418
|
-
}
|
|
419
|
-
|
|
420
424
|
public async getPublicKey({ key }:
|
|
421
425
|
GetPublicKeyParams
|
|
422
426
|
): Promise<Jwk> {
|