@enbox/agent 0.0.1
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.js +2215 -0
- package/dist/browser.js.map +7 -0
- package/dist/browser.mjs +2215 -0
- package/dist/browser.mjs.map +7 -0
- package/dist/cjs/index.js +8530 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/agent-did-resolver-cache.js +87 -0
- package/dist/esm/agent-did-resolver-cache.js.map +1 -0
- package/dist/esm/bearer-identity.js +41 -0
- package/dist/esm/bearer-identity.js.map +1 -0
- package/dist/esm/connect.js +191 -0
- package/dist/esm/connect.js.map +1 -0
- package/dist/esm/crypto-api.js +346 -0
- package/dist/esm/crypto-api.js.map +1 -0
- package/dist/esm/did-api.js +278 -0
- package/dist/esm/did-api.js.map +1 -0
- package/dist/esm/dwn-api.js +336 -0
- package/dist/esm/dwn-api.js.map +1 -0
- package/dist/esm/dwn-registrar.js +120 -0
- package/dist/esm/dwn-registrar.js.map +1 -0
- package/dist/esm/hd-identity-vault.js +729 -0
- package/dist/esm/hd-identity-vault.js.map +1 -0
- package/dist/esm/identity-api.js +262 -0
- package/dist/esm/identity-api.js.map +1 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/local-key-manager.js +498 -0
- package/dist/esm/local-key-manager.js.map +1 -0
- package/dist/esm/oidc.js +507 -0
- package/dist/esm/oidc.js.map +1 -0
- package/dist/esm/permissions-api.js +322 -0
- package/dist/esm/permissions-api.js.map +1 -0
- package/dist/esm/prototyping/clients/dwn-rpc-types.js +2 -0
- package/dist/esm/prototyping/clients/dwn-rpc-types.js.map +1 -0
- package/dist/esm/prototyping/clients/dwn-server-info-cache-memory.js +74 -0
- package/dist/esm/prototyping/clients/dwn-server-info-cache-memory.js.map +1 -0
- package/dist/esm/prototyping/clients/http-dwn-rpc-client.js +105 -0
- package/dist/esm/prototyping/clients/http-dwn-rpc-client.js.map +1 -0
- package/dist/esm/prototyping/clients/json-rpc-socket.js +150 -0
- package/dist/esm/prototyping/clients/json-rpc-socket.js.map +1 -0
- package/dist/esm/prototyping/clients/json-rpc.js +58 -0
- package/dist/esm/prototyping/clients/json-rpc.js.map +1 -0
- package/dist/esm/prototyping/clients/server-info-types.js +2 -0
- package/dist/esm/prototyping/clients/server-info-types.js.map +1 -0
- package/dist/esm/prototyping/clients/web-socket-clients.js +90 -0
- package/dist/esm/prototyping/clients/web-socket-clients.js.map +1 -0
- package/dist/esm/prototyping/common/object.js +14 -0
- package/dist/esm/prototyping/common/object.js.map +1 -0
- package/dist/esm/prototyping/common/type-utils.js +2 -0
- package/dist/esm/prototyping/common/type-utils.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/aes-gcm.js +147 -0
- package/dist/esm/prototyping/crypto/algorithms/aes-gcm.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/aes-kw.js +137 -0
- package/dist/esm/prototyping/crypto/algorithms/aes-kw.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/ecdsa.js +307 -0
- package/dist/esm/prototyping/crypto/algorithms/ecdsa.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/eddsa.js +264 -0
- package/dist/esm/prototyping/crypto/algorithms/eddsa.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/hkdf.js +39 -0
- package/dist/esm/prototyping/crypto/algorithms/hkdf.js.map +1 -0
- package/dist/esm/prototyping/crypto/algorithms/pbkdf2.js +41 -0
- package/dist/esm/prototyping/crypto/algorithms/pbkdf2.js.map +1 -0
- package/dist/esm/prototyping/crypto/crypto-error.js +41 -0
- package/dist/esm/prototyping/crypto/crypto-error.js.map +1 -0
- package/dist/esm/prototyping/crypto/dsa.js +236 -0
- package/dist/esm/prototyping/crypto/dsa.js.map +1 -0
- package/dist/esm/prototyping/crypto/jose/jwe-compact.js +130 -0
- package/dist/esm/prototyping/crypto/jose/jwe-compact.js.map +1 -0
- package/dist/esm/prototyping/crypto/jose/jwe-flattened.js +294 -0
- package/dist/esm/prototyping/crypto/jose/jwe-flattened.js.map +1 -0
- package/dist/esm/prototyping/crypto/jose/jwe.js +308 -0
- package/dist/esm/prototyping/crypto/jose/jwe.js.map +1 -0
- package/dist/esm/prototyping/crypto/primitives/aes-gcm.js +352 -0
- package/dist/esm/prototyping/crypto/primitives/aes-gcm.js.map +1 -0
- package/dist/esm/prototyping/crypto/primitives/aes-kw.js +247 -0
- package/dist/esm/prototyping/crypto/primitives/aes-kw.js.map +1 -0
- package/dist/esm/prototyping/crypto/primitives/hkdf.js +80 -0
- package/dist/esm/prototyping/crypto/primitives/hkdf.js.map +1 -0
- package/dist/esm/prototyping/crypto/primitives/pbkdf2.js +85 -0
- package/dist/esm/prototyping/crypto/primitives/pbkdf2.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/cipher.js +2 -0
- package/dist/esm/prototyping/crypto/types/cipher.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/crypto-api.js +2 -0
- package/dist/esm/prototyping/crypto/types/crypto-api.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-converter.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-converter.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-deriver.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-deriver.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-io.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-io.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-manager.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-manager.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/key-wrapper.js +2 -0
- package/dist/esm/prototyping/crypto/types/key-wrapper.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/params-direct.js +2 -0
- package/dist/esm/prototyping/crypto/types/params-direct.js.map +1 -0
- package/dist/esm/prototyping/crypto/types/params-kms.js +2 -0
- package/dist/esm/prototyping/crypto/types/params-kms.js.map +1 -0
- package/dist/esm/prototyping/crypto/utils.js +19 -0
- package/dist/esm/prototyping/crypto/utils.js.map +1 -0
- package/dist/esm/prototyping/dids/resolver-cache-memory.js +77 -0
- package/dist/esm/prototyping/dids/resolver-cache-memory.js.map +1 -0
- package/dist/esm/prototyping/dids/utils.js +9 -0
- package/dist/esm/prototyping/dids/utils.js.map +1 -0
- package/dist/esm/rpc-client.js +123 -0
- package/dist/esm/rpc-client.js.map +1 -0
- package/dist/esm/store-data-protocols.js +38 -0
- package/dist/esm/store-data-protocols.js.map +1 -0
- package/dist/esm/store-data.js +320 -0
- package/dist/esm/store-data.js.map +1 -0
- package/dist/esm/store-did.js +136 -0
- package/dist/esm/store-did.js.map +1 -0
- package/dist/esm/store-identity.js +140 -0
- package/dist/esm/store-identity.js.map +1 -0
- package/dist/esm/store-key.js +136 -0
- package/dist/esm/store-key.js.map +1 -0
- package/dist/esm/sync-api.js +61 -0
- package/dist/esm/sync-api.js.map +1 -0
- package/dist/esm/sync-engine-level.js +618 -0
- package/dist/esm/sync-engine-level.js.map +1 -0
- package/dist/esm/test-harness.js +239 -0
- package/dist/esm/test-harness.js.map +1 -0
- package/dist/esm/types/agent.js +2 -0
- package/dist/esm/types/agent.js.map +1 -0
- package/dist/esm/types/dwn.js +31 -0
- package/dist/esm/types/dwn.js.map +1 -0
- package/dist/esm/types/identity-vault.js +2 -0
- package/dist/esm/types/identity-vault.js.map +1 -0
- package/dist/esm/types/identity.js +2 -0
- package/dist/esm/types/identity.js.map +1 -0
- package/dist/esm/types/key-manager.js +2 -0
- package/dist/esm/types/key-manager.js.map +1 -0
- package/dist/esm/types/permissions.js +2 -0
- package/dist/esm/types/permissions.js.map +1 -0
- package/dist/esm/types/sync.js +2 -0
- package/dist/esm/types/sync.js.map +1 -0
- package/dist/esm/types/vc.js +5 -0
- package/dist/esm/types/vc.js.map +1 -0
- package/dist/esm/utils-internal.js +147 -0
- package/dist/esm/utils-internal.js.map +1 -0
- package/dist/esm/utils.js +161 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/types/agent-did-resolver-cache.d.ts +30 -0
- package/dist/types/agent-did-resolver-cache.d.ts.map +1 -0
- package/dist/types/bearer-identity.d.ts +31 -0
- package/dist/types/bearer-identity.d.ts.map +1 -0
- package/dist/types/connect.d.ts +88 -0
- package/dist/types/connect.d.ts.map +1 -0
- package/dist/types/crypto-api.d.ts +286 -0
- package/dist/types/crypto-api.d.ts.map +1 -0
- package/dist/types/did-api.d.ts +119 -0
- package/dist/types/did-api.d.ts.map +1 -0
- package/dist/types/dwn-api.d.ts +66 -0
- package/dist/types/dwn-api.d.ts.map +1 -0
- package/dist/types/dwn-registrar.d.ts +29 -0
- package/dist/types/dwn-registrar.d.ts.map +1 -0
- package/dist/types/hd-identity-vault.d.ts +306 -0
- package/dist/types/hd-identity-vault.d.ts.map +1 -0
- package/dist/types/identity-api.d.ts +107 -0
- package/dist/types/identity-api.d.ts.map +1 -0
- package/dist/types/index.d.ts +30 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/local-key-manager.d.ts +311 -0
- package/dist/types/local-key-manager.d.ts.map +1 -0
- package/dist/types/oidc.d.ts +247 -0
- package/dist/types/oidc.d.ts.map +1 -0
- package/dist/types/permissions-api.d.ts +35 -0
- package/dist/types/permissions-api.d.ts.map +1 -0
- package/dist/types/prototyping/clients/dwn-rpc-types.d.ts +45 -0
- package/dist/types/prototyping/clients/dwn-rpc-types.d.ts.map +1 -0
- package/dist/types/prototyping/clients/dwn-server-info-cache-memory.d.ts +57 -0
- package/dist/types/prototyping/clients/dwn-server-info-cache-memory.d.ts.map +1 -0
- package/dist/types/prototyping/clients/http-dwn-rpc-client.d.ts +13 -0
- package/dist/types/prototyping/clients/http-dwn-rpc-client.d.ts.map +1 -0
- package/dist/types/prototyping/clients/json-rpc-socket.d.ts +43 -0
- package/dist/types/prototyping/clients/json-rpc-socket.d.ts.map +1 -0
- package/dist/types/prototyping/clients/json-rpc.d.ts +49 -0
- package/dist/types/prototyping/clients/json-rpc.d.ts.map +1 -0
- package/dist/types/prototyping/clients/server-info-types.d.ts +20 -0
- package/dist/types/prototyping/clients/server-info-types.d.ts.map +1 -0
- package/dist/types/prototyping/clients/web-socket-clients.d.ts +10 -0
- package/dist/types/prototyping/clients/web-socket-clients.d.ts.map +1 -0
- package/dist/types/prototyping/common/object.d.ts +2 -0
- package/dist/types/prototyping/common/object.d.ts.map +1 -0
- package/dist/types/prototyping/common/type-utils.d.ts +7 -0
- package/dist/types/prototyping/common/type-utils.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/aes-gcm.d.ts +151 -0
- package/dist/types/prototyping/crypto/algorithms/aes-gcm.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/aes-kw.d.ts +109 -0
- package/dist/types/prototyping/crypto/algorithms/aes-kw.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/ecdsa.d.ts +160 -0
- package/dist/types/prototyping/crypto/algorithms/ecdsa.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/eddsa.d.ts +157 -0
- package/dist/types/prototyping/crypto/algorithms/eddsa.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/hkdf.d.ts +21 -0
- package/dist/types/prototyping/crypto/algorithms/hkdf.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/algorithms/pbkdf2.d.ts +21 -0
- package/dist/types/prototyping/crypto/algorithms/pbkdf2.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/crypto-error.d.ts +29 -0
- package/dist/types/prototyping/crypto/crypto-error.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/dsa.d.ts +169 -0
- package/dist/types/prototyping/crypto/dsa.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/jose/jwe-compact.d.ts +135 -0
- package/dist/types/prototyping/crypto/jose/jwe-compact.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/jose/jwe-flattened.d.ts +134 -0
- package/dist/types/prototyping/crypto/jose/jwe-flattened.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/jose/jwe.d.ts +378 -0
- package/dist/types/prototyping/crypto/jose/jwe.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/primitives/aes-gcm.d.ts +245 -0
- package/dist/types/prototyping/crypto/primitives/aes-gcm.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/primitives/aes-kw.d.ts +103 -0
- package/dist/types/prototyping/crypto/primitives/aes-kw.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/primitives/hkdf.d.ts +90 -0
- package/dist/types/prototyping/crypto/primitives/hkdf.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/primitives/pbkdf2.d.ts +84 -0
- package/dist/types/prototyping/crypto/primitives/pbkdf2.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/cipher.d.ts +14 -0
- package/dist/types/prototyping/crypto/types/cipher.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/crypto-api.d.ts +35 -0
- package/dist/types/prototyping/crypto/types/crypto-api.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-converter.d.ts +49 -0
- package/dist/types/prototyping/crypto/types/key-converter.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-deriver.d.ts +50 -0
- package/dist/types/prototyping/crypto/types/key-deriver.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-io.d.ts +49 -0
- package/dist/types/prototyping/crypto/types/key-io.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-manager.d.ts +69 -0
- package/dist/types/prototyping/crypto/types/key-manager.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/key-wrapper.d.ts +14 -0
- package/dist/types/prototyping/crypto/types/key-wrapper.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/params-direct.d.ts +75 -0
- package/dist/types/prototyping/crypto/types/params-direct.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/types/params-kms.d.ts +63 -0
- package/dist/types/prototyping/crypto/types/params-kms.d.ts.map +1 -0
- package/dist/types/prototyping/crypto/utils.d.ts +7 -0
- package/dist/types/prototyping/crypto/utils.d.ts.map +1 -0
- package/dist/types/prototyping/dids/resolver-cache-memory.d.ts +57 -0
- package/dist/types/prototyping/dids/resolver-cache-memory.d.ts.map +1 -0
- package/dist/types/prototyping/dids/utils.d.ts +3 -0
- package/dist/types/prototyping/dids/utils.d.ts.map +1 -0
- package/dist/types/rpc-client.d.ts +51 -0
- package/dist/types/rpc-client.d.ts.map +1 -0
- package/dist/types/store-data-protocols.d.ts +4 -0
- package/dist/types/store-data-protocols.d.ts.map +1 -0
- package/dist/types/store-data.d.ts +95 -0
- package/dist/types/store-data.d.ts.map +1 -0
- package/dist/types/store-did.d.ts +33 -0
- package/dist/types/store-did.d.ts.map +1 -0
- package/dist/types/store-identity.d.ts +34 -0
- package/dist/types/store-identity.d.ts.map +1 -0
- package/dist/types/store-key.d.ts +32 -0
- package/dist/types/store-key.d.ts.map +1 -0
- package/dist/types/sync-api.d.ts +41 -0
- package/dist/types/sync-api.d.ts.map +1 -0
- package/dist/types/sync-engine-level.d.ts +85 -0
- package/dist/types/sync-engine-level.d.ts.map +1 -0
- package/dist/types/test-harness.d.ts +69 -0
- package/dist/types/test-harness.d.ts.map +1 -0
- package/dist/types/types/agent.d.ts +172 -0
- package/dist/types/types/agent.d.ts.map +1 -0
- package/dist/types/types/dwn.d.ts +178 -0
- package/dist/types/types/dwn.d.ts.map +1 -0
- package/dist/types/types/identity-vault.d.ts +129 -0
- package/dist/types/types/identity-vault.d.ts.map +1 -0
- package/dist/types/types/identity.d.ts +16 -0
- package/dist/types/types/identity.d.ts.map +1 -0
- package/dist/types/types/key-manager.d.ts +9 -0
- package/dist/types/types/key-manager.d.ts.map +1 -0
- package/dist/types/types/permissions.d.ts +98 -0
- package/dist/types/types/permissions.d.ts.map +1 -0
- package/dist/types/types/sync.d.ts +66 -0
- package/dist/types/types/sync.d.ts.map +1 -0
- package/dist/types/types/vc.d.ts +7 -0
- package/dist/types/types/vc.d.ts.map +1 -0
- package/dist/types/utils-internal.d.ts +50 -0
- package/dist/types/utils-internal.d.ts.map +1 -0
- package/dist/types/utils.d.ts +37 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/package.json +112 -0
- package/src/agent-did-resolver-cache.ts +95 -0
- package/src/bearer-identity.ts +42 -0
- package/src/connect.ts +296 -0
- package/src/crypto-api.ts +593 -0
- package/src/did-api.ts +429 -0
- package/src/dwn-api.ts +462 -0
- package/src/dwn-registrar.ts +127 -0
- package/src/hd-identity-vault.ts +853 -0
- package/src/identity-api.ts +324 -0
- package/src/index.ts +30 -0
- package/src/local-key-manager.ts +672 -0
- package/src/oidc.ts +857 -0
- package/src/permissions-api.ts +408 -0
- package/src/prototyping/clients/dwn-rpc-types.ts +55 -0
- package/src/prototyping/clients/dwn-server-info-cache-memory.ts +79 -0
- package/src/prototyping/clients/http-dwn-rpc-client.ts +110 -0
- package/src/prototyping/clients/json-rpc-socket.ts +169 -0
- package/src/prototyping/clients/json-rpc.ts +113 -0
- package/src/prototyping/clients/server-info-types.ts +21 -0
- package/src/prototyping/clients/web-socket-clients.ts +100 -0
- package/src/prototyping/common/object.ts +15 -0
- package/src/prototyping/common/type-utils.ts +6 -0
- package/src/prototyping/crypto/algorithms/aes-gcm.ts +211 -0
- package/src/prototyping/crypto/algorithms/aes-kw.ts +164 -0
- package/src/prototyping/crypto/algorithms/ecdsa.ts +365 -0
- package/src/prototyping/crypto/algorithms/eddsa.ts +310 -0
- package/src/prototyping/crypto/algorithms/hkdf.ts +40 -0
- package/src/prototyping/crypto/algorithms/pbkdf2.ts +44 -0
- package/src/prototyping/crypto/crypto-error.ts +45 -0
- package/src/prototyping/crypto/dsa.ts +367 -0
- package/src/prototyping/crypto/jose/jwe-compact.ts +225 -0
- package/src/prototyping/crypto/jose/jwe-flattened.ts +459 -0
- package/src/prototyping/crypto/jose/jwe.ts +653 -0
- package/src/prototyping/crypto/primitives/aes-gcm.ts +374 -0
- package/src/prototyping/crypto/primitives/aes-kw.ts +271 -0
- package/src/prototyping/crypto/primitives/hkdf.ts +121 -0
- package/src/prototyping/crypto/primitives/pbkdf2.ts +116 -0
- package/src/prototyping/crypto/types/cipher.ts +17 -0
- package/src/prototyping/crypto/types/crypto-api.ts +78 -0
- package/src/prototyping/crypto/types/key-converter.ts +53 -0
- package/src/prototyping/crypto/types/key-deriver.ts +56 -0
- package/src/prototyping/crypto/types/key-io.ts +51 -0
- package/src/prototyping/crypto/types/key-manager.ts +83 -0
- package/src/prototyping/crypto/types/key-wrapper.ts +17 -0
- package/src/prototyping/crypto/types/params-direct.ts +95 -0
- package/src/prototyping/crypto/types/params-kms.ts +76 -0
- package/src/prototyping/crypto/utils.ts +41 -0
- package/src/prototyping/dids/resolver-cache-memory.ts +83 -0
- package/src/prototyping/dids/utils.ts +10 -0
- package/src/rpc-client.ts +162 -0
- package/src/store-data-protocols.ts +40 -0
- package/src/store-data.ts +400 -0
- package/src/store-did.ts +105 -0
- package/src/store-identity.ts +109 -0
- package/src/store-key.ts +104 -0
- package/src/sync-api.ts +71 -0
- package/src/sync-engine-level.ts +714 -0
- package/src/test-harness.ts +330 -0
- package/src/types/agent.ts +195 -0
- package/src/types/dwn.ts +278 -0
- package/src/types/identity-vault.ts +137 -0
- package/src/types/identity.ts +18 -0
- package/src/types/key-manager.ts +15 -0
- package/src/types/permissions.ts +115 -0
- package/src/types/sync.ts +58 -0
- package/src/types/vc.ts +7 -0
- package/src/utils-internal.ts +157 -0
- package/src/utils.ts +181 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `KeyDeriver` interface provide a method for key derivation.
|
|
3
|
+
*
|
|
4
|
+
* The `deriveKey()` method derives a {@link Jwk | JWK} from input data using the specified key
|
|
5
|
+
* derivation algorithm. This interface is designed to support various key derivation
|
|
6
|
+
* algorithms, accommodating different input and output types.
|
|
7
|
+
*/
|
|
8
|
+
export interface KeyDeriver<DeriveKeyInput, DeriveKeyOutput> {
|
|
9
|
+
/**
|
|
10
|
+
* Derives a cryptographic key in JWK format based on the provided input parameters.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* The `deriveKey()` method of the {@link KeyDeriver | `KeyDeriver`} interface is utilized to
|
|
14
|
+
* generate cryptographic keys for operations like encryption, decryption, or signing. The method
|
|
15
|
+
* takes in parameters tailored to the key derivation algorithm being used and returns a promise
|
|
16
|
+
* that resolves to the derived key.
|
|
17
|
+
*
|
|
18
|
+
* @param params - The parameters for the key derivation process, specific to the chosen
|
|
19
|
+
* algorithm.
|
|
20
|
+
*
|
|
21
|
+
* @returns A Promise resolving to the derived key in the specified output format.
|
|
22
|
+
*/
|
|
23
|
+
deriveKey(params: DeriveKeyInput): Promise<DeriveKeyOutput>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The `KeyBytesDeriver` interface provide a method for deriving a byte array using a key derivation
|
|
27
|
+
* algorithm.
|
|
28
|
+
*
|
|
29
|
+
* The `deriveKeyBytes()` method to derives cryptographic bits from input data using the specified
|
|
30
|
+
* key derivation algorithm. This interface is designed to support various key derivation
|
|
31
|
+
* algorithms, accommodating different input and output types.
|
|
32
|
+
*/
|
|
33
|
+
export interface KeyBytesDeriver<DeriveKeyBytesInput, DeriveKeyBytesOutput> {
|
|
34
|
+
/**
|
|
35
|
+
* Generates a specified number of cryptographic bits from given input parameters.
|
|
36
|
+
*
|
|
37
|
+
* @remarks
|
|
38
|
+
* The `deriveKeyBytes()` method of the {@link KeyBytesDeriver | `KeyBytesDeriver`} interface is
|
|
39
|
+
* used to create cryptographic material such as initialization vectors or keys from various
|
|
40
|
+
* sources. The method takes in parameters specific to the chosen key derivation algorithm and
|
|
41
|
+
* outputs a promise that resolves to a `Uint8Array` containing the derived bits.
|
|
42
|
+
*
|
|
43
|
+
* @param params - The parameters for the key derivation process, specific to the chosen
|
|
44
|
+
* algorithm.
|
|
45
|
+
*
|
|
46
|
+
* @returns A Promise resolving to the derived bits in the specified format.
|
|
47
|
+
*/
|
|
48
|
+
deriveKeyBytes(params: DeriveKeyBytesInput): Promise<DeriveKeyBytesOutput>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=key-deriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-deriver.d.ts","sourceRoot":"","sources":["../../../../../src/prototyping/crypto/types/key-deriver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,UAAU,CACzB,cAAc,EACd,eAAe;IAEf;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe,CAC9B,mBAAmB,EACnB,oBAAoB;IAEpB;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC5E"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Jwk } from '@enbox/crypto';
|
|
2
|
+
/**
|
|
3
|
+
* The `KeyExporter` interface provides a method for exporting cryptographic keys.
|
|
4
|
+
*/
|
|
5
|
+
export interface KeyExporter<ExportKeyInput, ExportKeyOutput = Jwk> {
|
|
6
|
+
/**
|
|
7
|
+
* Exports a cryptographic key to an external JWK object.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* The `exportKey()` method of the {@link KeyImporterExporter | `KeyImporterExporter`} interface
|
|
11
|
+
* returns a cryptographic key in JWK format, facilitating interoperability and backup.
|
|
12
|
+
*
|
|
13
|
+
* @param params - The parameters for the key export operation.
|
|
14
|
+
*
|
|
15
|
+
* @returns A Promise resolving to the exported key in JWK format.
|
|
16
|
+
*/
|
|
17
|
+
exportKey(params: ExportKeyInput): Promise<ExportKeyOutput>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The `KeyImporter` interface provides a method for importing cryptographic keys.
|
|
21
|
+
*/
|
|
22
|
+
export interface KeyImporter<ImportKeyInput, ImportKeyOutput = void> {
|
|
23
|
+
/**
|
|
24
|
+
* Imports an external key in JWK format.
|
|
25
|
+
*
|
|
26
|
+
* @remarks
|
|
27
|
+
* The `importKey()` method of the {@link KeyImporterExporter | `KeyImporterExporter`} interface
|
|
28
|
+
* takes as input an external key in JWK format and typically returns a key identifier reference
|
|
29
|
+
* for the imported key.
|
|
30
|
+
*
|
|
31
|
+
* @param params - The parameters for the key import operation.
|
|
32
|
+
*
|
|
33
|
+
* @returns A Promise resolving to the key identifier of the imported key.
|
|
34
|
+
*/
|
|
35
|
+
importKey(params: ImportKeyInput): Promise<ImportKeyOutput>;
|
|
36
|
+
}
|
|
37
|
+
export interface KeyDeleter<DeleteKeyInput> {
|
|
38
|
+
/**
|
|
39
|
+
* Deletes a cryptographic key.
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* The `deleteKey()` method of the {@link KeyDeleter | `KeyDeleter`} interface deletes a cryptographic
|
|
43
|
+
* key from the key store.
|
|
44
|
+
*
|
|
45
|
+
* @param params - The parameters for the key deletion operation.
|
|
46
|
+
*/
|
|
47
|
+
deleteKey(params: DeleteKeyInput): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=key-io.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-io.d.ts","sourceRoot":"","sources":["../../../../../src/prototyping/crypto/types/key-io.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,cAAc,EAAE,eAAe,GAAG,GAAG;IAChE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,cAAc,EAAE,eAAe,GAAG,IAAI;IACjE;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,UAAU,CAAC,cAAc;IACxC;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { KeyIdentifier, KmsSignParams, KmsDigestParams, KmsVerifyParams, KmsGetKeyUriParams, KmsGenerateKeyParams, KmsGetPublicKeyParams } from '@enbox/crypto';
|
|
2
|
+
import type { DsaApi } from './crypto-api.js';
|
|
3
|
+
import type { KmsCipherParams } from './params-kms.js';
|
|
4
|
+
export interface KeyManagerParams {
|
|
5
|
+
CipherInput?: unknown;
|
|
6
|
+
GenerateKeyInput?: unknown;
|
|
7
|
+
GenerateKeyOutput?: unknown;
|
|
8
|
+
GetPublicKeyInput?: unknown;
|
|
9
|
+
SignInput?: unknown;
|
|
10
|
+
VerifyInput?: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface DefaultKeyManagerParams {
|
|
13
|
+
CipherInput: KmsCipherParams;
|
|
14
|
+
GenerateKeyInput: KmsGenerateKeyParams;
|
|
15
|
+
GenerateKeyOutput: KeyIdentifier;
|
|
16
|
+
GetPublicKeyInput: KmsGetPublicKeyParams;
|
|
17
|
+
SignInput: KmsSignParams;
|
|
18
|
+
VerifyInput: KmsVerifyParams;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The `KeyManager` interface integrates key generation and signing capabilities.
|
|
22
|
+
*
|
|
23
|
+
* Concrete implementations of this interface are intended to be used as a Key Management System
|
|
24
|
+
* (KMS), which is responsible for generating and storing cryptographic keys. The KMS is also
|
|
25
|
+
* responsible for performing cryptographic operations using the keys it manages. The KMS can be
|
|
26
|
+
* a local software based KMS, a cloud service, or a hardware device.
|
|
27
|
+
*
|
|
28
|
+
* Guidelines for implementing this interface:
|
|
29
|
+
* - Must use JSON Web Keys ({@link Jwk | JWK}) as the key format.
|
|
30
|
+
* - Must IANA registered JSON Object Signing and Encryption
|
|
31
|
+
* {@ link https://www.iana.org/assignments/jose/jose.xhtml#web-signature-encryption-algorithms | (JOSE)}
|
|
32
|
+
* names for algorithm, curves, etc. whenever possible.
|
|
33
|
+
* - All I/O that interacts with private or secret keys must be done via reference using a
|
|
34
|
+
* {@link KeyIdentifier | `KeyIdentifier`}. Implementations can use any string as the key
|
|
35
|
+
* identifier (e.g. JWK thumbprint, UUID generated by hosted KMS, etc.).
|
|
36
|
+
* - Must support key generation an signing operations.
|
|
37
|
+
* - May be extended to support other cryptographic operations.
|
|
38
|
+
* - Implementations of the `CryptoApi` interface can be passed as an argument to the public API
|
|
39
|
+
* methods of Web5 libraries that involve key material (e.g., DID creation, VC signing, arbitrary
|
|
40
|
+
* data signing/verification, etc.).
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* // Example of using the KeyManager interface with default types
|
|
45
|
+
* class DefaultKeyManager implements KeyManager {} // Uses default types
|
|
46
|
+
*
|
|
47
|
+
* // Example of using the KeyManager interface with custom types
|
|
48
|
+
* class CustomKeyManager implements KeyManager<{
|
|
49
|
+
* GenerateKeyInput: CustomGenerateKeyParams, // Custom type
|
|
50
|
+
* KmsGetPublicKeyParams: CustomGetPublicKeyParams, // Custom type
|
|
51
|
+
* KmsSignParams: CustomSignParams, // Custom type
|
|
52
|
+
* // Omitting KmsVerifyParams to use the default
|
|
53
|
+
* }> {
|
|
54
|
+
* // Implementation here
|
|
55
|
+
* }
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @typeParam T - The type of the key manager parameters.
|
|
59
|
+
*/
|
|
60
|
+
export interface KeyManager<T extends KeyManagerParams = DefaultKeyManagerParams> extends DsaApi<T['GenerateKeyInput'], T['GenerateKeyOutput'], T['GetPublicKeyInput'], KmsDigestParams, T['SignInput'], T['VerifyInput']> {
|
|
61
|
+
/**
|
|
62
|
+
*
|
|
63
|
+
* @param params - The parameters for getting the key URI.
|
|
64
|
+
* @param params.key - The key to get the URI for.
|
|
65
|
+
* @returns The key URI.
|
|
66
|
+
*/
|
|
67
|
+
getKeyUri(params: KmsGetKeyUriParams): Promise<KeyIdentifier>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=key-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-manager.d.ts","sourceRoot":"","sources":["../../../../../src/prototyping/crypto/types/key-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,eAAe,CAAC;IAC7B,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,iBAAiB,EAAE,aAAa,CAAC;IACjC,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,uBAAuB,CAC9E,SAAQ,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;IAExI;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC/D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type InferKeyUnwrapAlgorithm<T> = T extends {
|
|
2
|
+
/**
|
|
3
|
+
* The `unwrapKey` method signature from which the algorithm type is inferred.
|
|
4
|
+
* This is an internal implementation detail and not part of the public API.
|
|
5
|
+
*/
|
|
6
|
+
unwrapKey(params: infer P): any;
|
|
7
|
+
} ? P extends {
|
|
8
|
+
/**
|
|
9
|
+
* The `wrappedKeyAlgorithm` property within the parameters of `unwrapKey`.
|
|
10
|
+
* This internal element is used to infer the algorithm type.
|
|
11
|
+
*/
|
|
12
|
+
wrappedKeyAlgorithm: infer A;
|
|
13
|
+
} ? A : never : never;
|
|
14
|
+
//# sourceMappingURL=key-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-wrapper.d.ts","sourceRoot":"","sources":["../../../../../src/prototyping/crypto/types/key-wrapper.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,SAAS;IACjD;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;CACjC,GACC,CAAC,SAAS;IACR;;;OAGG;IACH,mBAAmB,EAAE,MAAM,CAAC,CAAA;CAC7B,GACC,CAAC,GACD,KAAK,GACP,KAAK,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { Jwk } from '@enbox/crypto';
|
|
2
|
+
export interface BytesToPrivateKeyParams {
|
|
3
|
+
algorithm: AlgorithmIdentifier;
|
|
4
|
+
privateKeyBytes: Uint8Array;
|
|
5
|
+
}
|
|
6
|
+
export interface BytesToPublicKeyParams {
|
|
7
|
+
algorithm: AlgorithmIdentifier;
|
|
8
|
+
publicKeyBytes: Uint8Array;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Parameters for encryption and decryption operations.
|
|
12
|
+
*
|
|
13
|
+
* Intended for use with a Key Management System.
|
|
14
|
+
*/
|
|
15
|
+
export interface CipherParams {
|
|
16
|
+
/** A {@link Jwk} containing the key to be used for encryption or decryption. */
|
|
17
|
+
key: Jwk;
|
|
18
|
+
/** Data to be encrypted or decrypted. */
|
|
19
|
+
data: Uint8Array;
|
|
20
|
+
/** Additional algorithm-specific parameters for encryption or decryption. */
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Parameters for derivation of cryptographic keys.
|
|
25
|
+
*/
|
|
26
|
+
export interface DeriveKeyParams {
|
|
27
|
+
/** The algorithm identifier. */
|
|
28
|
+
algorithm: AlgorithmIdentifier;
|
|
29
|
+
/** The base key to be used for derivation as a byte array. */
|
|
30
|
+
baseKeyBytes: Uint8Array;
|
|
31
|
+
/** The algorithm identifier for the derived key. */
|
|
32
|
+
derivedKeyAlgorithm?: AlgorithmIdentifier;
|
|
33
|
+
/** Additional algorithm-specific parameters for key derivation. */
|
|
34
|
+
[key: string]: unknown;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parameters for derivation of cryptographic byte arrays.
|
|
38
|
+
*/
|
|
39
|
+
export interface DeriveKeyBytesParams {
|
|
40
|
+
/** The base key to be used for derivation as a byte array. */
|
|
41
|
+
baseKeyBytes: Uint8Array;
|
|
42
|
+
/** The desired length of the derived key in bits. */
|
|
43
|
+
length: number;
|
|
44
|
+
}
|
|
45
|
+
export interface PrivateKeyToBytesParams {
|
|
46
|
+
privateKey: Jwk;
|
|
47
|
+
}
|
|
48
|
+
export interface PublicKeyToBytesParams {
|
|
49
|
+
publicKey: Jwk;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parameters for wrapping a key.
|
|
53
|
+
*/
|
|
54
|
+
export interface WrapKeyParams {
|
|
55
|
+
/** A {@link Jwk} containing the key used to encrypt the unwrapped key. */
|
|
56
|
+
encryptionKey: Jwk;
|
|
57
|
+
/** A {@link Jwk} containing the private key to be wrapped. */
|
|
58
|
+
unwrappedKey: Jwk;
|
|
59
|
+
/** An object defining the algorithm-specific parameters for encrypting the `unwrappedKey`. */
|
|
60
|
+
encryptParams?: unknown;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Parameters for unwrapping a key.
|
|
64
|
+
*/
|
|
65
|
+
export interface UnwrapKeyParams {
|
|
66
|
+
/** A {@link Jwk} containing the key used to decrypt the unwrapped key. */
|
|
67
|
+
decryptionKey: Jwk;
|
|
68
|
+
/** The wrapped private key as a byte array. */
|
|
69
|
+
wrappedKeyBytes: Uint8Array;
|
|
70
|
+
/** The algorithm identifier of the key encrypted in `wrappedKeyBytes`. */
|
|
71
|
+
wrappedKeyAlgorithm: string;
|
|
72
|
+
/** An object defining the algorithm-specific parameters for decrypting the `wrappedKeyBytes`. */
|
|
73
|
+
decryptParams?: unknown;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=params-direct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params-direct.d.ts","sourceRoot":"","sources":["../../../../../src/prototyping/crypto/types/params-direct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,eAAe,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,gFAAgF;IAChF,GAAG,EAAE,GAAG,CAAC;IAET,yCAAyC;IACzC,IAAI,EAAE,UAAU,CAAC;IAEjB,6EAA6E;IAC7E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,SAAS,EAAE,mBAAmB,CAAC;IAE/B,8DAA8D;IAC9D,YAAY,EAAE,UAAU,CAAC;IAEzB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAE1C,mEAAmE;IACnE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,YAAY,EAAE,UAAU,CAAC;IAEzB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,GAAG,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,aAAa,EAAE,GAAG,CAAC;IAEnB,8DAA8D;IAC9D,YAAY,EAAE,GAAG,CAAC;IAElB,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,aAAa,EAAE,GAAG,CAAC;IAEnB,+CAA+C;IAC/C,eAAe,EAAE,UAAU,CAAC;IAE5B,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;IAE5B,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Jwk, KeyIdentifier } from '@enbox/crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Parameters for KMS-based encryption and decryption operations.
|
|
4
|
+
*
|
|
5
|
+
* Intended for use with a Key Management System.
|
|
6
|
+
*/
|
|
7
|
+
export interface KmsCipherParams {
|
|
8
|
+
/** Identifier for the private key in the KMS. */
|
|
9
|
+
keyUri: KeyIdentifier;
|
|
10
|
+
/** Data to be encrypted or decrypted. */
|
|
11
|
+
data: Uint8Array;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Parameters for KMS-based derivation of a cryptographic key from a given base key.
|
|
15
|
+
*
|
|
16
|
+
* Intended for use with a Key Management System.
|
|
17
|
+
*/
|
|
18
|
+
export interface KmsDeriveKeyParams {
|
|
19
|
+
/** Identifier for the base key used in derivation in the KMS. */
|
|
20
|
+
baseKeyUri: KeyIdentifier;
|
|
21
|
+
/** An object defining the algorithm-specific parameters for the derived key. */
|
|
22
|
+
derivedKeyParams: unknown;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parameters for KMS-based derivation of a byte array from a given base key.
|
|
26
|
+
*
|
|
27
|
+
* Intended for use with a Key Management System.
|
|
28
|
+
*/
|
|
29
|
+
export interface KmsDeriveKeyBytesParams {
|
|
30
|
+
/** Identifier for the base key used in derivation in the KMS. */
|
|
31
|
+
baseKeyUri: KeyIdentifier;
|
|
32
|
+
/** The desired length of the derived key in bits. */
|
|
33
|
+
length: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Parameters for unwrapping a key using a KMS. Intended for use with a Key Management System.
|
|
37
|
+
*/
|
|
38
|
+
export interface KmsUnwrapKeyParams {
|
|
39
|
+
/** Identifier for the private key in the KMS used for decrypting the wrapped key. */
|
|
40
|
+
decryptionKeyUri: KeyIdentifier;
|
|
41
|
+
/** The wrapped private key as a byte array. */
|
|
42
|
+
wrappedKeyBytes: Uint8Array;
|
|
43
|
+
/** The algorithm identifier of the key encrypted in `wrappedKeyBytes`. */
|
|
44
|
+
wrappedKeyAlgorithm: string;
|
|
45
|
+
/** An object defining the algorithm-specific parameters for decrypting the `wrappedKeyBytes`. */
|
|
46
|
+
decryptParams?: unknown;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Parameters for wrapping a key using a KMS. Intended for use with a Key Management System.
|
|
50
|
+
*/
|
|
51
|
+
export interface KmsWrapKeyParams {
|
|
52
|
+
/** Identifier for the private key in the KMS used for encrypting the unwrapped key. */
|
|
53
|
+
encryptionKeyUri: KeyIdentifier;
|
|
54
|
+
/** A {@link Jwk} containing the private key to be wrapped. */
|
|
55
|
+
unwrappedKey: Jwk;
|
|
56
|
+
/** An object defining the algorithm-specific parameters for encrypting the `unwrappedKey`. */
|
|
57
|
+
encryptParams?: unknown;
|
|
58
|
+
}
|
|
59
|
+
export interface KmsDeleteKeyParams {
|
|
60
|
+
/** Identifier for the key to be deleted in the KMS. */
|
|
61
|
+
keyUri: KeyIdentifier;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=params-kms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params-kms.d.ts","sourceRoot":"","sources":["../../../../../src/prototyping/crypto/types/params-kms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,MAAM,EAAE,aAAa,CAAC;IAEtB,yCAAyC;IACzC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,UAAU,EAAE,aAAa,CAAC;IAE1B,gFAAgF;IAChF,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,iEAAiE;IACjE,UAAU,EAAE,aAAa,CAAC;IAE1B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,gBAAgB,EAAE,aAAa,CAAC;IAEhC,+CAA+C;IAC/C,eAAe,EAAE,UAAU,CAAC;IAE5B,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;IAE5B,iGAAiG;IACjG,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,gBAAgB,EAAE,aAAa,CAAC;IAEhC,8DAA8D;IAC9D,YAAY,EAAE,GAAG,CAAC;IAElB,8FAA8F;IAC9F,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,MAAM,EAAE,aAAa,CAAC;CACvB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Cipher, KeyWrapper } from '@enbox/crypto';
|
|
2
|
+
import type { KeyExporter, KeyImporter } from './types/key-io.js';
|
|
3
|
+
export declare function isCipher<EncryptInput, DecryptInput>(obj: unknown): obj is Cipher<EncryptInput, DecryptInput>;
|
|
4
|
+
export declare function isKeyExporter<ExportKeyInput, ExportKeyOutput>(obj: unknown): obj is KeyExporter<ExportKeyInput, ExportKeyOutput>;
|
|
5
|
+
export declare function isKeyImporter<ImportKeyInput, ImportKeyExport>(obj: unknown): obj is KeyImporter<ImportKeyInput, ImportKeyExport>;
|
|
6
|
+
export declare function isKeyWrapper<WrapKeyInput, UnwrapKeyInput>(obj: unknown): obj is KeyWrapper<WrapKeyInput, UnwrapKeyInput>;
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/crypto/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,EACjD,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAM3C;AAED,wBAAgB,aAAa,CAAC,cAAc,EAAE,eAAe,EAC3D,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,eAAe,CAAC,CAKrD;AAED,wBAAgB,aAAa,CAAC,cAAc,EAAE,eAAe,EAC3D,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,eAAe,CAAC,CAKrD;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,cAAc,EACvD,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,UAAU,CAAC,YAAY,EAAE,cAAc,CAAC,CAMjD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { DidResolverCache, DidResolutionResult } from '@enbox/dids';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration parameters for creating an in-memory cache for DID resolution results.
|
|
4
|
+
*
|
|
5
|
+
* Allows customization of the cache time-to-live (TTL) setting.
|
|
6
|
+
*/
|
|
7
|
+
export type DidResolverCacheMemoryParams = {
|
|
8
|
+
/**
|
|
9
|
+
* Optional. The time-to-live for cache entries, expressed as a string (e.g., '1h', '15m').
|
|
10
|
+
* Determines how long a cache entry should remain valid before being considered expired.
|
|
11
|
+
*
|
|
12
|
+
* Defaults to '15m' if not specified.
|
|
13
|
+
*/
|
|
14
|
+
ttl?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare class DidResolverCacheMemory implements DidResolverCache {
|
|
17
|
+
private cache;
|
|
18
|
+
constructor({ ttl }?: DidResolverCacheMemoryParams);
|
|
19
|
+
/**
|
|
20
|
+
* Retrieves a DID resolution result from the cache.
|
|
21
|
+
*
|
|
22
|
+
* If the cached item has exceeded its TTL, it's scheduled for deletion and undefined is returned.
|
|
23
|
+
*
|
|
24
|
+
* @param didUri - The DID string used as the key for retrieving the cached result.
|
|
25
|
+
* @returns The cached DID resolution result or undefined if not found or expired.
|
|
26
|
+
*/
|
|
27
|
+
get(didUri: string): Promise<DidResolutionResult | void>;
|
|
28
|
+
/**
|
|
29
|
+
* Stores a DID resolution result in the cache with a TTL.
|
|
30
|
+
*
|
|
31
|
+
* @param didUri - The DID string used as the key for storing the result.
|
|
32
|
+
* @param resolutionResult - The DID resolution result to be cached.
|
|
33
|
+
* @returns A promise that resolves when the operation is complete.
|
|
34
|
+
*/
|
|
35
|
+
set(didUri: string, resolutionResult: DidResolutionResult): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Deletes a DID resolution result from the cache.
|
|
38
|
+
*
|
|
39
|
+
* @param didUri - The DID string used as the key for deletion.
|
|
40
|
+
* @returns A promise that resolves when the operation is complete.
|
|
41
|
+
*/
|
|
42
|
+
delete(didUri: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Clears all entries from the cache.
|
|
45
|
+
*
|
|
46
|
+
* @returns A promise that resolves when the operation is complete.
|
|
47
|
+
*/
|
|
48
|
+
clear(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* This method is a no-op but exists to be consistent with other DID Resolver Cache
|
|
51
|
+
* implementations.
|
|
52
|
+
*
|
|
53
|
+
* @returns A promise that resolves immediately.
|
|
54
|
+
*/
|
|
55
|
+
close(): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=resolver-cache-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver-cache-memory.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/dids/resolver-cache-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKzE;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,KAAK,CAAwC;gBAEzC,EAAE,GAAW,EAAE,GAAE,4BAAiC;IAI9D;;;;;;;OAOG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAQrE;;;;;;OAMG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItF;;;;;OAKG;IACU,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;;OAKG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/prototyping/dids/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAO9D"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { DwnRpc, DwnRpcRequest, DwnRpcResponse } from './prototyping/clients/dwn-rpc-types.js';
|
|
2
|
+
import type { DwnServerInfoRpc, ServerInfo } from './prototyping/clients/server-info-types.js';
|
|
3
|
+
import { HttpDwnRpcClient } from './prototyping/clients/http-dwn-rpc-client.js';
|
|
4
|
+
import { WebSocketDwnRpcClient } from './prototyping/clients/web-socket-clients.js';
|
|
5
|
+
/**
|
|
6
|
+
* Interface that can be implemented to communicate with {@link Web5Agent | Web5 Agent}
|
|
7
|
+
* implementations via JSON-RPC.
|
|
8
|
+
*/
|
|
9
|
+
export interface DidRpc {
|
|
10
|
+
get transportProtocols(): string[];
|
|
11
|
+
sendDidRequest(request: DidRpcRequest): Promise<DidRpcResponse>;
|
|
12
|
+
}
|
|
13
|
+
export declare enum DidRpcMethod {
|
|
14
|
+
Create = "did.create",
|
|
15
|
+
Resolve = "did.resolve"
|
|
16
|
+
}
|
|
17
|
+
export type DidRpcRequest = {
|
|
18
|
+
data: string;
|
|
19
|
+
method: DidRpcMethod;
|
|
20
|
+
url: string;
|
|
21
|
+
};
|
|
22
|
+
export type DidRpcResponse = {
|
|
23
|
+
data?: string;
|
|
24
|
+
ok: boolean;
|
|
25
|
+
status: RpcStatus;
|
|
26
|
+
};
|
|
27
|
+
export type RpcStatus = {
|
|
28
|
+
code: number;
|
|
29
|
+
message: string;
|
|
30
|
+
};
|
|
31
|
+
export interface Web5Rpc extends DwnRpc, DidRpc, DwnServerInfoRpc {
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Client used to communicate with Dwn Servers
|
|
35
|
+
*/
|
|
36
|
+
export declare class Web5RpcClient implements Web5Rpc {
|
|
37
|
+
private transportClients;
|
|
38
|
+
constructor(clients?: Web5Rpc[]);
|
|
39
|
+
get transportProtocols(): string[];
|
|
40
|
+
sendDidRequest(request: DidRpcRequest): Promise<DidRpcResponse>;
|
|
41
|
+
sendDwnRequest(request: DwnRpcRequest): Promise<DwnRpcResponse>;
|
|
42
|
+
getServerInfo(dwnUrl: string): Promise<ServerInfo>;
|
|
43
|
+
}
|
|
44
|
+
export declare class HttpWeb5RpcClient extends HttpDwnRpcClient implements Web5Rpc {
|
|
45
|
+
sendDidRequest(request: DidRpcRequest): Promise<DidRpcResponse>;
|
|
46
|
+
}
|
|
47
|
+
export declare class WebSocketWeb5RpcClient extends WebSocketDwnRpcClient implements Web5Rpc {
|
|
48
|
+
sendDidRequest(_request: DidRpcRequest): Promise<DidRpcResponse>;
|
|
49
|
+
getServerInfo(_dwnUrl: string): Promise<ServerInfo>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=rpc-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../src/rpc-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAI/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAEpF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAAA;IAClC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChE;AAED,oBAAY,YAAY;IACtB,MAAM,eAAe;IACrB,OAAO,gBAAgB;CACxB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,OAAQ,SAAQ,MAAM,EAAE,MAAM,EAAE,gBAAgB;CAAG;AAEpE;;GAEG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,gBAAgB,CAAuB;gBAEnC,OAAO,GAAE,OAAO,EAAO;IAcnC,IAAI,kBAAkB,IAAI,MAAM,EAAE,CAEjC;IAEK,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAerE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAezD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAczD;AAED,qBAAa,iBAAkB,SAAQ,gBAAiB,YAAW,OAAO;IAClE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;CAoCtE;AAED,qBAAa,sBAAuB,SAAQ,qBAAsB,YAAW,OAAO;IAC5E,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAIhE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAG1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-data-protocols.d.ts","sourceRoot":"","sources":["../../src/store-data-protocols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,eAAO,MAAM,0BAA0B,EAAE,kBAqBxC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,kBAcnC,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { Jwk } from '@enbox/crypto';
|
|
2
|
+
import { TtlCache } from '@enbox/common';
|
|
3
|
+
import type { Web5PlatformAgent } from './types/agent.js';
|
|
4
|
+
import { ProtocolDefinition } from '@enbox/dwn-sdk-js';
|
|
5
|
+
export type DataStoreTenantParams = {
|
|
6
|
+
agent: Web5PlatformAgent;
|
|
7
|
+
tenant?: string;
|
|
8
|
+
};
|
|
9
|
+
export type DataStoreListParams = DataStoreTenantParams;
|
|
10
|
+
export type DataStoreGetParams = DataStoreTenantParams & {
|
|
11
|
+
id: string;
|
|
12
|
+
useCache?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type DataStoreSetParams<TStoreObject> = DataStoreTenantParams & {
|
|
15
|
+
id: string;
|
|
16
|
+
data: TStoreObject;
|
|
17
|
+
preventDuplicates?: boolean;
|
|
18
|
+
updateExisting?: boolean;
|
|
19
|
+
useCache?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type DataStoreDeleteParams = DataStoreTenantParams & {
|
|
22
|
+
id: string;
|
|
23
|
+
};
|
|
24
|
+
export interface AgentDataStore<TStoreObject> {
|
|
25
|
+
delete(params: DataStoreDeleteParams): Promise<boolean>;
|
|
26
|
+
get(params: DataStoreGetParams): Promise<TStoreObject | undefined>;
|
|
27
|
+
list(params: DataStoreTenantParams): Promise<TStoreObject[]>;
|
|
28
|
+
set(params: DataStoreSetParams<TStoreObject>): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
export declare class DwnDataStore<TStoreObject extends Record<string, any> = Jwk> implements AgentDataStore<TStoreObject> {
|
|
31
|
+
protected name: string;
|
|
32
|
+
/**
|
|
33
|
+
* Cache of Store Objects referenced by DWN record ID to Store Objects.
|
|
34
|
+
*
|
|
35
|
+
* Up to 100 entries are retained for 15 minutes.
|
|
36
|
+
*/
|
|
37
|
+
protected _cache: TtlCache<string, TStoreObject>;
|
|
38
|
+
/**
|
|
39
|
+
* Index for mappings from Store Identifier to DWN record ID.
|
|
40
|
+
* Since these values don't change, we can use a long TTL.
|
|
41
|
+
*
|
|
42
|
+
* Up to 1,000 entries are retained for 21 days.
|
|
43
|
+
* NOTE: The maximum number for the ttl is 2^31 - 1 milliseconds (24.8 days), setting to 21 days to be safe.
|
|
44
|
+
*/
|
|
45
|
+
protected _index: TtlCache<string, string>;
|
|
46
|
+
/**
|
|
47
|
+
* Cache of tenant DIDs that have been initialized with the protocol.
|
|
48
|
+
* This is used to avoid redundant protocol initialization requests.
|
|
49
|
+
*
|
|
50
|
+
* Since these are default protocols and unlikely to change, we can use a long TTL.
|
|
51
|
+
*/
|
|
52
|
+
protected _protocolInitializedCache: TtlCache<string, boolean>;
|
|
53
|
+
/**
|
|
54
|
+
* The protocol assigned to this storage instance.
|
|
55
|
+
*/
|
|
56
|
+
protected _recordProtocolDefinition: ProtocolDefinition;
|
|
57
|
+
/**
|
|
58
|
+
* Properties to use when writing and querying records with the DWN store.
|
|
59
|
+
*/
|
|
60
|
+
protected _recordProperties: {
|
|
61
|
+
dataFormat: string;
|
|
62
|
+
};
|
|
63
|
+
delete({ id, agent, tenant }: DataStoreDeleteParams): Promise<boolean>;
|
|
64
|
+
get({ id, agent, tenant, useCache }: DataStoreGetParams): Promise<TStoreObject | undefined>;
|
|
65
|
+
list({ agent, tenant }: DataStoreListParams): Promise<TStoreObject[]>;
|
|
66
|
+
set({ id, data, tenant, agent, preventDuplicates, updateExisting, useCache }: DataStoreSetParams<TStoreObject>): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Initialize the relevant protocol for the given tenant.
|
|
69
|
+
* This confirms that the storage protocol is configured, otherwise it will be installed.
|
|
70
|
+
*/
|
|
71
|
+
initialize({ tenant, agent }: DataStoreTenantParams): Promise<void>;
|
|
72
|
+
protected getAllRecords(_params: {
|
|
73
|
+
agent: Web5PlatformAgent;
|
|
74
|
+
tenantDid: string;
|
|
75
|
+
}): Promise<TStoreObject[]>;
|
|
76
|
+
private getRecord;
|
|
77
|
+
/**
|
|
78
|
+
* Install the protocol for the given tenant using a `ProtocolsConfigure` message.
|
|
79
|
+
*/
|
|
80
|
+
private installProtocol;
|
|
81
|
+
private lookupRecordId;
|
|
82
|
+
private getExistingRecordEntry;
|
|
83
|
+
}
|
|
84
|
+
export declare class InMemoryDataStore<TStoreObject extends Record<string, any> = Jwk> implements AgentDataStore<TStoreObject> {
|
|
85
|
+
protected name: string;
|
|
86
|
+
/**
|
|
87
|
+
* A private field that contains the Map used as the in-memory data store.
|
|
88
|
+
*/
|
|
89
|
+
private store;
|
|
90
|
+
delete({ id, agent, tenant }: DataStoreDeleteParams): Promise<boolean>;
|
|
91
|
+
get({ id, agent, tenant }: DataStoreGetParams): Promise<TStoreObject | undefined>;
|
|
92
|
+
list({ agent, tenant }: DataStoreListParams): Promise<TStoreObject[]>;
|
|
93
|
+
set({ id, data, tenant, agent, preventDuplicates, updateExisting }: DataStoreSetParams<TStoreObject>): Promise<void>;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=store-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-data.d.ts","sourceRoot":"","sources":["../../src/store-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PortableDid } from '@enbox/dids';
|
|
2
|
+
import type { Web5PlatformAgent } from './types/agent.js';
|
|
3
|
+
import type { AgentDataStore, DataStoreDeleteParams, DataStoreGetParams, DataStoreListParams, DataStoreSetParams } from './store-data.js';
|
|
4
|
+
import { DwnDataStore, InMemoryDataStore } from './store-data.js';
|
|
5
|
+
export declare class DwnDidStore extends DwnDataStore<PortableDid> implements AgentDataStore<PortableDid> {
|
|
6
|
+
protected name: string;
|
|
7
|
+
protected _recordProtocolDefinition: import("./types/dwn.js").DwnProtocolDefinition;
|
|
8
|
+
/**
|
|
9
|
+
* Properties to use when writing and querying DID records with the DWN store.
|
|
10
|
+
*/
|
|
11
|
+
protected _recordProperties: {
|
|
12
|
+
dataFormat: string;
|
|
13
|
+
protocol: string;
|
|
14
|
+
protocolPath: string;
|
|
15
|
+
schema: string | undefined;
|
|
16
|
+
};
|
|
17
|
+
delete(params: DataStoreDeleteParams): Promise<boolean>;
|
|
18
|
+
get(params: DataStoreGetParams): Promise<PortableDid | undefined>;
|
|
19
|
+
list(params: DataStoreListParams): Promise<PortableDid[]>;
|
|
20
|
+
set(params: DataStoreSetParams<PortableDid>): Promise<void>;
|
|
21
|
+
protected getAllRecords({ agent, tenantDid }: {
|
|
22
|
+
agent: Web5PlatformAgent;
|
|
23
|
+
tenantDid: string;
|
|
24
|
+
}): Promise<PortableDid[]>;
|
|
25
|
+
}
|
|
26
|
+
export declare class InMemoryDidStore extends InMemoryDataStore<PortableDid> implements AgentDataStore<PortableDid> {
|
|
27
|
+
protected name: string;
|
|
28
|
+
delete(params: DataStoreDeleteParams): Promise<boolean>;
|
|
29
|
+
get(params: DataStoreGetParams): Promise<PortableDid | undefined>;
|
|
30
|
+
list(params: DataStoreListParams): Promise<PortableDid[]>;
|
|
31
|
+
set(params: DataStoreSetParams<PortableDid>): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=store-did.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-did.d.ts","sourceRoot":"","sources":["../../src/store-did.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAM1I,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElE,qBAAa,WAAY,SAAQ,YAAY,CAAC,WAAW,CAAE,YAAW,cAAc,CAAC,WAAW,CAAC;IAC/F,SAAS,CAAC,IAAI,SAAiB;IAE/B,SAAS,CAAC,yBAAyB,iDAA8B;IAEjE;;OAEG;IACH,SAAS,CAAC,iBAAiB;;;;;MAKzB;IAEW,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIjE,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzD,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAIxD,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAClD,KAAK,EAAE,iBAAiB,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAqC3B;AAED,qBAAa,gBAAiB,SAAQ,iBAAiB,CAAC,WAAW,CAAE,YAAW,cAAc,CAAC,WAAW,CAAC;IACzG,SAAS,CAAC,IAAI,SAAsB;IAEvB,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIjE,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzD,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzE"}
|