@enbox/crypto 0.0.2 → 0.0.4

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 (226) hide show
  1. package/README.md +34 -102
  2. package/dist/browser.mjs +6 -10
  3. package/dist/browser.mjs.map +4 -4
  4. package/dist/esm/algorithms/aes-ctr.js +1 -1
  5. package/dist/esm/algorithms/aes-gcm.js +35 -2
  6. package/dist/esm/algorithms/aes-gcm.js.map +1 -1
  7. package/dist/esm/algorithms/aes-kw.js +154 -0
  8. package/dist/esm/algorithms/aes-kw.js.map +1 -0
  9. package/dist/esm/algorithms/ecdsa.js +119 -6
  10. package/dist/esm/algorithms/ecdsa.js.map +1 -1
  11. package/dist/esm/algorithms/eddsa.js +99 -6
  12. package/dist/esm/algorithms/eddsa.js.map +1 -1
  13. package/dist/esm/algorithms/hkdf.js +53 -0
  14. package/dist/esm/algorithms/hkdf.js.map +1 -0
  15. package/dist/esm/algorithms/pbkdf2.js +55 -0
  16. package/dist/esm/algorithms/pbkdf2.js.map +1 -0
  17. package/dist/esm/algorithms/sha-2.js +2 -2
  18. package/dist/esm/algorithms/sha-2.js.map +1 -1
  19. package/dist/esm/algorithms/x25519.js +125 -0
  20. package/dist/esm/algorithms/x25519.js.map +1 -0
  21. package/dist/esm/crypto-error.js +41 -0
  22. package/dist/esm/crypto-error.js.map +1 -0
  23. package/dist/esm/index.js +8 -0
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/jose/jwk.js +52 -26
  26. package/dist/esm/jose/jwk.js.map +1 -1
  27. package/dist/esm/local-key-manager.js +9 -3
  28. package/dist/esm/local-key-manager.js.map +1 -1
  29. package/dist/esm/primitives/aes-ctr.js.map +1 -1
  30. package/dist/esm/primitives/aes-gcm.js.map +1 -1
  31. package/dist/esm/primitives/aes-kw.js +246 -0
  32. package/dist/esm/primitives/aes-kw.js.map +1 -0
  33. package/dist/esm/primitives/concat-kdf.js +1 -1
  34. package/dist/esm/primitives/concat-kdf.js.map +1 -1
  35. package/dist/esm/primitives/ecies-secp256k1.js +79 -0
  36. package/dist/esm/primitives/ecies-secp256k1.js.map +1 -0
  37. package/dist/esm/primitives/ed25519.js +3 -3
  38. package/dist/esm/primitives/ed25519.js.map +1 -1
  39. package/dist/esm/primitives/hkdf.js +79 -0
  40. package/dist/esm/primitives/hkdf.js.map +1 -0
  41. package/dist/esm/primitives/pbkdf2.js +49 -0
  42. package/dist/esm/primitives/pbkdf2.js.map +1 -1
  43. package/dist/esm/primitives/secp256k1.js +4 -4
  44. package/dist/esm/primitives/secp256k1.js.map +1 -1
  45. package/dist/esm/primitives/secp256r1.js +4 -4
  46. package/dist/esm/primitives/secp256r1.js.map +1 -1
  47. package/dist/esm/primitives/x25519.js +10 -17
  48. package/dist/esm/primitives/x25519.js.map +1 -1
  49. package/dist/esm/primitives/xchacha20-poly1305.js +48 -3
  50. package/dist/esm/primitives/xchacha20-poly1305.js.map +1 -1
  51. package/dist/esm/primitives/xchacha20.js +1 -1
  52. package/dist/esm/primitives/xchacha20.js.map +1 -1
  53. package/dist/esm/utils.js +30 -0
  54. package/dist/esm/utils.js.map +1 -1
  55. package/dist/types/algorithms/aes-ctr.d.ts +2 -2
  56. package/dist/types/algorithms/aes-ctr.d.ts.map +1 -1
  57. package/dist/types/algorithms/aes-gcm.d.ts +25 -5
  58. package/dist/types/algorithms/aes-gcm.d.ts.map +1 -1
  59. package/dist/types/algorithms/aes-kw.d.ts +129 -0
  60. package/dist/types/algorithms/aes-kw.d.ts.map +1 -0
  61. package/dist/types/algorithms/ecdsa.d.ts +49 -4
  62. package/dist/types/algorithms/ecdsa.d.ts.map +1 -1
  63. package/dist/types/algorithms/eddsa.d.ts +49 -4
  64. package/dist/types/algorithms/eddsa.d.ts.map +1 -1
  65. package/dist/types/algorithms/hkdf.d.ts +35 -0
  66. package/dist/types/algorithms/hkdf.d.ts.map +1 -0
  67. package/dist/types/algorithms/pbkdf2.d.ts +35 -0
  68. package/dist/types/algorithms/pbkdf2.d.ts.map +1 -0
  69. package/dist/types/algorithms/sha-2.d.ts +2 -2
  70. package/dist/types/algorithms/sha-2.d.ts.map +1 -1
  71. package/dist/types/algorithms/x25519.d.ts +76 -0
  72. package/dist/types/algorithms/x25519.d.ts.map +1 -0
  73. package/dist/types/crypto-error.d.ts +29 -0
  74. package/dist/types/crypto-error.d.ts.map +1 -0
  75. package/dist/types/index.d.ts +8 -0
  76. package/dist/types/index.d.ts.map +1 -1
  77. package/dist/types/jose/jwk.d.ts.map +1 -1
  78. package/dist/types/local-key-manager.d.ts +6 -6
  79. package/dist/types/local-key-manager.d.ts.map +1 -1
  80. package/dist/types/primitives/aes-kw.d.ts +103 -0
  81. package/dist/types/primitives/aes-kw.d.ts.map +1 -0
  82. package/dist/types/primitives/concat-kdf.d.ts +1 -1
  83. package/dist/types/primitives/concat-kdf.d.ts.map +1 -1
  84. package/dist/types/primitives/ecies-secp256k1.d.ts +53 -0
  85. package/dist/types/primitives/ecies-secp256k1.d.ts.map +1 -0
  86. package/dist/types/primitives/hkdf.d.ts +90 -0
  87. package/dist/types/primitives/hkdf.d.ts.map +1 -0
  88. package/dist/types/primitives/pbkdf2.d.ts +58 -0
  89. package/dist/types/primitives/pbkdf2.d.ts.map +1 -1
  90. package/dist/types/primitives/x25519.d.ts +9 -16
  91. package/dist/types/primitives/x25519.d.ts.map +1 -1
  92. package/dist/types/primitives/xchacha20-poly1305.d.ts +47 -0
  93. package/dist/types/primitives/xchacha20-poly1305.d.ts.map +1 -1
  94. package/dist/types/types/cipher.d.ts +1 -1
  95. package/dist/types/types/crypto-api.d.ts +54 -6
  96. package/dist/types/types/crypto-api.d.ts.map +1 -1
  97. package/dist/types/types/key-converter.d.ts +37 -15
  98. package/dist/types/types/key-converter.d.ts.map +1 -1
  99. package/dist/types/types/key-deriver.d.ts +41 -0
  100. package/dist/types/types/key-deriver.d.ts.map +1 -1
  101. package/dist/types/types/key-io.d.ts +37 -0
  102. package/dist/types/types/key-io.d.ts.map +1 -1
  103. package/dist/types/types/params-direct.d.ts +96 -1
  104. package/dist/types/types/params-direct.d.ts.map +1 -1
  105. package/dist/types/types/params-kms.d.ts +55 -0
  106. package/dist/types/types/params-kms.d.ts.map +1 -1
  107. package/dist/types/utils.d.ts +19 -0
  108. package/dist/types/utils.d.ts.map +1 -1
  109. package/dist/utils.js +1 -1
  110. package/dist/utils.js.map +4 -4
  111. package/package.json +29 -45
  112. package/src/algorithms/aes-ctr.ts +2 -2
  113. package/src/algorithms/aes-gcm.ts +41 -4
  114. package/src/algorithms/aes-kw.ts +182 -0
  115. package/src/algorithms/ecdsa.ts +145 -8
  116. package/src/algorithms/eddsa.ts +117 -10
  117. package/src/algorithms/hkdf.ts +54 -0
  118. package/src/algorithms/pbkdf2.ts +57 -0
  119. package/src/algorithms/sha-2.ts +3 -3
  120. package/src/algorithms/x25519.ts +153 -0
  121. package/src/crypto-error.ts +45 -0
  122. package/src/index.ts +8 -0
  123. package/src/jose/jwk.ts +32 -32
  124. package/src/local-key-manager.ts +22 -16
  125. package/src/primitives/aes-ctr.ts +1 -1
  126. package/src/primitives/aes-gcm.ts +5 -5
  127. package/src/primitives/aes-kw.ts +269 -0
  128. package/src/primitives/concat-kdf.ts +4 -2
  129. package/src/primitives/ecies-secp256k1.ts +113 -0
  130. package/src/primitives/ed25519.ts +6 -6
  131. package/src/primitives/hkdf.ts +121 -0
  132. package/src/primitives/pbkdf2.ts +91 -0
  133. package/src/primitives/secp256k1.ts +6 -6
  134. package/src/primitives/secp256r1.ts +6 -6
  135. package/src/primitives/x25519.ts +12 -19
  136. package/src/primitives/xchacha20-poly1305.ts +57 -4
  137. package/src/primitives/xchacha20.ts +1 -1
  138. package/src/types/cipher.ts +1 -1
  139. package/src/types/crypto-api.ts +129 -11
  140. package/src/types/key-converter.ts +33 -7
  141. package/src/types/key-deriver.ts +49 -0
  142. package/src/types/key-io.ts +40 -0
  143. package/src/types/params-direct.ts +118 -1
  144. package/src/types/params-kms.ts +67 -0
  145. package/src/utils.ts +55 -2
  146. package/dist/browser.js +0 -64
  147. package/dist/browser.js.map +0 -7
  148. package/dist/cjs/algorithms/aes-ctr.js +0 -188
  149. package/dist/cjs/algorithms/aes-ctr.js.map +0 -1
  150. package/dist/cjs/algorithms/aes-gcm.js +0 -196
  151. package/dist/cjs/algorithms/aes-gcm.js.map +0 -1
  152. package/dist/cjs/algorithms/crypto-algorithm.js +0 -13
  153. package/dist/cjs/algorithms/crypto-algorithm.js.map +0 -1
  154. package/dist/cjs/algorithms/ecdsa.js +0 -352
  155. package/dist/cjs/algorithms/ecdsa.js.map +0 -1
  156. package/dist/cjs/algorithms/eddsa.js +0 -325
  157. package/dist/cjs/algorithms/eddsa.js.map +0 -1
  158. package/dist/cjs/algorithms/sha-2.js +0 -119
  159. package/dist/cjs/algorithms/sha-2.js.map +0 -1
  160. package/dist/cjs/index.js +0 -41
  161. package/dist/cjs/index.js.map +0 -1
  162. package/dist/cjs/jose/jwe.js +0 -3
  163. package/dist/cjs/jose/jwe.js.map +0 -1
  164. package/dist/cjs/jose/jwk.js +0 -278
  165. package/dist/cjs/jose/jwk.js.map +0 -1
  166. package/dist/cjs/jose/jws.js +0 -3
  167. package/dist/cjs/jose/jws.js.map +0 -1
  168. package/dist/cjs/jose/jwt.js +0 -3
  169. package/dist/cjs/jose/jwt.js.map +0 -1
  170. package/dist/cjs/jose/utils.js +0 -60
  171. package/dist/cjs/jose/utils.js.map +0 -1
  172. package/dist/cjs/local-key-manager.js +0 -521
  173. package/dist/cjs/local-key-manager.js.map +0 -1
  174. package/dist/cjs/package.json +0 -1
  175. package/dist/cjs/primitives/aes-ctr.js +0 -398
  176. package/dist/cjs/primitives/aes-ctr.js.map +0 -1
  177. package/dist/cjs/primitives/aes-gcm.js +0 -425
  178. package/dist/cjs/primitives/aes-gcm.js.map +0 -1
  179. package/dist/cjs/primitives/concat-kdf.js +0 -215
  180. package/dist/cjs/primitives/concat-kdf.js.map +0 -1
  181. package/dist/cjs/primitives/ed25519.js +0 -651
  182. package/dist/cjs/primitives/ed25519.js.map +0 -1
  183. package/dist/cjs/primitives/pbkdf2.js +0 -120
  184. package/dist/cjs/primitives/pbkdf2.js.map +0 -1
  185. package/dist/cjs/primitives/secp256k1.js +0 -958
  186. package/dist/cjs/primitives/secp256k1.js.map +0 -1
  187. package/dist/cjs/primitives/secp256r1.js +0 -959
  188. package/dist/cjs/primitives/secp256r1.js.map +0 -1
  189. package/dist/cjs/primitives/sha256.js +0 -93
  190. package/dist/cjs/primitives/sha256.js.map +0 -1
  191. package/dist/cjs/primitives/x25519.js +0 -498
  192. package/dist/cjs/primitives/x25519.js.map +0 -1
  193. package/dist/cjs/primitives/xchacha20-poly1305.js +0 -340
  194. package/dist/cjs/primitives/xchacha20-poly1305.js.map +0 -1
  195. package/dist/cjs/primitives/xchacha20.js +0 -316
  196. package/dist/cjs/primitives/xchacha20.js.map +0 -1
  197. package/dist/cjs/types/cipher.js +0 -3
  198. package/dist/cjs/types/cipher.js.map +0 -1
  199. package/dist/cjs/types/crypto-api.js +0 -3
  200. package/dist/cjs/types/crypto-api.js.map +0 -1
  201. package/dist/cjs/types/hasher.js +0 -3
  202. package/dist/cjs/types/hasher.js.map +0 -1
  203. package/dist/cjs/types/identifier.js +0 -3
  204. package/dist/cjs/types/identifier.js.map +0 -1
  205. package/dist/cjs/types/key-compressor.js +0 -3
  206. package/dist/cjs/types/key-compressor.js.map +0 -1
  207. package/dist/cjs/types/key-converter.js +0 -3
  208. package/dist/cjs/types/key-converter.js.map +0 -1
  209. package/dist/cjs/types/key-deriver.js +0 -3
  210. package/dist/cjs/types/key-deriver.js.map +0 -1
  211. package/dist/cjs/types/key-generator.js +0 -3
  212. package/dist/cjs/types/key-generator.js.map +0 -1
  213. package/dist/cjs/types/key-io.js +0 -3
  214. package/dist/cjs/types/key-io.js.map +0 -1
  215. package/dist/cjs/types/key-wrapper.js +0 -3
  216. package/dist/cjs/types/key-wrapper.js.map +0 -1
  217. package/dist/cjs/types/params-direct.js +0 -3
  218. package/dist/cjs/types/params-direct.js.map +0 -1
  219. package/dist/cjs/types/params-enclosed.js +0 -3
  220. package/dist/cjs/types/params-enclosed.js.map +0 -1
  221. package/dist/cjs/types/params-kms.js +0 -3
  222. package/dist/cjs/types/params-kms.js.map +0 -1
  223. package/dist/cjs/types/signer.js +0 -3
  224. package/dist/cjs/types/signer.js.map +0 -1
  225. package/dist/cjs/utils.js +0 -173
  226. package/dist/cjs/utils.js.map +0 -1
@@ -1,7 +1,8 @@
1
+ import type { AsymmetricKeyGenerator } from '../types/key-generator.js';
1
2
  import type { Jwk } from '../jose/jwk.js';
2
3
  import type { Signer } from '../types/signer.js';
3
- import type { AsymmetricKeyGenerator } from '../types/key-generator.js';
4
- import type { ComputePublicKeyParams, GenerateKeyParams, GetPublicKeyParams, SignParams, VerifyParams } from '../types/params-direct.js';
4
+ import type { AsymmetricKeyConverter, KeyConverter } from '../types/key-converter.js';
5
+ import type { BytesToPrivateKeyParams, BytesToPublicKeyParams, ComputePublicKeyParams, GenerateKeyParams, GetPublicKeyParams, PrivateKeyToBytesParams, PublicKeyToBytesParams, SignParams, VerifyParams } from '../types/params-direct.js';
5
6
  import { CryptoAlgorithm } from './crypto-algorithm.js';
6
7
  /**
7
8
  * The `EcdsaGenerateKeyParams` interface defines the algorithm-specific parameters that should be
@@ -25,9 +26,35 @@ export interface EcdsaGenerateKeyParams extends GenerateKeyParams {
25
26
  * of signatures.
26
27
  *
27
28
  * This class is typically accessed through implementations that extend the
28
- * {@link CryptoApi | `CryptoApi`} interface.
29
+ * {@link DsaApi | `DsaApi`} interface.
29
30
  */
30
- export declare class EcdsaAlgorithm extends CryptoAlgorithm implements AsymmetricKeyGenerator<EcdsaGenerateKeyParams, Jwk, GetPublicKeyParams>, Signer<SignParams, VerifyParams> {
31
+ export declare class EcdsaAlgorithm extends CryptoAlgorithm implements AsymmetricKeyGenerator<EcdsaGenerateKeyParams, Jwk, GetPublicKeyParams>, KeyConverter, AsymmetricKeyConverter, Signer<SignParams, VerifyParams> {
32
+ /**
33
+ * Converts a private key from a byte array to JWK format, setting the `alg` property based on
34
+ * the algorithm.
35
+ *
36
+ * @param params - The parameters for the private key conversion.
37
+ * @param params.algorithm - The ECDSA algorithm identifier.
38
+ * @param params.privateKeyBytes - The raw private key as a Uint8Array.
39
+ *
40
+ * @returns A Promise that resolves to the private key in JWK format.
41
+ */
42
+ bytesToPrivateKey({ algorithm, privateKeyBytes }: BytesToPrivateKeyParams & {
43
+ algorithm: 'ES256' | 'ES256K' | 'secp256k1' | 'secp256r1';
44
+ }): Promise<Jwk>;
45
+ /**
46
+ * Converts a public key from a byte array to JWK format, setting the `alg` property based on
47
+ * the algorithm.
48
+ *
49
+ * @param params - The parameters for the public key conversion.
50
+ * @param params.algorithm - The ECDSA algorithm identifier.
51
+ * @param params.publicKeyBytes - The raw public key as a Uint8Array.
52
+ *
53
+ * @returns A Promise that resolves to the public key in JWK format.
54
+ */
55
+ bytesToPublicKey({ algorithm, publicKeyBytes }: BytesToPublicKeyParams & {
56
+ algorithm: 'ES256' | 'ES256K' | 'secp256k1' | 'secp256r1';
57
+ }): Promise<Jwk>;
31
58
  /**
32
59
  * Derives the public key in JWK format from a given private key.
33
60
  *
@@ -150,5 +177,23 @@ export declare class EcdsaAlgorithm extends CryptoAlgorithm implements Asymmetri
150
177
  * @returns A Promise resolving to a boolean indicating whether the signature is valid.
151
178
  */
152
179
  verify({ key, signature, data }: VerifyParams): Promise<boolean>;
180
+ /**
181
+ * Converts a private key from JWK format to a byte array.
182
+ *
183
+ * @param params - The parameters for the private key conversion.
184
+ * @param params.privateKey - The private key in JWK format.
185
+ *
186
+ * @returns A Promise that resolves to the private key as a Uint8Array.
187
+ */
188
+ privateKeyToBytes({ privateKey }: PrivateKeyToBytesParams): Promise<Uint8Array>;
189
+ /**
190
+ * Converts a public key from JWK format to a byte array.
191
+ *
192
+ * @param params - The parameters for the public key conversion.
193
+ * @param params.publicKey - The public key in JWK format.
194
+ *
195
+ * @returns A Promise that resolves to the public key as a Uint8Array.
196
+ */
197
+ publicKeyToBytes({ publicKey }: PublicKeyToBytesParams): Promise<Uint8Array>;
153
198
  }
154
199
  //# sourceMappingURL=ecdsa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../src/algorithms/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzI,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D;;;;;;OAMG;IACH,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;CAC3D;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,eAClC,YAAW,sBAAsB,CAAC,sBAAsB,EAAE,GAAG,EAAE,kBAAkB,CAAC,EACvE,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;OAmBG;IACU,gBAAgB,CAAC,EAAE,GAAG,EAAE,EACnC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAuBf;;;;;;;;;;;;;OAaG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAmBf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,YAAY,CAAC,EAAE,GAAG,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAuBf;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAC7B,UAAU,GACT,OAAO,CAAC,UAAU,CAAC;IAmBtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAC1C,YAAY,GACX,OAAO,CAAC,OAAO,CAAC;CAkBpB"}
1
+ {"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../src/algorithms/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,UAAU,EACV,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D;;;;;;OAMG;IACH,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;CAC3D;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,eAClC,YAAW,sBAAsB,CAAC,sBAAsB,EAAE,GAAG,EAAE,kBAAkB,CAAC,EACvE,YAAY,EAAE,sBAAsB,EACpC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;IAE3C;;;;;;;;;OASG;IACU,iBAAiB,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,EAC3D,uBAAuB,GAAG;QAAE,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAA;KAAE,GACtF,OAAO,CAAC,GAAG,CAAC;IAuBf;;;;;;;;;OASG;IACU,gBAAgB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EACzD,sBAAsB,GAAG;QAAE,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAA;KAAE,GACrF,OAAO,CAAC,GAAG,CAAC;IAuBf;;;;;;;;;;;;;;;;;;;OAmBG;IACU,gBAAgB,CAAC,EAAE,GAAG,EAAE,EACnC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAuBf;;;;;;;;;;;;;OAaG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAmBf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,YAAY,CAAC,EAAE,GAAG,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAuBf;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAC7B,UAAU,GACT,OAAO,CAAC,UAAU,CAAC;IAmBtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAC1C,YAAY,GACX,OAAO,CAAC,OAAO,CAAC;IAmBnB;;;;;;;OAOG;IACU,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAC3C,uBAAuB,GACtB,OAAO,CAAC,UAAU,CAAC;IAiBtB;;;;;;;OAOG;IACU,gBAAgB,CAAC,EAAE,SAAS,EAAE,EACzC,sBAAsB,GACrB,OAAO,CAAC,UAAU,CAAC;CAgBvB"}
@@ -1,7 +1,8 @@
1
+ import type { AsymmetricKeyGenerator } from '../types/key-generator.js';
1
2
  import type { Jwk } from '../jose/jwk.js';
2
3
  import type { Signer } from '../types/signer.js';
3
- import type { AsymmetricKeyGenerator } from '../types/key-generator.js';
4
- import type { SignParams, VerifyParams, GenerateKeyParams, GetPublicKeyParams, ComputePublicKeyParams } from '../types/params-direct.js';
4
+ import type { AsymmetricKeyConverter, KeyConverter } from '../types/key-converter.js';
5
+ import type { BytesToPrivateKeyParams, BytesToPublicKeyParams, ComputePublicKeyParams, GenerateKeyParams, GetPublicKeyParams, PrivateKeyToBytesParams, PublicKeyToBytesParams, SignParams, VerifyParams } from '../types/params-direct.js';
5
6
  import { CryptoAlgorithm } from './crypto-algorithm.js';
6
7
  /**
7
8
  * The `EdDsaGenerateKeyParams` interface defines the algorithm-specific parameters that should be
@@ -22,9 +23,35 @@ export interface EdDsaGenerateKeyParams extends GenerateKeyParams {
22
23
  * of signatures.
23
24
  *
24
25
  * This class is typically accessed through implementations that extend the
25
- * {@link CryptoApi | `CryptoApi`} interface.
26
+ * {@link DsaApi | `DsaApi`} interface.
26
27
  */
27
- export declare class EdDsaAlgorithm extends CryptoAlgorithm implements AsymmetricKeyGenerator<EdDsaGenerateKeyParams, Jwk, GetPublicKeyParams>, Signer<SignParams, VerifyParams> {
28
+ export declare class EdDsaAlgorithm extends CryptoAlgorithm implements AsymmetricKeyGenerator<EdDsaGenerateKeyParams, Jwk, GetPublicKeyParams>, KeyConverter, AsymmetricKeyConverter, Signer<SignParams, VerifyParams> {
29
+ /**
30
+ * Converts a private key from a byte array to JWK format, setting the `alg` property to
31
+ * `'EdDSA'`.
32
+ *
33
+ * @param params - The parameters for the private key conversion.
34
+ * @param params.algorithm - The EdDSA algorithm identifier (`'Ed25519'`).
35
+ * @param params.privateKeyBytes - The raw private key as a Uint8Array.
36
+ *
37
+ * @returns A Promise that resolves to the private key in JWK format.
38
+ */
39
+ bytesToPrivateKey({ algorithm, privateKeyBytes }: BytesToPrivateKeyParams & {
40
+ algorithm: 'Ed25519';
41
+ }): Promise<Jwk>;
42
+ /**
43
+ * Converts a public key from a byte array to JWK format, setting the `alg` property to
44
+ * `'EdDSA'`.
45
+ *
46
+ * @param params - The parameters for the public key conversion.
47
+ * @param params.algorithm - The EdDSA algorithm identifier (`'Ed25519'`).
48
+ * @param params.publicKeyBytes - The raw public key as a Uint8Array.
49
+ *
50
+ * @returns A Promise that resolves to the public key in JWK format.
51
+ */
52
+ bytesToPublicKey({ algorithm, publicKeyBytes }: BytesToPublicKeyParams & {
53
+ algorithm: 'Ed25519';
54
+ }): Promise<Jwk>;
28
55
  /**
29
56
  * Derives the public key in JWK format from a given private key.
30
57
  *
@@ -147,5 +174,23 @@ export declare class EdDsaAlgorithm extends CryptoAlgorithm implements Asymmetri
147
174
  * @returns A Promise resolving to a boolean indicating whether the signature is valid.
148
175
  */
149
176
  verify({ key, signature, data }: VerifyParams): Promise<boolean>;
177
+ /**
178
+ * Converts a private key from JWK format to a byte array.
179
+ *
180
+ * @param params - The parameters for the private key conversion.
181
+ * @param params.privateKey - The private key in JWK format.
182
+ *
183
+ * @returns A Promise that resolves to the private key as a Uint8Array.
184
+ */
185
+ privateKeyToBytes({ privateKey }: PrivateKeyToBytesParams): Promise<Uint8Array>;
186
+ /**
187
+ * Converts a public key from JWK format to a byte array.
188
+ *
189
+ * @param params - The parameters for the public key conversion.
190
+ * @param params.publicKey - The public key in JWK format.
191
+ *
192
+ * @returns A Promise that resolves to the public key as a Uint8Array.
193
+ */
194
+ publicKeyToBytes({ publicKey }: PublicKeyToBytesParams): Promise<Uint8Array>;
150
195
  }
151
196
  //# sourceMappingURL=eddsa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../src/algorithms/eddsa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,eAClC,YAAW,sBAAsB,CAAC,sBAAsB,EAAE,GAAG,EAAE,kBAAkB,CAAC,EACvE,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;OAmBG;IACU,gBAAgB,CAAC,EAAE,GAAG,EAAE,EACnC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAiBf;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,EAAE,SAAS,EAAE,EAC7B,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAWf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,YAAY,CAAC,EAAE,GAAG,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAiBf;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAC7B,UAAU,GACT,OAAO,CAAC,UAAU,CAAC;IAetB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAC1C,YAAY,GACX,OAAO,CAAC,OAAO,CAAC;CAcpB"}
1
+ {"version":3,"file":"eddsa.d.ts","sourceRoot":"","sources":["../../../src/algorithms/eddsa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,UAAU,EACV,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,eAClC,YAAW,sBAAsB,CAAC,sBAAsB,EAAE,GAAG,EAAE,kBAAkB,CAAC,EACvE,YAAY,EAAE,sBAAsB,EACpC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;IAE3C;;;;;;;;;OASG;IACU,iBAAiB,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,EAC3D,uBAAuB,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,GACjD,OAAO,CAAC,GAAG,CAAC;IAef;;;;;;;;;OASG;IACU,gBAAgB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EACzD,sBAAsB,GAAG;QAAE,SAAS,EAAE,SAAS,CAAA;KAAE,GAChD,OAAO,CAAC,GAAG,CAAC;IAef;;;;;;;;;;;;;;;;;;;OAmBG;IACU,gBAAgB,CAAC,EAAE,GAAG,EAAE,EACnC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAiBf;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,EAAE,SAAS,EAAE,EAC7B,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAWf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,YAAY,CAAC,EAAE,GAAG,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAiBf;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAC7B,UAAU,GACT,OAAO,CAAC,UAAU,CAAC;IAetB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACU,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAC1C,YAAY,GACX,OAAO,CAAC,OAAO,CAAC;IAenB;;;;;;;OAOG;IACU,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAC3C,uBAAuB,GACtB,OAAO,CAAC,UAAU,CAAC;IAatB;;;;;;;OAOG;IACU,gBAAgB,CAAC,EAAE,SAAS,EAAE,EACzC,sBAAsB,GACrB,OAAO,CAAC,UAAU,CAAC;CAYvB"}
@@ -0,0 +1,35 @@
1
+ import type { DeriveKeyBytesParams } from '../types/params-direct.js';
2
+ import type { HkdfParams } from '../primitives/hkdf.js';
3
+ import type { KeyBytesDeriver } from '../types/key-deriver.js';
4
+ import { CryptoAlgorithm } from './crypto-algorithm.js';
5
+ /**
6
+ * The `HkdfDeriveKeyBytesParams` interface defines the algorithm-specific parameters that should be
7
+ * passed into the `deriveKeyBytes()` method when using the HKDF algorithm.
8
+ */
9
+ export interface HkdfDeriveKeyBytesParams extends DeriveKeyBytesParams {
10
+ /** Specifies the algorithm variant for HKDF key derivation.
11
+ * The value determines the hash function that will be used and must be one of the following:
12
+ * - `"HKDF-256"`: HKDF with SHA-256.
13
+ * - `"HKDF-384"`: HKDF with SHA-384.
14
+ * - `"HKDF-512"`: HKDF with SHA-512.
15
+ */
16
+ algorithm: 'HKDF-256' | 'HKDF-384' | 'HKDF-512';
17
+ }
18
+ /**
19
+ * The `HkdfAlgorithm` class provides a concrete implementation for HKDF key derivation. It wraps
20
+ * the {@link Hkdf} primitive and maps JOSE algorithm names to hash functions.
21
+ */
22
+ export declare class HkdfAlgorithm extends CryptoAlgorithm implements KeyBytesDeriver<HkdfDeriveKeyBytesParams, Uint8Array> {
23
+ /**
24
+ * Derives a cryptographic byte array using HKDF.
25
+ *
26
+ * @param params - The parameters for the key derivation operation.
27
+ * @param params.algorithm - The HKDF algorithm variant (e.g., `'HKDF-256'`).
28
+ * @param params.baseKeyBytes - The input key material.
29
+ * @param params.length - The desired length of the output in bits.
30
+ *
31
+ * @returns A Promise that resolves to the derived key bytes.
32
+ */
33
+ deriveKeyBytes({ algorithm, ...params }: HkdfDeriveKeyBytesParams & Omit<HkdfParams, 'hash'>): Promise<Uint8Array>;
34
+ }
35
+ //# sourceMappingURL=hkdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hkdf.d.ts","sourceRoot":"","sources":["../../../src/algorithms/hkdf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE;;;;;OAKG;IACH,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;CACjD;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,eACjC,YAAW,eAAe,CAAC,wBAAwB,EAAE,UAAU,CAAC;IAEhE;;;;;;;;;OASG;IACU,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAClD,wBAAwB,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC;CAavB"}
@@ -0,0 +1,35 @@
1
+ import type { DeriveKeyBytesParams } from '../types/params-direct.js';
2
+ import type { KeyBytesDeriver } from '../types/key-deriver.js';
3
+ import type { Pbkdf2Params } from '../primitives/pbkdf2.js';
4
+ import { CryptoAlgorithm } from './crypto-algorithm.js';
5
+ /**
6
+ * The `Pbkdf2DeriveKeyBytesParams` interface defines the algorithm-specific parameters that
7
+ * should be passed into the `deriveKeyBytes()` method when using the PBKDF2 algorithm.
8
+ */
9
+ export interface Pbkdf2DeriveKeyBytesParams extends DeriveKeyBytesParams {
10
+ /** Specifies the algorithm variant for PBKDF2 key derivation.
11
+ * The value determines the hash function that will be used and must be one of the following:
12
+ * - `"PBES2-HS256+A128KW"`: PBKDF2 with HMAC SHA-256 and A128KW key wrapping.
13
+ * - `"PBES2-HS384+A192KW"`: PBKDF2 with HMAC SHA-384 and A192KW key wrapping.
14
+ * - `"PBES2-HS512+A256KW"`: PBKDF2 with HMAC SHA-512 and A256KW key wrapping.
15
+ */
16
+ algorithm: 'PBES2-HS256+A128KW' | 'PBES2-HS384+A192KW' | 'PBES2-HS512+A256KW';
17
+ }
18
+ /**
19
+ * The `Pbkdf2Algorithm` class provides a concrete implementation for PBKDF2 key derivation. It
20
+ * wraps the {@link Pbkdf2} primitive and maps PBES2 JOSE algorithm names to hash functions.
21
+ */
22
+ export declare class Pbkdf2Algorithm extends CryptoAlgorithm implements KeyBytesDeriver<Pbkdf2DeriveKeyBytesParams, Uint8Array> {
23
+ /**
24
+ * Derives a cryptographic byte array using PBKDF2.
25
+ *
26
+ * @param params - The parameters for the key derivation operation.
27
+ * @param params.algorithm - The PBES2 algorithm variant (e.g., `'PBES2-HS512+A256KW'`).
28
+ * @param params.baseKeyBytes - The password or passphrase as bytes.
29
+ * @param params.length - The desired length of the output in bits.
30
+ *
31
+ * @returns A Promise that resolves to the derived key bytes.
32
+ */
33
+ deriveKeyBytes({ algorithm, ...params }: Pbkdf2DeriveKeyBytesParams & Omit<Pbkdf2Params, 'hash'>): Promise<Uint8Array>;
34
+ }
35
+ //# sourceMappingURL=pbkdf2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbkdf2.d.ts","sourceRoot":"","sources":["../../../src/algorithms/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACtE;;;;;OAKG;IACH,SAAS,EAAE,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,CAAC;CAC/E;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,eACnC,YAAW,eAAe,CAAC,0BAA0B,EAAE,UAAU,CAAC;IAElE;;;;;;;;;OASG;IACU,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAClD,0BAA0B,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GACtD,OAAO,CAAC,UAAU,CAAC;CAgBvB"}
@@ -1,5 +1,5 @@
1
- import type { Hasher } from '../types/hasher.js';
2
1
  import type { DigestParams } from '../types/params-direct.js';
2
+ import type { Hasher } from '../types/hasher.js';
3
3
  import { CryptoAlgorithm } from './crypto-algorithm.js';
4
4
  /**
5
5
  * The `Sha2DigestParams` interface defines the algorithm-specific parameters that should be
@@ -18,7 +18,7 @@ export interface Sha2DigestParams extends DigestParams {
18
18
  * of the hash function and arbitrary data as input and returns the hash digest of the data.
19
19
  *
20
20
  * This class is typically accessed through implementations that extend the
21
- * {@link CryptoApi | `CryptoApi`} interface.
21
+ * {@link DsaApi | `DsaApi`} interface.
22
22
  */
23
23
  export declare class Sha2Algorithm extends CryptoAlgorithm implements Hasher<Sha2DigestParams> {
24
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sha-2.d.ts","sourceRoot":"","sources":["../../../src/algorithms/sha-2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,eACjC,YAAW,MAAM,CAAC,gBAAgB,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;CAUhF"}
1
+ {"version":3,"file":"sha-2.d.ts","sourceRoot":"","sources":["../../../src/algorithms/sha-2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,eACjC,YAAW,MAAM,CAAC,gBAAgB,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;CAUhF"}
@@ -0,0 +1,76 @@
1
+ import type { AsymmetricKeyGenerator } from '../types/key-generator.js';
2
+ import type { Jwk } from '../jose/jwk.js';
3
+ import type { KeyConverter } from '../types/key-converter.js';
4
+ import type { BytesToPrivateKeyParams, ComputePublicKeyParams, GenerateKeyParams, GetPublicKeyParams, PrivateKeyToBytesParams } from '../types/params-direct.js';
5
+ import { CryptoAlgorithm } from './crypto-algorithm.js';
6
+ /**
7
+ * The `X25519GenerateKeyParams` interface defines the algorithm-specific parameters that should be
8
+ * passed into the `generateKey()` method when using the X25519 key agreement algorithm.
9
+ */
10
+ export interface X25519GenerateKeyParams extends GenerateKeyParams {
11
+ /**
12
+ * A string defining the type of key to generate. The value must be:
13
+ * - `"X25519"`: Elliptic-curve Diffie-Hellman (ECDH) using Curve25519.
14
+ */
15
+ algorithm: 'X25519';
16
+ }
17
+ /**
18
+ * The `X25519Algorithm` class provides a concrete implementation for key generation,
19
+ * public key derivation, and key conversion using the X25519 elliptic curve. X25519 is a
20
+ * key agreement curve (not a signature curve) used for ECDH key exchange in JWE encryption.
21
+ *
22
+ * This class implements the {@link AsymmetricKeyGenerator | `AsymmetricKeyGenerator`} and
23
+ * {@link KeyConverter | `KeyConverter`} interfaces, providing private key generation,
24
+ * public key derivation, and byte/JWK conversion.
25
+ */
26
+ export declare class X25519Algorithm extends CryptoAlgorithm implements AsymmetricKeyGenerator<X25519GenerateKeyParams, Jwk, GetPublicKeyParams>, KeyConverter {
27
+ /**
28
+ * Converts a raw private key in bytes to its corresponding JWK format.
29
+ *
30
+ * @param params - The parameters for the private key conversion.
31
+ * @param params.algorithm - Must be `'X25519'`.
32
+ * @param params.privateKeyBytes - The raw private key as a Uint8Array.
33
+ *
34
+ * @returns A Promise that resolves to the private key in JWK format.
35
+ */
36
+ bytesToPrivateKey({ algorithm, privateKeyBytes }: BytesToPrivateKeyParams & {
37
+ algorithm: 'X25519';
38
+ }): Promise<Jwk>;
39
+ /**
40
+ * Derives the public key in JWK format from a given X25519 private key.
41
+ *
42
+ * @param params - The parameters for the public key derivation.
43
+ * @param params.key - The private key in JWK format from which to derive the public key.
44
+ *
45
+ * @returns A Promise that resolves to the derived public key in JWK format.
46
+ */
47
+ computePublicKey({ key }: ComputePublicKeyParams): Promise<Jwk>;
48
+ /**
49
+ * Generates a new X25519 private key in JWK format.
50
+ *
51
+ * @param params - The parameters for key generation.
52
+ * @param params.algorithm - Must be `'X25519'`.
53
+ *
54
+ * @returns A Promise that resolves to the generated private key in JWK format.
55
+ */
56
+ generateKey({ algorithm }: X25519GenerateKeyParams): Promise<Jwk>;
57
+ /**
58
+ * Retrieves the public key properties from a given X25519 private key in JWK format.
59
+ *
60
+ * @param params - The parameters for retrieving the public key properties.
61
+ * @param params.key - The private key in JWK format.
62
+ *
63
+ * @returns A Promise that resolves to the public key in JWK format.
64
+ */
65
+ getPublicKey({ key }: GetPublicKeyParams): Promise<Jwk>;
66
+ /**
67
+ * Converts a private key from JWK format to a byte array.
68
+ *
69
+ * @param params - The parameters for the private key conversion.
70
+ * @param params.privateKey - The private key in JWK format.
71
+ *
72
+ * @returns A Promise that resolves to the private key as a Uint8Array.
73
+ */
74
+ privateKeyToBytes({ privateKey }: PrivateKeyToBytesParams): Promise<Uint8Array>;
75
+ }
76
+ //# sourceMappingURL=x25519.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x25519.d.ts","sourceRoot":"","sources":["../../../src/algorithms/x25519.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EACV,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE;;;OAGG;IACH,SAAS,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,eACnC,YAAW,sBAAsB,CAAC,uBAAuB,EAAE,GAAG,EAAE,kBAAkB,CAAC,EACxE,YAAY;IAEvB;;;;;;;;OAQG;IACU,iBAAiB,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,EAC3D,uBAAuB,GAAG;QAAE,SAAS,EAAE,QAAQ,CAAA;KAAE,GAChD,OAAO,CAAC,GAAG,CAAC;IAaf;;;;;;;OAOG;IACU,gBAAgB,CAAC,EAAE,GAAG,EAAE,EACnC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAef;;;;;;;OAOG;IACG,WAAW,CAAC,EAAE,SAAS,EAAE,EAC7B,uBAAuB,GACtB,OAAO,CAAC,GAAG,CAAC;IAaf;;;;;;;OAOG;IACU,YAAY,CAAC,EAAE,GAAG,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAef;;;;;;;OAOG;IACU,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAC3C,uBAAuB,GACtB,OAAO,CAAC,UAAU,CAAC;CAGvB"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * A custom error class for Crypto-related errors.
3
+ */
4
+ export declare class CryptoError extends Error {
5
+ code: CryptoErrorCode;
6
+ /**
7
+ * Constructs an instance of CryptoError, a custom error class for handling Crypto-related errors.
8
+ *
9
+ * @param code - A {@link CryptoErrorCode} representing the specific type of error encountered.
10
+ * @param message - A human-readable description of the error.
11
+ */
12
+ constructor(code: CryptoErrorCode, message: string);
13
+ }
14
+ /**
15
+ * An enumeration of possible Crypto error codes.
16
+ */
17
+ export declare enum CryptoErrorCode {
18
+ /** The supplied algorithm identifier is not supported by the implementation. */
19
+ AlgorithmNotSupported = "algorithmNotSupported",
20
+ /** The encoding operation (either encoding or decoding) failed. */
21
+ EncodingError = "encodingError",
22
+ /** The JWE supplied does not conform to valid syntax. */
23
+ InvalidJwe = "invalidJwe",
24
+ /** The JWK supplied does not conform to valid syntax. */
25
+ InvalidJwk = "invalidJwk",
26
+ /** The requested operation is not supported by the implementation. */
27
+ OperationNotSupported = "operationNotSupported"
28
+ }
29
+ //# sourceMappingURL=crypto-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-error.d.ts","sourceRoot":"","sources":["../../src/crypto-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAOjB,IAAI,EAAE,eAAe;IANxC;;;;;OAKG;gBACgB,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAc1D;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,gFAAgF;IAChF,qBAAqB,0BAA0B;IAE/C,mEAAmE;IACnE,aAAa,kBAAkB;IAE/B,yDAAyD;IACzD,UAAU,eAAe;IAEzB,yDAAyD;IACzD,UAAU,eAAe;IAEzB,sEAAsE;IACtE,qBAAqB,0BAA0B;CAChD"}
@@ -1,11 +1,16 @@
1
+ export * from './crypto-error.js';
1
2
  export * from './local-key-manager.js';
2
3
  export * from './utils.js';
3
4
  export * from './algorithms/aes-ctr.js';
4
5
  export * from './algorithms/aes-gcm.js';
6
+ export * from './algorithms/aes-kw.js';
5
7
  export * from './algorithms/crypto-algorithm.js';
6
8
  export * from './algorithms/ecdsa.js';
7
9
  export * from './algorithms/eddsa.js';
10
+ export * from './algorithms/hkdf.js';
11
+ export * from './algorithms/pbkdf2.js';
8
12
  export * from './algorithms/sha-2.js';
13
+ export * from './algorithms/x25519.js';
9
14
  export * from './jose/jwe.js';
10
15
  export * from './jose/jwk.js';
11
16
  export * from './jose/jws.js';
@@ -13,8 +18,11 @@ export * from './jose/jwt.js';
13
18
  export * from './jose/utils.js';
14
19
  export * from './primitives/aes-ctr.js';
15
20
  export * from './primitives/aes-gcm.js';
21
+ export * from './primitives/aes-kw.js';
16
22
  export * from './primitives/concat-kdf.js';
23
+ export * from './primitives/ecies-secp256k1.js';
17
24
  export * from './primitives/ed25519.js';
25
+ export * from './primitives/hkdf.js';
18
26
  export * from './primitives/secp256r1.js';
19
27
  export * from './primitives/pbkdf2.js';
20
28
  export * from './primitives/secp256k1.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAE3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AAEnD,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,uBAAuB,CAAC;AAC3C,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,uBAAuB,CAAC;AAC3C,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,4BAA4B,CAAC;AAChD,mBAAmB,uBAAuB,CAAC;AAC3C,mBAAmB,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAE3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AAEnD,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,uBAAuB,CAAC;AAC3C,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,uBAAuB,CAAC;AAC3C,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,0BAA0B,CAAC;AAC9C,mBAAmB,4BAA4B,CAAC;AAChD,mBAAmB,uBAAuB,CAAC;AAC3C,mBAAmB,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jwk.d.ts","sourceRoot":"","sources":["../../../src/jose/jwk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwk.d.ts","sourceRoot":"","sources":["../../../src/jose/jwk.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { KeyValueStore } from '@enbox/common';
1
+ import type { KeyValueStore } from '@enbox/common';
2
2
  import type { Jwk } from './jose/jwk.js';
3
- import type { CryptoApi } from './types/crypto-api.js';
4
3
  import type { KeyIdentifier } from './types/identifier.js';
5
4
  import type { KeyImporterExporter } from './types/key-io.js';
6
- import type { KmsSignParams, KmsDigestParams, KmsVerifyParams, KmsExportKeyParams, KmsGetKeyUriParams, KmsImportKeyParams, KmsGenerateKeyParams, KmsGetPublicKeyParams } from './types/params-kms.js';
5
+ import type { KeyManager } from './types/crypto-api.js';
6
+ import type { KmsDigestParams, KmsExportKeyParams, KmsGenerateKeyParams, KmsGetKeyUriParams, KmsGetPublicKeyParams, KmsImportKeyParams, KmsSignParams, KmsVerifyParams } from './types/params-kms.js';
7
7
  /**
8
8
  * The `LocalKeyManagerParams` interface specifies the parameters for initializing an instance of
9
9
  * `LocalKeyManager`. It allows the optional inclusion of a `KeyValueStore` instance for key
@@ -42,9 +42,9 @@ export interface LocalKeyManagerGenerateKeyParams extends KmsGenerateKeyParams {
42
42
  * - `"Ed25519"`
43
43
  * - `"secp256k1"`
44
44
  */
45
- algorithm: 'Ed25519' | 'secp256k1' | 'secp256r1';
45
+ algorithm: 'Ed25519' | 'secp256k1' | 'secp256r1' | 'X25519';
46
46
  }
47
- export declare class LocalKeyManager implements CryptoApi, KeyImporterExporter<KmsImportKeyParams, KeyIdentifier, KmsExportKeyParams> {
47
+ export declare class LocalKeyManager implements KeyManager, KeyImporterExporter<KmsImportKeyParams, KeyIdentifier, KmsExportKeyParams> {
48
48
  /**
49
49
  * A private map that stores instances of cryptographic algorithm implementations. Each key in
50
50
  * this map is an `AlgorithmConstructor`, and its corresponding value is an instance of a class
@@ -131,7 +131,7 @@ export declare class LocalKeyManager implements CryptoApi, KeyImporterExporter<K
131
131
  * @remarks
132
132
  * This method generates a {@link https://datatracker.ietf.org/doc/html/rfc3986 | URI}
133
133
  * (Uniform Resource Identifier) for the given JWK, which uniquely identifies the key across all
134
- * `CryptoApi` implementations. The key URI is constructed by appending the
134
+ * `KeyManager` implementations. The key URI is constructed by appending the
135
135
  * {@link https://datatracker.ietf.org/doc/html/rfc7638 | JWK thumbprint} to the prefix
136
136
  * `urn:jwk:`. The JWK thumbprint is deterministically computed from the JWK and is consistent
137
137
  * regardless of property order or optional property inclusion in the JWK. This ensures that the
@@ -1 +1 @@
1
- {"version":3,"file":"local-key-manager.d.ts","sourceRoot":"","sources":["../../src/local-key-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAe,MAAM,eAAe,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AA8C/B;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAiC,SAAQ,oBAAoB;IAC5E;;;;OAIG;IACH,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;CAClD;AAED,qBAAa,eAAgB,YACzB,SAAS,EACT,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,CAAC;IAE5E;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAA8E;IAEzG;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS,CAAoC;gBAEzC,MAAM,CAAC,EAAE,qBAAqB;IAI1C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EACrC,2BAA2B,GAC1B,OAAO,CAAC,UAAU,CAAC;IAUtB;;;;;;;;;;;;;;;;;;OAkBG;IACU,SAAS,CAAC,EAAE,MAAM,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAOf;;;;;;;;;;;;;;;OAeG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,gCAAgC,GAC/B,OAAO,CAAC,aAAa,CAAC;IAoBzB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,SAAS,CAAC,EAAE,GAAG,EAAE,EAC5B,kBAAkB,GACjB,OAAO,CAAC,aAAa,CAAC;IAUzB;;;;;;;;;;;;;;;OAeG;IACU,YAAY,CAAC,EAAE,MAAM,EAAE,EAClC,qBAAqB,GACpB,OAAO,CAAC,GAAG,CAAC;IAgBf;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,SAAS,CAAC,EAAE,GAAG,EAAE,EAC5B,kBAAkB,GACjB,OAAO,CAAC,aAAa,CAAC;IAkBzB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAChC,aAAa,GACZ,OAAO,CAAC,UAAU,CAAC;IAgBtB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAC1C,eAAe,GACd,OAAO,CAAC,OAAO,CAAC;IAanB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,YAAY;IAmBpB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;;;;;;;;;;;;;OAcG;YACW,aAAa;CAY5B"}
1
+ {"version":3,"file":"local-key-manager.d.ts","sourceRoot":"","sources":["../../src/local-key-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAkD/B;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAiC,SAAQ,oBAAoB;IAC5E;;;;OAIG;IACH,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC7D;AAED,qBAAa,eAAgB,YACzB,UAAU,EACV,mBAAmB,CAAC,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,CAAC;IAE5E;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAA8E;IAEzG;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS,CAAoC;gBAEzC,MAAM,CAAC,EAAE,qBAAqB;IAI1C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EACrC,2BAA2B,GAC1B,OAAO,CAAC,UAAU,CAAC;IAUtB;;;;;;;;;;;;;;;;;;OAkBG;IACU,SAAS,CAAC,EAAE,MAAM,EAAE,EAC/B,kBAAkB,GACjB,OAAO,CAAC,GAAG,CAAC;IAOf;;;;;;;;;;;;;;;OAeG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,gCAAgC,GAC/B,OAAO,CAAC,aAAa,CAAC;IAoBzB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,SAAS,CAAC,EAAE,GAAG,EAAE,EAC5B,kBAAkB,GACjB,OAAO,CAAC,aAAa,CAAC;IAUzB;;;;;;;;;;;;;;;OAeG;IACU,YAAY,CAAC,EAAE,MAAM,EAAE,EAClC,qBAAqB,GACpB,OAAO,CAAC,GAAG,CAAC;IAgBf;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,SAAS,CAAC,EAAE,GAAG,EAAE,EAC5B,kBAAkB,GACjB,OAAO,CAAC,aAAa,CAAC;IAkBzB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAChC,aAAa,GACZ,OAAO,CAAC,UAAU,CAAC;IAgBtB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAC1C,eAAe,GACd,OAAO,CAAC,OAAO,CAAC;IAanB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,YAAY;IAmBpB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;;;;;;;;;;;;;OAcG;YACW,aAAa;CAY5B"}
@@ -0,0 +1,103 @@
1
+ import type { Jwk } from '../jose/jwk.js';
2
+ import type { UnwrapKeyParams, WrapKeyParams } from '../types/params-direct.js';
3
+ /**
4
+ * Constant defining the AES key length values in bits.
5
+ *
6
+ * @remarks
7
+ * NIST publication FIPS 197 states:
8
+ * > The AES algorithm is capable of using cryptographic keys of 128, 192, and 256 bits to encrypt
9
+ * > and decrypt data in blocks of 128 bits.
10
+ *
11
+ * This implementation does not support key lengths that are different from the three values
12
+ * defined by this constant.
13
+ *
14
+ * @see {@link https://doi.org/10.6028/NIST.FIPS.197-upd1 | NIST FIPS 197}
15
+ */
16
+ declare const AES_KEY_LENGTHS: readonly [128, 192, 256];
17
+ export declare class AesKw {
18
+ /**
19
+ * Converts a raw private key in bytes to its corresponding JSON Web Key (JWK) format.
20
+ *
21
+ * @remarks
22
+ * This method takes a symmetric key represented as a byte array (Uint8Array) and
23
+ * converts it into a JWK object for use with AES (Advanced Encryption Standard)
24
+ * for key wrapping. The conversion process involves encoding the key into
25
+ * base64url format and setting the appropriate JWK parameters.
26
+ *
27
+ * The resulting JWK object includes the following properties:
28
+ * - `kty`: Key Type, set to 'oct' for Octet Sequence (representing a symmetric key).
29
+ * - `k`: The symmetric key, base64url-encoded.
30
+ * - `kid`: Key ID, generated based on the JWK thumbprint.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const privateKeyBytes = new Uint8Array([...]); // Replace with actual symmetric key bytes
35
+ * const privateKey = await AesKw.bytesToPrivateKey({ privateKeyBytes });
36
+ * ```
37
+ *
38
+ * @param params - The parameters for the symmetric key conversion.
39
+ * @param params.privateKeyBytes - The raw symmetric key as a Uint8Array.
40
+ *
41
+ * @returns A Promise that resolves to the symmetric key in JWK format.
42
+ */
43
+ static bytesToPrivateKey({ privateKeyBytes }: {
44
+ privateKeyBytes: Uint8Array;
45
+ }): Promise<Jwk>;
46
+ /**
47
+ * Generates a symmetric key for AES for key wrapping in JSON Web Key (JWK) format.
48
+ *
49
+ * @remarks
50
+ * This method creates a new symmetric key of a specified length suitable for use with
51
+ * AES key wrapping. It uses cryptographically secure random number generation to
52
+ * ensure the uniqueness and security of the key. The generated key adheres to the JWK
53
+ * format, making it compatible with common cryptographic standards and easy to use in
54
+ * various cryptographic processes.
55
+ *
56
+ * The generated key includes the following components:
57
+ * - `kty`: Key Type, set to 'oct' for Octet Sequence.
58
+ * - `k`: The symmetric key component, base64url-encoded.
59
+ * - `kid`: Key ID, generated based on the JWK thumbprint.
60
+ * - `alg`: Algorithm, set to 'A128KW', 'A192KW', or 'A256KW' for AES Key Wrap with the
61
+ * specified key length.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const length = 256; // Length of the key in bits (e.g., 128, 192, 256)
66
+ * const privateKey = await AesKw.generateKey({ length });
67
+ * ```
68
+ *
69
+ * @param params - The parameters for the key generation.
70
+ * @param params.length - The length of the key in bits. Common lengths are 128, 192, and 256 bits.
71
+ *
72
+ * @returns A Promise that resolves to the generated symmetric key in JWK format.
73
+ */
74
+ static generateKey({ length }: {
75
+ length: typeof AES_KEY_LENGTHS[number];
76
+ }): Promise<Jwk>;
77
+ /**
78
+ * Converts a private key from JSON Web Key (JWK) format to a raw byte array (Uint8Array).
79
+ *
80
+ * @remarks
81
+ * This method takes a symmetric key in JWK format and extracts its raw byte representation.
82
+ * It decodes the 'k' parameter of the JWK value, which represents the symmetric key in base64url
83
+ * encoding, into a byte array.
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * const privateKey = { ... }; // A symmetric key in JWK format
88
+ * const privateKeyBytes = await AesKw.privateKeyToBytes({ privateKey });
89
+ * ```
90
+ *
91
+ * @param params - The parameters for the symmetric key conversion.
92
+ * @param params.privateKey - The symmetric key in JWK format.
93
+ *
94
+ * @returns A Promise that resolves to the symmetric key as a Uint8Array.
95
+ */
96
+ static privateKeyToBytes({ privateKey }: {
97
+ privateKey: Jwk;
98
+ }): Promise<Uint8Array>;
99
+ static unwrapKey({ wrappedKeyBytes, wrappedKeyAlgorithm, decryptionKey }: UnwrapKeyParams): Promise<Jwk>;
100
+ static wrapKey({ unwrappedKey, encryptionKey }: WrapKeyParams): Promise<Uint8Array>;
101
+ }
102
+ export {};
103
+ //# sourceMappingURL=aes-kw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes-kw.d.ts","sourceRoot":"","sources":["../../../src/primitives/aes-kw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAQhF;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe,0BAA2B,CAAC;AAEjD,qBAAa,KAAK;IAChB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;WACiB,iBAAiB,CAAC,EAAE,eAAe,EAAE,EAAE;QACzD,eAAe,EAAE,UAAU,CAAC;KAC7B,GAAG,OAAO,CAAC,GAAG,CAAC;IAiBhB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;WACiB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,EAAE,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;KACxC,GAAG,OAAO,CAAC,GAAG,CAAC;IAuBhB;;;;;;;;;;;;;;;;;;OAkBG;WACiB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE;QACpD,UAAU,EAAE,GAAG,CAAC;KACjB,GAAG,OAAO,CAAC,UAAU,CAAC;WAYH,SAAS,CAAC,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,EACnF,eAAe,GACd,OAAO,CAAC,GAAG,CAAC;WAoDK,OAAO,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,EACzD,aAAa,GACZ,OAAO,CAAC,UAAU,CAAC;CAyDvB"}
@@ -1,4 +1,4 @@
1
- import { TypedArray } from '@noble/hashes/utils';
1
+ import type { TypedArray } from '@noble/hashes/utils';
2
2
  /**
3
3
  * ConcatKDF FixedInfo Parameters.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"concat-kdf.d.ts","sourceRoot":"","sources":["../../../src/primitives/concat-kdf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC;IAEhC;;;;OAIG;IACH,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC;IAEhC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CACpC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;WACiB,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE;QACrE,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,kBAAkB,CAAC;QAC9B,YAAY,EAAE,UAAU,CAAC;KAC1B,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BvB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CA+B7B"}
1
+ {"version":3,"file":"concat-kdf.d.ts","sourceRoot":"","sources":["../../../src/primitives/concat-kdf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC;IAEhC;;;;OAIG;IACH,UAAU,EAAE,MAAM,GAAG,UAAU,CAAC;IAEhC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;WACiB,SAAS,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE;QACrE,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,kBAAkB,CAAC;QAC9B,YAAY,EAAE,UAAU,CAAC;KAC1B,GAAG,OAAO,CAAC,UAAU,CAAC;IA4BvB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAiB/B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;CA+B7B"}