@ledgerhq/vault-common 1.123.1 → 2.0.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 (402) hide show
  1. package/.turbo/turbo-build.log +90 -14
  2. package/CHANGELOG.md +50 -0
  3. package/lib/chunk-3L2XDBZ2.js +249 -0
  4. package/lib/chunk-3L2XDBZ2.js.map +1 -0
  5. package/lib/chunk-5E5DWDE6.js +97 -0
  6. package/lib/chunk-5E5DWDE6.js.map +1 -0
  7. package/lib/chunk-63T7EDKZ.mjs +83 -0
  8. package/lib/chunk-63T7EDKZ.mjs.map +1 -0
  9. package/lib/chunk-C5XQJPYC.mjs +14 -0
  10. package/lib/chunk-C5XQJPYC.mjs.map +1 -0
  11. package/lib/chunk-HU7O2ZFW.mjs +249 -0
  12. package/lib/chunk-HU7O2ZFW.mjs.map +1 -0
  13. package/lib/chunk-ICZVM5JG.js +83 -0
  14. package/lib/chunk-ICZVM5JG.js.map +1 -0
  15. package/lib/chunk-J5LGTIGS.mjs +10 -0
  16. package/lib/chunk-J5LGTIGS.mjs.map +1 -0
  17. package/lib/chunk-LTTHONLK.js +1176 -0
  18. package/lib/chunk-LTTHONLK.js.map +1 -0
  19. package/lib/chunk-OF5KFUYG.mjs +1054 -0
  20. package/lib/chunk-OF5KFUYG.mjs.map +1 -0
  21. package/lib/chunk-PB4BEIPE.mjs +97 -0
  22. package/lib/chunk-PB4BEIPE.mjs.map +1 -0
  23. package/lib/chunk-PZ5AY32C.js +10 -0
  24. package/lib/chunk-PZ5AY32C.js.map +1 -0
  25. package/lib/chunk-QTAB7ADK.js +1054 -0
  26. package/lib/chunk-QTAB7ADK.js.map +1 -0
  27. package/lib/chunk-S6YY774N.mjs +503 -0
  28. package/lib/chunk-S6YY774N.mjs.map +1 -0
  29. package/lib/chunk-VJX754TS.js +503 -0
  30. package/lib/chunk-VJX754TS.js.map +1 -0
  31. package/lib/chunk-VQYIVPMU.mjs +1176 -0
  32. package/lib/chunk-VQYIVPMU.mjs.map +1 -0
  33. package/lib/chunk-XLTLYFIA.js +14 -0
  34. package/lib/chunk-XLTLYFIA.js.map +1 -0
  35. package/lib/{esm/createHSMBridge.d.ts → createHSMBridge.d.mts} +9 -4
  36. package/lib/createHSMBridge.d.ts +9 -4
  37. package/lib/createHSMBridge.js +9 -177
  38. package/lib/createHSMBridge.js.map +1 -1
  39. package/lib/createHSMBridge.mjs +10 -0
  40. package/lib/createHSMBridge.mjs.map +1 -0
  41. package/lib/crypto/utils.d.mts +14 -0
  42. package/lib/crypto/utils.d.ts +9 -5
  43. package/lib/crypto/utils.js +11 -96
  44. package/lib/crypto/utils.js.map +1 -1
  45. package/lib/crypto/utils.mjs +12 -0
  46. package/lib/crypto/utils.mjs.map +1 -0
  47. package/lib/{esm/types/index.d.ts → index-VARl4h9O.d.mts} +677 -247
  48. package/lib/index-VARl4h9O.d.ts +2002 -0
  49. package/lib/index.d.mts +155 -0
  50. package/lib/index.d.ts +155 -31
  51. package/lib/index.js +3245 -87
  52. package/lib/index.js.map +1 -1
  53. package/lib/index.mjs +3247 -0
  54. package/lib/index.mjs.map +1 -0
  55. package/lib/recipeManifest.d.mts +6 -0
  56. package/lib/recipeManifest.d.ts +6 -44
  57. package/lib/recipeManifest.js +10 -491
  58. package/lib/recipeManifest.js.map +1 -1
  59. package/lib/recipeManifest.mjs +11 -0
  60. package/lib/recipeManifest.mjs.map +1 -0
  61. package/lib/reviewAPIRequest.d.mts +20 -0
  62. package/lib/reviewAPIRequest.d.ts +11 -5
  63. package/lib/reviewAPIRequest.js +10 -94
  64. package/lib/reviewAPIRequest.js.map +1 -1
  65. package/lib/reviewAPIRequest.mjs +11 -0
  66. package/lib/reviewAPIRequest.mjs.map +1 -0
  67. package/lib/types/index.d.mts +6 -0
  68. package/lib/types/index.d.ts +6 -1572
  69. package/lib/types/index.js +9 -10
  70. package/lib/types/index.js.map +1 -1
  71. package/lib/types/index.mjs +10 -0
  72. package/lib/types/index.mjs.map +1 -0
  73. package/lib/utils.d.mts +29 -0
  74. package/lib/utils.d.ts +26 -19
  75. package/lib/utils.js +37 -181
  76. package/lib/utils.js.map +1 -1
  77. package/lib/utils.mjs +38 -0
  78. package/lib/utils.mjs.map +1 -0
  79. package/package.json +45 -12
  80. package/tsup.config.ts +19 -0
  81. package/lib/apiUser/index.d.ts +0 -46
  82. package/lib/apiUser/index.d.ts.map +0 -1
  83. package/lib/apiUser/index.js +0 -218
  84. package/lib/apiUser/index.js.map +0 -1
  85. package/lib/bakeManifest.d.ts +0 -3
  86. package/lib/bakeManifest.d.ts.map +0 -1
  87. package/lib/bakeManifest.js +0 -1177
  88. package/lib/bakeManifest.js.map +0 -1
  89. package/lib/configcat.d.ts +0 -17
  90. package/lib/configcat.d.ts.map +0 -1
  91. package/lib/configcat.js +0 -171
  92. package/lib/configcat.js.map +0 -1
  93. package/lib/constants.d.ts +0 -3
  94. package/lib/constants.d.ts.map +0 -1
  95. package/lib/constants.js +0 -6
  96. package/lib/constants.js.map +0 -1
  97. package/lib/createDefaultRunner.d.ts +0 -4
  98. package/lib/createDefaultRunner.d.ts.map +0 -1
  99. package/lib/createDefaultRunner.js +0 -521
  100. package/lib/createDefaultRunner.js.map +0 -1
  101. package/lib/createDevicesPool.d.ts +0 -4
  102. package/lib/createDevicesPool.d.ts.map +0 -1
  103. package/lib/createDevicesPool.js +0 -442
  104. package/lib/createDevicesPool.js.map +0 -1
  105. package/lib/createFaucet.d.ts +0 -15
  106. package/lib/createFaucet.d.ts.map +0 -1
  107. package/lib/createFaucet.js +0 -89
  108. package/lib/createFaucet.js.map +0 -1
  109. package/lib/createHSMBridge.d.ts.map +0 -1
  110. package/lib/createNetwork.d.ts +0 -28
  111. package/lib/createNetwork.d.ts.map +0 -1
  112. package/lib/createNetwork.js +0 -187
  113. package/lib/createNetwork.js.map +0 -1
  114. package/lib/createOnboarding.d.ts +0 -4
  115. package/lib/createOnboarding.d.ts.map +0 -1
  116. package/lib/createOnboarding.js +0 -143
  117. package/lib/createOnboarding.js.map +0 -1
  118. package/lib/createPledge.d.ts +0 -14
  119. package/lib/createPledge.d.ts.map +0 -1
  120. package/lib/createPledge.js +0 -141
  121. package/lib/createPledge.js.map +0 -1
  122. package/lib/createSettlement.d.ts +0 -14
  123. package/lib/createSettlement.d.ts.map +0 -1
  124. package/lib/createSettlement.js +0 -145
  125. package/lib/createSettlement.js.map +0 -1
  126. package/lib/crypto/keyEncoder.d.ts +0 -44
  127. package/lib/crypto/keyEncoder.d.ts.map +0 -1
  128. package/lib/crypto/keyEncoder.js +0 -215
  129. package/lib/crypto/keyEncoder.js.map +0 -1
  130. package/lib/crypto/utils.d.ts.map +0 -1
  131. package/lib/currencies.d.ts +0 -7
  132. package/lib/currencies.d.ts.map +0 -1
  133. package/lib/currencies.js +0 -852
  134. package/lib/currencies.js.map +0 -1
  135. package/lib/deployInstance.d.ts +0 -5
  136. package/lib/deployInstance.d.ts.map +0 -1
  137. package/lib/deployInstance.js +0 -167
  138. package/lib/deployInstance.js.map +0 -1
  139. package/lib/deserializeManifest.d.ts +0 -4
  140. package/lib/deserializeManifest.d.ts.map +0 -1
  141. package/lib/deserializeManifest.js +0 -40
  142. package/lib/deserializeManifest.js.map +0 -1
  143. package/lib/destroy.d.ts +0 -3
  144. package/lib/destroy.d.ts.map +0 -1
  145. package/lib/destroy.js +0 -96
  146. package/lib/destroy.js.map +0 -1
  147. package/lib/device/constants.d.ts +0 -16
  148. package/lib/device/constants.d.ts.map +0 -1
  149. package/lib/device/constants.js +0 -23
  150. package/lib/device/constants.js.map +0 -1
  151. package/lib/device/createAPIDevice.d.ts +0 -14
  152. package/lib/device/createAPIDevice.d.ts.map +0 -1
  153. package/lib/device/createAPIDevice.js +0 -397
  154. package/lib/device/createAPIDevice.js.map +0 -1
  155. package/lib/device/createHWDevice.d.ts +0 -12
  156. package/lib/device/createHWDevice.d.ts.map +0 -1
  157. package/lib/device/createHWDevice.js +0 -542
  158. package/lib/device/createHWDevice.js.map +0 -1
  159. package/lib/device/createInteractions.d.ts +0 -4
  160. package/lib/device/createInteractions.d.ts.map +0 -1
  161. package/lib/device/createInteractions.js +0 -562
  162. package/lib/device/createInteractions.js.map +0 -1
  163. package/lib/device/index.d.ts +0 -18
  164. package/lib/device/index.d.ts.map +0 -1
  165. package/lib/device/index.js +0 -146
  166. package/lib/device/index.js.map +0 -1
  167. package/lib/device/types.d.ts +0 -92
  168. package/lib/device/types.d.ts.map +0 -1
  169. package/lib/device/types.js +0 -3
  170. package/lib/device/types.js.map +0 -1
  171. package/lib/esm/apiUser/index.d.ts +0 -46
  172. package/lib/esm/apiUser/index.d.ts.map +0 -1
  173. package/lib/esm/apiUser/index.js +0 -205
  174. package/lib/esm/apiUser/index.js.map +0 -1
  175. package/lib/esm/bakeManifest.d.ts +0 -3
  176. package/lib/esm/bakeManifest.d.ts.map +0 -1
  177. package/lib/esm/bakeManifest.js +0 -1171
  178. package/lib/esm/bakeManifest.js.map +0 -1
  179. package/lib/esm/configcat.d.ts +0 -17
  180. package/lib/esm/configcat.d.ts.map +0 -1
  181. package/lib/esm/configcat.js +0 -162
  182. package/lib/esm/configcat.js.map +0 -1
  183. package/lib/esm/constants.d.ts +0 -3
  184. package/lib/esm/constants.d.ts.map +0 -1
  185. package/lib/esm/constants.js +0 -3
  186. package/lib/esm/constants.js.map +0 -1
  187. package/lib/esm/createDefaultRunner.d.ts +0 -4
  188. package/lib/esm/createDefaultRunner.d.ts.map +0 -1
  189. package/lib/esm/createDefaultRunner.js +0 -493
  190. package/lib/esm/createDefaultRunner.js.map +0 -1
  191. package/lib/esm/createDevicesPool.d.ts +0 -4
  192. package/lib/esm/createDevicesPool.d.ts.map +0 -1
  193. package/lib/esm/createDevicesPool.js +0 -437
  194. package/lib/esm/createDevicesPool.js.map +0 -1
  195. package/lib/esm/createFaucet.d.ts +0 -15
  196. package/lib/esm/createFaucet.d.ts.map +0 -1
  197. package/lib/esm/createFaucet.js +0 -84
  198. package/lib/esm/createFaucet.js.map +0 -1
  199. package/lib/esm/createHSMBridge.d.ts.map +0 -1
  200. package/lib/esm/createHSMBridge.js +0 -173
  201. package/lib/esm/createHSMBridge.js.map +0 -1
  202. package/lib/esm/createNetwork.d.ts +0 -28
  203. package/lib/esm/createNetwork.d.ts.map +0 -1
  204. package/lib/esm/createNetwork.js +0 -180
  205. package/lib/esm/createNetwork.js.map +0 -1
  206. package/lib/esm/createOnboarding.d.ts +0 -4
  207. package/lib/esm/createOnboarding.d.ts.map +0 -1
  208. package/lib/esm/createOnboarding.js +0 -141
  209. package/lib/esm/createOnboarding.js.map +0 -1
  210. package/lib/esm/createPledge.d.ts +0 -14
  211. package/lib/esm/createPledge.d.ts.map +0 -1
  212. package/lib/esm/createPledge.js +0 -136
  213. package/lib/esm/createPledge.js.map +0 -1
  214. package/lib/esm/createSettlement.d.ts +0 -14
  215. package/lib/esm/createSettlement.d.ts.map +0 -1
  216. package/lib/esm/createSettlement.js +0 -140
  217. package/lib/esm/createSettlement.js.map +0 -1
  218. package/lib/esm/crypto/keyEncoder.d.ts +0 -44
  219. package/lib/esm/crypto/keyEncoder.d.ts.map +0 -1
  220. package/lib/esm/crypto/keyEncoder.js +0 -187
  221. package/lib/esm/crypto/keyEncoder.js.map +0 -1
  222. package/lib/esm/crypto/utils.d.ts +0 -10
  223. package/lib/esm/crypto/utils.d.ts.map +0 -1
  224. package/lib/esm/crypto/utils.js +0 -65
  225. package/lib/esm/crypto/utils.js.map +0 -1
  226. package/lib/esm/currencies.d.ts +0 -7
  227. package/lib/esm/currencies.d.ts.map +0 -1
  228. package/lib/esm/currencies.js +0 -848
  229. package/lib/esm/currencies.js.map +0 -1
  230. package/lib/esm/deployInstance.d.ts +0 -5
  231. package/lib/esm/deployInstance.d.ts.map +0 -1
  232. package/lib/esm/deployInstance.js +0 -161
  233. package/lib/esm/deployInstance.js.map +0 -1
  234. package/lib/esm/deserializeManifest.d.ts +0 -4
  235. package/lib/esm/deserializeManifest.d.ts.map +0 -1
  236. package/lib/esm/deserializeManifest.js +0 -38
  237. package/lib/esm/deserializeManifest.js.map +0 -1
  238. package/lib/esm/destroy.d.ts +0 -3
  239. package/lib/esm/destroy.d.ts.map +0 -1
  240. package/lib/esm/destroy.js +0 -90
  241. package/lib/esm/destroy.js.map +0 -1
  242. package/lib/esm/device/constants.d.ts +0 -16
  243. package/lib/esm/device/constants.d.ts.map +0 -1
  244. package/lib/esm/device/constants.js +0 -20
  245. package/lib/esm/device/constants.js.map +0 -1
  246. package/lib/esm/device/createAPIDevice.d.ts +0 -14
  247. package/lib/esm/device/createAPIDevice.d.ts.map +0 -1
  248. package/lib/esm/device/createAPIDevice.js +0 -389
  249. package/lib/esm/device/createAPIDevice.js.map +0 -1
  250. package/lib/esm/device/createHWDevice.d.ts +0 -12
  251. package/lib/esm/device/createHWDevice.d.ts.map +0 -1
  252. package/lib/esm/device/createHWDevice.js +0 -535
  253. package/lib/esm/device/createHWDevice.js.map +0 -1
  254. package/lib/esm/device/createInteractions.d.ts +0 -4
  255. package/lib/esm/device/createInteractions.d.ts.map +0 -1
  256. package/lib/esm/device/createInteractions.js +0 -559
  257. package/lib/esm/device/createInteractions.js.map +0 -1
  258. package/lib/esm/device/index.d.ts +0 -18
  259. package/lib/esm/device/index.d.ts.map +0 -1
  260. package/lib/esm/device/index.js +0 -142
  261. package/lib/esm/device/index.js.map +0 -1
  262. package/lib/esm/device/types.d.ts +0 -92
  263. package/lib/esm/device/types.d.ts.map +0 -1
  264. package/lib/esm/device/types.js +0 -2
  265. package/lib/esm/device/types.js.map +0 -1
  266. package/lib/esm/fetchTokens.d.ts +0 -4
  267. package/lib/esm/fetchTokens.d.ts.map +0 -1
  268. package/lib/esm/fetchTokens.js +0 -96
  269. package/lib/esm/fetchTokens.js.map +0 -1
  270. package/lib/esm/gateErrors.d.ts +0 -5
  271. package/lib/esm/gateErrors.d.ts.map +0 -1
  272. package/lib/esm/gateErrors.js +0 -5
  273. package/lib/esm/gateErrors.js.map +0 -1
  274. package/lib/esm/genSeed.d.ts +0 -5
  275. package/lib/esm/genSeed.d.ts.map +0 -1
  276. package/lib/esm/genSeed.js +0 -19
  277. package/lib/esm/genSeed.js.map +0 -1
  278. package/lib/esm/getMVInstances.d.ts +0 -5
  279. package/lib/esm/getMVInstances.d.ts.map +0 -1
  280. package/lib/esm/getMVInstances.js +0 -58
  281. package/lib/esm/getMVInstances.js.map +0 -1
  282. package/lib/esm/index.d.ts +0 -31
  283. package/lib/esm/index.d.ts.map +0 -1
  284. package/lib/esm/index.js +0 -31
  285. package/lib/esm/index.js.map +0 -1
  286. package/lib/esm/prepareRequest.d.ts +0 -304
  287. package/lib/esm/prepareRequest.d.ts.map +0 -1
  288. package/lib/esm/prepareRequest.js +0 -764
  289. package/lib/esm/prepareRequest.js.map +0 -1
  290. package/lib/esm/recipeManifest.d.ts +0 -44
  291. package/lib/esm/recipeManifest.d.ts.map +0 -1
  292. package/lib/esm/recipeManifest.js +0 -484
  293. package/lib/esm/recipeManifest.js.map +0 -1
  294. package/lib/esm/reviewAPIRequest.d.ts +0 -14
  295. package/lib/esm/reviewAPIRequest.d.ts.map +0 -1
  296. package/lib/esm/reviewAPIRequest.js +0 -90
  297. package/lib/esm/reviewAPIRequest.js.map +0 -1
  298. package/lib/esm/runOnboarding.d.ts +0 -8
  299. package/lib/esm/runOnboarding.d.ts.map +0 -1
  300. package/lib/esm/runOnboarding.js +0 -335
  301. package/lib/esm/runOnboarding.js.map +0 -1
  302. package/lib/esm/send.d.ts +0 -20
  303. package/lib/esm/send.d.ts.map +0 -1
  304. package/lib/esm/send.js +0 -332
  305. package/lib/esm/send.js.map +0 -1
  306. package/lib/esm/types/cardano.d.ts +0 -19
  307. package/lib/esm/types/cardano.d.ts.map +0 -1
  308. package/lib/esm/types/cardano.js +0 -2
  309. package/lib/esm/types/cardano.js.map +0 -1
  310. package/lib/esm/types/index.d.ts.map +0 -1
  311. package/lib/esm/types/index.js +0 -8
  312. package/lib/esm/types/index.js.map +0 -1
  313. package/lib/esm/types/polkadot.d.ts +0 -49
  314. package/lib/esm/types/polkadot.d.ts.map +0 -1
  315. package/lib/esm/types/polkadot.js +0 -2
  316. package/lib/esm/types/polkadot.js.map +0 -1
  317. package/lib/esm/types/tradelink.d.ts +0 -44
  318. package/lib/esm/types/tradelink.d.ts.map +0 -1
  319. package/lib/esm/types/tradelink.js +0 -2
  320. package/lib/esm/types/tradelink.js.map +0 -1
  321. package/lib/esm/upgradeInstance.d.ts +0 -9
  322. package/lib/esm/upgradeInstance.d.ts.map +0 -1
  323. package/lib/esm/upgradeInstance.js +0 -93
  324. package/lib/esm/upgradeInstance.js.map +0 -1
  325. package/lib/esm/utils.d.ts +0 -22
  326. package/lib/esm/utils.d.ts.map +0 -1
  327. package/lib/esm/utils.js +0 -161
  328. package/lib/esm/utils.js.map +0 -1
  329. package/lib/esm/utilsComparison.d.ts +0 -7
  330. package/lib/esm/utilsComparison.d.ts.map +0 -1
  331. package/lib/esm/utilsComparison.js +0 -137
  332. package/lib/esm/utilsComparison.js.map +0 -1
  333. package/lib/esm/validateManifest.d.ts +0 -3
  334. package/lib/esm/validateManifest.d.ts.map +0 -1
  335. package/lib/esm/validateManifest.js +0 -224
  336. package/lib/esm/validateManifest.js.map +0 -1
  337. package/lib/esm/wipeBackend.d.ts +0 -4
  338. package/lib/esm/wipeBackend.d.ts.map +0 -1
  339. package/lib/esm/wipeBackend.js +0 -104
  340. package/lib/esm/wipeBackend.js.map +0 -1
  341. package/lib/fetchTokens.d.ts +0 -4
  342. package/lib/fetchTokens.d.ts.map +0 -1
  343. package/lib/fetchTokens.js +0 -98
  344. package/lib/fetchTokens.js.map +0 -1
  345. package/lib/gateErrors.d.ts +0 -5
  346. package/lib/gateErrors.d.ts.map +0 -1
  347. package/lib/gateErrors.js +0 -8
  348. package/lib/gateErrors.js.map +0 -1
  349. package/lib/genSeed.d.ts +0 -5
  350. package/lib/genSeed.d.ts.map +0 -1
  351. package/lib/genSeed.js +0 -24
  352. package/lib/genSeed.js.map +0 -1
  353. package/lib/getMVInstances.d.ts +0 -5
  354. package/lib/getMVInstances.d.ts.map +0 -1
  355. package/lib/getMVInstances.js +0 -64
  356. package/lib/getMVInstances.js.map +0 -1
  357. package/lib/index.d.ts.map +0 -1
  358. package/lib/prepareRequest.d.ts +0 -304
  359. package/lib/prepareRequest.d.ts.map +0 -1
  360. package/lib/prepareRequest.js +0 -789
  361. package/lib/prepareRequest.js.map +0 -1
  362. package/lib/recipeManifest.d.ts.map +0 -1
  363. package/lib/reviewAPIRequest.d.ts.map +0 -1
  364. package/lib/runOnboarding.d.ts +0 -8
  365. package/lib/runOnboarding.d.ts.map +0 -1
  366. package/lib/runOnboarding.js +0 -338
  367. package/lib/runOnboarding.js.map +0 -1
  368. package/lib/send.d.ts +0 -20
  369. package/lib/send.d.ts.map +0 -1
  370. package/lib/send.js +0 -339
  371. package/lib/send.js.map +0 -1
  372. package/lib/types/cardano.d.ts +0 -19
  373. package/lib/types/cardano.d.ts.map +0 -1
  374. package/lib/types/cardano.js +0 -3
  375. package/lib/types/cardano.js.map +0 -1
  376. package/lib/types/index.d.ts.map +0 -1
  377. package/lib/types/polkadot.d.ts +0 -49
  378. package/lib/types/polkadot.d.ts.map +0 -1
  379. package/lib/types/polkadot.js +0 -3
  380. package/lib/types/polkadot.js.map +0 -1
  381. package/lib/types/tradelink.d.ts +0 -44
  382. package/lib/types/tradelink.d.ts.map +0 -1
  383. package/lib/types/tradelink.js +0 -3
  384. package/lib/types/tradelink.js.map +0 -1
  385. package/lib/upgradeInstance.d.ts +0 -9
  386. package/lib/upgradeInstance.d.ts.map +0 -1
  387. package/lib/upgradeInstance.js +0 -99
  388. package/lib/upgradeInstance.js.map +0 -1
  389. package/lib/utils.d.ts.map +0 -1
  390. package/lib/utilsComparison.d.ts +0 -7
  391. package/lib/utilsComparison.d.ts.map +0 -1
  392. package/lib/utilsComparison.js +0 -148
  393. package/lib/utilsComparison.js.map +0 -1
  394. package/lib/validateManifest.d.ts +0 -3
  395. package/lib/validateManifest.d.ts.map +0 -1
  396. package/lib/validateManifest.js +0 -230
  397. package/lib/validateManifest.js.map +0 -1
  398. package/lib/wipeBackend.d.ts +0 -4
  399. package/lib/wipeBackend.d.ts.map +0 -1
  400. package/lib/wipeBackend.js +0 -109
  401. package/lib/wipeBackend.js.map +0 -1
  402. package/tsconfig.build.json +0 -4
@@ -1,16 +1,92 @@
1
1
 
2
- > @ledgerhq/vault-common@1.123.1 build /home/runner/work/vault-ts/vault-ts/packages/common
3
- > pnpm clean && pnpm build:cjs && pnpm build:esm
4
-
5
-
6
- > @ledgerhq/vault-common@1.123.1 clean /home/runner/work/vault-ts/vault-ts/packages/common
7
- > rm -rf lib
8
-
9
-
10
- > @ledgerhq/vault-common@1.123.1 build:cjs /home/runner/work/vault-ts/vault-ts/packages/common
11
- > tsc -P tsconfig.build.json --module commonjs --target es5 --outDir lib
12
-
13
-
14
- > @ledgerhq/vault-common@1.123.1 build:esm /home/runner/work/vault-ts/vault-ts/packages/common
15
- > tsc -P tsconfig.build.json --module es2015 --target es5 --outDir lib/esm
2
+ > @ledgerhq/vault-common@2.0.0 build /home/runner/work/vault-ts/vault-ts/packages/common
3
+ > tsup
16
4
 
5
+ CLI Building entry: src/createHSMBridge.ts, src/index.ts, src/recipeManifest.ts, src/reviewAPIRequest.ts, src/utils.ts, src/crypto/utils.ts, src/types/index.ts
6
+ CLI Using tsconfig: tsconfig.json
7
+ CLI tsup v8.5.0
8
+ CLI Using tsup config: /home/runner/work/vault-ts/vault-ts/packages/common/tsup.config.ts
9
+ CLI Target: es2022
10
+ CLI Cleaning output folder
11
+ ESM Build start
12
+ CJS Build start
13
+ ESM lib/createHSMBridge.mjs 252.00 B
14
+ ESM lib/crypto/utils.mjs 183.00 B
15
+ ESM lib/types/index.mjs 201.00 B
16
+ ESM lib/recipeManifest.mjs 238.00 B
17
+ ESM lib/chunk-S6YY774N.mjs 16.35 KB
18
+ ESM lib/reviewAPIRequest.mjs 286.00 B
19
+ ESM lib/index.mjs 113.68 KB
20
+ ESM lib/chunk-VQYIVPMU.mjs 35.51 KB
21
+ ESM lib/chunk-PB4BEIPE.mjs 3.00 KB
22
+ ESM lib/chunk-63T7EDKZ.mjs 3.16 KB
23
+ ESM lib/utils.mjs 767.00 B
24
+ ESM lib/chunk-OF5KFUYG.mjs 24.07 KB
25
+ ESM lib/chunk-HU7O2ZFW.mjs 7.90 KB
26
+ ESM lib/chunk-J5LGTIGS.mjs 234.00 B
27
+ ESM lib/chunk-C5XQJPYC.mjs 280.00 B
28
+ ESM lib/createHSMBridge.mjs.map 71.00 B
29
+ ESM lib/crypto/utils.mjs.map 71.00 B
30
+ ESM lib/types/index.mjs.map 71.00 B
31
+ ESM lib/recipeManifest.mjs.map 71.00 B
32
+ ESM lib/chunk-S6YY774N.mjs.map 35.81 KB
33
+ ESM lib/reviewAPIRequest.mjs.map 71.00 B
34
+ ESM lib/index.mjs.map 217.28 KB
35
+ ESM lib/chunk-VQYIVPMU.mjs.map 82.06 KB
36
+ ESM lib/chunk-63T7EDKZ.mjs.map 6.51 KB
37
+ ESM lib/utils.mjs.map 71.00 B
38
+ ESM lib/chunk-OF5KFUYG.mjs.map 41.70 KB
39
+ ESM lib/chunk-HU7O2ZFW.mjs.map 16.67 KB
40
+ ESM lib/chunk-J5LGTIGS.mjs.map 71.00 B
41
+ ESM lib/chunk-C5XQJPYC.mjs.map 51.86 KB
42
+ ESM lib/chunk-PB4BEIPE.mjs.map 5.96 KB
43
+ ESM ⚡️ Build success in 982ms
44
+ CJS lib/createHSMBridge.js 331.00 B
45
+ CJS lib/index.js 120.10 KB
46
+ CJS lib/chunk-ICZVM5JG.js 3.52 KB
47
+ CJS lib/recipeManifest.js 349.00 B
48
+ CJS lib/chunk-VJX754TS.js 17.66 KB
49
+ CJS lib/reviewAPIRequest.js 365.00 B
50
+ CJS lib/chunk-LTTHONLK.js 37.23 KB
51
+ CJS lib/chunk-5E5DWDE6.js 3.39 KB
52
+ CJS lib/utils.js 1.20 KB
53
+ CJS lib/chunk-QTAB7ADK.js 24.78 KB
54
+ CJS lib/crypto/utils.js 335.00 B
55
+ CJS lib/chunk-3L2XDBZ2.js 8.65 KB
56
+ CJS lib/types/index.js 329.00 B
57
+ CJS lib/chunk-XLTLYFIA.js 396.00 B
58
+ CJS lib/chunk-PZ5AY32C.js 314.00 B
59
+ CJS lib/createHSMBridge.js.map 293.00 B
60
+ CJS lib/index.js.map 178.12 KB
61
+ CJS lib/chunk-ICZVM5JG.js.map 6.86 KB
62
+ CJS lib/recipeManifest.js.map 288.00 B
63
+ CJS lib/chunk-VJX754TS.js.map 36.38 KB
64
+ CJS lib/reviewAPIRequest.js.map 308.00 B
65
+ CJS lib/chunk-LTTHONLK.js.map 71.09 KB
66
+ CJS lib/chunk-5E5DWDE6.js.map 5.19 KB
67
+ CJS lib/utils.js.map 398.00 B
68
+ CJS lib/chunk-QTAB7ADK.js.map 45.95 KB
69
+ CJS lib/crypto/utils.js.map 281.00 B
70
+ CJS lib/chunk-3L2XDBZ2.js.map 20.30 KB
71
+ CJS lib/types/index.js.map 269.00 B
72
+ CJS lib/chunk-XLTLYFIA.js.map 52.11 KB
73
+ CJS lib/chunk-PZ5AY32C.js.map 479.00 B
74
+ CJS ⚡️ Build success in 995ms
75
+ DTS Build start
76
+ DTS ⚡️ Build success in 12452ms
77
+ DTS lib/createHSMBridge.d.mts 953.00 B
78
+ DTS lib/index.d.mts 12.50 KB
79
+ DTS lib/reviewAPIRequest.d.mts 837.00 B
80
+ DTS lib/utils.d.mts 1.97 KB
81
+ DTS lib/crypto/utils.d.mts 428.00 B
82
+ DTS lib/recipeManifest.d.mts 705.00 B
83
+ DTS lib/types/index.d.mts 5.79 KB
84
+ DTS lib/index-VARl4h9O.d.mts 67.51 KB
85
+ DTS lib/createHSMBridge.d.ts 952.00 B
86
+ DTS lib/index.d.ts 12.49 KB
87
+ DTS lib/reviewAPIRequest.d.ts 836.00 B
88
+ DTS lib/utils.d.ts 1.96 KB
89
+ DTS lib/crypto/utils.d.ts 428.00 B
90
+ DTS lib/recipeManifest.d.ts 704.00 B
91
+ DTS lib/types/index.d.ts 5.79 KB
92
+ DTS lib/index-VARl4h9O.d.ts 67.51 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,55 @@
1
1
  # @ledgerhq/vault-common
2
2
 
3
+ ## 2.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - f2b80e2: feat(VG-24076): use new onboarding on vault-common & vault-cli
8
+
9
+ All the existing onboarding code, relying on Gate backend, has been removed and replaced
10
+ by revault-sdk onboarding.
11
+
12
+ This has two main benefits:
13
+
14
+ - ~40% faster onboarding time
15
+ - we can fully decomission the Gate onboarding code (a LOT of old and quirky code)
16
+
17
+ **Breaking changes**
18
+
19
+ - New parameters are now available for `bake` and `onboard` commands:
20
+ - `compartmentId` (🔴 required Number) : The compartment ID to use for the onboarding
21
+ - `hsmScriptsVersion` (🔴 required String): The version of the HSM scripts to use for the onboarding
22
+ - `revaultRootAuthToken` (String): The revault root auth token to use to init onboarding
23
+ - `revaultApiUrl` (String): The target revault API URL to use for the onboarding
24
+
25
+ Example command:
26
+
27
+ ```bash
28
+ ledger-vault bake manifest.json \
29
+ --compartmentId 123 \
30
+ --hsmScriptsVersion 17.0.3-dave+c3edd558 \
31
+ --revaultApiUrl https://tomato-swallow-751.minivault.ledger-sbx.com/api \
32
+ --revaultRootAuthToken root-auth-token
33
+ ```
34
+
35
+ If you are targeting minivault, you can use `--minivaultURL` so that revault-api URL & root token
36
+ are automatically set for you:
37
+
38
+ ```bash
39
+ ledger-vault bake manifest.json \
40
+ --minivaultURL https://tomato-swallow-751.minivault.ledger-sbx.com \
41
+ --compartmentId 123 \
42
+ --hsmScriptsVersion 17.0.3-dave+c3edd558
43
+ ```
44
+
45
+ If those options are not provided, user will get a clear deprecation notice, and very
46
+ likely a failure when continuing the baking process (unless workspace is already onboarded).
47
+
48
+ ### Minor Changes
49
+
50
+ - b7b0c48: chore: migrate to tsup for build of common & cli
51
+ - e1685ba: feat: use STAX as default PSD model
52
+
3
53
  ## 1.123.1
4
54
 
5
55
  ### Patch Changes
@@ -0,0 +1,249 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/crypto/utils.ts
2
+ var _crypto = require('crypto'); var _crypto2 = _interopRequireDefault(_crypto);
3
+ var _elliptic = require('elliptic'); var elliptic = _interopRequireWildcard(_elliptic);
4
+ var _jsonwebtoken = require('jsonwebtoken'); var jwt = _interopRequireWildcard(_jsonwebtoken);
5
+
6
+ // src/crypto/keyEncoder.ts
7
+ var _asn1js = require('asn1.js'); var asn1 = _interopRequireWildcard(_asn1js);
8
+ var _bnjs = require('bn.js'); var _bnjs2 = _interopRequireDefault(_bnjs);
9
+
10
+ var ECPrivateKeyASN = asn1.define("ECPrivateKey", function() {
11
+ const self = this;
12
+ self.seq().obj(
13
+ self.key("version").int(),
14
+ self.key("privateKey").octstr(),
15
+ self.key("parameters").explicit(0).objid().optional(),
16
+ self.key("publicKey").explicit(1).bitstr().optional()
17
+ );
18
+ });
19
+ var ECPrivateKey8ASN = asn1.define(
20
+ "ECPrivateKey",
21
+ /* istanbul ignore next */
22
+ function() {
23
+ const self = this;
24
+ self.seq().obj(
25
+ self.key("version").int(),
26
+ self.key("privateKeyAlgorithm").seq().obj(self.key("ecPublicKey").objid(), self.key("curve").objid()),
27
+ self.key("privateKey").octstr().contains(ECPrivateKeyASN),
28
+ self.key("attributes").explicit(0).bitstr().optional()
29
+ );
30
+ }
31
+ );
32
+ var SubjectPublicKeyInfoASN = asn1.define("SubjectPublicKeyInfo", function() {
33
+ const self = this;
34
+ self.seq().obj(
35
+ self.key("algorithm").seq().obj(self.key("id").objid(), self.key("curve").objid()),
36
+ self.key("pub").bitstr()
37
+ );
38
+ });
39
+ var curves = {
40
+ secp256k1: {
41
+ curveParameters: [1, 3, 132, 0, 10],
42
+ privatePEMOptions: { label: "EC PRIVATE KEY" },
43
+ publicPEMOptions: { label: "PUBLIC KEY" },
44
+ curve: new (0, _elliptic.ec)("secp256k1")
45
+ },
46
+ p256: {
47
+ curveParameters: [1, 2, 840, 10045, 3, 1, 7],
48
+ // OID for p256 curve
49
+ privatePEMOptions: { label: "EC PRIVATE KEY" },
50
+ publicPEMOptions: { label: "PUBLIC KEY" },
51
+ curve: new (0, _elliptic.ec)("p256")
52
+ }
53
+ };
54
+ var KeyEncoder = class {
55
+
56
+
57
+ constructor(options) {
58
+ if (typeof options === "string") {
59
+ if (options !== "secp256k1" && options !== "p256") {
60
+ throw new Error("Unknown curve " + options);
61
+ }
62
+ options = curves[options];
63
+ }
64
+ this.options = options;
65
+ this.algorithmID = [1, 2, 840, 10045, 2, 1];
66
+ }
67
+ /* istanbul ignore next */
68
+ PKCS1toPKCS8(privateKey) {
69
+ return {
70
+ version: new (0, _bnjs2.default)(0),
71
+ privateKey,
72
+ privateKeyAlgorithm: {
73
+ ecPublicKey: this.algorithmID,
74
+ curve: privateKey.parameters
75
+ }
76
+ };
77
+ }
78
+ privateKeyObject(rawPrivateKey, rawPublicKey) {
79
+ const privateKeyObject = {
80
+ version: new (0, _bnjs2.default)(1),
81
+ privateKey: Buffer.from(rawPrivateKey, "hex"),
82
+ parameters: this.options.curveParameters
83
+ };
84
+ if (rawPublicKey) {
85
+ privateKeyObject.publicKey = {
86
+ unused: 0,
87
+ data: Buffer.from(rawPublicKey, "hex")
88
+ };
89
+ }
90
+ return privateKeyObject;
91
+ }
92
+ publicKeyObject(rawPublicKey) {
93
+ return {
94
+ algorithm: {
95
+ id: this.algorithmID,
96
+ curve: this.options.curveParameters
97
+ },
98
+ pub: {
99
+ unused: 0,
100
+ data: Buffer.from(rawPublicKey, "hex")
101
+ }
102
+ };
103
+ }
104
+ /* istanbul ignore next */
105
+ encodePrivate(privateKey, originalFormat, destinationFormat, destinationFormatType = "pkcs1") {
106
+ let privateKeyObject;
107
+ if (originalFormat === "raw") {
108
+ if (typeof privateKey !== "string") {
109
+ throw "private key must be a string";
110
+ }
111
+ const keyPair = this.options.curve.keyFromPrivate(privateKey, "hex");
112
+ const rawPublicKey = keyPair.getPublic("hex");
113
+ privateKeyObject = this.privateKeyObject(privateKey, rawPublicKey);
114
+ } else if (originalFormat === "der") {
115
+ if (typeof privateKey !== "string") {
116
+ } else if (typeof privateKey === "string") {
117
+ privateKey = Buffer.from(privateKey, "hex");
118
+ } else {
119
+ throw "private key must be a buffer or a string";
120
+ }
121
+ privateKeyObject = ECPrivateKeyASN.decode(privateKey, "der");
122
+ } else if (originalFormat === "pem") {
123
+ if (typeof privateKey !== "string") {
124
+ throw "private key must be a string";
125
+ }
126
+ privateKeyObject = ECPrivateKeyASN.decode(privateKey, "pem", this.options.privatePEMOptions);
127
+ } else {
128
+ throw "invalid private key format";
129
+ }
130
+ if (destinationFormat === "raw") {
131
+ return privateKeyObject.privateKey.toString("hex");
132
+ } else if (destinationFormat === "der") {
133
+ return ECPrivateKeyASN.encode(privateKeyObject, "der").toString("hex");
134
+ } else if (destinationFormat === "pem") {
135
+ return destinationFormatType === "pkcs1" ? ECPrivateKeyASN.encode(privateKeyObject, "pem", this.options.privatePEMOptions) : ECPrivateKey8ASN.encode(this.PKCS1toPKCS8(privateKeyObject), "pem", {
136
+ ...this.options.privatePEMOptions,
137
+ label: "PRIVATE KEY"
138
+ });
139
+ } else {
140
+ throw "invalid destination format for private key";
141
+ }
142
+ }
143
+ /* istanbul ignore next */
144
+ encodePublic(publicKey, originalFormat, destinationFormat) {
145
+ let publicKeyObject;
146
+ if (originalFormat === "raw") {
147
+ if (typeof publicKey !== "string") {
148
+ throw "public key must be a string";
149
+ }
150
+ publicKeyObject = this.publicKeyObject(publicKey);
151
+ } else if (originalFormat === "der") {
152
+ if (typeof publicKey !== "string") {
153
+ } else if (typeof publicKey === "string") {
154
+ publicKey = Buffer.from(publicKey, "hex");
155
+ } else {
156
+ throw "public key must be a buffer or a string";
157
+ }
158
+ publicKeyObject = SubjectPublicKeyInfoASN.decode(publicKey, "der");
159
+ } else if (originalFormat === "pem") {
160
+ if (typeof publicKey !== "string") {
161
+ throw "public key must be a string";
162
+ }
163
+ publicKeyObject = SubjectPublicKeyInfoASN.decode(
164
+ publicKey,
165
+ "pem",
166
+ this.options.publicPEMOptions
167
+ );
168
+ } else {
169
+ throw "invalid public key format";
170
+ }
171
+ if (destinationFormat === "raw") {
172
+ return publicKeyObject.pub.data.toString("hex");
173
+ } else if (destinationFormat === "der") {
174
+ return SubjectPublicKeyInfoASN.encode(publicKeyObject, "der").toString("hex");
175
+ } else if (destinationFormat === "pem") {
176
+ return SubjectPublicKeyInfoASN.encode(publicKeyObject, "pem", this.options.publicPEMOptions);
177
+ } else {
178
+ throw "invalid destination format for public key";
179
+ }
180
+ }
181
+ };
182
+
183
+ // src/crypto/utils.ts
184
+ function extractPublicKey(pemKey) {
185
+ const pem = pemKey.split("\n");
186
+ pem.shift();
187
+ pem.pop();
188
+ const keyBuffer = Buffer.from(pem.join(""), "base64");
189
+ const actualKeyBuffer = keyBuffer.slice(26);
190
+ return actualKeyBuffer.toString("hex");
191
+ }
192
+ function decodeData(challenge) {
193
+ const decodedString = atob(challenge);
194
+ return JSON.parse(decodedString);
195
+ }
196
+ function sign2(privateKey, challenge) {
197
+ const pKey = _crypto2.default.createPrivateKey({
198
+ key: String(privateKey),
199
+ format: "pem"
200
+ });
201
+ const privateKeyPem = pKey.export({ format: "pem", type: "sec1" });
202
+ const dataToSign = Buffer.from(challenge, "base64").toString("hex");
203
+ return jwt.sign(Buffer.from(dataToSign, "hex"), privateKeyPem, {
204
+ algorithm: "ES256",
205
+ header: {
206
+ alg: "ES256",
207
+ typ: "JWT"
208
+ }
209
+ });
210
+ }
211
+ function genKeys(entropy) {
212
+ if (entropy) {
213
+ const ec2 = new elliptic.ec("p256");
214
+ const hashedEntropy = _crypto2.default.createHash("sha256").update(entropy).digest("hex");
215
+ const keyPair = ec2.genKeyPair({
216
+ entropy: Buffer.from(hashedEntropy, "hex")
217
+ });
218
+ return {
219
+ privateKey: String(hexToPem(keyPair.getPrivate("hex"))),
220
+ publicKey: String(hexToPem(keyPair.getPublic("hex"), { isPrivate: false })),
221
+ hexPubKey: extractPublicKey(String(hexToPem(keyPair.getPublic("hex"), { isPrivate: false })))
222
+ };
223
+ }
224
+ const { publicKey, privateKey } = _crypto2.default.generateKeyPairSync("ec", {
225
+ namedCurve: "P-256",
226
+ publicKeyEncoding: { type: "spki", format: "pem" },
227
+ privateKeyEncoding: { type: "sec1", format: "pem" }
228
+ });
229
+ const hexPubKey = extractPublicKey(publicKey);
230
+ return {
231
+ privateKey,
232
+ publicKey,
233
+ hexPubKey
234
+ };
235
+ }
236
+ function hexToPem(hexString, { isPrivate = true } = {}) {
237
+ const keyEncoder = new KeyEncoder("p256");
238
+ if (isPrivate) {
239
+ return keyEncoder.encodePrivate(hexString, "raw", "pem");
240
+ }
241
+ return keyEncoder.encodePublic(hexString, "raw", "pem");
242
+ }
243
+
244
+
245
+
246
+
247
+
248
+ exports.decodeData = decodeData; exports.sign = sign2; exports.genKeys = genKeys;
249
+ //# sourceMappingURL=chunk-3L2XDBZ2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-3L2XDBZ2.js","../src/crypto/utils.ts","../src/crypto/keyEncoder.ts"],"names":["sign","ec"],"mappings":"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","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-3L2XDBZ2.js","sourcesContent":[null,"import crypto from \"crypto\";\nimport * as elliptic from \"elliptic\";\nimport * as jwt from \"jsonwebtoken\";\n\nimport KeyEncoder from \"./keyEncoder\";\n\nfunction extractPublicKey(pemKey: string): string {\n // convert the PEM formatted public key to raw public key in X9.62 uncompressed format\n // this is an oversimplified method and may not work with different curves or PEM formats\n const pem = pemKey.split(\"\\n\");\n pem.shift(); // remove the first line (BEGIN PUBLIC KEY)\n pem.pop(); // remove the last line (END PUBLIC KEY)\n // convert base64 to buffer\n const keyBuffer = Buffer.from(pem.join(\"\"), \"base64\");\n // assuming the first 26 bytes are the header for the SPKI formatted key.\n // the actual key should begin after this header.\n const actualKeyBuffer = keyBuffer.slice(26);\n return actualKeyBuffer.toString(\"hex\");\n}\n\ntype GeneratedKeys = {\n privateKey: string;\n publicKey: string;\n hexPubKey: string;\n};\n\nexport function decodeData(challenge: string): void {\n const decodedString = atob(challenge);\n return JSON.parse(decodedString);\n}\n\nexport function sign(privateKey: string, challenge: string) {\n const pKey = crypto.createPrivateKey({\n key: String(privateKey),\n format: \"pem\",\n });\n const privateKeyPem = pKey.export({ format: \"pem\", type: \"sec1\" });\n const dataToSign = Buffer.from(challenge, \"base64\").toString(\"hex\");\n return jwt.sign(Buffer.from(dataToSign, \"hex\"), privateKeyPem, {\n algorithm: \"ES256\",\n header: {\n alg: \"ES256\",\n typ: \"JWT\",\n },\n });\n}\n\n/**\n * If `seed` is passed, will generate keys pair deterministically\n * else, random keys pair generated\n */\nexport function genKeys(entropy?: string): GeneratedKeys {\n if (entropy) {\n const ec = new elliptic.ec(\"p256\");\n const hashedEntropy = crypto.createHash(\"sha256\").update(entropy).digest(\"hex\");\n const keyPair = ec.genKeyPair({\n entropy: Buffer.from(hashedEntropy, \"hex\"),\n });\n return {\n privateKey: String(hexToPem(keyPair.getPrivate(\"hex\"))),\n publicKey: String(hexToPem(keyPair.getPublic(\"hex\"), { isPrivate: false })),\n hexPubKey: extractPublicKey(String(hexToPem(keyPair.getPublic(\"hex\"), { isPrivate: false }))),\n };\n }\n const { publicKey, privateKey } = crypto.generateKeyPairSync(\"ec\", {\n namedCurve: \"P-256\",\n publicKeyEncoding: { type: \"spki\", format: \"pem\" },\n privateKeyEncoding: { type: \"sec1\", format: \"pem\" },\n });\n const hexPubKey = extractPublicKey(publicKey);\n return {\n privateKey,\n publicKey,\n hexPubKey,\n };\n}\n\nfunction hexToPem(hexString: string, { isPrivate = true } = {}) {\n const keyEncoder = new KeyEncoder(\"p256\");\n if (isPrivate) {\n return keyEncoder.encodePrivate(hexString, \"raw\", \"pem\");\n }\n return keyEncoder.encodePublic(hexString, \"raw\", \"pem\");\n}\n","// ========================================================================== //\n// //\n// DISCLAIMER //\n// //\n// This code has been blindly copy-pasted from: //\n// https://github.com/LedgerHQ/pkey-ts //\n// //\n// ========================================================================== //\n//\n// @ts-expect-error\nimport * as asn1 from \"asn1.js\";\nimport BN from \"bn.js\";\nimport { ec as EC } from \"elliptic\";\n\nconst ECPrivateKeyASN = asn1.define(\"ECPrivateKey\", function () {\n // @ts-ignore\n const self = this as any;\n self\n .seq()\n .obj(\n self.key(\"version\").int(),\n self.key(\"privateKey\").octstr(),\n self.key(\"parameters\").explicit(0).objid().optional(),\n self.key(\"publicKey\").explicit(1).bitstr().optional(),\n );\n});\n\nconst ECPrivateKey8ASN = asn1.define(\n \"ECPrivateKey\",\n /* istanbul ignore next */ function () {\n // @ts-ignore\n const self = this as any;\n self\n .seq()\n .obj(\n self.key(\"version\").int(),\n self\n .key(\"privateKeyAlgorithm\")\n .seq()\n .obj(self.key(\"ecPublicKey\").objid(), self.key(\"curve\").objid()),\n self.key(\"privateKey\").octstr().contains(ECPrivateKeyASN),\n self.key(\"attributes\").explicit(0).bitstr().optional(),\n );\n },\n);\n\nconst SubjectPublicKeyInfoASN = asn1.define(\"SubjectPublicKeyInfo\", function () {\n // @ts-ignore\n const self = this as any;\n self\n .seq()\n .obj(\n self.key(\"algorithm\").seq().obj(self.key(\"id\").objid(), self.key(\"curve\").objid()),\n self.key(\"pub\").bitstr(),\n );\n});\n\ninterface CurveOptions {\n curveParameters: number[];\n privatePEMOptions: { label: string };\n publicPEMOptions: { label: string };\n curve: EC;\n}\n\nconst curves: { [index: string]: CurveOptions } = {\n secp256k1: {\n curveParameters: [1, 3, 132, 0, 10],\n privatePEMOptions: { label: \"EC PRIVATE KEY\" },\n publicPEMOptions: { label: \"PUBLIC KEY\" },\n curve: new EC(\"secp256k1\"),\n },\n p256: {\n curveParameters: [1, 2, 840, 10045, 3, 1, 7], // OID for p256 curve\n privatePEMOptions: { label: \"EC PRIVATE KEY\" },\n publicPEMOptions: { label: \"PUBLIC KEY\" },\n curve: new EC(\"p256\"),\n },\n};\n\ninterface PrivateKeyPKCS1 {\n version: BN;\n privateKey: Buffer;\n parameters: number[];\n publicKey?: {\n unused: number;\n data: Buffer;\n };\n}\n\ninterface PrivateKeyPKCS8 {\n version: BN;\n privateKey: PrivateKeyPKCS1;\n privateKeyAlgorithm: { ecPublicKey: number[]; curve: number[] };\n}\n\ntype KeyFormat = \"raw\" | \"pem\" | \"der\";\n\nexport default class KeyEncoder {\n algorithmID: number[];\n options: CurveOptions;\n\n constructor(options: string | CurveOptions) {\n if (typeof options === \"string\") {\n /* istanbul ignore next */\n if (options !== \"secp256k1\" && options !== \"p256\") {\n throw new Error(\"Unknown curve \" + options);\n }\n options = curves[options] as CurveOptions;\n }\n this.options = options;\n this.algorithmID = [1, 2, 840, 10045, 2, 1];\n }\n\n /* istanbul ignore next */\n private PKCS1toPKCS8(privateKey: PrivateKeyPKCS1): PrivateKeyPKCS8 {\n return {\n version: new BN(0),\n privateKey,\n privateKeyAlgorithm: {\n ecPublicKey: this.algorithmID,\n curve: privateKey.parameters,\n },\n };\n }\n\n privateKeyObject(rawPrivateKey: string, rawPublicKey: string) {\n const privateKeyObject: PrivateKeyPKCS1 = {\n version: new BN(1),\n privateKey: Buffer.from(rawPrivateKey, \"hex\"),\n parameters: this.options.curveParameters,\n };\n\n if (rawPublicKey) {\n privateKeyObject.publicKey = {\n unused: 0,\n data: Buffer.from(rawPublicKey, \"hex\"),\n };\n }\n\n return privateKeyObject;\n }\n\n publicKeyObject(rawPublicKey: string) {\n return {\n algorithm: {\n id: this.algorithmID,\n curve: this.options.curveParameters,\n },\n pub: {\n unused: 0,\n data: Buffer.from(rawPublicKey, \"hex\"),\n },\n };\n }\n\n /* istanbul ignore next */\n encodePrivate(\n privateKey: string | Buffer,\n originalFormat: KeyFormat,\n destinationFormat: KeyFormat,\n destinationFormatType: \"pkcs8\" | \"pkcs1\" = \"pkcs1\",\n ): string {\n let privateKeyObject: PrivateKeyPKCS1;\n\n /* Parse the incoming private key and convert it to a private key object */\n if (originalFormat === \"raw\") {\n if (typeof privateKey !== \"string\") {\n throw \"private key must be a string\";\n }\n const keyPair = this.options.curve.keyFromPrivate(privateKey, \"hex\");\n const rawPublicKey = keyPair.getPublic(\"hex\");\n privateKeyObject = this.privateKeyObject(privateKey, rawPublicKey);\n } else if (originalFormat === \"der\") {\n if (typeof privateKey !== \"string\") {\n // do nothing\n } else if (typeof privateKey === \"string\") {\n privateKey = Buffer.from(privateKey, \"hex\");\n } else {\n throw \"private key must be a buffer or a string\";\n }\n privateKeyObject = ECPrivateKeyASN.decode(privateKey, \"der\");\n } else if (originalFormat === \"pem\") {\n if (typeof privateKey !== \"string\") {\n throw \"private key must be a string\";\n }\n privateKeyObject = ECPrivateKeyASN.decode(privateKey, \"pem\", this.options.privatePEMOptions);\n } else {\n throw \"invalid private key format\";\n }\n\n /* Export the private key object to the desired format */\n if (destinationFormat === \"raw\") {\n return privateKeyObject.privateKey.toString(\"hex\");\n } else if (destinationFormat === \"der\") {\n return ECPrivateKeyASN.encode(privateKeyObject, \"der\").toString(\"hex\");\n } else if (destinationFormat === \"pem\") {\n return destinationFormatType === \"pkcs1\"\n ? ECPrivateKeyASN.encode(privateKeyObject, \"pem\", this.options.privatePEMOptions)\n : ECPrivateKey8ASN.encode(this.PKCS1toPKCS8(privateKeyObject), \"pem\", {\n ...this.options.privatePEMOptions,\n label: \"PRIVATE KEY\",\n });\n } else {\n throw \"invalid destination format for private key\";\n }\n }\n\n /* istanbul ignore next */\n encodePublic(\n publicKey: string | Buffer,\n originalFormat: KeyFormat,\n destinationFormat: KeyFormat,\n ): string {\n let publicKeyObject;\n\n /* Parse the incoming public key and convert it to a public key object */\n if (originalFormat === \"raw\") {\n if (typeof publicKey !== \"string\") {\n throw \"public key must be a string\";\n }\n publicKeyObject = this.publicKeyObject(publicKey);\n } else if (originalFormat === \"der\") {\n if (typeof publicKey !== \"string\") {\n // do nothing\n } else if (typeof publicKey === \"string\") {\n publicKey = Buffer.from(publicKey, \"hex\");\n } else {\n throw \"public key must be a buffer or a string\";\n }\n publicKeyObject = SubjectPublicKeyInfoASN.decode(publicKey, \"der\");\n } else if (originalFormat === \"pem\") {\n if (typeof publicKey !== \"string\") {\n throw \"public key must be a string\";\n }\n publicKeyObject = SubjectPublicKeyInfoASN.decode(\n publicKey,\n \"pem\",\n this.options.publicPEMOptions,\n );\n } else {\n throw \"invalid public key format\";\n }\n\n /* Export the private key object to the desired format */\n if (destinationFormat === \"raw\") {\n return publicKeyObject.pub.data.toString(\"hex\");\n } else if (destinationFormat === \"der\") {\n return SubjectPublicKeyInfoASN.encode(publicKeyObject, \"der\").toString(\"hex\");\n } else if (destinationFormat === \"pem\") {\n return SubjectPublicKeyInfoASN.encode(publicKeyObject, \"pem\", this.options.publicPEMOptions);\n } else {\n throw \"invalid destination format for public key\";\n }\n }\n}\n"]}
@@ -0,0 +1,97 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkQTAB7ADKjs = require('./chunk-QTAB7ADK.js');
4
+
5
+ // src/createNetwork.ts
6
+ var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);
7
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
8
+ var _https = require('https'); var _https2 = _interopRequireDefault(_https);
9
+ var GateError = class _GateError extends Error {
10
+ constructor({ code, message, name }) {
11
+ super(message);
12
+ this.message = `(${code}) ${message}`;
13
+ this.name = name;
14
+ Error.captureStackTrace(this, _GateError);
15
+ }
16
+ };
17
+ var NetworkError = class _NetworkError extends Error {
18
+ constructor(payload, prefix) {
19
+ const { status, statusText } = payload;
20
+ let message = statusText || "Unknown error";
21
+ if (payload.data && payload.data.message) {
22
+ message = payload.data.message;
23
+ }
24
+ super(message);
25
+ this.message = "";
26
+ this.name = `Network error (${prefix}) ${status}: ${message}`;
27
+ Error.captureStackTrace(this, _NetworkError);
28
+ }
29
+ };
30
+ function createNetwork(networkOptions) {
31
+ return async function request(method, url, data = {}, requestOptions = {}) {
32
+ let debugPrefix = "";
33
+ try {
34
+ let token = networkOptions.token || null;
35
+ const { networkDelay, httpsAgent } = networkOptions;
36
+ if (networkOptions.injectToken) {
37
+ token = networkOptions.injectToken();
38
+ }
39
+ const headers = {
40
+ "Content-Type": "application/json",
41
+ ...requestOptions.headers ? requestOptions.headers : {},
42
+ ...token ? { "X-Ledger-Auth": token } : {}
43
+ };
44
+ const axiosParams = {
45
+ method,
46
+ url: `${networkOptions.baseURL}${url}`,
47
+ data,
48
+ headers,
49
+ httpsAgent: httpsAgent || new _https2.default.Agent({
50
+ rejectUnauthorized: false
51
+ })
52
+ };
53
+ if (requestOptions.raw) {
54
+ Object.assign(axiosParams.headers, { "Content-Type": "application/octet-stream" });
55
+ Object.assign(axiosParams, { responseType: "arraybuffer" });
56
+ }
57
+ debugPrefix = `${axiosParams.method} ${axiosParams.url}`;
58
+ if (process.env.DEBUG) {
59
+ let msg = "";
60
+ msg += `${axiosParams.method} ${axiosParams.url} `;
61
+ if (data && Object.keys(data).length > 0) {
62
+ msg += JSON.stringify(data);
63
+ }
64
+ console.log(_chalk2.default`{grey ${msg}}`);
65
+ }
66
+ if (typeof networkDelay === "number") {
67
+ await _chunkQTAB7ADKjs.wait.call(void 0, networkDelay);
68
+ }
69
+ const res = await _axios2.default.request(axiosParams);
70
+ if (networkOptions.interceptToken && res.headers && res.headers["set-cookie"]) {
71
+ const tokenRow = res.headers["set-cookie"].find(
72
+ (h) => h.startsWith("ledger_token")
73
+ );
74
+ if (tokenRow) {
75
+ const [leftPart] = tokenRow.split(";");
76
+ const token2 = leftPart.substr("ledger_token=".length);
77
+ networkOptions.interceptToken(token2);
78
+ }
79
+ }
80
+ return res.data;
81
+ } catch (err) {
82
+ if (!err.response) {
83
+ throw err;
84
+ }
85
+ const { data: data2 } = err.response;
86
+ if (data2 && data2.code && data2.message && data2.name) {
87
+ throw new GateError(data2);
88
+ }
89
+ throw new NetworkError(err.response, debugPrefix);
90
+ }
91
+ };
92
+ }
93
+
94
+
95
+
96
+ exports.createNetwork = createNetwork;
97
+ //# sourceMappingURL=chunk-5E5DWDE6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-5E5DWDE6.js","../src/createNetwork.ts"],"names":["token"],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJA,4EAAkB;AAClB,4EAAkB;AAClB,4EAA6B;AAmBtB,IAAM,UAAA,EAAN,MAAM,WAAA,QAAkB,MAAM;AAAA,EACnC,WAAA,CAAY,EAAE,IAAA,EAAM,OAAA,EAAS,KAAK,CAAA,EAAqB;AACrD,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,QAAA,EAAU,CAAA,CAAA,EAAI,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AACvB,IAAA;AACkB,IAAA;AAChC,EAAA;AACF;AAOa;AAC+C,EAAA;AACzB,IAAA;AACH,IAAA;AAEK,IAAA;AAER,MAAA;AACzB,IAAA;AACa,IAAA;AACE,IAAA;AACqB,IAAA;AACN,IAAA;AAChC,EAAA;AACF;AAEsE;AAGlE,EAAA;AAIkB,IAAA;AACd,IAAA;AACyB,MAAA;AACM,MAAA;AACD,MAAA;AACP,QAAA;AACzB,MAAA;AACgB,MAAA;AACE,QAAA;AACa,QAAA;AACE,QAAA;AACjC,MAAA;AACoB,MAAA;AAClB,QAAA;AAC8B,QAAA;AAC9B,QAAA;AACA,QAAA;AAGM,QAAA;AACkB,UAAA;AACrB,QAAA;AACL,MAAA;AAGwB,MAAA;AACI,QAAA;AACG,QAAA;AAC/B,MAAA;AAE6B,MAAA;AAGN,MAAA;AACX,QAAA;AACsB,QAAA;AACF,QAAA;AACF,UAAA;AAC5B,QAAA;AAEgC,QAAA;AAClC,MAAA;AAC4B,MAAA;AACH,QAAA;AACzB,MAAA;AAEgC,MAAA;AAEb,MAAA;AACY,QAAA;AACd,UAAA;AACf,QAAA;AACc,QAAA;AACgB,UAAA;AACL,UAAA;AACOA,UAAAA;AAChC,QAAA;AACF,MAAA;AACW,MAAA;AACC,IAAA;AAEO,MAAA;AACX,QAAA;AACR,MAAA;AAEqB,MAAA;AACS,MAAA;AACJ,QAAA;AAC1B,MAAA;AAE2B,MAAA;AAC7B,IAAA;AACF,EAAA;AACF;ADvCwC;AACA;AACA;AACA","file":"/home/runner/work/vault-ts/vault-ts/packages/common/lib/chunk-5E5DWDE6.js","sourcesContent":[null,"import axios from \"axios\";\nimport chalk from \"chalk\";\nimport https, { Agent } from \"https\";\n\nimport { wait } from \"./utils\";\n\ninterface NetworkOptions {\n baseURL: string;\n token?: string;\n interceptToken?: (token: string) => void;\n injectToken?: () => string | null;\n httpsAgent?: Agent;\n networkDelay?: number;\n}\n\ninterface GateErrorPayload {\n code: number;\n message: string;\n name: string;\n}\n\nexport class GateError extends Error {\n constructor({ code, message, name }: GateErrorPayload) {\n super(message);\n this.message = `(${code}) ${message}`;\n this.name = name;\n Error.captureStackTrace(this, GateError);\n }\n}\n\ntype NetworkErrorPayload = {\n status: number;\n statusText: string;\n};\n\nexport class NetworkError extends Error {\n constructor(payload: NetworkErrorPayload, prefix: string) {\n const { status, statusText } = payload;\n let message = statusText || \"Unknown error\";\n // @ts-ignore\n if (payload.data && payload.data.message) {\n // @ts-ignore\n message = payload.data.message;\n }\n super(message);\n this.message = \"\";\n this.name = `Network error (${prefix}) ${status}: ${message}`;\n Error.captureStackTrace(this, NetworkError);\n }\n}\n\nexport default function createNetwork(networkOptions: NetworkOptions) {\n return async function request<T = any>(\n method: \"POST\" | \"GET\" | \"DELETE\" | \"PUT\",\n url: string,\n data: any = {},\n requestOptions: any = {},\n ): Promise<T> {\n let debugPrefix = \"\";\n try {\n let token = networkOptions.token || null;\n const { networkDelay, httpsAgent } = networkOptions;\n if (networkOptions.injectToken) {\n token = networkOptions.injectToken();\n }\n const headers = {\n \"Content-Type\": \"application/json\",\n ...(requestOptions.headers ? requestOptions.headers : {}),\n ...(token ? { \"X-Ledger-Auth\": token } : {}),\n };\n const axiosParams = {\n method,\n url: `${networkOptions.baseURL}${url}`,\n data,\n headers,\n httpsAgent:\n httpsAgent ||\n new https.Agent({\n rejectUnauthorized: false,\n }),\n };\n\n // ability to request raw data (as Buffer)\n if (requestOptions.raw) {\n Object.assign(axiosParams.headers, { \"Content-Type\": \"application/octet-stream\" });\n Object.assign(axiosParams, { responseType: \"arraybuffer\" });\n }\n\n debugPrefix = `${axiosParams.method} ${axiosParams.url}`;\n\n /* istanbul ignore next */\n if (process.env.DEBUG) {\n let msg = \"\";\n msg += `${axiosParams.method} ${axiosParams.url} `;\n if (data && Object.keys(data).length > 0) {\n msg += JSON.stringify(data);\n }\n // eslint-disable-next-line no-console\n console.log(chalk`{grey ${msg}}`);\n }\n if (typeof networkDelay === \"number\") {\n await wait(networkDelay);\n }\n\n const res = await axios.request(axiosParams);\n\n if (networkOptions.interceptToken && res.headers && res.headers[\"set-cookie\"]) {\n const tokenRow = res.headers[\"set-cookie\"].find((h: string) =>\n h.startsWith(\"ledger_token\"),\n );\n if (tokenRow) {\n const [leftPart] = tokenRow.split(\";\");\n const token = leftPart.substr(\"ledger_token=\".length);\n networkOptions.interceptToken(token);\n }\n }\n return res.data;\n } catch (err) {\n // @ts-expect-error\n if (!err.response) {\n throw err;\n }\n // @ts-expect-error\n const { data } = err.response;\n if (data && data.code && data.message && data.name) {\n throw new GateError(data);\n }\n // @ts-expect-error\n throw new NetworkError(err.response, debugPrefix);\n }\n };\n}\n"]}
@@ -0,0 +1,83 @@
1
+ import {
2
+ createNetwork
3
+ } from "./chunk-PB4BEIPE.mjs";
4
+
5
+ // src/createHSMBridge.ts
6
+ import { SILENT_LOGGER } from "@ledgerhq/vault-utils";
7
+ import axios from "axios";
8
+ import https from "https";
9
+ function createHSMBridge(options) {
10
+ const { monotonicCountersSize, fileSystemSize } = options;
11
+ const httpsAgent = new https.Agent({
12
+ cert: options.hsmCert,
13
+ key: options.hsmCertKey
14
+ });
15
+ const hsmEndpoint = options.hsmEndpoint.replace("/process", "");
16
+ const hsmNetworkOptions = {
17
+ baseURL: hsmEndpoint,
18
+ httpsAgent
19
+ };
20
+ const hsmNetwork = createNetwork(hsmNetworkOptions);
21
+ const raw = axios.create({ baseURL: hsmEndpoint, httpsAgent });
22
+ return {
23
+ backupCompartment: async (cid) => {
24
+ const [internalfs, counters] = await Promise.all([
25
+ raw.get(`/compartments/${cid}/internalfs`, { responseType: "arraybuffer" }),
26
+ raw.get(`/compartments/${cid}/counters`, { responseType: "arraybuffer" })
27
+ ]);
28
+ return {
29
+ internalfs: internalfs.data.toString("hex"),
30
+ counters: counters.data.toString("hex")
31
+ };
32
+ },
33
+ restoreCompartment: async (cid, data, { logger = SILENT_LOGGER } = {}) => {
34
+ logger.info("Restoring internalfs...");
35
+ await raw.put(`/compartments/${cid}/internalfs`, Buffer.from(data.internalfs, "hex"));
36
+ logger.info("Restoring counters...");
37
+ await raw.put(`/compartments/${cid}/counters`, Buffer.from(data.counters, "hex"));
38
+ logger.success("Successfully restored compartment");
39
+ },
40
+ initCompartment: async ({ logger = SILENT_LOGGER } = {}) => {
41
+ const res = await hsmNetwork("POST", "/compartments", {});
42
+ logger.info(`Created compartment ${res.id}`);
43
+ return res.id;
44
+ },
45
+ resetCompartment: async (compartmentID, { logger = SILENT_LOGGER }) => {
46
+ try {
47
+ await hsmNetwork("DELETE", `/compartments/${compartmentID}`);
48
+ logger.info(`Removed compartment ${compartmentID}`);
49
+ } catch (err) {
50
+ logger.info(`Arf! Problem deleting compartment apparently: ${err.toString()}`);
51
+ logger.info("But let's pretend we don't care and let's continue");
52
+ }
53
+ try {
54
+ const slots = await hsmNetwork("GET", "/slots");
55
+ const compartmentSlots = slots.filter((slot) => slot.userId === compartmentID);
56
+ for (let i = 0; i < compartmentSlots.length; i++) {
57
+ const slot = compartmentSlots[i];
58
+ if (!slot) throw new Error("Invalid slot");
59
+ await hsmNetwork("DELETE", `/slots/${slot.id}`);
60
+ logger.info(`Removed slot ${slot.id}`);
61
+ }
62
+ } catch (err) {
63
+ logger.info(`Ouch! Little error there: ${err.toString()}`);
64
+ logger.info("There was a problem getting slots, but let's continue anyway, i mean.");
65
+ }
66
+ const payload = { id: compartmentID };
67
+ if (monotonicCountersSize) {
68
+ Object.assign(payload, { monotonicCountersSize });
69
+ }
70
+ if (fileSystemSize) {
71
+ Object.assign(payload, { fileSystemSize });
72
+ }
73
+ await hsmNetwork("POST", "/compartments", payload);
74
+ logger.info(`Created compartment ${compartmentID}`);
75
+ }
76
+ };
77
+ }
78
+ var createHSMBridge_default = createHSMBridge;
79
+
80
+ export {
81
+ createHSMBridge_default
82
+ };
83
+ //# sourceMappingURL=chunk-63T7EDKZ.mjs.map