@docknetwork/wallet-sdk-wasm 1.7.6 → 1.9.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 (327) hide show
  1. package/package.json +6 -7
  2. package/rollup.config.mjs +1 -0
  3. package/src/globals.d.ts +4 -1
  4. package/src/services/blockchain/cached-did-resolver.ts +4 -3
  5. package/src/services/blockchain/normalize-did-document.ts +73 -0
  6. package/src/services/blockchain/service.ts +0 -2
  7. package/src/services/credential/bbs-revocation.test.js +147 -0
  8. package/src/services/credential/bbs-revocation.ts +65 -18
  9. package/src/services/credential/config.ts +7 -0
  10. package/src/services/credential/index.test.js +261 -17
  11. package/src/services/credential/oid4vci.js +44 -0
  12. package/src/services/credential/oid4vci.test.js +162 -0
  13. package/src/services/credential/pex-helpers.js +77 -31
  14. package/src/services/credential/pex-helpers.test.js +4 -4
  15. package/src/services/credential/sd-jwt.ts +41 -5
  16. package/src/services/credential/service-rpc.js +6 -0
  17. package/src/services/credential/service.ts +171 -16
  18. package/src/services/credential/utils.js +3 -5
  19. package/src/services/delegation/index.android.js +3 -0
  20. package/src/services/delegation/index.ios.js +3 -0
  21. package/src/services/delegation/index.ts +1 -0
  22. package/src/services/delegation/service-rpc.ts +21 -0
  23. package/src/services/delegation/service.ts +59 -0
  24. package/src/services/edv/service-rpc.js +18 -2
  25. package/src/services/edv/service.test.js +327 -0
  26. package/src/services/edv/service.ts +103 -13
  27. package/src/services/index.js +2 -0
  28. package/src/wallet/rpc-storage-interface.js +9 -4
  29. package/lib/core/crypto.js +0 -45
  30. package/lib/core/crypto.mjs +0 -33
  31. package/lib/core/format-utils.js +0 -51
  32. package/lib/core/format-utils.mjs +0 -42
  33. package/lib/core/keychain.js +0 -61
  34. package/lib/core/keychain.mjs +0 -37
  35. package/lib/core/logger.js +0 -13
  36. package/lib/core/logger.mjs +0 -9
  37. package/lib/core/storage.js +0 -14
  38. package/lib/core/storage.mjs +0 -9
  39. package/lib/core/validation.js +0 -29
  40. package/lib/core/validation.mjs +0 -16
  41. package/lib/core/webview-logger.js +0 -49
  42. package/lib/core/webview-logger.mjs +0 -41
  43. package/lib/errors.js +0 -17
  44. package/lib/errors.mjs +0 -12
  45. package/lib/events.js +0 -18
  46. package/lib/events.mjs +0 -13
  47. package/lib/index.js +0 -146
  48. package/lib/index.mjs +0 -144
  49. package/lib/logger.js +0 -22
  50. package/lib/logger.mjs +0 -17
  51. package/lib/modules/event-manager.js +0 -46
  52. package/lib/modules/event-manager.mjs +0 -37
  53. package/lib/modules/network-manager.js +0 -80
  54. package/lib/modules/network-manager.mjs +0 -71
  55. package/lib/mrklt.js +0 -2
  56. package/lib/mrklt.mjs +0 -1
  57. package/lib/rpc-client.js +0 -83
  58. package/lib/rpc-client.mjs +0 -73
  59. package/lib/rpc-server.js +0 -97
  60. package/lib/rpc-server.mjs +0 -95
  61. package/lib/rpc-util.js +0 -113
  62. package/lib/rpc-util.mjs +0 -103
  63. package/lib/sandbox-rpc-server.js +0 -28
  64. package/lib/sandbox-rpc-server.mjs +0 -26
  65. package/lib/sandbox.js +0 -102
  66. package/lib/sandbox.mjs +0 -100
  67. package/lib/services/blockchain/cached-did-resolver.js +0 -113
  68. package/lib/services/blockchain/cached-did-resolver.mjs +0 -109
  69. package/lib/services/blockchain/configs.js +0 -7
  70. package/lib/services/blockchain/configs.mjs +0 -3
  71. package/lib/services/blockchain/index.android.js +0 -18
  72. package/lib/services/blockchain/index.android.mjs +0 -14
  73. package/lib/services/blockchain/index.ios.js +0 -18
  74. package/lib/services/blockchain/index.ios.mjs +0 -14
  75. package/lib/services/blockchain/index.js +0 -36
  76. package/lib/services/blockchain/index.mjs +0 -28
  77. package/lib/services/blockchain/service-rpc.js +0 -72
  78. package/lib/services/blockchain/service-rpc.mjs +0 -68
  79. package/lib/services/blockchain/service.js +0 -312
  80. package/lib/services/blockchain/service.mjs +0 -306
  81. package/lib/services/credential/bbs-revocation.js +0 -92
  82. package/lib/services/credential/bbs-revocation.mjs +0 -87
  83. package/lib/services/credential/bound-check.js +0 -77
  84. package/lib/services/credential/bound-check.mjs +0 -64
  85. package/lib/services/credential/config.js +0 -56
  86. package/lib/services/credential/config.mjs +0 -47
  87. package/lib/services/credential/delegatable-credentials.js +0 -300
  88. package/lib/services/credential/delegatable-credentials.mjs +0 -263
  89. package/lib/services/credential/index.android.js +0 -19
  90. package/lib/services/credential/index.android.mjs +0 -15
  91. package/lib/services/credential/index.ios.js +0 -19
  92. package/lib/services/credential/index.ios.mjs +0 -15
  93. package/lib/services/credential/index.js +0 -106
  94. package/lib/services/credential/index.mjs +0 -67
  95. package/lib/services/credential/pex-helpers.js +0 -333
  96. package/lib/services/credential/pex-helpers.mjs +0 -319
  97. package/lib/services/credential/range-proofs-example.js +0 -107
  98. package/lib/services/credential/range-proofs-example.mjs +0 -103
  99. package/lib/services/credential/sd-jwt.js +0 -214
  100. package/lib/services/credential/sd-jwt.mjs +0 -200
  101. package/lib/services/credential/service-rpc.js +0 -61
  102. package/lib/services/credential/service-rpc.mjs +0 -57
  103. package/lib/services/credential/service.js +0 -683
  104. package/lib/services/credential/service.mjs +0 -672
  105. package/lib/services/credential/utils.js +0 -103
  106. package/lib/services/credential/utils.mjs +0 -78
  107. package/lib/services/dids/config.js +0 -40
  108. package/lib/services/dids/config.mjs +0 -31
  109. package/lib/services/dids/index.android.js +0 -19
  110. package/lib/services/dids/index.android.mjs +0 -15
  111. package/lib/services/dids/index.ios.js +0 -19
  112. package/lib/services/dids/index.ios.mjs +0 -15
  113. package/lib/services/dids/index.js +0 -23
  114. package/lib/services/dids/index.mjs +0 -19
  115. package/lib/services/dids/keypair-utils.js +0 -142
  116. package/lib/services/dids/keypair-utils.mjs +0 -113
  117. package/lib/services/dids/service-rpc.js +0 -37
  118. package/lib/services/dids/service-rpc.mjs +0 -33
  119. package/lib/services/dids/service.js +0 -100
  120. package/lib/services/dids/service.mjs +0 -92
  121. package/lib/services/edv/configs.js +0 -25
  122. package/lib/services/edv/configs.mjs +0 -16
  123. package/lib/services/edv/hmac.js +0 -88
  124. package/lib/services/edv/hmac.mjs +0 -63
  125. package/lib/services/edv/index.android.js +0 -19
  126. package/lib/services/edv/index.android.mjs +0 -15
  127. package/lib/services/edv/index.ios.js +0 -19
  128. package/lib/services/edv/index.ios.mjs +0 -15
  129. package/lib/services/edv/index.js +0 -32
  130. package/lib/services/edv/index.mjs +0 -24
  131. package/lib/services/edv/service-rpc.js +0 -78
  132. package/lib/services/edv/service-rpc.mjs +0 -74
  133. package/lib/services/edv/service.js +0 -370
  134. package/lib/services/edv/service.mjs +0 -357
  135. package/lib/services/index.js +0 -94
  136. package/lib/services/index.mjs +0 -92
  137. package/lib/services/pex/config.js +0 -29
  138. package/lib/services/pex/config.mjs +0 -20
  139. package/lib/services/pex/index.android.js +0 -19
  140. package/lib/services/pex/index.android.mjs +0 -15
  141. package/lib/services/pex/index.ios.js +0 -19
  142. package/lib/services/pex/index.ios.mjs +0 -15
  143. package/lib/services/pex/index.js +0 -12
  144. package/lib/services/pex/index.mjs +0 -4
  145. package/lib/services/pex/service-rpc.js +0 -39
  146. package/lib/services/pex/service-rpc.mjs +0 -35
  147. package/lib/services/pex/service.js +0 -91
  148. package/lib/services/pex/service.mjs +0 -86
  149. package/lib/services/pex/tests/jest.config.js +0 -25
  150. package/lib/services/pex/tests/jest.config.mjs +0 -23
  151. package/lib/services/relay-service/configs.js +0 -45
  152. package/lib/services/relay-service/configs.mjs +0 -36
  153. package/lib/services/relay-service/index.android.js +0 -21
  154. package/lib/services/relay-service/index.android.mjs +0 -17
  155. package/lib/services/relay-service/index.ios.js +0 -21
  156. package/lib/services/relay-service/index.ios.mjs +0 -17
  157. package/lib/services/relay-service/index.js +0 -14
  158. package/lib/services/relay-service/index.mjs +0 -6
  159. package/lib/services/relay-service/service-rpc.js +0 -47
  160. package/lib/services/relay-service/service-rpc.mjs +0 -43
  161. package/lib/services/relay-service/service.js +0 -181
  162. package/lib/services/relay-service/service.mjs +0 -173
  163. package/lib/services/rpc-service-client.js +0 -36
  164. package/lib/services/rpc-service-client.mjs +0 -28
  165. package/lib/services/sandbox.js +0 -10
  166. package/lib/services/sandbox.mjs +0 -8
  167. package/lib/services/storage/configs.js +0 -7
  168. package/lib/services/storage/configs.mjs +0 -3
  169. package/lib/services/storage/index.android.js +0 -18
  170. package/lib/services/storage/index.android.mjs +0 -14
  171. package/lib/services/storage/index.ios.js +0 -18
  172. package/lib/services/storage/index.ios.mjs +0 -14
  173. package/lib/services/storage/index.js +0 -26
  174. package/lib/services/storage/index.mjs +0 -24
  175. package/lib/services/storage/service-rpc.js +0 -37
  176. package/lib/services/storage/service-rpc.mjs +0 -33
  177. package/lib/services/storage/service.js +0 -32
  178. package/lib/services/storage/service.mjs +0 -27
  179. package/lib/services/test-utils.js +0 -98
  180. package/lib/services/test-utils.mjs +0 -84
  181. package/lib/services/util-crypto/configs.js +0 -23
  182. package/lib/services/util-crypto/configs.mjs +0 -15
  183. package/lib/services/util-crypto/index.android.js +0 -19
  184. package/lib/services/util-crypto/index.android.mjs +0 -15
  185. package/lib/services/util-crypto/index.ios.js +0 -19
  186. package/lib/services/util-crypto/index.ios.mjs +0 -15
  187. package/lib/services/util-crypto/index.js +0 -14
  188. package/lib/services/util-crypto/index.mjs +0 -6
  189. package/lib/services/util-crypto/service-rpc.js +0 -42
  190. package/lib/services/util-crypto/service-rpc.mjs +0 -38
  191. package/lib/services/util-crypto/service.js +0 -108
  192. package/lib/services/util-crypto/service.mjs +0 -83
  193. package/lib/services/wallet/configs.js +0 -32
  194. package/lib/services/wallet/configs.mjs +0 -23
  195. package/lib/services/wallet/index.android.js +0 -21
  196. package/lib/services/wallet/index.android.mjs +0 -17
  197. package/lib/services/wallet/index.ios.js +0 -21
  198. package/lib/services/wallet/index.ios.mjs +0 -17
  199. package/lib/services/wallet/index.js +0 -17
  200. package/lib/services/wallet/index.mjs +0 -9
  201. package/lib/services/wallet/service-rpc.js +0 -33
  202. package/lib/services/wallet/service-rpc.mjs +0 -29
  203. package/lib/services/wallet/service.js +0 -62
  204. package/lib/services/wallet/service.mjs +0 -57
  205. package/lib/setup-nodejs.js +0 -93
  206. package/lib/setup-nodejs.mjs +0 -91
  207. package/lib/setup-tests.js +0 -92
  208. package/lib/setup-tests.mjs +0 -90
  209. package/lib/src/core/crypto.d.ts +0 -8
  210. package/lib/src/core/crypto.d.ts.map +0 -1
  211. package/lib/src/core/format-utils.d.ts +0 -26
  212. package/lib/src/core/format-utils.d.ts.map +0 -1
  213. package/lib/src/core/logger.d.ts +0 -3
  214. package/lib/src/core/logger.d.ts.map +0 -1
  215. package/lib/src/core/storage.d.ts +0 -8
  216. package/lib/src/core/storage.d.ts.map +0 -1
  217. package/lib/src/core/validation.d.ts +0 -6
  218. package/lib/src/core/validation.d.ts.map +0 -1
  219. package/lib/src/errors.d.ts +0 -7
  220. package/lib/src/errors.d.ts.map +0 -1
  221. package/lib/src/logger.d.ts +0 -5
  222. package/lib/src/logger.d.ts.map +0 -1
  223. package/lib/src/modules/event-manager.d.ts +0 -12
  224. package/lib/src/modules/event-manager.d.ts.map +0 -1
  225. package/lib/src/modules/network-manager.d.ts +0 -32
  226. package/lib/src/modules/network-manager.d.ts.map +0 -1
  227. package/lib/src/rpc-client.d.ts +0 -4
  228. package/lib/src/rpc-client.d.ts.map +0 -1
  229. package/lib/src/rpc-util.d.ts +0 -11
  230. package/lib/src/rpc-util.d.ts.map +0 -1
  231. package/lib/src/services/blockchain/cached-did-resolver.d.ts +0 -28
  232. package/lib/src/services/blockchain/cached-did-resolver.d.ts.map +0 -1
  233. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts +0 -2
  234. package/lib/src/services/blockchain/cached-did-resolver.test.d.ts.map +0 -1
  235. package/lib/src/services/blockchain/configs.d.ts +0 -7
  236. package/lib/src/services/blockchain/configs.d.ts.map +0 -1
  237. package/lib/src/services/blockchain/service.d.ts +0 -155
  238. package/lib/src/services/blockchain/service.d.ts.map +0 -1
  239. package/lib/src/services/credential/bbs-revocation.d.ts +0 -10
  240. package/lib/src/services/credential/bbs-revocation.d.ts.map +0 -1
  241. package/lib/src/services/credential/bound-check.d.ts +0 -61
  242. package/lib/src/services/credential/bound-check.d.ts.map +0 -1
  243. package/lib/src/services/credential/bound-check.test.d.ts +0 -2
  244. package/lib/src/services/credential/bound-check.test.d.ts.map +0 -1
  245. package/lib/src/services/credential/config.d.ts +0 -10
  246. package/lib/src/services/credential/config.d.ts.map +0 -1
  247. package/lib/src/services/credential/delegatable-credentials.d.ts +0 -272
  248. package/lib/src/services/credential/delegatable-credentials.d.ts.map +0 -1
  249. package/lib/src/services/credential/index.d.ts +0 -35
  250. package/lib/src/services/credential/index.d.ts.map +0 -1
  251. package/lib/src/services/credential/pex-helpers.d.ts +0 -23
  252. package/lib/src/services/credential/pex-helpers.d.ts.map +0 -1
  253. package/lib/src/services/credential/range-proofs-example.d.ts +0 -2
  254. package/lib/src/services/credential/range-proofs-example.d.ts.map +0 -1
  255. package/lib/src/services/credential/sd-jwt.test.d.ts +0 -2
  256. package/lib/src/services/credential/sd-jwt.test.d.ts.map +0 -1
  257. package/lib/src/services/credential/service.d.ts +0 -313
  258. package/lib/src/services/credential/service.d.ts.map +0 -1
  259. package/lib/src/services/credential/utils.d.ts +0 -3
  260. package/lib/src/services/credential/utils.d.ts.map +0 -1
  261. package/lib/src/services/dids/config.d.ts +0 -24
  262. package/lib/src/services/dids/config.d.ts.map +0 -1
  263. package/lib/src/services/dids/keypair-utils.d.ts +0 -15
  264. package/lib/src/services/dids/keypair-utils.d.ts.map +0 -1
  265. package/lib/src/services/dids/service-rpc.d.ts +0 -11
  266. package/lib/src/services/dids/service-rpc.d.ts.map +0 -1
  267. package/lib/src/services/dids/service.d.ts +0 -70
  268. package/lib/src/services/dids/service.d.ts.map +0 -1
  269. package/lib/src/services/edv/configs.d.ts +0 -12
  270. package/lib/src/services/edv/configs.d.ts.map +0 -1
  271. package/lib/src/services/edv/hmac.d.ts +0 -29
  272. package/lib/src/services/edv/hmac.d.ts.map +0 -1
  273. package/lib/src/services/edv/service.d.ts +0 -229
  274. package/lib/src/services/edv/service.d.ts.map +0 -1
  275. package/lib/src/services/pex/config.d.ts +0 -21
  276. package/lib/src/services/pex/config.d.ts.map +0 -1
  277. package/lib/src/services/pex/service.d.ts +0 -21
  278. package/lib/src/services/pex/service.d.ts.map +0 -1
  279. package/lib/src/services/relay-service/configs.d.ts +0 -35
  280. package/lib/src/services/relay-service/configs.d.ts.map +0 -1
  281. package/lib/src/services/relay-service/service-rpc.d.ts +0 -12
  282. package/lib/src/services/relay-service/service-rpc.d.ts.map +0 -1
  283. package/lib/src/services/relay-service/service.d.ts +0 -159
  284. package/lib/src/services/relay-service/service.d.ts.map +0 -1
  285. package/lib/src/services/rpc-service-client.d.ts +0 -7
  286. package/lib/src/services/rpc-service-client.d.ts.map +0 -1
  287. package/lib/src/services/storage/configs.d.ts +0 -2
  288. package/lib/src/services/storage/configs.d.ts.map +0 -1
  289. package/lib/src/services/storage/index.d.ts +0 -2
  290. package/lib/src/services/storage/index.d.ts.map +0 -1
  291. package/lib/src/services/storage/service-rpc.d.ts +0 -9
  292. package/lib/src/services/storage/service-rpc.d.ts.map +0 -1
  293. package/lib/src/services/storage/service.d.ts +0 -10
  294. package/lib/src/services/storage/service.d.ts.map +0 -1
  295. package/lib/src/services/util-crypto/configs.d.ts +0 -5
  296. package/lib/src/services/util-crypto/configs.d.ts.map +0 -1
  297. package/lib/src/services/util-crypto/index.d.ts +0 -2
  298. package/lib/src/services/util-crypto/index.d.ts.map +0 -1
  299. package/lib/src/services/util-crypto/service.d.ts +0 -10
  300. package/lib/src/services/util-crypto/service.d.ts.map +0 -1
  301. package/lib/src/services/wallet/configs.d.ts +0 -13
  302. package/lib/src/services/wallet/configs.d.ts.map +0 -1
  303. package/lib/src/services/wallet/service.d.ts +0 -13
  304. package/lib/src/services/wallet/service.d.ts.map +0 -1
  305. package/lib/src/types.d.ts +0 -12
  306. package/lib/src/types.d.ts.map +0 -1
  307. package/lib/src/wallet/memory-storage-interface.d.ts +0 -31
  308. package/lib/src/wallet/memory-storage-interface.d.ts.map +0 -1
  309. package/lib/src/wallet/memory-storage-wallet.d.ts +0 -6
  310. package/lib/src/wallet/memory-storage-wallet.d.ts.map +0 -1
  311. package/lib/src/wallet/rpc-storage-interface.d.ts +0 -32
  312. package/lib/src/wallet/rpc-storage-interface.d.ts.map +0 -1
  313. package/lib/src/wallet/rpc-storage-wallet.d.ts +0 -6
  314. package/lib/src/wallet/rpc-storage-wallet.d.ts.map +0 -1
  315. package/lib/test-utils.js +0 -46
  316. package/lib/test-utils.mjs +0 -38
  317. package/lib/tsconfig.tsbuildinfo +0 -1
  318. package/lib/types.js +0 -7
  319. package/lib/types.mjs +0 -3
  320. package/lib/wallet/memory-storage-interface.js +0 -101
  321. package/lib/wallet/memory-storage-interface.mjs +0 -95
  322. package/lib/wallet/memory-storage-wallet.js +0 -30
  323. package/lib/wallet/memory-storage-wallet.mjs +0 -24
  324. package/lib/wallet/rpc-storage-interface.js +0 -134
  325. package/lib/wallet/rpc-storage-interface.mjs +0 -128
  326. package/lib/wallet/rpc-storage-wallet.js +0 -46
  327. package/lib/wallet/rpc-storage-wallet.mjs +0 -40
@@ -1,74 +0,0 @@
1
- import { RpcService } from '../rpc-service-client.mjs';
2
- import { serviceName, validation } from './configs.mjs';
3
- import 'assert';
4
- import '../../rpc-client.mjs';
5
- import 'json-rpc-2.0';
6
- import '../../core/crypto.mjs';
7
- import 'crypto';
8
- import '../../core/logger.mjs';
9
- import '../../logger.mjs';
10
- import '../../rpc-util.mjs';
11
-
12
- class EDVServiceRpc extends RpcService {
13
- constructor() {
14
- super(serviceName);
15
- }
16
-
17
- initialize(params ) {
18
- validation.initialize(params);
19
- return this.call('initialize', params);
20
- }
21
-
22
- generateKeys() {
23
- return this.call('generateKeys');
24
- }
25
-
26
- deriveKeys() {
27
- return this.call('deriveKeys');
28
- }
29
-
30
- getController() {
31
- return this.call('getController');
32
- }
33
-
34
- find(params ) {
35
- return this.call('find', params);
36
- }
37
-
38
- update(params ) {
39
- return this.call('update', params);
40
- }
41
-
42
- insert(params ) {
43
- return this.call('insert', params);
44
- }
45
-
46
- delete(params ) {
47
- return this.call('delete', params);
48
- }
49
-
50
- deriveBiometricKey(biometricData , identifier ) {
51
- return this.call('deriveBiometricKey', {biometricData, identifier});
52
- }
53
-
54
- deriveBiometricEncryptionKey(biometricData , identifier ) {
55
- return this.call('deriveBiometricEncryptionKey', {
56
- biometricData,
57
- identifier,
58
- });
59
- }
60
-
61
- encryptMasterKey(masterKey , encryptionKey , iv ) {
62
- return this.call('encryptMasterKey', {masterKey, encryptionKey, iv});
63
- }
64
-
65
- decryptMasterKey(
66
- encryptedKey ,
67
- decryptionKey ,
68
- iv ,
69
- ) {
70
- return this.call('decryptMasterKey', {encryptedKey, decryptionKey, iv});
71
- }
72
- }
73
-
74
- export { EDVServiceRpc };
@@ -1,370 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var services_edv_configs = require('./configs.js');
6
- var EDVHTTPStorageInterface = require('@docknetwork/universal-wallet/storage/edv-http-storage');
7
- var services_edv_hmac = require('./hmac.js');
8
- var ed25519VerificationKey2018 = require('@digitalbazaar/ed25519-verification-key-2018');
9
- var ed25519VerificationKey2020 = require('@digitalbazaar/ed25519-verification-key-2020');
10
- var x25519KeyAgreementKey2020 = require('@digitalbazaar/x25519-key-agreement-key-2020');
11
- var keypairs = require('@docknetwork/universal-wallet/methods/keypairs');
12
- var logger = require('@docknetwork/wallet-sdk-data-store/lib/logger');
13
- var services_dids_service = require('../dids/service.js');
14
- var keypairs$1 = require('@docknetwork/credential-sdk/keypairs');
15
- var hkdf = require('futoin-hkdf');
16
- var crypto = require('@docknetwork/universal-wallet/crypto');
17
- require('assert');
18
- require('base64url-universal');
19
- require('@docknetwork/wallet-sdk-dids/lib');
20
- require('../dids/config.js');
21
- require('base64url');
22
- require('../credential/utils.js');
23
- require('base58-universal');
24
- require('@docknetwork/credential-sdk/vc/crypto');
25
- require('@docknetwork/credential-sdk/utils');
26
- require('@digitalbazaar/x25519-key-agreement-key-2019');
27
- require('../dids/keypair-utils.js');
28
-
29
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
30
-
31
- var EDVHTTPStorageInterface__default = /*#__PURE__*/_interopDefaultLegacy(EDVHTTPStorageInterface);
32
- var hkdf__default = /*#__PURE__*/_interopDefaultLegacy(hkdf);
33
- var crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto);
34
-
35
- // @ts-nocheck
36
- const HKDF_LENGTH = 32;
37
- const HKDF_HASH = 'SHA-256';
38
- /**
39
- * Service class for managing Encrypted Data Vaults
40
- * @class
41
- * @description Provides methods for creating, managing, and interacting with
42
- * encrypted data vaults for secure storage of sensitive wallet data
43
- */
44
- class EDVService {
45
- storageInterface;
46
- insertQueue = Promise.resolve();
47
- controller;
48
- rpcMethods = [
49
- EDVService.prototype.generateKeys,
50
- EDVService.prototype.deriveKeys,
51
- EDVService.prototype.getController,
52
- EDVService.prototype.initialize,
53
- EDVService.prototype.find,
54
- EDVService.prototype.update,
55
- EDVService.prototype.insert,
56
- EDVService.prototype.delete,
57
- EDVService.prototype.deriveBiometricKey,
58
- EDVService.prototype.deriveBiometricEncryptionKey,
59
- EDVService.prototype.encryptMasterKey,
60
- EDVService.prototype.decryptMasterKey,
61
- ];
62
- /**
63
- * Creates a new EDVService instance
64
- * @constructor
65
- */
66
- constructor() {
67
- this.name = services_edv_configs.serviceName;
68
- }
69
- /**
70
- * Initializes the EDV service with encryption keys and connection parameters
71
- * @param {InitializeEDVParams} params - Initialization parameters
72
- * @param {Object} params.hmacKey - HMAC key for document indexing
73
- * @param {Object} params.agreementKey - Key agreement key for encryption
74
- * @param {Object} params.verificationKey - Verification key for authentication
75
- * @param {string} params.edvUrl - URL of the EDV server
76
- * @param {string} params.authKey - Authentication key for the EDV server
77
- * @returns {Promise<void>}
78
- * @throws {Error} If unable to create or connect to EDV
79
- * @example
80
- * await edvService.initialize({
81
- * hmacKey: hmacKeyData,
82
- * agreementKey: agreementKeyData,
83
- * verificationKey: verificationKeyData,
84
- * edvUrl: 'https://edv.example.com',
85
- * authKey: 'auth-token-123'
86
- * });
87
- */
88
- async initialize({ hmacKey, agreementKey, verificationKey, edvUrl, authKey, }) {
89
- const hmac = await services_edv_hmac.create({
90
- key: hmacKey,
91
- });
92
- const keyAgreementKey = await x25519KeyAgreementKey2020.X25519KeyAgreementKey2020.from(agreementKey);
93
- const keys = {
94
- keyAgreementKey,
95
- hmac,
96
- };
97
- const { controller } = verificationKey;
98
- this.controller = controller;
99
- const invocationSigner = keypairs.getKeypairFromDoc(verificationKey);
100
- invocationSigner.sign = invocationSigner.signer().sign;
101
- this.storageInterface = new EDVHTTPStorageInterface__default["default"]({
102
- url: edvUrl,
103
- keys,
104
- invocationSigner,
105
- defaultHeaders: {
106
- DockAuth: authKey,
107
- },
108
- });
109
- let edvId;
110
- try {
111
- console.log('Creating EDV with controller:', controller);
112
- edvId = await this.storageInterface.createEdv({
113
- sequence: 0,
114
- controller,
115
- });
116
- }
117
- catch (e) {
118
- const existingConfig = await this.storageInterface.findConfigFor(controller);
119
- edvId = existingConfig && existingConfig.id;
120
- if (!edvId) {
121
- logger.logger.error('Unable to create or find primary EDV:');
122
- throw e;
123
- }
124
- }
125
- logger.logger.log(`EDV found/created: ${edvId} - connecting to it`);
126
- this.storageInterface.connectTo(edvId);
127
- await this.storageInterface.client.ensureIndex({
128
- attribute: 'content.id',
129
- unique: true,
130
- });
131
- await this.storageInterface.client.ensureIndex({
132
- attribute: 'content.type',
133
- });
134
- }
135
- /**
136
- * Generates new cryptographic keys for EDV operations
137
- * @returns {Promise<Object>} Generated keys
138
- * @returns {Object} returns.verificationKey - Ed25519 verification key for authentication
139
- * @returns {Object} returns.agreementKey - X25519 key agreement key for encryption
140
- * @returns {Object} returns.hmacKey - HMAC key for indexing
141
- * @example
142
- * const keys = await edvService.generateKeys();
143
- * // Use keys for EDV initialization
144
- * await edvService.initialize({
145
- * ...keys,
146
- * edvUrl: 'https://edv.example.com',
147
- * authKey: 'auth-token'
148
- * });
149
- */
150
- async generateKeys() {
151
- const keyPair = await services_dids_service.didService.generateKeyDoc({});
152
- const verificationKey = await ed25519VerificationKey2018.Ed25519VerificationKey2018.generate({
153
- controller: keyPair.controller,
154
- id: keyPair.id,
155
- });
156
- const agreementKey = await x25519KeyAgreementKey2020.X25519KeyAgreementKey2020.generate({
157
- controller: keyPair.controller,
158
- });
159
- const hmacKey = await services_edv_hmac.exportKey(await services_edv_hmac.generateKey());
160
- return { verificationKey, agreementKey, hmacKey };
161
- }
162
- /**
163
- * Derives cryptographic keys from a master key
164
- * @param {Uint8Array} masterKey - Master key for derivation
165
- * @returns {Promise<Object>} Derived keys
166
- * @returns {Object} returns.verificationKey - Derived Ed25519 verification key
167
- * @returns {Object} returns.agreementKey - Derived X25519 key agreement key
168
- * @returns {Object} returns.hmacKey - Derived HMAC key
169
- * @example
170
- * const masterKey = new Uint8Array(32); // Your master key
171
- * const keys = await edvService.deriveKeys(masterKey);
172
- */
173
- async deriveKeys(masterKey) {
174
- const { keyPair: pair } = new keypairs$1.Ed25519Keypair(masterKey, 'seed');
175
- const keyPair = await services_dids_service.didService.deriveKeyDoc({ pair });
176
- const verificationKey = await ed25519VerificationKey2018.Ed25519VerificationKey2018.from(keyPair);
177
- const verificationKey2020 = await ed25519VerificationKey2020.Ed25519VerificationKey2020.fromEd25519VerificationKey2018({ keyPair });
178
- const agreementKey = await x25519KeyAgreementKey2020.X25519KeyAgreementKey2020.fromEd25519VerificationKey2020({ keyPair: verificationKey2020 });
179
- const hmacKey = await services_edv_hmac.exportKey(await services_edv_hmac.deriveKey(masterKey));
180
- return { verificationKey, agreementKey, hmacKey };
181
- }
182
- /**
183
- * Gets the controller identifier for the current EDV
184
- * @returns {Promise<string>} The controller DID or identifier
185
- * @example
186
- * const controller = await edvService.getController();
187
- * console.log('EDV Controller:', controller);
188
- */
189
- async getController() {
190
- return this.controller;
191
- }
192
- /**
193
- * Finds documents in the EDV based on query parameters
194
- * @param {Object} params - Query parameters
195
- * @param {Object} [params.equals] - Equality-based query conditions
196
- * @param {boolean} [params.has] - Existence-based query conditions
197
- * @param {number} [params.limit] - Maximum number of results
198
- * @returns {Promise<Array>} Array of matching documents
199
- * @example
200
- * const documents = await edvService.find({
201
- * equals: { 'content.type': 'VerifiableCredential' },
202
- * limit: 10
203
- * });
204
- */
205
- find(params) {
206
- return this.storageInterface.find(params);
207
- }
208
- /**
209
- * Updates a document in the EDV
210
- * @param {Object} params - Update parameters
211
- * @param {string} params.id - Document ID to update
212
- * @param {Object} params.content - New document content
213
- * @returns {Promise<Object>} Updated document
214
- * @example
215
- * const updated = await edvService.update({
216
- * id: 'doc-123',
217
- * content: { ...existingContent, updated: true }
218
- * });
219
- */
220
- update(params) {
221
- return this.storageInterface.update(params);
222
- }
223
- /**
224
- * Inserts a new document into the EDV
225
- * @param {Object} params - Insert parameters
226
- * @param {string} params.id - Document ID
227
- * @param {Object} params.content - Document content to store
228
- * @returns {Promise<Object>} The inserted document
229
- * @throws {Error} If insertion fails
230
- * @example
231
- * const document = await edvService.insert({
232
- * id: 'doc-456',
233
- * content: {
234
- * type: 'VerifiableCredential',
235
- * data: credentialData
236
- * }
237
- * });
238
- */
239
- insert(params) {
240
- this.insertQueue = this.insertQueue.then(() => {
241
- return this.storageInterface.insert(params).catch(error => {
242
- logger.logger.error('Insert failed:', error);
243
- throw error;
244
- });
245
- });
246
- return this.insertQueue;
247
- }
248
- /**
249
- * Deletes a document from the EDV
250
- * @param {Object} params - Deletion parameters
251
- * @param {string} params.id - Document ID to delete
252
- * @returns {Promise<boolean>} True if deletion successful
253
- * @example
254
- * const deleted = await edvService.delete({
255
- * id: 'doc-123'
256
- * });
257
- */
258
- delete(params) {
259
- return this.storageInterface.delete(params);
260
- }
261
- /**
262
- * Derives a key from biometric data using HKDF
263
- * @param {Buffer} biometricData - Biometric data from provider
264
- * @param {string} identifier - User's identifier as salt (email, phone number, etc.)
265
- * @returns {Buffer} Derived key
266
- * @example
267
- * const key = edvService.deriveBiometricKey(biometricData, 'user@example.com');
268
- */
269
- deriveBiometricKey(biometricData, identifier) {
270
- const salt = identifier;
271
- return hkdf__default["default"](biometricData, HKDF_LENGTH, { salt, hash: HKDF_HASH });
272
- }
273
- /**
274
- * Generates a key for encrypting/decrypting the master key
275
- * @param {Buffer} biometricData - Biometric data from provider
276
- * @param {string} identifier - User's identifier as salt (email, phone number, etc.)
277
- * @returns {Promise<Object>} Encryption key and IV for AES encryption
278
- * @returns {Buffer} returns.key - Encryption key
279
- * @returns {Buffer} returns.iv - Initialization vector
280
- * @example
281
- * const { key, iv } = await edvService.deriveBiometricEncryptionKey(biometricData, 'user@example.com');
282
- */
283
- async deriveBiometricEncryptionKey(biometricData, identifier) {
284
- const key = this.deriveBiometricKey(biometricData, identifier);
285
- const randomBytes = crypto__default["default"].getRandomValues(new Uint8Array(16));
286
- const iv = Buffer.from(randomBytes);
287
- return {
288
- key,
289
- iv
290
- };
291
- }
292
- /**
293
- * Encrypts the master key using a key derived from biometric data
294
- * @param {Uint8Array} masterKey - The CloudWalletVault master key to encrypt
295
- * @param {Buffer} encryptionKey - Key derived from biometric data
296
- * @param {Buffer} iv - Initialization vector
297
- * @returns {Promise<Uint8Array>} Encrypted master key
298
- * @example
299
- * const encrypted = await edvService.encryptMasterKey(masterKey, encryptionKey, iv);
300
- */
301
- async encryptMasterKey(masterKey, encryptionKey, iv) {
302
- const keyData = new Uint8Array(encryptionKey);
303
- const ivData = new Uint8Array(iv);
304
- const key = await crypto__default["default"].subtle.importKey('raw', keyData, { name: 'AES-GCM' }, false, ['encrypt']);
305
- const encryptedBuffer = await crypto__default["default"].subtle.encrypt({ name: 'AES-GCM', iv: ivData }, key, masterKey);
306
- return new Uint8Array(encryptedBuffer);
307
- }
308
- /**
309
- * Decrypts the master key using biometric-derived key
310
- * @param {Uint8Array} encryptedKey - The encrypted master key
311
- * @param {Buffer} decryptionKey - Key derived from biometric data
312
- * @param {Buffer} iv - Initialization vector
313
- * @returns {Promise<Uint8Array>} The decrypted master key
314
- * @throws {Error} If decryption fails
315
- * @example
316
- * const masterKey = await edvService.decryptMasterKey(encryptedKey, decryptionKey, iv);
317
- */
318
- async decryptMasterKey(encryptedKey, decryptionKey, iv) {
319
- try {
320
- const keyData = new Uint8Array(decryptionKey);
321
- const ivData = new Uint8Array(iv);
322
- const key = await crypto__default["default"].subtle.importKey('raw', keyData, { name: 'AES-GCM' }, false, ['decrypt']);
323
- const decryptedBuffer = await crypto__default["default"].subtle.decrypt({ name: 'AES-GCM', iv: ivData }, key, encryptedKey);
324
- return new Uint8Array(decryptedBuffer);
325
- }
326
- catch (error) {
327
- throw new Error('Decryption failed: Invalid key or corrupted data');
328
- }
329
- }
330
- }
331
- /**
332
- * Singleton instance of the EDV service
333
- * @type {EDVService}
334
- * @example
335
- * import { edvService } from '@docknetwork/wallet-sdk-wasm/services/edv';
336
- *
337
- * // Generate keys and initialize
338
- * const keys = await edvService.generateKeys();
339
- * await edvService.initialize({
340
- * ...keys,
341
- * edvUrl: 'https://edv.example.com',
342
- * authKey: 'auth-token'
343
- * });
344
- *
345
- * // Store encrypted data
346
- * await edvService.insert({
347
- * id: 'credential-1',
348
- * content: {
349
- * type: 'VerifiableCredential',
350
- * data: credentialData
351
- * }
352
- * });
353
- *
354
- * // Query encrypted data
355
- * const credentials = await edvService.find({
356
- * equals: { 'content.type': 'VerifiableCredential' }
357
- * });
358
- *
359
- * // Update encrypted data
360
- * await edvService.update({
361
- * id: 'credential-1',
362
- * content: updatedData
363
- * });
364
- */
365
- const edvService = new EDVService();
366
-
367
- exports.EDVService = EDVService;
368
- exports.HKDF_HASH = HKDF_HASH;
369
- exports.HKDF_LENGTH = HKDF_LENGTH;
370
- exports.edvService = edvService;