@credo-ts/askar 0.6.1-pr-2091-20241119140918 → 0.6.2-alpha-20251210145840

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/build/AskarApi.d.mts +68 -0
  2. package/build/AskarApi.d.mts.map +1 -0
  3. package/build/AskarApi.mjs +94 -0
  4. package/build/AskarApi.mjs.map +1 -0
  5. package/build/AskarApiOptions.d.mts +29 -0
  6. package/build/AskarApiOptions.d.mts.map +1 -0
  7. package/build/AskarModule.d.mts +18 -0
  8. package/build/AskarModule.d.mts.map +1 -0
  9. package/build/AskarModule.mjs +61 -0
  10. package/build/AskarModule.mjs.map +1 -0
  11. package/build/AskarModuleConfig.d.mts +125 -0
  12. package/build/AskarModuleConfig.d.mts.map +1 -0
  13. package/build/AskarModuleConfig.mjs +41 -0
  14. package/build/AskarModuleConfig.mjs.map +1 -0
  15. package/build/AskarStorageConfig.d.mts +32 -0
  16. package/build/AskarStorageConfig.d.mts.map +1 -0
  17. package/build/AskarStorageConfig.mjs +11 -0
  18. package/build/AskarStorageConfig.mjs.map +1 -0
  19. package/build/AskarStoreManager.d.mts +109 -0
  20. package/build/AskarStoreManager.d.mts.map +1 -0
  21. package/build/AskarStoreManager.mjs +386 -0
  22. package/build/AskarStoreManager.mjs.map +1 -0
  23. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +10 -0
  24. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs +7 -0
  25. package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs +9 -0
  26. package/build/error/AskarError.d.mts +1 -0
  27. package/build/error/AskarError.mjs +12 -0
  28. package/build/error/AskarError.mjs.map +1 -0
  29. package/build/error/AskarStoreDuplicateError.d.mts +13 -0
  30. package/build/error/AskarStoreDuplicateError.d.mts.map +1 -0
  31. package/build/error/AskarStoreDuplicateError.mjs +12 -0
  32. package/build/error/AskarStoreDuplicateError.mjs.map +1 -0
  33. package/build/error/AskarStoreError.d.mts +13 -0
  34. package/build/error/AskarStoreError.d.mts.map +1 -0
  35. package/build/error/AskarStoreError.mjs +12 -0
  36. package/build/error/AskarStoreError.mjs.map +1 -0
  37. package/build/error/AskarStoreExportPathExistsError.d.mts +13 -0
  38. package/build/error/AskarStoreExportPathExistsError.d.mts.map +1 -0
  39. package/build/error/AskarStoreExportPathExistsError.mjs +12 -0
  40. package/build/error/AskarStoreExportPathExistsError.mjs.map +1 -0
  41. package/build/error/AskarStoreExportUnsupportedError.d.mts +13 -0
  42. package/build/error/AskarStoreExportUnsupportedError.d.mts.map +1 -0
  43. package/build/error/AskarStoreExportUnsupportedError.mjs +12 -0
  44. package/build/error/AskarStoreExportUnsupportedError.mjs.map +1 -0
  45. package/build/error/AskarStoreImportPathExistsError.d.mts +13 -0
  46. package/build/error/AskarStoreImportPathExistsError.d.mts.map +1 -0
  47. package/build/error/AskarStoreImportPathExistsError.mjs +12 -0
  48. package/build/error/AskarStoreImportPathExistsError.mjs.map +1 -0
  49. package/build/error/AskarStoreInvalidKeyError.d.mts +13 -0
  50. package/build/error/AskarStoreInvalidKeyError.d.mts.map +1 -0
  51. package/build/error/AskarStoreInvalidKeyError.mjs +12 -0
  52. package/build/error/AskarStoreInvalidKeyError.mjs.map +1 -0
  53. package/build/error/AskarStoreNotFoundError.d.mts +13 -0
  54. package/build/error/AskarStoreNotFoundError.d.mts.map +1 -0
  55. package/build/error/AskarStoreNotFoundError.mjs +12 -0
  56. package/build/error/AskarStoreNotFoundError.mjs.map +1 -0
  57. package/build/error/index.d.mts +8 -0
  58. package/build/error/index.mjs +8 -0
  59. package/build/index.d.mts +19 -0
  60. package/build/index.mjs +19 -0
  61. package/build/kms/AskarKeyManagementService.d.mts +30 -0
  62. package/build/kms/AskarKeyManagementService.d.mts.map +1 -0
  63. package/build/kms/AskarKeyManagementService.mjs +415 -0
  64. package/build/kms/AskarKeyManagementService.mjs.map +1 -0
  65. package/build/kms/crypto/decrypt.mjs +21 -0
  66. package/build/kms/crypto/decrypt.mjs.map +1 -0
  67. package/build/kms/crypto/deriveKey.mjs +87 -0
  68. package/build/kms/crypto/deriveKey.mjs.map +1 -0
  69. package/build/kms/crypto/encrypt.mjs +24 -0
  70. package/build/kms/crypto/encrypt.mjs.map +1 -0
  71. package/build/kms/crypto/randomBytes.mjs +19 -0
  72. package/build/kms/crypto/randomBytes.mjs.map +1 -0
  73. package/build/storage/AskarStorageService.d.mts +34 -0
  74. package/build/storage/AskarStorageService.d.mts.map +1 -0
  75. package/build/storage/AskarStorageService.mjs +169 -0
  76. package/build/storage/AskarStorageService.mjs.map +1 -0
  77. package/build/storage/index.d.mts +1 -0
  78. package/build/storage/index.mjs +1 -0
  79. package/build/storage/utils.d.mts +8 -0
  80. package/build/storage/utils.d.mts.map +1 -0
  81. package/build/storage/utils.mjs +58 -0
  82. package/build/storage/utils.mjs.map +1 -0
  83. package/build/tenants.mjs +42 -0
  84. package/build/tenants.mjs.map +1 -0
  85. package/build/utils/askarError.d.mts +1 -0
  86. package/build/utils/askarError.mjs +21 -0
  87. package/build/utils/askarError.mjs.map +1 -0
  88. package/build/utils/askarKeyTypes.d.mts +2 -0
  89. package/build/utils/askarKeyTypes.mjs +25 -0
  90. package/build/utils/askarKeyTypes.mjs.map +1 -0
  91. package/build/utils/askarStoreConfig.d.mts +2 -0
  92. package/build/utils/askarStoreConfig.mjs +47 -0
  93. package/build/utils/askarStoreConfig.mjs.map +1 -0
  94. package/build/utils/index.d.mts +4 -0
  95. package/build/utils/index.mjs +4 -0
  96. package/build/utils/transformPrivateKey.d.mts +73 -0
  97. package/build/utils/transformPrivateKey.d.mts.map +1 -0
  98. package/build/utils/transformPrivateKey.mjs +73 -0
  99. package/build/utils/transformPrivateKey.mjs.map +1 -0
  100. package/package.json +21 -29
  101. package/build/AskarModule.d.ts +0 -9
  102. package/build/AskarModule.js +0 -58
  103. package/build/AskarModule.js.map +0 -1
  104. package/build/AskarModuleConfig.d.ts +0 -68
  105. package/build/AskarModuleConfig.js +0 -33
  106. package/build/AskarModuleConfig.js.map +0 -1
  107. package/build/index.d.ts +0 -4
  108. package/build/index.js +0 -16
  109. package/build/index.js.map +0 -1
  110. package/build/secureEnvironment/index.d.ts +0 -1
  111. package/build/secureEnvironment/index.js +0 -18
  112. package/build/secureEnvironment/index.js.map +0 -1
  113. package/build/secureEnvironment/secureEnvironment.d.ts +0 -5
  114. package/build/secureEnvironment/secureEnvironment.js +0 -7
  115. package/build/secureEnvironment/secureEnvironment.js.map +0 -1
  116. package/build/secureEnvironment/secureEnvironment.native.d.ts +0 -1
  117. package/build/secureEnvironment/secureEnvironment.native.js +0 -14
  118. package/build/secureEnvironment/secureEnvironment.native.js.map +0 -1
  119. package/build/storage/AskarStorageService.d.ts +0 -17
  120. package/build/storage/AskarStorageService.js +0 -141
  121. package/build/storage/AskarStorageService.js.map +0 -1
  122. package/build/storage/index.d.ts +0 -1
  123. package/build/storage/index.js +0 -18
  124. package/build/storage/index.js.map +0 -1
  125. package/build/storage/utils.d.ts +0 -15
  126. package/build/storage/utils.js +0 -109
  127. package/build/storage/utils.js.map +0 -1
  128. package/build/utils/askarError.d.ts +0 -14
  129. package/build/utils/askarError.js +0 -20
  130. package/build/utils/askarError.js.map +0 -1
  131. package/build/utils/askarKeyBackend.d.ts +0 -3
  132. package/build/utils/askarKeyBackend.js +0 -15
  133. package/build/utils/askarKeyBackend.js.map +0 -1
  134. package/build/utils/askarKeyTypes.d.ts +0 -8
  135. package/build/utils/askarKeyTypes.js +0 -46
  136. package/build/utils/askarKeyTypes.js.map +0 -1
  137. package/build/utils/askarWalletConfig.d.ts +0 -14
  138. package/build/utils/askarWalletConfig.js +0 -75
  139. package/build/utils/askarWalletConfig.js.map +0 -1
  140. package/build/utils/assertAskarWallet.d.ts +0 -3
  141. package/build/utils/assertAskarWallet.js +0 -14
  142. package/build/utils/assertAskarWallet.js.map +0 -1
  143. package/build/utils/index.d.ts +0 -3
  144. package/build/utils/index.js +0 -20
  145. package/build/utils/index.js.map +0 -1
  146. package/build/wallet/AskarBaseWallet.d.ts +0 -112
  147. package/build/wallet/AskarBaseWallet.js +0 -540
  148. package/build/wallet/AskarBaseWallet.js.map +0 -1
  149. package/build/wallet/AskarProfileWallet.d.ts +0 -24
  150. package/build/wallet/AskarProfileWallet.js +0 -150
  151. package/build/wallet/AskarProfileWallet.js.map +0 -1
  152. package/build/wallet/AskarWallet.d.ts +0 -58
  153. package/build/wallet/AskarWallet.js +0 -342
  154. package/build/wallet/AskarWallet.js.map +0 -1
  155. package/build/wallet/AskarWalletStorageConfig.d.ts +0 -31
  156. package/build/wallet/AskarWalletStorageConfig.js +0 -11
  157. package/build/wallet/AskarWalletStorageConfig.js.map +0 -1
  158. package/build/wallet/JweEnvelope.d.ts +0 -32
  159. package/build/wallet/JweEnvelope.js +0 -55
  160. package/build/wallet/JweEnvelope.js.map +0 -1
  161. package/build/wallet/didcommV1.d.ts +0 -8
  162. package/build/wallet/didcommV1.js +0 -155
  163. package/build/wallet/didcommV1.js.map +0 -1
  164. package/build/wallet/index.d.ts +0 -3
  165. package/build/wallet/index.js +0 -23
  166. package/build/wallet/index.js.map +0 -1
@@ -1,540 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AskarBaseWallet = void 0;
7
- const core_1 = require("@credo-ts/core");
8
- const aries_askar_shared_1 = require("@hyperledger/aries-askar-shared");
9
- const bn_js_1 = __importDefault(require("bn.js"));
10
- const secureEnvironment_1 = require("../secureEnvironment");
11
- const utils_1 = require("../utils");
12
- const didcommV1_1 = require("./didcommV1");
13
- const isError = (error) => error instanceof Error;
14
- class AskarBaseWallet {
15
- constructor(logger, signingKeyProviderRegistry) {
16
- this.logger = logger;
17
- this.signingKeyProviderRegistry = signingKeyProviderRegistry;
18
- }
19
- /**
20
- * Run callback with the session provided, the session will
21
- * be closed once the callback resolves or rejects if it is not closed yet.
22
- *
23
- * TODO: update to new `using` syntax so we don't have to use a callback
24
- */
25
- async withSession(callback) {
26
- let session = undefined;
27
- try {
28
- session = await this.store.session(this.profile).open();
29
- const result = await callback(session);
30
- return result;
31
- }
32
- finally {
33
- if (session === null || session === void 0 ? void 0 : session.handle) {
34
- await session.close();
35
- }
36
- }
37
- }
38
- /**
39
- * Run callback with a transaction. If the callback resolves the transaction
40
- * will be committed if the transaction is not closed yet. If the callback rejects
41
- * the transaction will be rolled back if the transaction is not closed yet.
42
- *
43
- * TODO: update to new `using` syntax so we don't have to use a callback
44
- */
45
- async withTransaction(callback) {
46
- let session = undefined;
47
- try {
48
- session = await this.store.transaction(this.profile).open();
49
- const result = await callback(session);
50
- if (session.handle) {
51
- await session.commit();
52
- }
53
- return result;
54
- }
55
- catch (error) {
56
- if (session === null || session === void 0 ? void 0 : session.handle) {
57
- await (session === null || session === void 0 ? void 0 : session.rollback());
58
- }
59
- throw error;
60
- }
61
- }
62
- get supportedKeyTypes() {
63
- const signingKeyProviderSupportedKeyTypes = this.signingKeyProviderRegistry.supportedKeyTypes;
64
- return Array.from(new Set([...utils_1.keyTypesSupportedByAskar, ...signingKeyProviderSupportedKeyTypes]));
65
- }
66
- /**
67
- * Create a key with an optional seed and keyType.
68
- * The keypair is also automatically stored in the wallet afterwards
69
- */
70
- async createKey({ seed, privateKey, keyType, keyId, keyBackend = core_1.KeyBackend.Software, }) {
71
- try {
72
- if (seed && privateKey) {
73
- throw new core_1.WalletError('Only one of seed and privateKey can be set');
74
- }
75
- if (seed && !(0, core_1.isValidSeed)(seed, keyType)) {
76
- throw new core_1.WalletError('Invalid seed provided');
77
- }
78
- if (privateKey && !(0, core_1.isValidPrivateKey)(privateKey, keyType)) {
79
- throw new core_1.WalletError('Invalid private key provided');
80
- }
81
- if (keyBackend === core_1.KeyBackend.SecureElement && keyType !== core_1.KeyType.P256) {
82
- throw new core_1.WalletError(`Keytype '${keyType}' is not supported for the secure element`);
83
- }
84
- if ((0, utils_1.isKeyTypeSupportedByAskarForPurpose)(keyType, utils_1.AskarKeyTypePurpose.KeyManagement) &&
85
- keyBackend === core_1.KeyBackend.Software) {
86
- const algorithm = (0, aries_askar_shared_1.keyAlgFromString)(keyType);
87
- // Create key
88
- let key;
89
- try {
90
- const _key = privateKey
91
- ? aries_askar_shared_1.Key.fromSecretBytes({ secretKey: privateKey, algorithm })
92
- : seed
93
- ? aries_askar_shared_1.Key.fromSeed({ seed, algorithm })
94
- : aries_askar_shared_1.Key.generate(algorithm);
95
- // FIXME: we need to create a separate const '_key' so TS definitely knows _key is defined in the session callback.
96
- // This will be fixed once we use the new 'using' syntax
97
- key = _key;
98
- const keyPublicBytes = key.publicBytes;
99
- // Store key
100
- await this.withSession((session) => session.insertKey({ key: _key, name: keyId !== null && keyId !== void 0 ? keyId : core_1.TypedArrayEncoder.toBase58(keyPublicBytes) }));
101
- key.handle.free();
102
- return core_1.Key.fromPublicKey(keyPublicBytes, keyType);
103
- }
104
- catch (error) {
105
- key === null || key === void 0 ? void 0 : key.handle.free();
106
- // Handle case where key already exists
107
- if ((0, utils_1.isAskarError)(error, utils_1.AskarErrorCode.Duplicate)) {
108
- throw new core_1.WalletKeyExistsError('Key already exists');
109
- }
110
- // Otherwise re-throw error
111
- throw error;
112
- }
113
- }
114
- else if (keyBackend === core_1.KeyBackend.SecureElement && keyType === core_1.KeyType.P256) {
115
- const secureEnvironment = (0, secureEnvironment_1.importSecureEnvironment)();
116
- const kid = core_1.utils.uuid();
117
- // Generate a hardware-backed P-256 keypair
118
- secureEnvironment.generateKeypair(kid);
119
- const publicKeyBytes = secureEnvironment.getPublicBytesForKeyId(kid);
120
- const publicKeyBase58 = core_1.TypedArrayEncoder.toBase58(publicKeyBytes);
121
- await this.storeSecureEnvironmentKeyById({
122
- keyType,
123
- publicKeyBase58,
124
- keyId: kid,
125
- });
126
- return new core_1.Key(publicKeyBytes, keyType);
127
- }
128
- else {
129
- // Check if there is a signing key provider for the specified key type.
130
- if (this.signingKeyProviderRegistry.hasProviderForKeyType(keyType)) {
131
- const signingKeyProvider = this.signingKeyProviderRegistry.getProviderForKeyType(keyType);
132
- const keyPair = await signingKeyProvider.createKeyPair({ seed, privateKey });
133
- await this.storeKeyPair(keyPair);
134
- return core_1.Key.fromPublicKeyBase58(keyPair.publicKeyBase58, keyType);
135
- }
136
- throw new core_1.WalletError(`Unsupported key type: '${keyType}'`);
137
- }
138
- }
139
- catch (error) {
140
- // If already instance of `WalletError`, re-throw
141
- if (error instanceof core_1.WalletError)
142
- throw error;
143
- if (!isError(error)) {
144
- throw new core_1.CredoError('Attempted to throw error, but it was not of type Error', { cause: error });
145
- }
146
- throw new core_1.WalletError(`Error creating key with key type '${keyType}': ${error.message}`, { cause: error });
147
- }
148
- }
149
- /**
150
- * sign a Buffer with an instance of a Key class
151
- *
152
- * @param data Buffer The data that needs to be signed
153
- * @param key Key The key that is used to sign the data
154
- *
155
- * @returns A signature for the data
156
- */
157
- async sign({ data, key }) {
158
- var _a;
159
- let askarKey;
160
- let keyPair;
161
- try {
162
- if ((0, utils_1.isKeyTypeSupportedByAskarForPurpose)(key.keyType, utils_1.AskarKeyTypePurpose.KeyManagement)) {
163
- askarKey = await this.withSession(async (session) => { var _a; return (_a = (await session.fetchKey({ name: key.publicKeyBase58 }))) === null || _a === void 0 ? void 0 : _a.key; });
164
- }
165
- // FIXME: remove the custom KeyPair record now that we deprecate Indy SDK.
166
- // We can do this in a migration script
167
- // Fallback to fetching key from the non-askar storage, this is to handle the case
168
- // where a key wasn't supported at first by the wallet, but now is
169
- if (!askarKey) {
170
- // TODO: we should probably make retrieveKeyPair + insertKey + deleteKeyPair a transaction
171
- keyPair = await this.retrieveKeyPair(key.publicKeyBase58);
172
- // If we have the key stored in a custom record, but it is now supported by Askar,
173
- // we 'import' the key into askar storage and remove the custom key record
174
- if (keyPair && (0, utils_1.isKeyTypeSupportedByAskarForPurpose)(keyPair.keyType, utils_1.AskarKeyTypePurpose.KeyManagement)) {
175
- const _askarKey = aries_askar_shared_1.Key.fromSecretBytes({
176
- secretKey: core_1.TypedArrayEncoder.fromBase58(keyPair.privateKeyBase58),
177
- algorithm: (0, aries_askar_shared_1.keyAlgFromString)(keyPair.keyType),
178
- });
179
- askarKey = _askarKey;
180
- await this.withSession((session) => session.insertKey({
181
- name: key.publicKeyBase58,
182
- key: _askarKey,
183
- }));
184
- // Now we can remove it from the custom record as we have imported it into Askar
185
- await this.deleteKeyPair(key.publicKeyBase58);
186
- keyPair = undefined;
187
- }
188
- else {
189
- const { keyId } = await this.getSecureEnvironmentKey(key.publicKeyBase58);
190
- if (Array.isArray(data[0])) {
191
- throw new core_1.WalletError('Multi signature is not supported for the Secure Environment');
192
- }
193
- return core_1.Buffer.from(await (0, secureEnvironment_1.importSecureEnvironment)().sign(keyId, new Uint8Array(data)));
194
- }
195
- }
196
- if (!askarKey && !keyPair) {
197
- throw new core_1.WalletError('Key entry not found');
198
- }
199
- // Not all keys are supported for signing
200
- if ((0, utils_1.isKeyTypeSupportedByAskarForPurpose)(key.keyType, utils_1.AskarKeyTypePurpose.Signing)) {
201
- if (!core_1.TypedArrayEncoder.isTypedArray(data)) {
202
- throw new core_1.WalletError(`Currently not supporting signing of multiple messages`);
203
- }
204
- askarKey =
205
- askarKey !== null && askarKey !== void 0 ? askarKey : (keyPair
206
- ? aries_askar_shared_1.Key.fromSecretBytes({
207
- secretKey: core_1.TypedArrayEncoder.fromBase58(keyPair.privateKeyBase58),
208
- algorithm: (0, aries_askar_shared_1.keyAlgFromString)(keyPair.keyType),
209
- })
210
- : undefined);
211
- if (!askarKey) {
212
- throw new core_1.WalletError('Key entry not found');
213
- }
214
- const signed = askarKey.signMessage({ message: data });
215
- return core_1.Buffer.from(signed);
216
- }
217
- else {
218
- // Check if there is a signing key provider for the specified key type.
219
- if (this.signingKeyProviderRegistry.hasProviderForKeyType(key.keyType)) {
220
- const signingKeyProvider = this.signingKeyProviderRegistry.getProviderForKeyType(key.keyType);
221
- // It could be that askar supports storing the key, but can't sign with it
222
- // (in case of bls)
223
- const privateKeyBase58 = (_a = keyPair === null || keyPair === void 0 ? void 0 : keyPair.privateKeyBase58) !== null && _a !== void 0 ? _a : ((askarKey === null || askarKey === void 0 ? void 0 : askarKey.secretBytes) ? core_1.TypedArrayEncoder.toBase58(askarKey.secretBytes) : undefined);
224
- if (!privateKeyBase58) {
225
- throw new core_1.WalletError('Key entry not found');
226
- }
227
- const signed = await signingKeyProvider.sign({
228
- data,
229
- privateKeyBase58: privateKeyBase58,
230
- publicKeyBase58: key.publicKeyBase58,
231
- });
232
- return signed;
233
- }
234
- throw new core_1.WalletError(`Unsupported keyType: ${key.keyType}`);
235
- }
236
- }
237
- catch (error) {
238
- if (!isError(error)) {
239
- throw new core_1.CredoError('Attempted to throw error, but it was not of type Error', { cause: error });
240
- }
241
- throw new core_1.WalletError(`Error signing data with verkey ${key.publicKeyBase58}. ${error.message}`, { cause: error });
242
- }
243
- finally {
244
- askarKey === null || askarKey === void 0 ? void 0 : askarKey.handle.free();
245
- }
246
- }
247
- /**
248
- * Verify the signature with the data and the used key
249
- *
250
- * @param data Buffer The data that has to be confirmed to be signed
251
- * @param key Key The key that was used in the signing process
252
- * @param signature Buffer The signature that was created by the signing process
253
- *
254
- * @returns A boolean whether the signature was created with the supplied data and key
255
- *
256
- * @throws {WalletError} When it could not do the verification
257
- * @throws {WalletError} When an unsupported keytype is used
258
- */
259
- async verify({ data, key, signature }) {
260
- let askarKey;
261
- try {
262
- if ((0, utils_1.isKeyTypeSupportedByAskarForPurpose)(key.keyType, utils_1.AskarKeyTypePurpose.Signing)) {
263
- if (!core_1.TypedArrayEncoder.isTypedArray(data)) {
264
- throw new core_1.WalletError(`Currently not supporting verification of multiple messages`);
265
- }
266
- askarKey = aries_askar_shared_1.Key.fromPublicBytes({
267
- algorithm: (0, aries_askar_shared_1.keyAlgFromString)(key.keyType),
268
- publicKey: key.publicKey,
269
- });
270
- const verified = askarKey.verifySignature({ message: data, signature });
271
- askarKey.handle.free();
272
- return verified;
273
- }
274
- else if (this.signingKeyProviderRegistry.hasProviderForKeyType(key.keyType)) {
275
- // Check if there is a signing key provider for the specified key type.
276
- const signingKeyProvider = this.signingKeyProviderRegistry.getProviderForKeyType(key.keyType);
277
- const signed = await signingKeyProvider.verify({
278
- data,
279
- signature,
280
- publicKeyBase58: key.publicKeyBase58,
281
- });
282
- return signed;
283
- }
284
- else {
285
- throw new core_1.WalletError(`Unsupported keyType: ${key.keyType}`);
286
- }
287
- }
288
- catch (error) {
289
- askarKey === null || askarKey === void 0 ? void 0 : askarKey.handle.free();
290
- if (!isError(error)) {
291
- throw new core_1.CredoError('Attempted to throw error, but it was not of type Error', { cause: error });
292
- }
293
- throw new core_1.WalletError(`Error verifying signature of data signed with verkey ${key.publicKeyBase58}`, {
294
- cause: error,
295
- });
296
- }
297
- }
298
- /**
299
- * Pack a message using DIDComm V1 algorithm
300
- *
301
- * @param payload message to send
302
- * @param recipientKeys array containing recipient keys in base58
303
- * @param senderVerkey sender key in base58
304
- * @returns JWE Envelope to send
305
- */
306
- async pack(payload, recipientKeys, senderVerkey // in base58
307
- ) {
308
- const senderKey = senderVerkey
309
- ? await this.withSession((session) => session.fetchKey({ name: senderVerkey }))
310
- : undefined;
311
- try {
312
- if (senderVerkey && !senderKey) {
313
- throw new core_1.WalletError(`Sender key not found`);
314
- }
315
- const envelope = (0, didcommV1_1.didcommV1Pack)(payload, recipientKeys, senderKey === null || senderKey === void 0 ? void 0 : senderKey.key);
316
- return envelope;
317
- }
318
- finally {
319
- senderKey === null || senderKey === void 0 ? void 0 : senderKey.key.handle.free();
320
- }
321
- }
322
- /**
323
- * Unpacks a JWE Envelope coded using DIDComm V1 algorithm
324
- *
325
- * @param messagePackage JWE Envelope
326
- * @returns UnpackedMessageContext with plain text message, sender key and recipient key
327
- */
328
- async unpack(messagePackage) {
329
- const protectedJson = core_1.JsonEncoder.fromBase64(messagePackage.protected);
330
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
331
- const recipientKids = protectedJson.recipients.map((r) => r.header.kid);
332
- // TODO: how long should sessions last? Just for the duration of the unpack? Or should each item in the recipientKids get a separate session?
333
- const returnValue = await this.withSession(async (session) => {
334
- for (const recipientKid of recipientKids) {
335
- const recipientKeyEntry = await session.fetchKey({ name: recipientKid });
336
- try {
337
- if (recipientKeyEntry) {
338
- return (0, didcommV1_1.didcommV1Unpack)(messagePackage, recipientKeyEntry.key);
339
- }
340
- }
341
- finally {
342
- recipientKeyEntry === null || recipientKeyEntry === void 0 ? void 0 : recipientKeyEntry.key.handle.free();
343
- }
344
- }
345
- });
346
- if (!returnValue) {
347
- throw new core_1.WalletError('No corresponding recipient key found');
348
- }
349
- return returnValue;
350
- }
351
- /**
352
- * Method that enables JWE encryption using ECDH-ES and AesA256Gcm and returns it as a compact JWE.
353
- * This method is specifically added to support OpenID4VP response encryption using JARM and should later be
354
- * refactored into a more generic method that supports encryption/decryption.
355
- *
356
- * @returns compact JWE
357
- */
358
- async directEncryptCompactJweEcdhEs({ recipientKey, encryptionAlgorithm, apu, apv, data, header, }) {
359
- if (encryptionAlgorithm !== 'A256GCM') {
360
- throw new core_1.WalletError(`Encryption algorithm ${encryptionAlgorithm} is not supported. Only A256GCM is supported`);
361
- }
362
- // Only one supported for now
363
- const encAlg = aries_askar_shared_1.KeyAlgs.AesA256Gcm;
364
- // Create ephemeral key
365
- const ephemeralKey = aries_askar_shared_1.Key.generate((0, aries_askar_shared_1.keyAlgFromString)(recipientKey.keyType));
366
- const _header = Object.assign(Object.assign({}, header), { apv,
367
- apu, enc: 'A256GCM', alg: 'ECDH-ES', epk: ephemeralKey.jwkPublic });
368
- const encodedHeader = core_1.JsonEncoder.toBase64URL(_header);
369
- const ecdh = new aries_askar_shared_1.EcdhEs({
370
- algId: Uint8Array.from(core_1.Buffer.from(encryptionAlgorithm)),
371
- apu: apu ? Uint8Array.from(core_1.TypedArrayEncoder.fromBase64(apu)) : Uint8Array.from([]),
372
- apv: apv ? Uint8Array.from(core_1.TypedArrayEncoder.fromBase64(apv)) : Uint8Array.from([]),
373
- });
374
- const { ciphertext, tag, nonce } = ecdh.encryptDirect({
375
- encAlg,
376
- ephemeralKey,
377
- message: Uint8Array.from(data),
378
- recipientKey: aries_askar_shared_1.Key.fromPublicBytes({
379
- algorithm: (0, aries_askar_shared_1.keyAlgFromString)(recipientKey.keyType),
380
- publicKey: recipientKey.publicKey,
381
- }),
382
- // NOTE: aad is bytes of base64url encoded string. It SHOULD NOT be decoded as base64
383
- aad: Uint8Array.from(core_1.Buffer.from(encodedHeader)),
384
- });
385
- const compactJwe = `${encodedHeader}..${core_1.TypedArrayEncoder.toBase64URL(nonce)}.${core_1.TypedArrayEncoder.toBase64URL(ciphertext)}.${core_1.TypedArrayEncoder.toBase64URL(tag)}`;
386
- return compactJwe;
387
- }
388
- /**
389
- * Method that enables JWE decryption using ECDH-ES and AesA256Gcm and returns it as plaintext buffer with the header.
390
- * The apv and apu values are extracted from the heaader, and thus on a higher level it should be checked that these
391
- * values are correct.
392
- */
393
- async directDecryptCompactJweEcdhEs({ compactJwe, recipientKey, }) {
394
- // encryption key is not used (we don't use key wrapping)
395
- const [encodedHeader /* encryptionKey */, , encodedIv, encodedCiphertext, encodedTag] = compactJwe.split('.');
396
- const header = core_1.JsonEncoder.fromBase64(encodedHeader);
397
- if (header.alg !== 'ECDH-ES') {
398
- throw new core_1.WalletError('Only ECDH-ES alg value is supported');
399
- }
400
- if (header.enc !== 'A256GCM') {
401
- throw new core_1.WalletError('Only A256GCM enc value is supported');
402
- }
403
- if (!header.epk || typeof header.epk !== 'object') {
404
- throw new core_1.WalletError('header epk value must contain a JWK');
405
- }
406
- // NOTE: we don't support custom key storage record at the moment.
407
- let askarKey;
408
- if ((0, utils_1.isKeyTypeSupportedByAskarForPurpose)(recipientKey.keyType, utils_1.AskarKeyTypePurpose.KeyManagement)) {
409
- askarKey = await this.withSession(async (session) => { var _a; return (_a = (await session.fetchKey({ name: recipientKey.publicKeyBase58 }))) === null || _a === void 0 ? void 0 : _a.key; });
410
- }
411
- if (!askarKey) {
412
- throw new core_1.WalletError('Key entry not found');
413
- }
414
- // Only one supported for now
415
- const encAlg = aries_askar_shared_1.KeyAlgs.AesA256Gcm;
416
- const ecdh = new aries_askar_shared_1.EcdhEs({
417
- algId: Uint8Array.from(core_1.Buffer.from(header.enc)),
418
- apu: header.apu ? Uint8Array.from(core_1.TypedArrayEncoder.fromBase64(header.apu)) : Uint8Array.from([]),
419
- apv: header.apv ? Uint8Array.from(core_1.TypedArrayEncoder.fromBase64(header.apv)) : Uint8Array.from([]),
420
- });
421
- const plaintext = ecdh.decryptDirect({
422
- nonce: core_1.TypedArrayEncoder.fromBase64(encodedIv),
423
- ciphertext: core_1.TypedArrayEncoder.fromBase64(encodedCiphertext),
424
- encAlg,
425
- ephemeralKey: aries_askar_shared_1.Jwk.fromJson(header.epk),
426
- recipientKey: askarKey,
427
- tag: core_1.TypedArrayEncoder.fromBase64(encodedTag),
428
- // NOTE: aad is bytes of base64url encoded string. It SHOULD NOT be decoded as base64
429
- aad: core_1.TypedArrayEncoder.fromString(encodedHeader),
430
- });
431
- return { data: core_1.Buffer.from(plaintext), header };
432
- }
433
- async generateNonce() {
434
- try {
435
- // generate an 80-bit nonce suitable for AnonCreds proofs
436
- const nonce = aries_askar_shared_1.CryptoBox.randomNonce().slice(0, 10);
437
- return new bn_js_1.default(nonce).toString();
438
- }
439
- catch (error) {
440
- if (!isError(error)) {
441
- throw new core_1.CredoError('Attempted to throw error, but it was not of type Error', { cause: error });
442
- }
443
- throw new core_1.WalletError('Error generating nonce', { cause: error });
444
- }
445
- }
446
- getRandomValues(length) {
447
- try {
448
- const buffer = new Uint8Array(length);
449
- const CBOX_NONCE_LENGTH = 24;
450
- const genCount = Math.ceil(length / CBOX_NONCE_LENGTH);
451
- const buf = new Uint8Array(genCount * CBOX_NONCE_LENGTH);
452
- for (let i = 0; i < genCount; i++) {
453
- const randomBytes = aries_askar_shared_1.CryptoBox.randomNonce();
454
- buf.set(randomBytes, CBOX_NONCE_LENGTH * i);
455
- }
456
- buffer.set(buf.subarray(0, length));
457
- return buffer;
458
- }
459
- catch (error) {
460
- if (!isError(error)) {
461
- throw new core_1.CredoError('Attempted to throw error, but it was not of type Error', { cause: error });
462
- }
463
- throw new core_1.WalletError('Error generating nonce', { cause: error });
464
- }
465
- }
466
- async generateWalletKey() {
467
- try {
468
- return aries_askar_shared_1.Store.generateRawKey();
469
- }
470
- catch (error) {
471
- throw new core_1.WalletError('Error generating wallet key', { cause: error });
472
- }
473
- }
474
- async retrieveKeyPair(publicKeyBase58) {
475
- try {
476
- const entryObject = await this.withSession((session) => session.fetch({ category: 'KeyPairRecord', name: `key-${publicKeyBase58}` }));
477
- if (!entryObject)
478
- return null;
479
- return core_1.JsonEncoder.fromString(entryObject === null || entryObject === void 0 ? void 0 : entryObject.value);
480
- }
481
- catch (error) {
482
- throw new core_1.WalletError('Error retrieving KeyPair record', { cause: error });
483
- }
484
- }
485
- async getSecureEnvironmentKey(keyId) {
486
- try {
487
- const entryObject = await this.withSession((session) => session.fetch({ category: 'SecureEnvironmentKeyRecord', name: keyId }));
488
- return core_1.JsonEncoder.fromString(entryObject === null || entryObject === void 0 ? void 0 : entryObject.value);
489
- }
490
- catch (error) {
491
- throw new core_1.WalletError('Error retrieving Secure Environment record', { cause: error });
492
- }
493
- }
494
- async deleteKeyPair(publicKeyBase58) {
495
- try {
496
- await this.withSession((session) => session.remove({ category: 'KeyPairRecord', name: `key-${publicKeyBase58}` }));
497
- }
498
- catch (error) {
499
- throw new core_1.WalletError('Error removing KeyPair record', { cause: error });
500
- }
501
- }
502
- async storeKeyPair(keyPair) {
503
- try {
504
- await this.withSession((session) => session.insert({
505
- category: 'KeyPairRecord',
506
- name: `key-${keyPair.publicKeyBase58}`,
507
- value: JSON.stringify(keyPair),
508
- tags: {
509
- keyType: keyPair.keyType,
510
- },
511
- }));
512
- }
513
- catch (error) {
514
- if ((0, utils_1.isAskarError)(error, utils_1.AskarErrorCode.Duplicate)) {
515
- throw new core_1.WalletKeyExistsError('Key already exists');
516
- }
517
- throw new core_1.WalletError('Error saving KeyPair record', { cause: error });
518
- }
519
- }
520
- async storeSecureEnvironmentKeyById(options) {
521
- try {
522
- await this.withSession((session) => session.insert({
523
- category: 'SecureEnvironmentKeyRecord',
524
- name: options.publicKeyBase58,
525
- value: JSON.stringify(options),
526
- tags: {
527
- keyType: options.keyType,
528
- },
529
- }));
530
- }
531
- catch (error) {
532
- if ((0, utils_1.isAskarError)(error, utils_1.AskarErrorCode.Duplicate)) {
533
- throw new core_1.WalletKeyExistsError('Key already exists');
534
- }
535
- throw new core_1.WalletError('Error saving SecureEnvironment record', { cause: error });
536
- }
537
- }
538
- }
539
- exports.AskarBaseWallet = AskarBaseWallet;
540
- //# sourceMappingURL=AskarBaseWallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AskarBaseWallet.js","sourceRoot":"","sources":["../../src/wallet/AskarBaseWallet.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { WalletConfig } from '@credo-ts/core';
2
- import { Logger, SigningProviderRegistry } from '@credo-ts/core';
3
- import { Store } from '@hyperledger/aries-askar-shared';
4
- import { AskarBaseWallet } from './AskarBaseWallet';
5
- export declare class AskarProfileWallet extends AskarBaseWallet {
6
- private walletConfig?;
7
- readonly store: Store;
8
- isInitialized: boolean;
9
- constructor(store: Store, logger: Logger, signingKeyProviderRegistry: SigningProviderRegistry);
10
- get isProvisioned(): boolean;
11
- get profile(): string;
12
- /**
13
- * Dispose method is called when an agent context is disposed.
14
- */
15
- dispose(): Promise<void>;
16
- create(walletConfig: WalletConfig): Promise<void>;
17
- open(walletConfig: WalletConfig): Promise<void>;
18
- createAndOpen(walletConfig: WalletConfig): Promise<void>;
19
- delete(): Promise<void>;
20
- export(): Promise<void>;
21
- import(): Promise<void>;
22
- rotateKey(): Promise<void>;
23
- close(): Promise<void>;
24
- }