@libp2p/crypto 4.1.9 → 5.0.0-1210884ed

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 (192) hide show
  1. package/dist/index.min.js +4 -5
  2. package/dist/src/ciphers/aes-gcm.browser.js +1 -1
  3. package/dist/src/ciphers/aes-gcm.browser.js.map +1 -1
  4. package/dist/src/ciphers/index.d.ts +2 -0
  5. package/dist/src/ciphers/index.d.ts.map +1 -0
  6. package/dist/src/ciphers/index.js +2 -0
  7. package/dist/src/ciphers/index.js.map +1 -0
  8. package/dist/src/errors.d.ts +19 -0
  9. package/dist/src/errors.d.ts.map +1 -0
  10. package/dist/src/errors.js +28 -0
  11. package/dist/src/errors.js.map +1 -0
  12. package/dist/src/hmac/{index-browser.d.ts → index.browser.d.ts} +1 -1
  13. package/dist/src/hmac/{index-browser.d.ts.map → index.browser.d.ts.map} +1 -1
  14. package/dist/src/hmac/{index-browser.js → index.browser.js} +2 -2
  15. package/dist/src/hmac/{index-browser.js.map → index.browser.js.map} +1 -1
  16. package/dist/src/keys/ecdh/index.browser.d.ts +4 -0
  17. package/dist/src/keys/ecdh/index.browser.d.ts.map +1 -0
  18. package/dist/src/keys/{ecdh-browser.js → ecdh/index.browser.js} +13 -11
  19. package/dist/src/keys/ecdh/index.browser.js.map +1 -0
  20. package/dist/src/keys/{ecdh.d.ts → ecdh/index.d.ts} +4 -3
  21. package/dist/src/keys/ecdh/index.d.ts.map +1 -0
  22. package/dist/src/keys/{ecdh.js → ecdh/index.js} +4 -4
  23. package/dist/src/keys/ecdh/index.js.map +1 -0
  24. package/dist/src/keys/ed25519/ed25519.d.ts +23 -0
  25. package/dist/src/keys/ed25519/ed25519.d.ts.map +1 -0
  26. package/dist/src/keys/ed25519/ed25519.js +54 -0
  27. package/dist/src/keys/ed25519/ed25519.js.map +1 -0
  28. package/dist/src/keys/{ed25519-browser.d.ts → ed25519/index.browser.d.ts} +2 -2
  29. package/dist/src/keys/ed25519/index.browser.d.ts.map +1 -0
  30. package/dist/src/keys/{ed25519-browser.js → ed25519/index.browser.js} +1 -1
  31. package/dist/src/keys/ed25519/index.browser.js.map +1 -0
  32. package/dist/src/keys/{ed25519.d.ts → ed25519/index.d.ts} +2 -2
  33. package/dist/src/keys/ed25519/index.d.ts.map +1 -0
  34. package/dist/src/keys/{ed25519.js → ed25519/index.js} +1 -1
  35. package/dist/src/keys/ed25519/index.js.map +1 -0
  36. package/dist/src/keys/ed25519/utils.d.ts +7 -0
  37. package/dist/src/keys/ed25519/utils.d.ts.map +1 -0
  38. package/dist/src/keys/ed25519/utils.js +36 -0
  39. package/dist/src/keys/ed25519/utils.js.map +1 -0
  40. package/dist/src/keys/ephemeral-keys.d.ts +2 -2
  41. package/dist/src/keys/ephemeral-keys.d.ts.map +1 -1
  42. package/dist/src/keys/ephemeral-keys.js +2 -2
  43. package/dist/src/keys/ephemeral-keys.js.map +1 -1
  44. package/dist/src/keys/index.d.ts +33 -36
  45. package/dist/src/keys/index.d.ts.map +1 -1
  46. package/dist/src/keys/index.js +93 -83
  47. package/dist/src/keys/index.js.map +1 -1
  48. package/dist/src/keys/key-stretcher.d.ts.map +1 -1
  49. package/dist/src/keys/key-stretcher.js +9 -7
  50. package/dist/src/keys/key-stretcher.js.map +1 -1
  51. package/dist/src/keys/keys.d.ts +4 -4
  52. package/dist/src/keys/keys.d.ts.map +1 -1
  53. package/dist/src/keys/keys.js +21 -15
  54. package/dist/src/keys/keys.js.map +1 -1
  55. package/dist/src/keys/rsa/index.browser.d.ts +11 -0
  56. package/dist/src/keys/rsa/index.browser.d.ts.map +1 -0
  57. package/dist/src/keys/{rsa-browser.js → rsa/index.browser.js} +10 -39
  58. package/dist/src/keys/rsa/index.browser.js.map +1 -0
  59. package/dist/src/keys/rsa/index.d.ts +11 -0
  60. package/dist/src/keys/rsa/index.d.ts.map +1 -0
  61. package/dist/src/keys/{rsa.js → rsa/index.js} +8 -22
  62. package/dist/src/keys/rsa/index.js.map +1 -0
  63. package/dist/src/keys/rsa/rsa.d.ts +28 -0
  64. package/dist/src/keys/rsa/rsa.d.ts.map +1 -0
  65. package/dist/src/keys/rsa/rsa.js +65 -0
  66. package/dist/src/keys/rsa/rsa.js.map +1 -0
  67. package/dist/src/keys/rsa/utils.d.ts +34 -0
  68. package/dist/src/keys/rsa/utils.d.ts.map +1 -0
  69. package/dist/src/keys/rsa/utils.js +193 -0
  70. package/dist/src/keys/rsa/utils.js.map +1 -0
  71. package/dist/src/keys/secp256k1/index.browser.d.ts +10 -0
  72. package/dist/src/keys/secp256k1/index.browser.d.ts.map +1 -0
  73. package/dist/src/keys/secp256k1/index.browser.js +41 -0
  74. package/dist/src/keys/secp256k1/index.browser.js.map +1 -0
  75. package/dist/src/keys/secp256k1/index.d.ts +10 -0
  76. package/dist/src/keys/secp256k1/index.d.ts.map +1 -0
  77. package/dist/src/keys/secp256k1/index.js +47 -0
  78. package/dist/src/keys/secp256k1/index.js.map +1 -0
  79. package/dist/src/keys/secp256k1/secp256k1.d.ts +24 -0
  80. package/dist/src/keys/secp256k1/secp256k1.d.ts.map +1 -0
  81. package/dist/src/keys/secp256k1/secp256k1.js +53 -0
  82. package/dist/src/keys/secp256k1/secp256k1.js.map +1 -0
  83. package/dist/src/keys/secp256k1/utils.d.ts +13 -0
  84. package/dist/src/keys/secp256k1/utils.d.ts.map +1 -0
  85. package/dist/src/keys/secp256k1/utils.js +53 -0
  86. package/dist/src/keys/secp256k1/utils.js.map +1 -0
  87. package/dist/src/pbkdf2.js +2 -2
  88. package/dist/src/pbkdf2.js.map +1 -1
  89. package/dist/src/random-bytes.js +2 -2
  90. package/dist/src/random-bytes.js.map +1 -1
  91. package/dist/src/webcrypto/index.d.ts +3 -0
  92. package/dist/src/webcrypto/index.d.ts.map +1 -0
  93. package/dist/src/webcrypto/index.js +3 -0
  94. package/dist/src/webcrypto/index.js.map +1 -0
  95. package/dist/src/{webcrypto-browser.d.ts → webcrypto/webcrypto.browser.d.ts} +1 -1
  96. package/dist/src/webcrypto/webcrypto.browser.d.ts.map +1 -0
  97. package/dist/src/{webcrypto-browser.js → webcrypto/webcrypto.browser.js} +4 -3
  98. package/dist/src/webcrypto/webcrypto.browser.js.map +1 -0
  99. package/dist/src/webcrypto/webcrypto.d.ts.map +1 -0
  100. package/dist/src/webcrypto/webcrypto.js.map +1 -0
  101. package/package.json +16 -8
  102. package/src/ciphers/aes-gcm.browser.ts +1 -1
  103. package/src/ciphers/index.ts +1 -0
  104. package/src/errors.ts +29 -0
  105. package/src/hmac/{index-browser.ts → index.browser.ts} +1 -1
  106. package/src/keys/{ecdh-browser.ts → ecdh/index.browser.ts} +16 -13
  107. package/src/keys/{ecdh.ts → ecdh/index.ts} +6 -4
  108. package/src/keys/ed25519/ed25519.ts +68 -0
  109. package/src/keys/{ed25519-browser.ts → ed25519/index.browser.ts} +1 -1
  110. package/src/keys/{ed25519.ts → ed25519/index.ts} +1 -1
  111. package/src/keys/ed25519/utils.ts +42 -0
  112. package/src/keys/ephemeral-keys.ts +2 -2
  113. package/src/keys/index.ts +110 -92
  114. package/src/keys/key-stretcher.ts +15 -8
  115. package/src/keys/keys.proto +1 -1
  116. package/src/keys/keys.ts +21 -16
  117. package/src/keys/{rsa-browser.ts → rsa/index.browser.ts} +10 -56
  118. package/src/keys/{rsa.ts → rsa/index.ts} +8 -23
  119. package/src/keys/rsa/rsa.ts +83 -0
  120. package/src/keys/rsa/utils.ts +235 -0
  121. package/src/keys/secp256k1/index.browser.ts +45 -0
  122. package/src/keys/secp256k1/index.ts +51 -0
  123. package/src/keys/secp256k1/secp256k1.ts +68 -0
  124. package/src/keys/secp256k1/utils.ts +63 -0
  125. package/src/pbkdf2.ts +2 -2
  126. package/src/random-bytes.ts +2 -2
  127. package/src/webcrypto/index.ts +3 -0
  128. package/src/webcrypto/webcrypto.browser.ts +23 -0
  129. package/dist/src/keys/ecdh-browser.d.ts +0 -3
  130. package/dist/src/keys/ecdh-browser.d.ts.map +0 -1
  131. package/dist/src/keys/ecdh-browser.js.map +0 -1
  132. package/dist/src/keys/ecdh.d.ts.map +0 -1
  133. package/dist/src/keys/ecdh.js.map +0 -1
  134. package/dist/src/keys/ed25519-browser.d.ts.map +0 -1
  135. package/dist/src/keys/ed25519-browser.js.map +0 -1
  136. package/dist/src/keys/ed25519-class.d.ts +0 -42
  137. package/dist/src/keys/ed25519-class.d.ts.map +0 -1
  138. package/dist/src/keys/ed25519-class.js +0 -133
  139. package/dist/src/keys/ed25519-class.js.map +0 -1
  140. package/dist/src/keys/ed25519.d.ts.map +0 -1
  141. package/dist/src/keys/ed25519.js.map +0 -1
  142. package/dist/src/keys/exporter.d.ts +0 -8
  143. package/dist/src/keys/exporter.d.ts.map +0 -1
  144. package/dist/src/keys/exporter.js +0 -13
  145. package/dist/src/keys/exporter.js.map +0 -1
  146. package/dist/src/keys/importer.d.ts +0 -7
  147. package/dist/src/keys/importer.d.ts.map +0 -1
  148. package/dist/src/keys/importer.js +0 -13
  149. package/dist/src/keys/importer.js.map +0 -1
  150. package/dist/src/keys/rsa-browser.d.ts +0 -12
  151. package/dist/src/keys/rsa-browser.d.ts.map +0 -1
  152. package/dist/src/keys/rsa-browser.js.map +0 -1
  153. package/dist/src/keys/rsa-class.d.ts +0 -46
  154. package/dist/src/keys/rsa-class.d.ts.map +0 -1
  155. package/dist/src/keys/rsa-class.js +0 -135
  156. package/dist/src/keys/rsa-class.js.map +0 -1
  157. package/dist/src/keys/rsa-utils.d.ts +0 -20
  158. package/dist/src/keys/rsa-utils.d.ts.map +0 -1
  159. package/dist/src/keys/rsa-utils.js +0 -330
  160. package/dist/src/keys/rsa-utils.js.map +0 -1
  161. package/dist/src/keys/rsa.d.ts +0 -12
  162. package/dist/src/keys/rsa.d.ts.map +0 -1
  163. package/dist/src/keys/rsa.js.map +0 -1
  164. package/dist/src/keys/secp256k1-browser.d.ts +0 -18
  165. package/dist/src/keys/secp256k1-browser.d.ts.map +0 -1
  166. package/dist/src/keys/secp256k1-browser.js +0 -78
  167. package/dist/src/keys/secp256k1-browser.js.map +0 -1
  168. package/dist/src/keys/secp256k1-class.d.ts +0 -39
  169. package/dist/src/keys/secp256k1-class.d.ts.map +0 -1
  170. package/dist/src/keys/secp256k1-class.js +0 -109
  171. package/dist/src/keys/secp256k1-class.js.map +0 -1
  172. package/dist/src/keys/secp256k1.d.ts +0 -18
  173. package/dist/src/keys/secp256k1.d.ts.map +0 -1
  174. package/dist/src/keys/secp256k1.js +0 -84
  175. package/dist/src/keys/secp256k1.js.map +0 -1
  176. package/dist/src/webcrypto-browser.d.ts.map +0 -1
  177. package/dist/src/webcrypto-browser.js.map +0 -1
  178. package/dist/src/webcrypto.d.ts.map +0 -1
  179. package/dist/src/webcrypto.js.map +0 -1
  180. package/dist/typedoc-urls.json +0 -40
  181. package/src/keys/ed25519-class.ts +0 -160
  182. package/src/keys/exporter.ts +0 -14
  183. package/src/keys/importer.ts +0 -13
  184. package/src/keys/rsa-class.ts +0 -172
  185. package/src/keys/rsa-utils.ts +0 -408
  186. package/src/keys/secp256k1-browser.ts +0 -87
  187. package/src/keys/secp256k1-class.ts +0 -133
  188. package/src/keys/secp256k1.ts +0 -93
  189. package/src/webcrypto-browser.ts +0 -24
  190. /package/dist/src/{webcrypto.d.ts → webcrypto/webcrypto.d.ts} +0 -0
  191. /package/dist/src/{webcrypto.js → webcrypto/webcrypto.js} +0 -0
  192. /package/src/{webcrypto.ts → webcrypto/webcrypto.ts} +0 -0
@@ -9,60 +9,57 @@
9
9
  *
10
10
  * For encryption / decryption support, RSA keys should be used.
11
11
  */
12
- import * as Ed25519 from './ed25519-class.js';
13
- import generateEphemeralKeyPair from './ephemeral-keys.js';
14
- import { keyStretcher } from './key-stretcher.js';
15
- import * as keysPBM from './keys.js';
16
- import * as RSA from './rsa-class.js';
17
- import * as Secp256k1 from './secp256k1-class.js';
18
- import type { PrivateKey, PublicKey, KeyType as KeyTypes } from '@libp2p/interface';
19
- export { keyStretcher };
20
- export { generateEphemeralKeyPair };
21
- export { keysPBM };
22
- export type { KeyTypes };
23
- export { RsaPrivateKey, RsaPublicKey, MAX_RSA_KEY_SIZE } from './rsa-class.js';
24
- export { Ed25519PrivateKey, Ed25519PublicKey } from './ed25519-class.js';
25
- export { Secp256k1PrivateKey, Secp256k1PublicKey } from './secp256k1-class.js';
26
- export type { JWKKeyPair } from './interface.js';
27
- export declare const supportedKeys: {
28
- rsa: typeof RSA;
29
- ed25519: typeof Ed25519;
30
- secp256k1: typeof Secp256k1;
31
- };
12
+ import type { PrivateKey, PublicKey, KeyType, RSAPrivateKey, Secp256k1PrivateKey, Ed25519PrivateKey, Secp256k1PublicKey, Ed25519PublicKey } from '@libp2p/interface';
13
+ import type { MultihashDigest } from 'multiformats';
14
+ export { generateEphemeralKeyPair } from './ecdh/index.js';
15
+ export { keyStretcher } from './key-stretcher.js';
32
16
  /**
33
17
  * Generates a keypair of the given type and bitsize
34
18
  */
35
- export declare function generateKeyPair<T extends KeyTypes>(type: T, bits?: number): Promise<PrivateKey<T>>;
19
+ export declare function generateKeyPair(type: 'Ed25519'): Promise<Ed25519PrivateKey>;
20
+ export declare function generateKeyPair(type: 'secp256k1'): Promise<Secp256k1PrivateKey>;
21
+ export declare function generateKeyPair(type: 'RSA', bits?: number): Promise<RSAPrivateKey>;
22
+ export declare function generateKeyPair(type: KeyType, bits?: number): Promise<PrivateKey>;
36
23
  /**
37
- * Generates a keypair of the given type and bitsize.
24
+ * Generates a keypair of the given type from the passed seed. Currently only
25
+ * supports Ed25519 keys.
38
26
  *
39
27
  * Seed is a 32 byte uint8array
40
28
  */
41
- export declare function generateKeyPairFromSeed<T extends KeyTypes>(type: T, seed: Uint8Array, bits?: number): Promise<PrivateKey<T>>;
29
+ export declare function generateKeyPairFromSeed(type: 'Ed25519', seed: Uint8Array): Promise<Ed25519PrivateKey>;
30
+ export declare function generateKeyPairFromSeed<T extends KeyType>(type: T, seed: Uint8Array, bits?: number): Promise<never>;
42
31
  /**
43
32
  * Converts a protobuf serialized public key into its representative object
44
33
  */
45
- export declare function unmarshalPublicKey<T extends KeyTypes>(buf: Uint8Array): PublicKey<T>;
34
+ export declare function publicKeyFromProtobuf(buf: Uint8Array): PublicKey;
35
+ /**
36
+ * Creates a public key from the raw key bytes
37
+ */
38
+ export declare function publicKeyFromRaw(buf: Uint8Array): PublicKey;
39
+ /**
40
+ * Creates a public key from an identity multihash which contains a protobuf
41
+ * encoded Ed25519 or secp256k1 public key.
42
+ *
43
+ * RSA keys are not supported as in practice we they are not stored in identity
44
+ * multihashes since the hash would be very large.
45
+ */
46
+ export declare function publicKeyFromMultihash(digest: MultihashDigest<0x0>): Ed25519PublicKey | Secp256k1PublicKey;
46
47
  /**
47
48
  * Converts a public key object into a protobuf serialized public key
48
49
  */
49
- export declare function marshalPublicKey(key: {
50
- bytes: Uint8Array;
51
- }, type?: string): Uint8Array;
50
+ export declare function publicKeyToProtobuf(key: PublicKey): Uint8Array;
52
51
  /**
53
52
  * Converts a protobuf serialized private key into its representative object
54
53
  */
55
- export declare function unmarshalPrivateKey<T extends KeyTypes>(buf: Uint8Array): Promise<PrivateKey<T>>;
54
+ export declare function privateKeyFromProtobuf(buf: Uint8Array): Ed25519PrivateKey | Secp256k1PrivateKey | RSAPrivateKey;
56
55
  /**
57
- * Converts a private key object into a protobuf serialized private key
56
+ * Creates a private key from the raw key bytes. For Ed25519 keys this requires
57
+ * the public key to be appended to the private key otherwise we can't
58
+ * differentiate between Ed25519 and secp256k1 keys as they are the same length.
58
59
  */
59
- export declare function marshalPrivateKey(key: {
60
- bytes: Uint8Array;
61
- }, type?: string): Uint8Array;
60
+ export declare function privateKeyFromRaw(buf: Uint8Array): PrivateKey;
62
61
  /**
63
- * Converts an exported private key into its representative object.
64
- *
65
- * Supported formats are 'pem' (RSA only) and 'libp2p-key'.
62
+ * Converts a private key object into a protobuf serialized private key
66
63
  */
67
- export declare function importKey<T extends KeyTypes>(encryptedKey: string, password: string): Promise<PrivateKey<T>>;
64
+ export declare function privateKeyToProtobuf(key: PrivateKey): Uint8Array;
68
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,wBAAwB,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEnF,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,OAAO,EAAE,wBAAwB,EAAE,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,YAAY,EAAE,QAAQ,EAAE,CAAA;AAExB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9E,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,eAAO,MAAM,aAAa;;;;CAIzB,CAAA;AAiBD;;GAEG;AACH,wBAAsB,eAAe,CAAE,CAAC,SAAS,QAAQ,EAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAE1G;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAE,CAAC,SAAS,QAAQ,EAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAMpI;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAE,CAAC,SAAS,QAAQ,EAAG,GAAG,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CActF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,GAAG,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAIvF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAE,CAAC,SAAS,QAAQ,EAAG,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAcvG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,GAAG,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAIxF;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAE,CAAC,SAAS,QAAQ,EAAG,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAapH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpK,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD;;GAEG;AACH,wBAAsB,eAAe,CAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AACnF,wBAAsB,eAAe,CAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AACvF,wBAAsB,eAAe,CAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC1F,wBAAsB,eAAe,CAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAiBzF;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC7G,wBAAsB,uBAAuB,CAAE,CAAC,SAAS,OAAO,EAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAS5H;;GAEG;AACH,wBAAgB,qBAAqB,CAAE,GAAG,EAAE,UAAU,GAAG,SAAS,CAcjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,UAAU,GAAG,SAAS,CAQ5D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,kBAAkB,CAY3G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAE,GAAG,EAAE,SAAS,GAAG,UAAU,CAK/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAE,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,CAchH;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAQ9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAKjE"}
@@ -9,120 +9,130 @@
9
9
  *
10
10
  * For encryption / decryption support, RSA keys should be used.
11
11
  */
12
- import { CodeError } from '@libp2p/interface';
13
- import * as Ed25519 from './ed25519-class.js';
14
- import generateEphemeralKeyPair from './ephemeral-keys.js';
15
- import { importer } from './importer.js';
16
- import { keyStretcher } from './key-stretcher.js';
17
- import * as keysPBM from './keys.js';
18
- import * as RSA from './rsa-class.js';
19
- import { importFromPem } from './rsa-utils.js';
20
- import * as Secp256k1 from './secp256k1-class.js';
21
- export { keyStretcher };
22
- export { generateEphemeralKeyPair };
23
- export { keysPBM };
24
- export { RsaPrivateKey, RsaPublicKey, MAX_RSA_KEY_SIZE } from './rsa-class.js';
25
- export { Ed25519PrivateKey, Ed25519PublicKey } from './ed25519-class.js';
26
- export { Secp256k1PrivateKey, Secp256k1PublicKey } from './secp256k1-class.js';
27
- export const supportedKeys = {
28
- rsa: RSA,
29
- ed25519: Ed25519,
30
- secp256k1: Secp256k1
31
- };
32
- function unsupportedKey(type) {
33
- const supported = Object.keys(supportedKeys).join(' / ');
34
- return new CodeError(`invalid or unsupported key type ${type}. Must be ${supported}`, 'ERR_UNSUPPORTED_KEY_TYPE');
12
+ import { UnsupportedKeyTypeError } from '@libp2p/interface';
13
+ import { generateEd25519KeyPair, generateEd25519KeyPairFromSeed, unmarshalEd25519PrivateKey, unmarshalEd25519PublicKey } from './ed25519/utils.js';
14
+ import * as pb from './keys.js';
15
+ import { pkcs1ToRSAPrivateKey, pkixToRSAPublicKey, generateRSAKeyPair } from './rsa/utils.js';
16
+ import { generateSecp256k1KeyPair, unmarshalSecp256k1PrivateKey, unmarshalSecp256k1PublicKey } from './secp256k1/utils.js';
17
+ export { generateEphemeralKeyPair } from './ecdh/index.js';
18
+ export { keyStretcher } from './key-stretcher.js';
19
+ export async function generateKeyPair(type, bits) {
20
+ if (type === 'Ed25519') {
21
+ return generateEd25519KeyPair();
22
+ }
23
+ if (type === 'secp256k1') {
24
+ return generateSecp256k1KeyPair();
25
+ }
26
+ if (type === 'RSA') {
27
+ return generateRSAKeyPair(bits ?? 2048);
28
+ }
29
+ throw new UnsupportedKeyTypeError();
35
30
  }
36
- function typeToKey(type) {
37
- type = type.toLowerCase();
38
- if (type === 'rsa' || type === 'ed25519' || type === 'secp256k1') {
39
- return supportedKeys[type];
31
+ export async function generateKeyPairFromSeed(type, seed) {
32
+ if (type !== 'Ed25519') {
33
+ throw new UnsupportedKeyTypeError('Seed key derivation only supported for Ed25519 keys');
40
34
  }
41
- throw unsupportedKey(type);
35
+ return generateEd25519KeyPairFromSeed(seed);
42
36
  }
43
37
  /**
44
- * Generates a keypair of the given type and bitsize
38
+ * Converts a protobuf serialized public key into its representative object
45
39
  */
46
- export async function generateKeyPair(type, bits) {
47
- return typeToKey(type).generateKeyPair(bits ?? 2048);
40
+ export function publicKeyFromProtobuf(buf) {
41
+ const { Type, Data } = pb.PublicKey.decode(buf);
42
+ const data = Data ?? new Uint8Array();
43
+ switch (Type) {
44
+ case pb.KeyType.RSA:
45
+ return pkixToRSAPublicKey(data);
46
+ case pb.KeyType.Ed25519:
47
+ return unmarshalEd25519PublicKey(data);
48
+ case pb.KeyType.secp256k1:
49
+ return unmarshalSecp256k1PublicKey(data);
50
+ default:
51
+ throw new UnsupportedKeyTypeError();
52
+ }
48
53
  }
49
54
  /**
50
- * Generates a keypair of the given type and bitsize.
51
- *
52
- * Seed is a 32 byte uint8array
55
+ * Creates a public key from the raw key bytes
53
56
  */
54
- export async function generateKeyPairFromSeed(type, seed, bits) {
55
- if (type.toLowerCase() !== 'ed25519') {
56
- throw new CodeError('Seed key derivation is unimplemented for RSA or secp256k1', 'ERR_UNSUPPORTED_KEY_DERIVATION_TYPE');
57
+ export function publicKeyFromRaw(buf) {
58
+ if (buf.byteLength === 32) {
59
+ return unmarshalEd25519PublicKey(buf);
60
+ }
61
+ else if (buf.byteLength === 33) {
62
+ return unmarshalSecp256k1PublicKey(buf);
63
+ }
64
+ else {
65
+ return pkixToRSAPublicKey(buf);
57
66
  }
58
- return Ed25519.generateKeyPairFromSeed(seed);
59
67
  }
60
68
  /**
61
- * Converts a protobuf serialized public key into its representative object
69
+ * Creates a public key from an identity multihash which contains a protobuf
70
+ * encoded Ed25519 or secp256k1 public key.
71
+ *
72
+ * RSA keys are not supported as in practice we they are not stored in identity
73
+ * multihashes since the hash would be very large.
62
74
  */
63
- export function unmarshalPublicKey(buf) {
64
- const decoded = keysPBM.PublicKey.decode(buf);
65
- const data = decoded.Data ?? new Uint8Array();
66
- switch (decoded.Type) {
67
- case keysPBM.KeyType.RSA:
68
- return supportedKeys.rsa.unmarshalRsaPublicKey(data);
69
- case keysPBM.KeyType.Ed25519:
70
- return supportedKeys.ed25519.unmarshalEd25519PublicKey(data);
71
- case keysPBM.KeyType.Secp256k1:
72
- return supportedKeys.secp256k1.unmarshalSecp256k1PublicKey(data);
75
+ export function publicKeyFromMultihash(digest) {
76
+ const { Type, Data } = pb.PublicKey.decode(digest.digest);
77
+ const data = Data ?? new Uint8Array();
78
+ switch (Type) {
79
+ case pb.KeyType.Ed25519:
80
+ return unmarshalEd25519PublicKey(data);
81
+ case pb.KeyType.secp256k1:
82
+ return unmarshalSecp256k1PublicKey(data);
73
83
  default:
74
- throw unsupportedKey(decoded.Type ?? 'unknown');
84
+ throw new UnsupportedKeyTypeError();
75
85
  }
76
86
  }
77
87
  /**
78
88
  * Converts a public key object into a protobuf serialized public key
79
89
  */
80
- export function marshalPublicKey(key, type) {
81
- type = (type ?? 'rsa').toLowerCase();
82
- typeToKey(type); // check type
83
- return key.bytes;
90
+ export function publicKeyToProtobuf(key) {
91
+ return pb.PublicKey.encode({
92
+ Type: pb.KeyType[key.type],
93
+ Data: key.raw
94
+ });
84
95
  }
85
96
  /**
86
97
  * Converts a protobuf serialized private key into its representative object
87
98
  */
88
- export async function unmarshalPrivateKey(buf) {
89
- const decoded = keysPBM.PrivateKey.decode(buf);
99
+ export function privateKeyFromProtobuf(buf) {
100
+ const decoded = pb.PrivateKey.decode(buf);
90
101
  const data = decoded.Data ?? new Uint8Array();
91
102
  switch (decoded.Type) {
92
- case keysPBM.KeyType.RSA:
93
- return supportedKeys.rsa.unmarshalRsaPrivateKey(data);
94
- case keysPBM.KeyType.Ed25519:
95
- return supportedKeys.ed25519.unmarshalEd25519PrivateKey(data);
96
- case keysPBM.KeyType.Secp256k1:
97
- return supportedKeys.secp256k1.unmarshalSecp256k1PrivateKey(data);
103
+ case pb.KeyType.RSA:
104
+ return pkcs1ToRSAPrivateKey(data);
105
+ case pb.KeyType.Ed25519:
106
+ return unmarshalEd25519PrivateKey(data);
107
+ case pb.KeyType.secp256k1:
108
+ return unmarshalSecp256k1PrivateKey(data);
98
109
  default:
99
- throw unsupportedKey(decoded.Type ?? 'RSA');
110
+ throw new UnsupportedKeyTypeError();
100
111
  }
101
112
  }
102
113
  /**
103
- * Converts a private key object into a protobuf serialized private key
104
- */
105
- export function marshalPrivateKey(key, type) {
106
- type = (type ?? 'rsa').toLowerCase();
107
- typeToKey(type); // check type
108
- return key.bytes;
109
- }
110
- /**
111
- * Converts an exported private key into its representative object.
112
- *
113
- * Supported formats are 'pem' (RSA only) and 'libp2p-key'.
114
+ * Creates a private key from the raw key bytes. For Ed25519 keys this requires
115
+ * the public key to be appended to the private key otherwise we can't
116
+ * differentiate between Ed25519 and secp256k1 keys as they are the same length.
114
117
  */
115
- export async function importKey(encryptedKey, password) {
116
- try {
117
- const key = await importer(encryptedKey, password);
118
- return await unmarshalPrivateKey(key);
118
+ export function privateKeyFromRaw(buf) {
119
+ if (buf.byteLength === 64) {
120
+ return unmarshalEd25519PrivateKey(buf);
119
121
  }
120
- catch (_) {
121
- // Ignore and try the old pem decrypt
122
+ else if (buf.byteLength === 32) {
123
+ return unmarshalSecp256k1PrivateKey(buf);
122
124
  }
123
- if (!encryptedKey.includes('BEGIN')) {
124
- throw new CodeError('Encrypted key was not a libp2p-key or a PEM file', 'ERR_INVALID_IMPORT_FORMAT');
125
+ else {
126
+ return pkcs1ToRSAPrivateKey(buf);
125
127
  }
126
- return importFromPem(encryptedKey, password);
128
+ }
129
+ /**
130
+ * Converts a private key object into a protobuf serialized private key
131
+ */
132
+ export function privateKeyToProtobuf(key) {
133
+ return pb.PrivateKey.encode({
134
+ Type: pb.KeyType[key.type],
135
+ Data: key.raw
136
+ });
127
137
  }
128
138
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"key-stretcher.d.ts","sourceRoot":"","sources":["../../../src/keys/key-stretcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAiBlE;;;GAGG;AACH,wBAAsB,YAAY,CAAE,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAoDpK"}
1
+ {"version":3,"file":"key-stretcher.d.ts","sourceRoot":"","sources":["../../../src/keys/key-stretcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAsBlE;;;GAGG;AACH,wBAAsB,YAAY,CAAE,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAsDpK"}
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interface';
1
+ import { InvalidParametersError } from '@libp2p/interface';
2
2
  import { concat as uint8ArrayConcat } from 'uint8arrays/concat';
3
3
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
4
4
  import * as hmac from '../hmac/index.js';
@@ -21,14 +21,16 @@ const cipherMap = {
21
21
  * (myIV, theirIV, myCipherKey, theirCipherKey, myMACKey, theirMACKey)
22
22
  */
23
23
  export async function keyStretcher(cipherType, hash, secret) {
24
- const cipher = cipherMap[cipherType];
25
- if (cipher == null) {
26
- const allowed = Object.keys(cipherMap).join(' / ');
27
- throw new CodeError(`unknown cipher type '${cipherType}'. Must be ${allowed}`, 'ERR_INVALID_CIPHER_TYPE');
24
+ if (cipherType !== 'AES-128' && cipherType !== 'AES-256' && cipherType !== 'Blowfish') {
25
+ throw new InvalidParametersError('Cipher type was missing or unsupported');
26
+ }
27
+ if (hash !== 'SHA1' && hash !== 'SHA256' && hash !== 'SHA512') {
28
+ throw new InvalidParametersError('Hash type was missing or unsupported');
28
29
  }
29
- if (hash == null) {
30
- throw new CodeError('missing hash type', 'ERR_MISSING_HASH_TYPE');
30
+ if (secret == null || !(secret instanceof Uint8Array)) {
31
+ throw new InvalidParametersError('Secret was missing or an incorrect type');
31
32
  }
33
+ const cipher = cipherMap[cipherType];
32
34
  const cipherKeySize = cipher.keySize;
33
35
  const ivSize = cipher.ivSize;
34
36
  const hmacKeySize = 20;
@@ -1 +1 @@
1
- {"version":3,"file":"key-stretcher.js","sourceRoot":"","sources":["../../../src/keys/key-stretcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-stretcher.js","sourceRoot":"","sources":["../../../src/keys/key-stretcher.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { Codec } from 'protons-runtime';
1
+ import { type Codec, type DecodeOptions } from 'protons-runtime';
2
2
  import type { Uint8ArrayList } from 'uint8arraylist';
3
3
  export declare enum KeyType {
4
4
  RSA = "RSA",
5
5
  Ed25519 = "Ed25519",
6
- Secp256k1 = "Secp256k1"
6
+ secp256k1 = "secp256k1"
7
7
  }
8
8
  export declare namespace KeyType {
9
9
  const codec: () => Codec<KeyType>;
@@ -15,7 +15,7 @@ export interface PublicKey {
15
15
  export declare namespace PublicKey {
16
16
  const codec: () => Codec<PublicKey>;
17
17
  const encode: (obj: Partial<PublicKey>) => Uint8Array;
18
- const decode: (buf: Uint8Array | Uint8ArrayList) => PublicKey;
18
+ const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<PublicKey>) => PublicKey;
19
19
  }
20
20
  export interface PrivateKey {
21
21
  Type?: KeyType;
@@ -24,6 +24,6 @@ export interface PrivateKey {
24
24
  export declare namespace PrivateKey {
25
25
  const codec: () => Codec<PrivateKey>;
26
26
  const encode: (obj: Partial<PrivateKey>) => Uint8Array;
27
- const decode: (buf: Uint8Array | Uint8ArrayList) => PrivateKey;
27
+ const decode: (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<PrivateKey>) => PrivateKey;
28
28
  }
29
29
  //# sourceMappingURL=keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,oBAAY,OAAO;IACjB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAQD,yBAAiB,OAAO,CAAC;IAChB,MAAM,KAAK,QAAO,MAAM,OAAO,CAErC,CAAA;CACF;AACD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,yBAAiB,SAAS,CAAC;IAGlB,MAAM,KAAK,QAAO,MAAM,SAAS,CA8CvC,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,SAAS,CAAC,KAAG,UAEhD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,SAEzD,CAAA;CACF;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,yBAAiB,UAAU,CAAC;IAGnB,MAAM,KAAK,QAAO,MAAM,UAAU,CA8CxC,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,UAAU,CAAC,KAAG,UAEjD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,UAEzD,CAAA;CACF"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,aAAa,EAAuC,MAAM,iBAAiB,CAAA;AACpH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,oBAAY,OAAO;IACjB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAQD,yBAAiB,OAAO,CAAC;IAChB,MAAM,KAAK,QAAO,MAAM,OAAO,CAErC,CAAA;CACF;AACD,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,yBAAiB,SAAS,CAAC;IAGlB,MAAM,KAAK,QAAO,MAAM,SAAS,CAiDvC,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,SAAS,CAAC,KAAG,UAEhD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,cAAc,SAAS,CAAC,KAAG,SAE1F,CAAA;CACF;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,yBAAiB,UAAU,CAAC;IAGnB,MAAM,KAAK,QAAO,MAAM,UAAU,CAiDxC,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,UAAU,CAAC,KAAG,UAEjD,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,SAAS,cAAc,UAAU,CAAC,KAAG,UAE3F,CAAA;CACF"}
@@ -3,18 +3,18 @@
3
3
  /* eslint-disable @typescript-eslint/no-namespace */
4
4
  /* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */
5
5
  /* eslint-disable @typescript-eslint/no-empty-interface */
6
- import { enumeration, encodeMessage, decodeMessage, message } from 'protons-runtime';
6
+ import { decodeMessage, encodeMessage, enumeration, message } from 'protons-runtime';
7
7
  export var KeyType;
8
8
  (function (KeyType) {
9
9
  KeyType["RSA"] = "RSA";
10
10
  KeyType["Ed25519"] = "Ed25519";
11
- KeyType["Secp256k1"] = "Secp256k1";
11
+ KeyType["secp256k1"] = "secp256k1";
12
12
  })(KeyType || (KeyType = {}));
13
13
  var __KeyTypeValues;
14
14
  (function (__KeyTypeValues) {
15
15
  __KeyTypeValues[__KeyTypeValues["RSA"] = 0] = "RSA";
16
16
  __KeyTypeValues[__KeyTypeValues["Ed25519"] = 1] = "Ed25519";
17
- __KeyTypeValues[__KeyTypeValues["Secp256k1"] = 2] = "Secp256k1";
17
+ __KeyTypeValues[__KeyTypeValues["secp256k1"] = 2] = "secp256k1";
18
18
  })(__KeyTypeValues || (__KeyTypeValues = {}));
19
19
  (function (KeyType) {
20
20
  KeyType.codec = () => {
@@ -41,21 +41,24 @@ export var PublicKey;
41
41
  if (opts.lengthDelimited !== false) {
42
42
  w.ldelim();
43
43
  }
44
- }, (reader, length) => {
44
+ }, (reader, length, opts = {}) => {
45
45
  const obj = {};
46
46
  const end = length == null ? reader.len : reader.pos + length;
47
47
  while (reader.pos < end) {
48
48
  const tag = reader.uint32();
49
49
  switch (tag >>> 3) {
50
- case 1:
50
+ case 1: {
51
51
  obj.Type = KeyType.codec().decode(reader);
52
52
  break;
53
- case 2:
53
+ }
54
+ case 2: {
54
55
  obj.Data = reader.bytes();
55
56
  break;
56
- default:
57
+ }
58
+ default: {
57
59
  reader.skipType(tag & 7);
58
60
  break;
61
+ }
59
62
  }
60
63
  }
61
64
  return obj;
@@ -66,8 +69,8 @@ export var PublicKey;
66
69
  PublicKey.encode = (obj) => {
67
70
  return encodeMessage(obj, PublicKey.codec());
68
71
  };
69
- PublicKey.decode = (buf) => {
70
- return decodeMessage(buf, PublicKey.codec());
72
+ PublicKey.decode = (buf, opts) => {
73
+ return decodeMessage(buf, PublicKey.codec(), opts);
71
74
  };
72
75
  })(PublicKey || (PublicKey = {}));
73
76
  export var PrivateKey;
@@ -90,21 +93,24 @@ export var PrivateKey;
90
93
  if (opts.lengthDelimited !== false) {
91
94
  w.ldelim();
92
95
  }
93
- }, (reader, length) => {
96
+ }, (reader, length, opts = {}) => {
94
97
  const obj = {};
95
98
  const end = length == null ? reader.len : reader.pos + length;
96
99
  while (reader.pos < end) {
97
100
  const tag = reader.uint32();
98
101
  switch (tag >>> 3) {
99
- case 1:
102
+ case 1: {
100
103
  obj.Type = KeyType.codec().decode(reader);
101
104
  break;
102
- case 2:
105
+ }
106
+ case 2: {
103
107
  obj.Data = reader.bytes();
104
108
  break;
105
- default:
109
+ }
110
+ default: {
106
111
  reader.skipType(tag & 7);
107
112
  break;
113
+ }
108
114
  }
109
115
  }
110
116
  return obj;
@@ -115,8 +121,8 @@ export var PrivateKey;
115
121
  PrivateKey.encode = (obj) => {
116
122
  return encodeMessage(obj, PrivateKey.codec());
117
123
  };
118
- PrivateKey.decode = (buf) => {
119
- return decodeMessage(buf, PrivateKey.codec());
124
+ PrivateKey.decode = (buf, opts) => {
125
+ return decodeMessage(buf, PrivateKey.codec(), opts);
120
126
  };
121
127
  })(PrivateKey || (PrivateKey = {}));
122
128
  //# sourceMappingURL=keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/keys/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import randomBytes from '../../random-bytes.js';
2
+ import * as utils from './utils.js';
3
+ import type { JWKKeyPair } from '../interface.js';
4
+ import type { Uint8ArrayList } from 'uint8arraylist';
5
+ export { utils };
6
+ export declare function generateRSAKey(bits: number): Promise<JWKKeyPair>;
7
+ export { randomBytes as getRandomValues };
8
+ export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
9
+ export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<boolean>;
10
+ export declare function rsaKeySize(jwk: JsonWebKey): number;
11
+ //# sourceMappingURL=index.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../../../src/keys/rsa/index.browser.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,wBAAsB,cAAc,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBvE;AAED,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,wBAAsB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBzG;AAED,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBzH;AAaD,wBAAgB,UAAU,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAQnD"}