@openwallet-foundation/askar-nodejs 0.3.0

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 (139) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +36 -0
  3. package/build/askar-nodejs/src/NodeJSAskar.d.ts +184 -0
  4. package/build/askar-nodejs/src/NodeJSAskar.js +625 -0
  5. package/build/askar-nodejs/src/NodeJSAskar.js.map +1 -0
  6. package/build/askar-nodejs/src/ffi/alloc.d.ts +12 -0
  7. package/build/askar-nodejs/src/ffi/alloc.js +27 -0
  8. package/build/askar-nodejs/src/ffi/alloc.js.map +1 -0
  9. package/build/askar-nodejs/src/ffi/callback.d.ts +15 -0
  10. package/build/askar-nodejs/src/ffi/callback.js +26 -0
  11. package/build/askar-nodejs/src/ffi/callback.js.map +1 -0
  12. package/build/askar-nodejs/src/ffi/conversion.d.ts +19 -0
  13. package/build/askar-nodejs/src/ffi/conversion.js +27 -0
  14. package/build/askar-nodejs/src/ffi/conversion.js.map +1 -0
  15. package/build/askar-nodejs/src/ffi/index.d.ts +6 -0
  16. package/build/askar-nodejs/src/ffi/index.js +23 -0
  17. package/build/askar-nodejs/src/ffi/index.js.map +1 -0
  18. package/build/askar-nodejs/src/ffi/primitives.d.ts +22 -0
  19. package/build/askar-nodejs/src/ffi/primitives.js +32 -0
  20. package/build/askar-nodejs/src/ffi/primitives.js.map +1 -0
  21. package/build/askar-nodejs/src/ffi/serialize.d.ts +11 -0
  22. package/build/askar-nodejs/src/ffi/serialize.js +54 -0
  23. package/build/askar-nodejs/src/ffi/serialize.js.map +1 -0
  24. package/build/askar-nodejs/src/ffi/structures.d.ts +51 -0
  25. package/build/askar-nodejs/src/ffi/structures.js +56 -0
  26. package/build/askar-nodejs/src/ffi/structures.js.map +1 -0
  27. package/build/askar-nodejs/src/index.d.ts +3 -0
  28. package/build/askar-nodejs/src/index.js +23 -0
  29. package/build/askar-nodejs/src/index.js.map +1 -0
  30. package/build/askar-nodejs/src/library/NativeBindingInterface.d.ts +25 -0
  31. package/build/askar-nodejs/src/library/NativeBindingInterface.js +3 -0
  32. package/build/askar-nodejs/src/library/NativeBindingInterface.js.map +1 -0
  33. package/build/askar-nodejs/src/library/bindings.d.ts +241 -0
  34. package/build/askar-nodejs/src/library/bindings.js +210 -0
  35. package/build/askar-nodejs/src/library/bindings.js.map +1 -0
  36. package/build/askar-nodejs/src/library/index.d.ts +3 -0
  37. package/build/askar-nodejs/src/library/index.js +20 -0
  38. package/build/askar-nodejs/src/library/index.js.map +1 -0
  39. package/build/askar-nodejs/src/library/register.d.ts +86 -0
  40. package/build/askar-nodejs/src/library/register.js +63 -0
  41. package/build/askar-nodejs/src/library/register.js.map +1 -0
  42. package/build/askar-shared/src/askar/Askar.d.ts +437 -0
  43. package/build/askar-shared/src/askar/Askar.js +3 -0
  44. package/build/askar-shared/src/askar/Askar.js.map +1 -0
  45. package/build/askar-shared/src/askar/index.d.ts +2 -0
  46. package/build/askar-shared/src/askar/index.js +19 -0
  47. package/build/askar-shared/src/askar/index.js.map +1 -0
  48. package/build/askar-shared/src/askar/register.d.ts +5 -0
  49. package/build/askar-shared/src/askar/register.js +8 -0
  50. package/build/askar-shared/src/askar/register.js.map +1 -0
  51. package/build/askar-shared/src/crypto/AeadParams.d.ts +9 -0
  52. package/build/askar-shared/src/crypto/AeadParams.js +11 -0
  53. package/build/askar-shared/src/crypto/AeadParams.js.map +1 -0
  54. package/build/askar-shared/src/crypto/CryptoBox.d.ts +24 -0
  55. package/build/askar-shared/src/crypto/CryptoBox.js +23 -0
  56. package/build/askar-shared/src/crypto/CryptoBox.js.map +1 -0
  57. package/build/askar-shared/src/crypto/Ecdh1PU.d.ts +58 -0
  58. package/build/askar-shared/src/crypto/Ecdh1PU.js +77 -0
  59. package/build/askar-shared/src/crypto/Ecdh1PU.js.map +1 -0
  60. package/build/askar-shared/src/crypto/EcdhEs.d.ts +46 -0
  61. package/build/askar-shared/src/crypto/EcdhEs.js +64 -0
  62. package/build/askar-shared/src/crypto/EcdhEs.js.map +1 -0
  63. package/build/askar-shared/src/crypto/EncryptedBuffer.d.ts +20 -0
  64. package/build/askar-shared/src/crypto/EncryptedBuffer.js +36 -0
  65. package/build/askar-shared/src/crypto/EncryptedBuffer.js.map +1 -0
  66. package/build/askar-shared/src/crypto/Jwk.d.ts +18 -0
  67. package/build/askar-shared/src/crypto/Jwk.js +24 -0
  68. package/build/askar-shared/src/crypto/Jwk.js.map +1 -0
  69. package/build/askar-shared/src/crypto/Key.d.ts +73 -0
  70. package/build/askar-shared/src/crypto/Key.js +101 -0
  71. package/build/askar-shared/src/crypto/Key.js.map +1 -0
  72. package/build/askar-shared/src/crypto/handles.d.ts +46 -0
  73. package/build/askar-shared/src/crypto/handles.js +123 -0
  74. package/build/askar-shared/src/crypto/handles.js.map +1 -0
  75. package/build/askar-shared/src/crypto/index.d.ts +8 -0
  76. package/build/askar-shared/src/crypto/index.js +25 -0
  77. package/build/askar-shared/src/crypto/index.js.map +1 -0
  78. package/build/askar-shared/src/enums/EntryOperation.d.ts +5 -0
  79. package/build/askar-shared/src/enums/EntryOperation.js +10 -0
  80. package/build/askar-shared/src/enums/EntryOperation.js.map +1 -0
  81. package/build/askar-shared/src/enums/KeyAlgorithm.d.ts +20 -0
  82. package/build/askar-shared/src/enums/KeyAlgorithm.js +38 -0
  83. package/build/askar-shared/src/enums/KeyAlgorithm.js.map +1 -0
  84. package/build/askar-shared/src/enums/KeyBackend.d.ts +6 -0
  85. package/build/askar-shared/src/enums/KeyBackend.js +24 -0
  86. package/build/askar-shared/src/enums/KeyBackend.js.map +1 -0
  87. package/build/askar-shared/src/enums/KeyMethod.d.ts +4 -0
  88. package/build/askar-shared/src/enums/KeyMethod.js +9 -0
  89. package/build/askar-shared/src/enums/KeyMethod.js.map +1 -0
  90. package/build/askar-shared/src/enums/LogLevel.d.ts +9 -0
  91. package/build/askar-shared/src/enums/LogLevel.js +14 -0
  92. package/build/askar-shared/src/enums/LogLevel.js.map +1 -0
  93. package/build/askar-shared/src/enums/SignatureAlgorithm.d.ts +6 -0
  94. package/build/askar-shared/src/enums/SignatureAlgorithm.js +11 -0
  95. package/build/askar-shared/src/enums/SignatureAlgorithm.js.map +1 -0
  96. package/build/askar-shared/src/enums/index.d.ts +5 -0
  97. package/build/askar-shared/src/enums/index.js +22 -0
  98. package/build/askar-shared/src/enums/index.js.map +1 -0
  99. package/build/askar-shared/src/error.d.ts +12 -0
  100. package/build/askar-shared/src/error.js +21 -0
  101. package/build/askar-shared/src/error.js.map +1 -0
  102. package/build/askar-shared/src/index.d.ts +6 -0
  103. package/build/askar-shared/src/index.js +23 -0
  104. package/build/askar-shared/src/index.js.map +1 -0
  105. package/build/askar-shared/src/migration.d.ts +10 -0
  106. package/build/askar-shared/src/migration.js +11 -0
  107. package/build/askar-shared/src/migration.js.map +1 -0
  108. package/build/askar-shared/src/store/Entry.d.ts +21 -0
  109. package/build/askar-shared/src/store/Entry.js +38 -0
  110. package/build/askar-shared/src/store/Entry.js.map +1 -0
  111. package/build/askar-shared/src/store/EntryList.d.ts +17 -0
  112. package/build/askar-shared/src/store/EntryList.js +40 -0
  113. package/build/askar-shared/src/store/EntryList.js.map +1 -0
  114. package/build/askar-shared/src/store/KeyEntry.d.ts +23 -0
  115. package/build/askar-shared/src/store/KeyEntry.js +40 -0
  116. package/build/askar-shared/src/store/KeyEntry.js.map +1 -0
  117. package/build/askar-shared/src/store/KeyEntryList.d.ts +15 -0
  118. package/build/askar-shared/src/store/KeyEntryList.js +33 -0
  119. package/build/askar-shared/src/store/KeyEntryList.js.map +1 -0
  120. package/build/askar-shared/src/store/OpenSession.d.ts +14 -0
  121. package/build/askar-shared/src/store/OpenSession.js +27 -0
  122. package/build/askar-shared/src/store/OpenSession.js.map +1 -0
  123. package/build/askar-shared/src/store/Scan.d.ts +28 -0
  124. package/build/askar-shared/src/store/Scan.js +67 -0
  125. package/build/askar-shared/src/store/Scan.js.map +1 -0
  126. package/build/askar-shared/src/store/Session.d.ts +86 -0
  127. package/build/askar-shared/src/store/Session.js +182 -0
  128. package/build/askar-shared/src/store/Session.js.map +1 -0
  129. package/build/askar-shared/src/store/Store.d.ts +58 -0
  130. package/build/askar-shared/src/store/Store.js +87 -0
  131. package/build/askar-shared/src/store/Store.js.map +1 -0
  132. package/build/askar-shared/src/store/StoreKeyMethod.d.ts +11 -0
  133. package/build/askar-shared/src/store/StoreKeyMethod.js +20 -0
  134. package/build/askar-shared/src/store/StoreKeyMethod.js.map +1 -0
  135. package/build/askar-shared/src/store/index.d.ts +9 -0
  136. package/build/askar-shared/src/store/index.js +26 -0
  137. package/build/askar-shared/src/store/index.js.map +1 -0
  138. package/package.json +55 -0
  139. package/scripts/install.js +15 -0
@@ -0,0 +1,625 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NodeJSAskar = void 0;
4
+ const askar_shared_1 = require("@openwallet-foundation/askar-shared");
5
+ const ffi_1 = require("./ffi");
6
+ const library_1 = require("./library");
7
+ function handleNullableReturnPointer(returnValue) {
8
+ if (returnValue.address() === 0)
9
+ return null;
10
+ return returnValue.deref();
11
+ }
12
+ function handleReturnPointer(returnValue) {
13
+ if (returnValue.address() === 0) {
14
+ throw askar_shared_1.AskarError.customError({ message: 'Unexpected null pointer' });
15
+ }
16
+ return returnValue.deref();
17
+ }
18
+ class NodeJSAskar {
19
+ constructor() {
20
+ this.promisify = async (method) => {
21
+ return new Promise((resolve, reject) => {
22
+ const cb = (id, errorCode) => {
23
+ (0, ffi_1.deallocateCallbackBuffer)(id);
24
+ try {
25
+ this.handleError(errorCode);
26
+ }
27
+ catch (e) {
28
+ reject(e);
29
+ }
30
+ resolve();
31
+ };
32
+ const { nativeCallback, id } = (0, ffi_1.toNativeCallback)(cb);
33
+ method(nativeCallback, +id);
34
+ });
35
+ };
36
+ this.promisifyWithResponse = async (method, responseFfiType = ffi_1.FFI_STRING) => {
37
+ return new Promise((resolve, reject) => {
38
+ const cb = (id, errorCode, response) => {
39
+ (0, ffi_1.deallocateCallbackBuffer)(id);
40
+ if (errorCode !== 0) {
41
+ const error = this.getAskarError(errorCode);
42
+ reject(error);
43
+ }
44
+ if (typeof response === 'string') {
45
+ if (responseFfiType === ffi_1.FFI_STRING)
46
+ resolve(response);
47
+ try {
48
+ resolve(JSON.parse(response));
49
+ }
50
+ catch (error) {
51
+ reject(error);
52
+ }
53
+ }
54
+ else if (typeof response === 'number') {
55
+ resolve(response);
56
+ }
57
+ else if (response instanceof Buffer) {
58
+ if (response.address() === 0)
59
+ resolve(null);
60
+ resolve(response);
61
+ }
62
+ reject(askar_shared_1.AskarError.customError({ message: `could not parse return type properly (type: ${typeof response})` }));
63
+ };
64
+ const { nativeCallback, id } = (0, ffi_1.toNativeCallbackWithResponse)(cb, responseFfiType);
65
+ const errorCode = method(nativeCallback, +id);
66
+ if (errorCode !== 0)
67
+ (0, ffi_1.deallocateCallbackBuffer)(+id);
68
+ this.handleError(errorCode);
69
+ });
70
+ };
71
+ }
72
+ /**
73
+ * Fetch the error from the native library and throw it as a JS error
74
+ *
75
+ * NOTE:
76
+ * Checks whether the error code of the returned error matches the error code that was passed to the function.
77
+ * If it doesn't, we throw an error with the original errorCode, and a custom message explaining we weren't able
78
+ * to retrieve the error message from the native library. This should however not break functionality as long as
79
+ * error codes are used rather than error messages for error handling.
80
+ *
81
+ */
82
+ getAskarError(errorCode) {
83
+ const error = this.getCurrentError();
84
+ if (error.code !== errorCode) {
85
+ return new askar_shared_1.AskarError({
86
+ code: errorCode,
87
+ message: 'Error details have already been overwritten on the native side, unable to retrieve error message for the error',
88
+ });
89
+ }
90
+ return new askar_shared_1.AskarError(error);
91
+ }
92
+ handleError(errorCode) {
93
+ if (errorCode === 0)
94
+ return;
95
+ throw this.getAskarError(errorCode);
96
+ }
97
+ get nativeAskar() {
98
+ return (0, library_1.getNativeAskar)();
99
+ }
100
+ version() {
101
+ return this.nativeAskar.askar_version();
102
+ }
103
+ getCurrentError() {
104
+ const error = (0, ffi_1.allocateStringBuffer)();
105
+ this.nativeAskar.askar_get_current_error(error);
106
+ const serializedError = handleReturnPointer(error);
107
+ return JSON.parse(serializedError);
108
+ }
109
+ clearCustomLogger() {
110
+ this.nativeAskar.askar_clear_custom_logger();
111
+ }
112
+ // TODO: the id has to be deallocated when its done, but how?
113
+ setCustomLogger({ logLevel, flush = false, enabled = false, logger }) {
114
+ const { id, nativeCallback } = (0, ffi_1.toNativeLogCallback)(logger);
115
+ // TODO: flush and enabled are just guessed
116
+ const errorCode = this.nativeAskar.askar_set_custom_logger(0, nativeCallback, +enabled, +flush, logLevel);
117
+ this.handleError(errorCode);
118
+ (0, ffi_1.deallocateCallbackBuffer)(+id);
119
+ }
120
+ setDefaultLogger() {
121
+ const errorCode = this.nativeAskar.askar_set_default_logger();
122
+ this.handleError(errorCode);
123
+ }
124
+ setMaxLogLevel(options) {
125
+ const { logLevel } = (0, ffi_1.serializeArguments)(options);
126
+ const errorCode = this.nativeAskar.askar_set_max_log_level(logLevel);
127
+ this.handleError(errorCode);
128
+ }
129
+ entryListCount(options) {
130
+ const { entryListHandle } = (0, ffi_1.serializeArguments)(options);
131
+ const ret = (0, ffi_1.allocateInt32Buffer)();
132
+ const errorCode = this.nativeAskar.askar_entry_list_count(entryListHandle, ret);
133
+ this.handleError(errorCode);
134
+ return handleReturnPointer(ret);
135
+ }
136
+ entryListFree(options) {
137
+ const { entryListHandle } = (0, ffi_1.serializeArguments)(options);
138
+ this.nativeAskar.askar_entry_list_free(entryListHandle);
139
+ }
140
+ entryListGetCategory(options) {
141
+ const { entryListHandle, index } = (0, ffi_1.serializeArguments)(options);
142
+ const ret = (0, ffi_1.allocateStringBuffer)();
143
+ const errorCode = this.nativeAskar.askar_entry_list_get_category(entryListHandle, index, ret);
144
+ this.handleError(errorCode);
145
+ return handleReturnPointer(ret);
146
+ }
147
+ entryListGetName(options) {
148
+ const { entryListHandle, index } = (0, ffi_1.serializeArguments)(options);
149
+ const ret = (0, ffi_1.allocateStringBuffer)();
150
+ const errorCode = this.nativeAskar.askar_entry_list_get_name(entryListHandle, index, ret);
151
+ this.handleError(errorCode);
152
+ return handleReturnPointer(ret);
153
+ }
154
+ entryListGetTags(options) {
155
+ const { entryListHandle, index } = (0, ffi_1.serializeArguments)(options);
156
+ const ret = (0, ffi_1.allocateStringBuffer)();
157
+ const errorCode = this.nativeAskar.askar_entry_list_get_tags(entryListHandle, index, ret);
158
+ this.handleError(errorCode);
159
+ return handleNullableReturnPointer(ret);
160
+ }
161
+ entryListGetValue(options) {
162
+ const { entryListHandle, index } = (0, ffi_1.serializeArguments)(options);
163
+ const ret = (0, ffi_1.allocateSecretBuffer)();
164
+ const errorCode = this.nativeAskar.askar_entry_list_get_value(entryListHandle, index, ret);
165
+ this.handleError(errorCode);
166
+ const byteBuffer = handleReturnPointer(ret);
167
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(byteBuffer));
168
+ }
169
+ keyAeadDecrypt(options) {
170
+ const { aad, ciphertext, localKeyHandle, nonce, tag } = (0, ffi_1.serializeArguments)(options);
171
+ const ret = (0, ffi_1.allocateSecretBuffer)();
172
+ const errorCode = this.nativeAskar.askar_key_aead_decrypt(localKeyHandle, ciphertext, nonce, tag, aad, ret);
173
+ this.handleError(errorCode);
174
+ const byteBuffer = handleReturnPointer(ret);
175
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(byteBuffer));
176
+ }
177
+ keyAeadEncrypt(options) {
178
+ const { localKeyHandle, aad, nonce, message } = (0, ffi_1.serializeArguments)(options);
179
+ const ret = (0, ffi_1.allocateEncryptedBuffer)();
180
+ const errorCode = this.nativeAskar.askar_key_aead_encrypt(localKeyHandle, message, nonce, aad, ret);
181
+ this.handleError(errorCode);
182
+ const encryptedBuffer = handleReturnPointer(ret);
183
+ return (0, ffi_1.encryptedBufferStructToClass)(encryptedBuffer);
184
+ }
185
+ keyAeadGetPadding(options) {
186
+ const { localKeyHandle, msgLen } = (0, ffi_1.serializeArguments)(options);
187
+ const ret = (0, ffi_1.allocateInt32Buffer)();
188
+ const errorCode = this.nativeAskar.askar_key_aead_get_padding(localKeyHandle, msgLen, ret);
189
+ this.handleError(errorCode);
190
+ return handleReturnPointer(ret);
191
+ }
192
+ keyAeadGetParams(options) {
193
+ const { localKeyHandle } = (0, ffi_1.serializeArguments)(options);
194
+ const ret = (0, ffi_1.allocateAeadParams)();
195
+ const errorCode = this.nativeAskar.askar_key_aead_get_params(localKeyHandle, ret);
196
+ this.handleError(errorCode);
197
+ return new askar_shared_1.AeadParams(handleReturnPointer(ret));
198
+ }
199
+ keyAeadRandomNonce(options) {
200
+ const { localKeyHandle } = (0, ffi_1.serializeArguments)(options);
201
+ const ret = (0, ffi_1.allocateSecretBuffer)();
202
+ const errorCode = this.nativeAskar.askar_key_aead_random_nonce(localKeyHandle, ret);
203
+ this.handleError(errorCode);
204
+ const secretBuffer = handleReturnPointer(ret);
205
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
206
+ }
207
+ keyConvert(options) {
208
+ const { localKeyHandle, algorithm } = (0, ffi_1.serializeArguments)(options);
209
+ const ret = (0, ffi_1.allocatePointer)();
210
+ const errorCode = this.nativeAskar.askar_key_convert(localKeyHandle, algorithm, ret);
211
+ this.handleError(errorCode);
212
+ const handle = handleReturnPointer(ret);
213
+ return new askar_shared_1.LocalKeyHandle(handle);
214
+ }
215
+ keyCryptoBox(options) {
216
+ const { nonce, message, recipientKey, senderKey } = (0, ffi_1.serializeArguments)(options);
217
+ const ret = (0, ffi_1.allocateSecretBuffer)();
218
+ const errorCode = this.nativeAskar.askar_key_crypto_box(recipientKey, senderKey, message, nonce, ret);
219
+ this.handleError(errorCode);
220
+ const secretBuffer = handleReturnPointer(ret);
221
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
222
+ }
223
+ keyCryptoBoxOpen(options) {
224
+ const { nonce, message, senderKey, recipientKey } = (0, ffi_1.serializeArguments)(options);
225
+ const ret = (0, ffi_1.allocateSecretBuffer)();
226
+ const errorCode = this.nativeAskar.askar_key_crypto_box_open(recipientKey, senderKey, message, nonce, ret);
227
+ this.handleError(errorCode);
228
+ const secretBuffer = handleReturnPointer(ret);
229
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
230
+ }
231
+ keyCryptoBoxRandomNonce() {
232
+ const ret = (0, ffi_1.allocateSecretBuffer)();
233
+ const errorCode = this.nativeAskar.askar_key_crypto_box_random_nonce(ret);
234
+ this.handleError(errorCode);
235
+ const secretBuffer = handleReturnPointer(ret);
236
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
237
+ }
238
+ keyCryptoBoxSeal(options) {
239
+ const { message, localKeyHandle } = (0, ffi_1.serializeArguments)(options);
240
+ const ret = (0, ffi_1.allocateSecretBuffer)();
241
+ const errorCode = this.nativeAskar.askar_key_crypto_box_seal(localKeyHandle, message, ret);
242
+ this.handleError(errorCode);
243
+ const secretBuffer = handleReturnPointer(ret);
244
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
245
+ }
246
+ keyCryptoBoxSealOpen(options) {
247
+ const { ciphertext, localKeyHandle } = (0, ffi_1.serializeArguments)(options);
248
+ const ret = (0, ffi_1.allocateSecretBuffer)();
249
+ const errorCode = this.nativeAskar.askar_key_crypto_box_seal_open(localKeyHandle, ciphertext, ret);
250
+ this.handleError(errorCode);
251
+ const secretBuffer = handleReturnPointer(ret);
252
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
253
+ }
254
+ keyDeriveEcdh1pu(options) {
255
+ const { senderKey, recipientKey, algorithm, algId, apu, apv, ccTag, ephemeralKey, receive } = (0, ffi_1.serializeArguments)(options);
256
+ const ret = (0, ffi_1.allocatePointer)();
257
+ const errorCode = this.nativeAskar.askar_key_derive_ecdh_1pu(algorithm, ephemeralKey, senderKey, recipientKey, algId, apu, apv, ccTag, receive, ret);
258
+ this.handleError(errorCode);
259
+ const handle = handleReturnPointer(ret);
260
+ return new askar_shared_1.LocalKeyHandle(handle);
261
+ }
262
+ keyDeriveEcdhEs(options) {
263
+ const { receive, apv, apu, algId, recipientKey, ephemeralKey, algorithm } = (0, ffi_1.serializeArguments)(options);
264
+ const ret = (0, ffi_1.allocatePointer)();
265
+ const errorCode = this.nativeAskar.askar_key_derive_ecdh_es(algorithm, ephemeralKey, recipientKey, algId, apu, apv, receive, ret);
266
+ this.handleError(errorCode);
267
+ const handle = handleReturnPointer(ret);
268
+ return new askar_shared_1.LocalKeyHandle(handle);
269
+ }
270
+ keyEntryListCount(options) {
271
+ const { keyEntryListHandle } = (0, ffi_1.serializeArguments)(options);
272
+ const ret = (0, ffi_1.allocateInt32Buffer)();
273
+ const errorCode = this.nativeAskar.askar_key_entry_list_count(keyEntryListHandle, ret);
274
+ this.handleError(errorCode);
275
+ return handleReturnPointer(ret);
276
+ }
277
+ keyEntryListFree(options) {
278
+ const { keyEntryListHandle } = (0, ffi_1.serializeArguments)(options);
279
+ this.nativeAskar.askar_key_entry_list_free(keyEntryListHandle);
280
+ }
281
+ keyEntryListGetAlgorithm(options) {
282
+ const { keyEntryListHandle, index } = (0, ffi_1.serializeArguments)(options);
283
+ const ret = (0, ffi_1.allocateStringBuffer)();
284
+ const errorCode = this.nativeAskar.askar_key_entry_list_get_algorithm(keyEntryListHandle, index, ret);
285
+ this.handleError(errorCode);
286
+ return handleReturnPointer(ret);
287
+ }
288
+ keyEntryListGetMetadata(options) {
289
+ const { keyEntryListHandle, index } = (0, ffi_1.serializeArguments)(options);
290
+ const ret = (0, ffi_1.allocateStringBuffer)();
291
+ const errorCode = this.nativeAskar.askar_key_entry_list_get_metadata(keyEntryListHandle, index, ret);
292
+ this.handleError(errorCode);
293
+ return handleNullableReturnPointer(ret);
294
+ }
295
+ keyEntryListGetName(options) {
296
+ const { keyEntryListHandle, index } = (0, ffi_1.serializeArguments)(options);
297
+ const ret = (0, ffi_1.allocateStringBuffer)();
298
+ const errorCode = this.nativeAskar.askar_key_entry_list_get_name(keyEntryListHandle, index, ret);
299
+ this.handleError(errorCode);
300
+ return handleReturnPointer(ret);
301
+ }
302
+ keyEntryListGetTags(options) {
303
+ const { keyEntryListHandle, index } = (0, ffi_1.serializeArguments)(options);
304
+ const ret = (0, ffi_1.allocateStringBuffer)();
305
+ const errorCode = this.nativeAskar.askar_key_entry_list_get_tags(keyEntryListHandle, index, ret);
306
+ this.handleError(errorCode);
307
+ return handleNullableReturnPointer(ret);
308
+ }
309
+ keyEntryListLoadLocal(options) {
310
+ const { index, keyEntryListHandle } = (0, ffi_1.serializeArguments)(options);
311
+ const ret = (0, ffi_1.allocatePointer)();
312
+ const errorCode = this.nativeAskar.askar_key_entry_list_load_local(keyEntryListHandle, index, ret);
313
+ this.handleError(errorCode);
314
+ const handle = handleReturnPointer(ret);
315
+ return new askar_shared_1.LocalKeyHandle(handle);
316
+ }
317
+ keyFree(options) {
318
+ const { localKeyHandle } = (0, ffi_1.serializeArguments)(options);
319
+ this.nativeAskar.askar_key_free(localKeyHandle);
320
+ }
321
+ keyFromJwk(options) {
322
+ const { jwk } = (0, ffi_1.serializeArguments)(options);
323
+ const ret = (0, ffi_1.allocatePointer)();
324
+ const errorCode = this.nativeAskar.askar_key_from_jwk(jwk, ret);
325
+ this.handleError(errorCode);
326
+ const handle = handleReturnPointer(ret);
327
+ return new askar_shared_1.LocalKeyHandle(handle);
328
+ }
329
+ keyFromKeyExchange(options) {
330
+ const { algorithm, pkHandle, skHandle } = (0, ffi_1.serializeArguments)(options);
331
+ const ret = (0, ffi_1.allocatePointer)();
332
+ const errorCode = this.nativeAskar.askar_key_from_key_exchange(algorithm, skHandle, pkHandle, ret);
333
+ this.handleError(errorCode);
334
+ const handle = handleReturnPointer(ret);
335
+ return new askar_shared_1.LocalKeyHandle(handle);
336
+ }
337
+ keyFromPublicBytes(options) {
338
+ const { publicKey, algorithm } = (0, ffi_1.serializeArguments)(options);
339
+ const ret = (0, ffi_1.allocatePointer)();
340
+ const errorCode = this.nativeAskar.askar_key_from_public_bytes(algorithm, publicKey, ret);
341
+ this.handleError(errorCode);
342
+ const handle = handleReturnPointer(ret);
343
+ return new askar_shared_1.LocalKeyHandle(handle);
344
+ }
345
+ keyFromSecretBytes(options) {
346
+ const { secretKey, algorithm } = (0, ffi_1.serializeArguments)(options);
347
+ const ret = (0, ffi_1.allocatePointer)();
348
+ const errorCode = this.nativeAskar.askar_key_from_secret_bytes(algorithm, secretKey, ret);
349
+ this.handleError(errorCode);
350
+ const handle = handleReturnPointer(ret);
351
+ return new askar_shared_1.LocalKeyHandle(handle);
352
+ }
353
+ keyFromSeed(options) {
354
+ const { algorithm, method, seed } = (0, ffi_1.serializeArguments)(options);
355
+ const ret = (0, ffi_1.allocatePointer)();
356
+ const errorCode = this.nativeAskar.askar_key_from_seed(algorithm, seed, method, ret);
357
+ this.handleError(errorCode);
358
+ const handle = handleReturnPointer(ret);
359
+ return new askar_shared_1.LocalKeyHandle(handle);
360
+ }
361
+ keyGenerate(options) {
362
+ const { algorithm, ephemeral, keyBackend } = (0, ffi_1.serializeArguments)(options);
363
+ const ret = (0, ffi_1.allocatePointer)();
364
+ const errorCode = this.nativeAskar.askar_key_generate(algorithm, keyBackend, ephemeral, ret);
365
+ this.handleError(errorCode);
366
+ const handle = handleReturnPointer(ret);
367
+ return new askar_shared_1.LocalKeyHandle(handle);
368
+ }
369
+ keyGetAlgorithm(options) {
370
+ const { localKeyHandle } = (0, ffi_1.serializeArguments)(options);
371
+ const ret = (0, ffi_1.allocateStringBuffer)();
372
+ const errorCode = this.nativeAskar.askar_key_get_algorithm(localKeyHandle, ret);
373
+ this.handleError(errorCode);
374
+ return handleReturnPointer(ret);
375
+ }
376
+ keyGetEphemeral(options) {
377
+ const { localKeyHandle } = (0, ffi_1.serializeArguments)(options);
378
+ const ret = (0, ffi_1.allocateInt32Buffer)();
379
+ const errorCode = this.nativeAskar.askar_key_get_ephemeral(localKeyHandle, ret);
380
+ this.handleError(errorCode);
381
+ return handleReturnPointer(ret);
382
+ }
383
+ keyGetJwkPublic(options) {
384
+ const { localKeyHandle, algorithm } = (0, ffi_1.serializeArguments)(options);
385
+ const ret = (0, ffi_1.allocateStringBuffer)();
386
+ const errorCode = this.nativeAskar.askar_key_get_jwk_public(localKeyHandle, algorithm, ret);
387
+ this.handleError(errorCode);
388
+ return handleReturnPointer(ret);
389
+ }
390
+ keyGetJwkSecret(options) {
391
+ const { localKeyHandle } = (0, ffi_1.serializeArguments)(options);
392
+ const ret = (0, ffi_1.allocateSecretBuffer)();
393
+ const errorCode = this.nativeAskar.askar_key_get_jwk_secret(localKeyHandle, ret);
394
+ this.handleError(errorCode);
395
+ const secretBuffer = handleReturnPointer(ret);
396
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
397
+ }
398
+ keyGetJwkThumbprint(options) {
399
+ const { localKeyHandle, algorithm } = (0, ffi_1.serializeArguments)(options);
400
+ const ret = (0, ffi_1.allocateStringBuffer)();
401
+ const errorCode = this.nativeAskar.askar_key_get_jwk_thumbprint(localKeyHandle, algorithm, ret);
402
+ this.handleError(errorCode);
403
+ return handleReturnPointer(ret);
404
+ }
405
+ keyGetPublicBytes(options) {
406
+ const { localKeyHandle } = (0, ffi_1.serializeArguments)(options);
407
+ const ret = (0, ffi_1.allocateSecretBuffer)();
408
+ const errorCode = this.nativeAskar.askar_key_get_public_bytes(localKeyHandle, ret);
409
+ this.handleError(errorCode);
410
+ const secretBuffer = handleReturnPointer(ret);
411
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
412
+ }
413
+ keyGetSecretBytes(options) {
414
+ const { localKeyHandle } = (0, ffi_1.serializeArguments)(options);
415
+ const ret = (0, ffi_1.allocateSecretBuffer)();
416
+ const errorCode = this.nativeAskar.askar_key_get_secret_bytes(localKeyHandle, ret);
417
+ this.handleError(errorCode);
418
+ const secretBuffer = handleReturnPointer(ret);
419
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
420
+ }
421
+ keySignMessage(options) {
422
+ const { localKeyHandle, message, sigType } = (0, ffi_1.serializeArguments)(options);
423
+ const ret = (0, ffi_1.allocateSecretBuffer)();
424
+ const errorCode = this.nativeAskar.askar_key_sign_message(localKeyHandle, message, sigType, ret);
425
+ this.handleError(errorCode);
426
+ const secretBuffer = handleReturnPointer(ret);
427
+ return new Uint8Array((0, ffi_1.secretBufferToBuffer)(secretBuffer));
428
+ }
429
+ keyUnwrapKey(options) {
430
+ const { localKeyHandle, algorithm, ciphertext, nonce, tag } = (0, ffi_1.serializeArguments)(options);
431
+ const ret = (0, ffi_1.allocatePointer)();
432
+ const errorCode = this.nativeAskar.askar_key_unwrap_key(localKeyHandle, algorithm, ciphertext, nonce, tag, ret);
433
+ this.handleError(errorCode);
434
+ const handle = handleReturnPointer(ret);
435
+ return new askar_shared_1.LocalKeyHandle(handle);
436
+ }
437
+ keyVerifySignature(options) {
438
+ const { localKeyHandle, sigType, message, signature } = (0, ffi_1.serializeArguments)(options);
439
+ const ret = (0, ffi_1.allocateInt8Buffer)();
440
+ const errorCode = this.nativeAskar.askar_key_verify_signature(localKeyHandle, message, signature, sigType, ret);
441
+ this.handleError(errorCode);
442
+ return Boolean(handleReturnPointer(ret));
443
+ }
444
+ keyWrapKey(options) {
445
+ const { localKeyHandle, nonce, other } = (0, ffi_1.serializeArguments)(options);
446
+ const ret = (0, ffi_1.allocateEncryptedBuffer)();
447
+ const errorCode = this.nativeAskar.askar_key_wrap_key(localKeyHandle, other, nonce, ret);
448
+ this.handleError(errorCode);
449
+ const encryptedBuffer = handleReturnPointer(ret);
450
+ return (0, ffi_1.encryptedBufferStructToClass)(encryptedBuffer);
451
+ }
452
+ keyGetSupportedBackends() {
453
+ const stringListHandlePtr = (0, ffi_1.allocateStringListHandle)();
454
+ const keyGetSupportedBackendsErrorCode = this.nativeAskar.askar_key_get_supported_backends(stringListHandlePtr);
455
+ this.handleError(keyGetSupportedBackendsErrorCode);
456
+ const stringListHandle = stringListHandlePtr.deref();
457
+ const listCountPtr = (0, ffi_1.allocateInt32Buffer)();
458
+ const stringListCountErrorCode = this.nativeAskar.askar_string_list_count(stringListHandle, listCountPtr);
459
+ this.handleError(stringListCountErrorCode);
460
+ const count = listCountPtr.deref();
461
+ const supportedBackends = [];
462
+ for (let i = 0; i < count; i++) {
463
+ const strPtr = (0, ffi_1.allocateStringBuffer)();
464
+ const errorCode = this.nativeAskar.askar_string_list_get_item(stringListHandle, i, strPtr);
465
+ this.handleError(errorCode);
466
+ supportedBackends.push(strPtr.deref());
467
+ }
468
+ this.nativeAskar.askar_string_list_free(stringListHandle);
469
+ return supportedBackends;
470
+ }
471
+ scanFree(options) {
472
+ const { scanHandle } = (0, ffi_1.serializeArguments)(options);
473
+ const errorCode = this.nativeAskar.askar_scan_free(scanHandle);
474
+ this.handleError(errorCode);
475
+ }
476
+ async scanNext(options) {
477
+ const { scanHandle } = (0, ffi_1.serializeArguments)(options);
478
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_scan_next(scanHandle, cb, cbId), ffi_1.FFI_ENTRY_LIST_HANDLE);
479
+ return askar_shared_1.EntryListHandle.fromHandle(handle);
480
+ }
481
+ async scanStart(options) {
482
+ const { category, limit, offset, profile, storeHandle, tagFilter, orderBy, descending } = (0, ffi_1.serializeArguments)(options);
483
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_scan_start(storeHandle, profile, category, tagFilter, +offset || 0, +limit || -1, orderBy, descending, cb, cbId), ffi_1.FFI_SCAN_HANDLE);
484
+ return askar_shared_1.ScanHandle.fromHandle(handle);
485
+ }
486
+ async sessionClose(options) {
487
+ const { commit, sessionHandle } = (0, ffi_1.serializeArguments)(options);
488
+ return await this.promisify((cb, cbId) => this.nativeAskar.askar_session_close(sessionHandle, commit, cb, cbId));
489
+ }
490
+ async sessionCount(options) {
491
+ const { sessionHandle, tagFilter, category } = (0, ffi_1.serializeArguments)(options);
492
+ const response = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_session_count(sessionHandle, category, tagFilter, cb, cbId), ffi_1.FFI_INT64);
493
+ return (0, askar_shared_1.handleInvalidNullResponse)(response);
494
+ }
495
+ async sessionFetch(options) {
496
+ const { name, category, sessionHandle, forUpdate } = (0, ffi_1.serializeArguments)(options);
497
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_session_fetch(sessionHandle, category, name, forUpdate, cb, cbId), ffi_1.FFI_ENTRY_LIST_HANDLE);
498
+ return askar_shared_1.EntryListHandle.fromHandle(handle);
499
+ }
500
+ async sessionFetchAll(options) {
501
+ const { forUpdate, sessionHandle, tagFilter, limit, category, orderBy, descending } = (0, ffi_1.serializeArguments)(options);
502
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_session_fetch_all(sessionHandle, category, tagFilter, +limit || -1, orderBy, descending, forUpdate, cb, cbId), ffi_1.FFI_ENTRY_LIST_HANDLE);
503
+ return askar_shared_1.EntryListHandle.fromHandle(handle);
504
+ }
505
+ async sessionFetchAllKeys(options) {
506
+ const { forUpdate, limit, tagFilter, sessionHandle, algorithm, thumbprint } = (0, ffi_1.serializeArguments)(options);
507
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_session_fetch_all_keys(sessionHandle, algorithm, thumbprint, tagFilter, +limit || -1, forUpdate, cb, cbId), ffi_1.FFI_KEY_ENTRY_LIST_HANDLE);
508
+ return askar_shared_1.KeyEntryListHandle.fromHandle(handle);
509
+ }
510
+ async sessionFetchKey(options) {
511
+ const { forUpdate, sessionHandle, name } = (0, ffi_1.serializeArguments)(options);
512
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_session_fetch_key(sessionHandle, name, forUpdate, cb, cbId), ffi_1.FFI_KEY_ENTRY_LIST_HANDLE);
513
+ return askar_shared_1.KeyEntryListHandle.fromHandle(handle);
514
+ }
515
+ async sessionInsertKey(options) {
516
+ const { name, sessionHandle, expiryMs, localKeyHandle, metadata, tags } = (0, ffi_1.serializeArguments)(options);
517
+ return this.promisify((cb, cbId) => this.nativeAskar.askar_session_insert_key(sessionHandle, localKeyHandle, name, metadata, tags, +expiryMs || -1, cb, cbId));
518
+ }
519
+ async sessionRemoveAll(options) {
520
+ const { sessionHandle, tagFilter, category } = (0, ffi_1.serializeArguments)(options);
521
+ const response = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_session_remove_all(sessionHandle, category, tagFilter, cb, cbId), ffi_1.FFI_INT64);
522
+ return (0, askar_shared_1.handleInvalidNullResponse)(response);
523
+ }
524
+ async sessionRemoveKey(options) {
525
+ const { sessionHandle, name } = (0, ffi_1.serializeArguments)(options);
526
+ return this.promisify((cb, cbId) => this.nativeAskar.askar_session_remove_key(sessionHandle, name, cb, cbId));
527
+ }
528
+ async sessionStart(options) {
529
+ const { storeHandle, profile, asTransaction } = (0, ffi_1.serializeArguments)(options);
530
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_session_start(storeHandle, profile, asTransaction, cb, cbId), ffi_1.FFI_SESSION_HANDLE);
531
+ return askar_shared_1.SessionHandle.fromHandle(handle);
532
+ }
533
+ async sessionUpdate(options) {
534
+ const { name, sessionHandle, category, expiryMs, tags, operation, value } = (0, ffi_1.serializeArguments)(options);
535
+ return this.promisify((cb, cbId) => this.nativeAskar.askar_session_update(sessionHandle, operation, category, name, value, tags, +expiryMs || -1, cb, cbId));
536
+ }
537
+ async sessionUpdateKey(options) {
538
+ const { expiryMs, tags, name, sessionHandle, metadata } = (0, ffi_1.serializeArguments)(options);
539
+ return this.promisify((cb, cbId) => this.nativeAskar.askar_session_update_key(sessionHandle, name, metadata, tags, +expiryMs || -1, cb, cbId));
540
+ }
541
+ storeClose(options) {
542
+ const { storeHandle } = (0, ffi_1.serializeArguments)(options);
543
+ return this.promisify((cb, cbId) => this.nativeAskar.askar_store_close(storeHandle, cb, cbId));
544
+ }
545
+ storeCopyTo(options) {
546
+ const { storeHandle, targetUri, passKey, keyMethod, recreate } = (0, ffi_1.serializeArguments)(options);
547
+ return this.promisify((cb, cbId) => this.nativeAskar.askar_store_copy(storeHandle, targetUri, keyMethod, passKey, recreate, cb, cbId));
548
+ }
549
+ async storeCreateProfile(options) {
550
+ const { storeHandle, profile } = (0, ffi_1.serializeArguments)(options);
551
+ const response = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_store_create_profile(storeHandle, profile, cb, cbId), ffi_1.FFI_STRING);
552
+ return (0, askar_shared_1.handleInvalidNullResponse)(response);
553
+ }
554
+ storeGenerateRawKey(options) {
555
+ const { seed } = (0, ffi_1.serializeArguments)(options);
556
+ const ret = (0, ffi_1.allocateStringBuffer)();
557
+ const errorCode = this.nativeAskar.askar_store_generate_raw_key(seed, ret);
558
+ this.handleError(errorCode);
559
+ return ret.deref();
560
+ }
561
+ async storeGetDefaultProfile(options) {
562
+ const { storeHandle } = (0, ffi_1.serializeArguments)(options);
563
+ const response = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_store_get_default_profile(storeHandle, cb, cbId));
564
+ return (0, askar_shared_1.handleInvalidNullResponse)(response);
565
+ }
566
+ async storeGetProfileName(options) {
567
+ const { storeHandle } = (0, ffi_1.serializeArguments)(options);
568
+ const response = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_store_get_profile_name(storeHandle, cb, cbId));
569
+ return (0, askar_shared_1.handleInvalidNullResponse)(response);
570
+ }
571
+ async storeListProfiles(options) {
572
+ const { storeHandle } = (0, ffi_1.serializeArguments)(options);
573
+ const listHandle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_store_list_profiles(storeHandle, cb, cbId), ffi_1.FFI_STRING_LIST_HANDLE);
574
+ if (listHandle === null) {
575
+ throw askar_shared_1.AskarError.customError({ message: 'Invalid handle' });
576
+ }
577
+ const counti32 = (0, ffi_1.allocateInt32Buffer)();
578
+ const errorCode = this.nativeAskar.askar_string_list_count(listHandle, counti32);
579
+ this.handleError(errorCode);
580
+ const count = counti32.deref();
581
+ const ret = [];
582
+ const strval = (0, ffi_1.allocateStringBuffer)();
583
+ for (let i = 0; i < count; i++) {
584
+ const errorCode = this.nativeAskar.askar_string_list_get_item(listHandle, i, strval);
585
+ this.handleError(errorCode);
586
+ ret.push(strval.deref());
587
+ }
588
+ this.nativeAskar.askar_string_list_free(listHandle);
589
+ return ret;
590
+ }
591
+ async storeOpen(options) {
592
+ const { profile, keyMethod, passKey, specUri } = (0, ffi_1.serializeArguments)(options);
593
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_store_open(specUri, keyMethod, passKey, profile, cb, cbId), ffi_1.FFI_STORE_HANDLE);
594
+ return askar_shared_1.StoreHandle.fromHandle(handle);
595
+ }
596
+ async storeProvision(options) {
597
+ const { profile, passKey, keyMethod, specUri, recreate } = (0, ffi_1.serializeArguments)(options);
598
+ const handle = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_store_provision(specUri, keyMethod, passKey, profile, recreate, cb, cbId), ffi_1.FFI_STORE_HANDLE);
599
+ return askar_shared_1.StoreHandle.fromHandle(handle);
600
+ }
601
+ async storeRekey(options) {
602
+ const { passKey, keyMethod, storeHandle } = (0, ffi_1.serializeArguments)(options);
603
+ return this.promisify((cb, cbId) => this.nativeAskar.askar_store_rekey(storeHandle, keyMethod, passKey, cb, cbId));
604
+ }
605
+ async storeRemove(options) {
606
+ const { specUri } = (0, ffi_1.serializeArguments)(options);
607
+ const response = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_store_remove(specUri, cb, cbId), ffi_1.FFI_INT8);
608
+ return (0, askar_shared_1.handleInvalidNullResponse)(response);
609
+ }
610
+ async storeRemoveProfile(options) {
611
+ const { storeHandle, profile } = (0, ffi_1.serializeArguments)(options);
612
+ const response = await this.promisifyWithResponse((cb, cbId) => this.nativeAskar.askar_store_remove_profile(storeHandle, profile, cb, cbId), ffi_1.FFI_INT8);
613
+ return (0, askar_shared_1.handleInvalidNullResponse)(response);
614
+ }
615
+ async storeSetDefaultProfile(options) {
616
+ const { storeHandle, profile } = (0, ffi_1.serializeArguments)(options);
617
+ return this.promisify((cb, cbId) => this.nativeAskar.askar_store_set_default_profile(storeHandle, profile, cb, cbId));
618
+ }
619
+ async migrateIndySdk(options) {
620
+ const { specUri, kdfLevel, walletKey, walletName } = (0, ffi_1.serializeArguments)(options);
621
+ await this.promisify((cb, cbId) => this.nativeAskar.askar_migrate_indy_sdk(specUri, walletName, walletKey, kdfLevel, cb, cbId));
622
+ }
623
+ }
624
+ exports.NodeJSAskar = NodeJSAskar;
625
+ //# sourceMappingURL=NodeJSAskar.js.map