@enbox/crypto 0.0.3 → 0.0.5

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 (116) hide show
  1. package/dist/browser.mjs +1 -1
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/algorithms/aes-ctr.js +1 -1
  4. package/dist/esm/algorithms/aes-gcm.js +34 -1
  5. package/dist/esm/algorithms/aes-gcm.js.map +1 -1
  6. package/dist/esm/algorithms/aes-kw.js +154 -0
  7. package/dist/esm/algorithms/aes-kw.js.map +1 -0
  8. package/dist/esm/algorithms/ecdsa.js +110 -1
  9. package/dist/esm/algorithms/ecdsa.js.map +1 -1
  10. package/dist/esm/algorithms/eddsa.js +90 -1
  11. package/dist/esm/algorithms/eddsa.js.map +1 -1
  12. package/dist/esm/algorithms/hkdf.js +53 -0
  13. package/dist/esm/algorithms/hkdf.js.map +1 -0
  14. package/dist/esm/algorithms/pbkdf2.js +55 -0
  15. package/dist/esm/algorithms/pbkdf2.js.map +1 -0
  16. package/dist/esm/algorithms/sha-2.js +1 -1
  17. package/dist/esm/algorithms/x25519.js +125 -0
  18. package/dist/esm/algorithms/x25519.js.map +1 -0
  19. package/dist/esm/cose/cbor.js +35 -0
  20. package/dist/esm/cose/cbor.js.map +1 -0
  21. package/dist/esm/cose/cose-key.js +312 -0
  22. package/dist/esm/cose/cose-key.js.map +1 -0
  23. package/dist/esm/cose/cose-sign1.js +283 -0
  24. package/dist/esm/cose/cose-sign1.js.map +1 -0
  25. package/dist/esm/cose/eat.js +254 -0
  26. package/dist/esm/cose/eat.js.map +1 -0
  27. package/dist/esm/crypto-error.js +4 -0
  28. package/dist/esm/crypto-error.js.map +1 -1
  29. package/dist/esm/index.js +9 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/local-key-manager.js +6 -1
  32. package/dist/esm/local-key-manager.js.map +1 -1
  33. package/dist/esm/primitives/ecies-secp256k1.js +79 -0
  34. package/dist/esm/primitives/ecies-secp256k1.js.map +1 -0
  35. package/dist/esm/primitives/x25519.js +9 -16
  36. package/dist/esm/primitives/x25519.js.map +1 -1
  37. package/dist/esm/utils.js +30 -0
  38. package/dist/esm/utils.js.map +1 -1
  39. package/dist/types/algorithms/aes-ctr.d.ts +1 -1
  40. package/dist/types/algorithms/aes-gcm.d.ts +23 -3
  41. package/dist/types/algorithms/aes-gcm.d.ts.map +1 -1
  42. package/dist/types/algorithms/aes-kw.d.ts +129 -0
  43. package/dist/types/algorithms/aes-kw.d.ts.map +1 -0
  44. package/dist/types/algorithms/ecdsa.d.ts +48 -3
  45. package/dist/types/algorithms/ecdsa.d.ts.map +1 -1
  46. package/dist/types/algorithms/eddsa.d.ts +48 -3
  47. package/dist/types/algorithms/eddsa.d.ts.map +1 -1
  48. package/dist/types/algorithms/hkdf.d.ts +35 -0
  49. package/dist/types/algorithms/hkdf.d.ts.map +1 -0
  50. package/dist/types/algorithms/pbkdf2.d.ts +35 -0
  51. package/dist/types/algorithms/pbkdf2.d.ts.map +1 -0
  52. package/dist/types/algorithms/sha-2.d.ts +1 -1
  53. package/dist/types/algorithms/x25519.d.ts +76 -0
  54. package/dist/types/algorithms/x25519.d.ts.map +1 -0
  55. package/dist/types/cose/cbor.d.ts +30 -0
  56. package/dist/types/cose/cbor.d.ts.map +1 -0
  57. package/dist/types/cose/cose-key.d.ts +106 -0
  58. package/dist/types/cose/cose-key.d.ts.map +1 -0
  59. package/dist/types/cose/cose-sign1.d.ts +195 -0
  60. package/dist/types/cose/cose-sign1.d.ts.map +1 -0
  61. package/dist/types/cose/eat.d.ts +203 -0
  62. package/dist/types/cose/eat.d.ts.map +1 -0
  63. package/dist/types/crypto-error.d.ts +4 -0
  64. package/dist/types/crypto-error.d.ts.map +1 -1
  65. package/dist/types/index.d.ts +9 -0
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/local-key-manager.d.ts +4 -4
  68. package/dist/types/local-key-manager.d.ts.map +1 -1
  69. package/dist/types/primitives/ecies-secp256k1.d.ts +53 -0
  70. package/dist/types/primitives/ecies-secp256k1.d.ts.map +1 -0
  71. package/dist/types/primitives/x25519.d.ts +9 -16
  72. package/dist/types/primitives/x25519.d.ts.map +1 -1
  73. package/dist/types/types/crypto-api.d.ts +52 -4
  74. package/dist/types/types/crypto-api.d.ts.map +1 -1
  75. package/dist/types/types/key-converter.d.ts +37 -15
  76. package/dist/types/types/key-converter.d.ts.map +1 -1
  77. package/dist/types/types/key-deriver.d.ts +41 -0
  78. package/dist/types/types/key-deriver.d.ts.map +1 -1
  79. package/dist/types/types/key-io.d.ts +37 -0
  80. package/dist/types/types/key-io.d.ts.map +1 -1
  81. package/dist/types/types/params-direct.d.ts +17 -0
  82. package/dist/types/types/params-direct.d.ts.map +1 -1
  83. package/dist/types/types/params-kms.d.ts +55 -0
  84. package/dist/types/types/params-kms.d.ts.map +1 -1
  85. package/dist/types/utils.d.ts +19 -0
  86. package/dist/types/utils.d.ts.map +1 -1
  87. package/dist/utils.js +1 -1
  88. package/dist/utils.js.map +3 -3
  89. package/package.json +12 -14
  90. package/src/algorithms/aes-ctr.ts +1 -1
  91. package/src/algorithms/aes-gcm.ts +38 -2
  92. package/src/algorithms/aes-kw.ts +182 -0
  93. package/src/algorithms/ecdsa.ts +132 -1
  94. package/src/algorithms/eddsa.ts +108 -1
  95. package/src/algorithms/hkdf.ts +54 -0
  96. package/src/algorithms/pbkdf2.ts +57 -0
  97. package/src/algorithms/sha-2.ts +1 -1
  98. package/src/algorithms/x25519.ts +153 -0
  99. package/src/cose/cbor.ts +36 -0
  100. package/src/cose/cose-key.ts +344 -0
  101. package/src/cose/cose-sign1.ts +473 -0
  102. package/src/cose/eat.ts +368 -0
  103. package/src/crypto-error.ts +6 -0
  104. package/src/index.ts +10 -0
  105. package/src/local-key-manager.ts +9 -4
  106. package/src/primitives/ecies-secp256k1.ts +113 -0
  107. package/src/primitives/x25519.ts +9 -16
  108. package/src/types/crypto-api.ts +124 -6
  109. package/src/types/key-converter.ts +33 -7
  110. package/src/types/key-deriver.ts +49 -0
  111. package/src/types/key-io.ts +40 -0
  112. package/src/types/params-direct.ts +21 -0
  113. package/src/types/params-kms.ts +67 -0
  114. package/src/utils.ts +53 -0
  115. package/dist/browser.js +0 -60
  116. package/dist/browser.js.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"local-key-manager.js","sourceRoot":"","sources":["../../src/local-key-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-key-manager.js","sourceRoot":"","sources":["../../src/local-key-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { concatBytes } from '@noble/ciphers/utils';
2
+ import { gcm } from '@noble/ciphers/aes';
3
+ import { hkdf } from '@noble/hashes/hkdf';
4
+ import { randomBytes } from '@noble/ciphers/webcrypto';
5
+ import { secp256k1 } from '@noble/curves/secp256k1';
6
+ import { sha256 } from '@noble/hashes/sha256';
7
+ /**
8
+ * AEAD tag length for AES-256-GCM (16 bytes / 128 bits).
9
+ */
10
+ const AEAD_TAG_LENGTH = 16;
11
+ /**
12
+ * Nonce length for AES-256-GCM encryption.
13
+ */
14
+ const NONCE_LENGTH = 16;
15
+ /**
16
+ * Browser-compatible ECIES (Elliptic Curve Integrated Encryption Scheme) using secp256k1.
17
+ *
18
+ * Wire-format compatible with `eciesjs` v0.4.x configured with
19
+ * `isEphemeralKeyCompressed: true, isHkdfKeyCompressed: false` (the default).
20
+ *
21
+ * Protocol:
22
+ * 1. Generate an ephemeral secp256k1 key pair.
23
+ * 2. ECDH shared secret (uncompressed point).
24
+ * 3. HKDF-SHA-256 key derivation: `hkdf(sha256, ephemeralPubUncompressed || sharedPointUncompressed)`.
25
+ * 4. AES-256-GCM encryption with random 16-byte nonce.
26
+ *
27
+ * All underlying primitives (`@noble/ciphers`, `@noble/curves`, `@noble/hashes`)
28
+ * are pure JavaScript and work in Node, Bun, and browsers.
29
+ */
30
+ export class EciesSecp256k1 {
31
+ /**
32
+ * Encrypt plaintext for a given secp256k1 public key.
33
+ * @param publicKeyBytes - Recipient's public key (compressed 33 bytes or uncompressed 65 bytes).
34
+ * @param plaintext - The data to encrypt.
35
+ */
36
+ static encrypt(publicKeyBytes, plaintext) {
37
+ // Generate ephemeral key pair.
38
+ const ephemeralPrivateKey = secp256k1.utils.randomPrivateKey();
39
+ const ephemeralPubCompressed = secp256k1.getPublicKey(ephemeralPrivateKey, true);
40
+ const ephemeralPubUncompressed = secp256k1.getPublicKey(ephemeralPrivateKey, false);
41
+ // ECDH: shared point (uncompressed).
42
+ const sharedPointUncompressed = secp256k1.getSharedSecret(ephemeralPrivateKey, publicKeyBytes, false);
43
+ // HKDF-SHA-256: derive 32-byte symmetric key.
44
+ // eciesjs (isHkdfKeyCompressed=false): master = senderPubUncompressed || sharedPointUncompressed
45
+ const symmetricKey = hkdf(sha256, concatBytes(ephemeralPubUncompressed, sharedPointUncompressed), undefined, undefined, 32);
46
+ // AES-256-GCM encrypt.
47
+ const nonce = randomBytes(NONCE_LENGTH);
48
+ const ciphered = gcm(symmetricKey, nonce).encrypt(plaintext); // ciphertext || tag
49
+ return {
50
+ ephemeralPublicKey: ephemeralPubCompressed,
51
+ initializationVector: nonce,
52
+ messageAuthenticationCode: ciphered.subarray(ciphered.length - AEAD_TAG_LENGTH),
53
+ ciphertext: ciphered.subarray(0, ciphered.length - AEAD_TAG_LENGTH),
54
+ };
55
+ }
56
+ /**
57
+ * Decrypt ciphertext produced by {@link EciesSecp256k1.encrypt}.
58
+ * @param input - The encryption output plus the recipient's private key.
59
+ */
60
+ static decrypt(input) {
61
+ const { privateKey, ephemeralPublicKey, initializationVector, messageAuthenticationCode, ciphertext } = input;
62
+ // Decompress ephemeral public key (HKDF needs uncompressed form).
63
+ const ephemeralPubUncompressed = secp256k1.ProjectivePoint.fromHex(ephemeralPublicKey).toRawBytes(false);
64
+ // ECDH: shared point (uncompressed).
65
+ const sharedPointUncompressed = secp256k1.getSharedSecret(privateKey, ephemeralPublicKey, false);
66
+ // HKDF-SHA-256: derive 32-byte symmetric key (same derivation as encrypt).
67
+ const symmetricKey = hkdf(sha256, concatBytes(ephemeralPubUncompressed, sharedPointUncompressed), undefined, undefined, 32);
68
+ // AES-256-GCM decrypt: reconstruct the wire format (ciphertext || tag).
69
+ const ciphered = concatBytes(ciphertext, messageAuthenticationCode);
70
+ return gcm(symmetricKey, Uint8Array.from(initializationVector)).decrypt(ciphered);
71
+ }
72
+ /**
73
+ * Whether the ephemeral public key is compressed (always true for this implementation).
74
+ */
75
+ static get isEphemeralKeyCompressed() {
76
+ return true;
77
+ }
78
+ }
79
+ //# sourceMappingURL=ecies-secp256k1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecies-secp256k1.js","sourceRoot":"","sources":["../../../src/primitives/ecies-secp256k1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;GAEG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;GAEG;AACH,MAAM,YAAY,GAAG,EAAE,CAAC;AAwBxB;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,cAAc;IACzB;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,cAA0B,EAAE,SAAqB;QACrE,+BAA+B;QAC/B,MAAM,mBAAmB,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC/D,MAAM,sBAAsB,GAAG,SAAS,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACjF,MAAM,wBAAwB,GAAG,SAAS,CAAC,YAAY,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAEpF,qCAAqC;QACrC,MAAM,uBAAuB,GAAG,SAAS,CAAC,eAAe,CAAC,mBAAmB,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAEtG,8CAA8C;QAC9C,iGAAiG;QACjG,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAE5H,uBAAuB;QACvB,MAAM,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB;QAElF,OAAO;YACL,kBAAkB,EAAU,sBAAsB;YAClD,oBAAoB,EAAQ,KAAK;YACjC,yBAAyB,EAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC;YAChF,UAAU,EAAkB,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC;SACpF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,OAAO,CAAC,KAAoC;QACxD,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAE9G,kEAAkE;QAClE,MAAM,wBAAwB,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEzG,qCAAqC;QACrC,MAAM,uBAAuB,GAAG,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAEjG,2EAA2E;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAE5H,wEAAwE;QACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;QACpE,OAAO,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACI,MAAM,KAAK,wBAAwB;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -337,32 +337,25 @@ export class X25519 {
337
337
  });
338
338
  }
339
339
  /**
340
- * Computes an RFC6090-compliant Elliptic Curve Diffie-Hellman (ECDH) shared secret
341
- * using secp256k1 private and public keys in JSON Web Key (JWK) format.
340
+ * Computes an X25519 Elliptic Curve Diffie-Hellman (ECDH) shared secret
341
+ * using X25519 private and public keys in JSON Web Key (JWK) format.
342
342
  *
343
343
  * @remarks
344
344
  * This method facilitates the ECDH key agreement protocol, which is a method of securely
345
345
  * deriving a shared secret between two parties based on their private and public keys.
346
346
  * It takes the private key of one party (privateKeyA) and the public key of another
347
- * party (publicKeyB) to compute a shared secret. The shared secret is derived from the
348
- * x-coordinate of the elliptic curve point resulting from the multiplication of the
349
- * public key with the private key.
350
- *
351
- * Note: When performing Elliptic Curve Diffie-Hellman (ECDH) key agreement,
352
- * the resulting shared secret is a point on the elliptic curve, which
353
- * consists of an x-coordinate and a y-coordinate. With a 256-bit curve like
354
- * secp256k1, each of these coordinates is 32 bytes (256 bits) long. However,
355
- * in the ECDH process, it's standard practice to use only the x-coordinate
356
- * of the shared secret point as the resulting shared key. This is because
357
- * the y-coordinate does not add to the entropy of the key, and both parties
358
- * can independently compute the x-coordinate. Consquently, this implementation
359
- * omits the y-coordinate for simplicity and standard compliance.
347
+ * party (publicKeyB) to compute a shared secret. The shared secret is the raw output
348
+ * of the X25519 function as defined in RFC 7748.
349
+ *
350
+ * Note: Unlike Weierstrass curves (e.g., secp256k1), X25519 is a Montgomery curve
351
+ * where the ECDH output is a single 32-byte scalar value, not an (x, y) point.
352
+ * The result is used directly as the shared secret.
360
353
  *
361
354
  * @example
362
355
  * ```ts
363
356
  * const privateKeyA = { ... }; // A Jwk object for party A
364
357
  * const publicKeyB = { ... }; // A PublicKeyJwk object for party B
365
- * const sharedSecret = await Secp256k1.sharedSecret({
358
+ * const sharedSecret = await X25519.sharedSecret({
366
359
  * privateKeyA,
367
360
  * publicKeyB
368
361
  * });
@@ -1 +1 @@
1
- {"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../../src/primitives/x25519.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../../src/primitives/x25519.ts"],"names":[],"mappings":"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"}
package/dist/esm/utils.js CHANGED
@@ -162,4 +162,34 @@ export class CryptoUtils {
162
162
  return pin.toString().padStart(length, '0');
163
163
  }
164
164
  }
165
+ /**
166
+ * Type guard that checks whether the given object implements the {@link Cipher} interface.
167
+ */
168
+ export function isCipher(obj) {
169
+ return (obj !== null && typeof obj === 'object'
170
+ && 'encrypt' in obj && typeof obj.encrypt === 'function'
171
+ && 'decrypt' in obj && typeof obj.decrypt === 'function');
172
+ }
173
+ /**
174
+ * Type guard that checks whether the given object implements the {@link KeyExporter} interface.
175
+ */
176
+ export function isKeyExporter(obj) {
177
+ return (obj !== null && typeof obj === 'object'
178
+ && 'exportKey' in obj && typeof obj.exportKey === 'function');
179
+ }
180
+ /**
181
+ * Type guard that checks whether the given object implements the {@link KeyImporter} interface.
182
+ */
183
+ export function isKeyImporter(obj) {
184
+ return (obj !== null && typeof obj === 'object'
185
+ && 'importKey' in obj && typeof obj.importKey === 'function');
186
+ }
187
+ /**
188
+ * Type guard that checks whether the given object implements the {@link KeyWrapper} interface.
189
+ */
190
+ export function isKeyWrapper(obj) {
191
+ return (obj !== null && typeof obj === 'object'
192
+ && 'wrapKey' in obj && typeof obj.wrapKey === 'function'
193
+ && 'unwrapKey' in obj && typeof obj.unwrapKey === 'function');
194
+ }
165
195
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,7 @@ export interface AesCtrParams {
33
33
  * decryption features.
34
34
  *
35
35
  * This class is typically accessed through implementations that extend the
36
- * {@link CryptoApi | `CryptoApi`} interface.
36
+ * {@link DsaApi | `DsaApi`} interface.
37
37
  */
38
38
  export declare class AesCtrAlgorithm extends CryptoAlgorithm implements Cipher<EncryptParams & AesCtrParams, DecryptParams & AesCtrParams>, KeyGenerator<AesCtrGenerateKeyParams, Jwk> {
39
39
  /**
@@ -1,8 +1,9 @@
1
1
  import type { AES_GCM_TAG_LENGTHS } from '../primitives/aes-gcm.js';
2
2
  import type { Cipher } from '../types/cipher.js';
3
3
  import type { Jwk } from '../jose/jwk.js';
4
+ import type { KeyConverter } from '../types/key-converter.js';
4
5
  import type { KeyGenerator } from '../types/key-generator.js';
5
- import type { DecryptParams, EncryptParams, GenerateKeyParams } from '../types/params-direct.js';
6
+ import type { BytesToPrivateKeyParams, DecryptParams, EncryptParams, GenerateKeyParams, PrivateKeyToBytesParams } from '../types/params-direct.js';
6
7
  import { CryptoAlgorithm } from './crypto-algorithm.js';
7
8
  /**
8
9
  * The `AesGcmGenerateKeyParams` interface defines the algorithm-specific parameters that should be
@@ -56,9 +57,19 @@ export interface AesGcmParams {
56
57
  * key generation, encryption, and decryption features.
57
58
  *
58
59
  * This class is typically accessed through implementations that extend the
59
- * {@link CryptoApi | `CryptoApi`} interface.
60
+ * {@link DsaApi | `DsaApi`} interface.
60
61
  */
61
- export declare class AesGcmAlgorithm extends CryptoAlgorithm implements Cipher<AesGcmParams, AesGcmParams>, KeyGenerator<AesGcmGenerateKeyParams, Jwk> {
62
+ export declare class AesGcmAlgorithm extends CryptoAlgorithm implements Cipher<AesGcmParams, AesGcmParams>, KeyConverter, KeyGenerator<AesGcmGenerateKeyParams, Jwk> {
63
+ /**
64
+ * Converts a private key from a byte array to JWK format, setting the `alg` property based on
65
+ * the key length.
66
+ *
67
+ * @param params - The parameters for the private key conversion.
68
+ * @param params.privateKeyBytes - The raw private key as a Uint8Array.
69
+ *
70
+ * @returns A Promise that resolves to the private key in JWK format.
71
+ */
72
+ bytesToPrivateKey({ privateKeyBytes }: BytesToPrivateKeyParams): Promise<Jwk>;
62
73
  /**
63
74
  * Decrypts the provided data using AES-GCM.
64
75
  *
@@ -148,5 +159,14 @@ export declare class AesGcmAlgorithm extends CryptoAlgorithm implements Cipher<A
148
159
  * @returns A Promise that resolves to the generated symmetric key in JWK format.
149
160
  */
150
161
  generateKey({ algorithm }: AesGcmGenerateKeyParams): Promise<Jwk>;
162
+ /**
163
+ * Converts a private key from JWK format to a byte array.
164
+ *
165
+ * @param params - The parameters for the private key conversion.
166
+ * @param params.privateKey - The private key in JWK format.
167
+ *
168
+ * @returns A Promise that resolves to the private key as a Uint8Array.
169
+ */
170
+ privateKeyToBytes({ privateKey }: PrivateKeyToBytesParams): Promise<Uint8Array>;
151
171
  }
152
172
  //# sourceMappingURL=aes-gcm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aes-gcm.d.ts","sourceRoot":"","sources":["../../../src/algorithms/aes-gcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGjG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE;;;;;OAKG;IACH,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B;;;;;;;OAOG;IACH,EAAE,EAAE,UAAU,CAAC;IAEf;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;CAChD;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,eACnC,YAAW,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,EAClC,YAAY,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,OAAO,CAAC,MAAM,EACzB,aAAa,GAAG,YAAY,GAC3B,OAAO,CAAC,UAAU,CAAC;IAMtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,OAAO,CAAC,MAAM,EACzB,aAAa,GAAG,YAAY,GAC3B,OAAO,CAAC,UAAU,CAAC;IAMtB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,uBAAuB,GACtB,OAAO,CAAC,GAAG,CAAC;CAYhB"}
1
+ {"version":3,"file":"aes-gcm.d.ts","sourceRoot":"","sources":["../../../src/algorithms/aes-gcm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGnJ,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE;;;;;OAKG;IACH,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC;IAE5B;;;;;;;OAOG;IACH,EAAE,EAAE,UAAU,CAAC;IAEf;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;CAChD;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,eACnC,YAAW,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,EAClC,YAAY,EACZ,YAAY,CAAC,uBAAuB,EAAE,GAAG,CAAC;IAErD;;;;;;;;OAQG;IACU,iBAAiB,CAAC,EAAE,eAAe,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC;IAU1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,OAAO,CAAC,MAAM,EACzB,aAAa,GAAG,YAAY,GAC3B,OAAO,CAAC,UAAU,CAAC;IAMtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,OAAO,CAAC,MAAM,EACzB,aAAa,GAAG,YAAY,GAC3B,OAAO,CAAC,UAAU,CAAC;IAMtB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,uBAAuB,GACtB,OAAO,CAAC,GAAG,CAAC;IAaf;;;;;;;OAOG;IACU,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;CAM7F"}
@@ -0,0 +1,129 @@
1
+ import type { Jwk } from '../jose/jwk.js';
2
+ import type { KeyConverter } from '../types/key-converter.js';
3
+ import type { KeyGenerator } from '../types/key-generator.js';
4
+ import type { KeyWrapper } from '../types/key-wrapper.js';
5
+ import type { RequireOnly } from '@enbox/common';
6
+ import type { BytesToPrivateKeyParams, GenerateKeyParams, PrivateKeyToBytesParams, UnwrapKeyParams, WrapKeyParams } from '../types/params-direct.js';
7
+ import { CryptoAlgorithm } from './crypto-algorithm.js';
8
+ /**
9
+ * The `AesKwGenerateKeyParams` interface defines the algorithm-specific parameters that should be
10
+ * passed into the `generateKey()` method when using the AES-KW algorithm.
11
+ */
12
+ export interface AesKwGenerateKeyParams extends GenerateKeyParams {
13
+ /** Specifies the algorithm variant for key generation in AES-KW mode.
14
+ * The value determines the length of the key to be generated and must be one of the following:
15
+ * - `"A128KW"`: AES Key Wrap using a 128-bit key.
16
+ * - `"A192KW"`: AES Key Wrap using a 192-bit key.
17
+ * - `"A256KW"`: AES Key Wrap using a 256-bit key.
18
+ */
19
+ algorithm: 'A128KW' | 'A192KW' | 'A256KW';
20
+ }
21
+ /**
22
+ * The `AesKwAlgorithm` class provides a concrete implementation for cryptographic operations using
23
+ * the AES algorithm for key wrapping. This class implements both
24
+ * {@link KeyGenerator | `KeyGenerator`} and {@link KeyWrapper | `KeyWrapper`} interfaces, providing
25
+ * key generation, key wrapping, and key unwrapping features.
26
+ *
27
+ * This class is typically accessed through implementations that extend the
28
+ * {@link DsaApi | `DsaApi`} interface.
29
+ */
30
+ export declare class AesKwAlgorithm extends CryptoAlgorithm implements KeyConverter, KeyGenerator<AesKwGenerateKeyParams, Jwk>, KeyWrapper<WrapKeyParams, UnwrapKeyParams> {
31
+ /**
32
+ * Converts a private key from a byte array to JWK format, setting the `alg` property based on
33
+ * the key length.
34
+ *
35
+ * @param params - The parameters for the private key conversion.
36
+ * @param params.privateKeyBytes - The raw private key as a Uint8Array.
37
+ *
38
+ * @returns A Promise that resolves to the private key in JWK format.
39
+ */
40
+ bytesToPrivateKey({ privateKeyBytes }: RequireOnly<BytesToPrivateKeyParams, 'privateKeyBytes'>): Promise<Jwk>;
41
+ /**
42
+ * Generates a symmetric key for AES for key wrapping in JSON Web Key (JWK) format.
43
+ *
44
+ * @remarks
45
+ * This method generates a symmetric AES key for use in key wrapping mode, based on the specified
46
+ * `algorithm` parameter which determines the key length. It uses cryptographically secure random
47
+ * number generation to ensure the uniqueness and security of the key. The key is returned in JWK
48
+ * format.
49
+ *
50
+ * The generated key includes the following components:
51
+ * - `kty`: Key Type, set to 'oct' for Octet Sequence.
52
+ * - `k`: The symmetric key component, base64url-encoded.
53
+ * - `kid`: Key ID, generated based on the JWK thumbprint.
54
+ * - `alg`: Algorithm, set to 'A128KW', 'A192KW', or 'A256KW' for AES Key Wrap with the
55
+ * specified key length.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const aesKw = new AesKwAlgorithm();
60
+ * const privateKey = await aesKw.generateKey({ algorithm: 'A256KW' });
61
+ * ```
62
+ *
63
+ * @param params - The parameters for the key generation.
64
+ *
65
+ * @returns A Promise that resolves to the generated symmetric key in JWK format.
66
+ */
67
+ generateKey({ algorithm }: AesKwGenerateKeyParams): Promise<Jwk>;
68
+ /**
69
+ * Converts a private key from JWK format to a byte array.
70
+ *
71
+ * @param params - The parameters for the private key conversion.
72
+ * @param params.privateKey - The private key in JWK format.
73
+ *
74
+ * @returns A Promise that resolves to the private key as a Uint8Array.
75
+ */
76
+ privateKeyToBytes({ privateKey }: PrivateKeyToBytesParams): Promise<Uint8Array>;
77
+ /**
78
+ * Decrypts a wrapped key using the AES Key Wrap algorithm.
79
+ *
80
+ * @remarks
81
+ * This method unwraps a previously wrapped cryptographic key using the AES Key Wrap algorithm.
82
+ * The wrapped key, provided as a byte array, is unwrapped using the decryption key specified in
83
+ * the parameters.
84
+ *
85
+ * This operation is useful for securely receiving keys transmitted over untrusted mediums. The
86
+ * method returns the unwrapped key as a JSON Web Key (JWK).
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * const aesKw = new AesKwAlgorithm();
91
+ * const wrappedKeyBytes = new Uint8Array([...]); // Byte array of a wrapped AES-256 GCM key
92
+ * const decryptionKey = { ... }; // A Jwk object representing the AES unwrapping key
93
+ * const unwrappedKey = await aesKw.unwrapKey({
94
+ * wrappedKeyBytes,
95
+ * wrappedKeyAlgorithm: 'A256GCM',
96
+ * decryptionKey
97
+ * });
98
+ * ```
99
+ *
100
+ * @param params - The parameters for the key unwrapping operation.
101
+ *
102
+ * @returns A Promise that resolves to the unwrapped key in JWK format.
103
+ */
104
+ unwrapKey(params: UnwrapKeyParams): Promise<Jwk>;
105
+ /**
106
+ * Encrypts a given key using the AES Key Wrap algorithm.
107
+ *
108
+ * @remarks
109
+ * This method wraps a given cryptographic key using the AES Key Wrap algorithm. The private key
110
+ * to be wrapped is provided in the form of a JSON Web Key (JWK).
111
+ *
112
+ * This operation is useful for securely transmitting keys over untrusted mediums. The method
113
+ * returns the wrapped key as a byte array.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * const aesKw = new AesKwAlgorithm();
118
+ * const unwrappedKey = { ... }; // A Jwk object representing the key to be wrapped
119
+ * const encryptionKey = { ... }; // A Jwk object representing the AES wrapping key
120
+ * const wrappedKeyBytes = await aesKw.wrapKey({ unwrappedKey, encryptionKey });
121
+ * ```
122
+ *
123
+ * @param params - The parameters for the key wrapping operation.
124
+ *
125
+ * @returns A Promise that resolves to the wrapped key as a Uint8Array.
126
+ */
127
+ wrapKey(params: WrapKeyParams): Promise<Uint8Array>;
128
+ }
129
+ //# sourceMappingURL=aes-kw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aes-kw.d.ts","sourceRoot":"","sources":["../../../src/algorithms/aes-kw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAGrJ,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D;;;;;OAKG;IACH,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,eAClC,YAAW,YAAY,EACZ,YAAY,CAAC,sBAAsB,EAAE,GAAG,CAAC,EACzC,UAAU,CAAC,aAAa,EAAE,eAAe,CAAC;IAErD;;;;;;;;OAQG;IACU,iBAAiB,CAAC,EAAE,eAAe,EAAE,EAChD,WAAW,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,GACtD,OAAO,CAAC,GAAG,CAAC;IAUf;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,WAAW,CAAC,EAAE,SAAS,EAAE,EACpC,sBAAsB,GACrB,OAAO,CAAC,GAAG,CAAC;IAaf;;;;;;;OAOG;IACU,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAC3C,uBAAuB,GACtB,OAAO,CAAC,UAAU,CAAC;IAOtB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,SAAS,CAAC,MAAM,EAC3B,eAAe,GACd,OAAO,CAAC,GAAG,CAAC;IAMf;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,OAAO,CAAC,MAAM,EACzB,aAAa,GACZ,OAAO,CAAC,UAAU,CAAC;CAKvB"}
@@ -1,7 +1,8 @@
1
1
  import type { AsymmetricKeyGenerator } from '../types/key-generator.js';
2
2
  import type { Jwk } from '../jose/jwk.js';
3
3
  import type { Signer } from '../types/signer.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,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,EACV,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,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;;;;;;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
1
  import type { AsymmetricKeyGenerator } from '../types/key-generator.js';
2
2
  import type { Jwk } from '../jose/jwk.js';
3
3
  import type { Signer } from '../types/signer.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 `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,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,EACV,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;;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