@libp2p/crypto 0.0.0 → 0.22.3

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 (170) hide show
  1. package/LICENSE +2 -0
  2. package/README.md +314 -0
  3. package/dist/src/aes/cipher-mode.d.ts +2 -0
  4. package/dist/src/aes/cipher-mode.d.ts.map +1 -0
  5. package/dist/src/aes/cipher-mode.js +13 -0
  6. package/dist/src/aes/cipher-mode.js.map +1 -0
  7. package/dist/src/aes/ciphers-browser.d.ts +8 -0
  8. package/dist/src/aes/ciphers-browser.d.ts.map +1 -0
  9. package/dist/src/aes/ciphers-browser.js +26 -0
  10. package/dist/src/aes/ciphers-browser.js.map +1 -0
  11. package/dist/src/aes/ciphers.d.ts +5 -0
  12. package/dist/src/aes/ciphers.d.ts.map +1 -0
  13. package/dist/src/aes/ciphers.js +4 -0
  14. package/dist/src/aes/ciphers.js.map +1 -0
  15. package/dist/src/aes/index.d.ts +6 -0
  16. package/dist/src/aes/index.d.ts.map +1 -0
  17. package/dist/src/aes/index.js +17 -0
  18. package/dist/src/aes/index.js.map +1 -0
  19. package/dist/src/ciphers/aes-gcm.browser.d.ts +3 -0
  20. package/dist/src/ciphers/aes-gcm.browser.d.ts.map +1 -0
  21. package/dist/src/ciphers/aes-gcm.browser.js +61 -0
  22. package/dist/src/ciphers/aes-gcm.browser.js.map +1 -0
  23. package/dist/src/ciphers/aes-gcm.d.ts +3 -0
  24. package/dist/src/ciphers/aes-gcm.d.ts.map +1 -0
  25. package/dist/src/ciphers/aes-gcm.js +83 -0
  26. package/dist/src/ciphers/aes-gcm.js.map +1 -0
  27. package/dist/src/ciphers/interface.d.ts +14 -0
  28. package/dist/src/ciphers/interface.d.ts.map +1 -0
  29. package/dist/src/ciphers/interface.js +2 -0
  30. package/dist/src/ciphers/interface.js.map +1 -0
  31. package/dist/src/hmac/index-browser.d.ts +5 -0
  32. package/dist/src/hmac/index-browser.d.ts.map +1 -0
  33. package/dist/src/hmac/index-browser.js +25 -0
  34. package/dist/src/hmac/index-browser.js.map +1 -0
  35. package/dist/src/hmac/index.d.ts +5 -0
  36. package/dist/src/hmac/index.d.ts.map +1 -0
  37. package/dist/src/hmac/index.js +14 -0
  38. package/dist/src/hmac/index.js.map +1 -0
  39. package/dist/src/hmac/lengths.d.ts +7 -0
  40. package/dist/src/hmac/lengths.d.ts.map +1 -0
  41. package/dist/src/hmac/lengths.js +6 -0
  42. package/dist/src/hmac/lengths.js.map +1 -0
  43. package/dist/src/index.d.ts +11 -0
  44. package/dist/src/index.d.ts.map +1 -0
  45. package/dist/src/index.js +11 -0
  46. package/dist/src/index.js.map +1 -0
  47. package/dist/src/keys/ecdh-browser.d.ts +3 -0
  48. package/dist/src/keys/ecdh-browser.d.ts.map +1 -0
  49. package/dist/src/keys/ecdh-browser.js +97 -0
  50. package/dist/src/keys/ecdh-browser.js.map +1 -0
  51. package/dist/src/keys/ecdh.d.ts +3 -0
  52. package/dist/src/keys/ecdh.d.ts.map +1 -0
  53. package/dist/src/keys/ecdh.js +26 -0
  54. package/dist/src/keys/ecdh.js.map +1 -0
  55. package/dist/src/keys/ed25519-class.d.ts +39 -0
  56. package/dist/src/keys/ed25519-class.d.ts.map +1 -0
  57. package/dist/src/keys/ed25519-class.js +119 -0
  58. package/dist/src/keys/ed25519-class.js.map +1 -0
  59. package/dist/src/keys/ed25519.d.ts +18 -0
  60. package/dist/src/keys/ed25519.d.ts.map +1 -0
  61. package/dist/src/keys/ed25519.js +52 -0
  62. package/dist/src/keys/ed25519.js.map +1 -0
  63. package/dist/src/keys/ephemeral-keys.d.ts +9 -0
  64. package/dist/src/keys/ephemeral-keys.d.ts.map +1 -0
  65. package/dist/src/keys/ephemeral-keys.js +9 -0
  66. package/dist/src/keys/ephemeral-keys.js.map +1 -0
  67. package/dist/src/keys/exporter.d.ts +7 -0
  68. package/dist/src/keys/exporter.d.ts.map +1 -0
  69. package/dist/src/keys/exporter.js +13 -0
  70. package/dist/src/keys/exporter.js.map +1 -0
  71. package/dist/src/keys/importer.d.ts +7 -0
  72. package/dist/src/keys/importer.d.ts.map +1 -0
  73. package/dist/src/keys/importer.js +13 -0
  74. package/dist/src/keys/importer.js.map +1 -0
  75. package/dist/src/keys/index.d.ts +33 -0
  76. package/dist/src/keys/index.d.ts.map +1 -0
  77. package/dist/src/keys/index.js +111 -0
  78. package/dist/src/keys/index.js.map +1 -0
  79. package/dist/src/keys/interface.d.ts +17 -0
  80. package/dist/src/keys/interface.d.ts.map +1 -0
  81. package/dist/src/keys/interface.js +2 -0
  82. package/dist/src/keys/interface.js.map +1 -0
  83. package/dist/src/keys/jwk2pem.d.ts +4 -0
  84. package/dist/src/keys/jwk2pem.d.ts.map +1 -0
  85. package/dist/src/keys/jwk2pem.js +14 -0
  86. package/dist/src/keys/jwk2pem.js.map +1 -0
  87. package/dist/src/keys/key-stretcher.d.ts +17 -0
  88. package/dist/src/keys/key-stretcher.d.ts.map +1 -0
  89. package/dist/src/keys/key-stretcher.js +65 -0
  90. package/dist/src/keys/key-stretcher.js.map +1 -0
  91. package/dist/src/keys/keys.d.ts +225 -0
  92. package/dist/src/keys/keys.d.ts.map +1 -0
  93. package/dist/src/keys/keys.js +345 -0
  94. package/dist/src/keys/keys.js.map +1 -0
  95. package/dist/src/keys/rsa-browser.d.ts +17 -0
  96. package/dist/src/keys/rsa-browser.d.ts.map +1 -0
  97. package/dist/src/keys/rsa-browser.js +99 -0
  98. package/dist/src/keys/rsa-browser.js.map +1 -0
  99. package/dist/src/keys/rsa-class.d.ts +42 -0
  100. package/dist/src/keys/rsa-class.d.ts.map +1 -0
  101. package/dist/src/keys/rsa-class.js +126 -0
  102. package/dist/src/keys/rsa-class.js.map +1 -0
  103. package/dist/src/keys/rsa-utils.d.ts +7 -0
  104. package/dist/src/keys/rsa-utils.d.ts.map +1 -0
  105. package/dist/src/keys/rsa-utils.js +65 -0
  106. package/dist/src/keys/rsa-utils.js.map +1 -0
  107. package/dist/src/keys/rsa.d.ts +13 -0
  108. package/dist/src/keys/rsa.d.ts.map +1 -0
  109. package/dist/src/keys/rsa.js +58 -0
  110. package/dist/src/keys/rsa.js.map +1 -0
  111. package/dist/src/keys/secp256k1-class.d.ts +36 -0
  112. package/dist/src/keys/secp256k1-class.d.ts.map +1 -0
  113. package/dist/src/keys/secp256k1-class.js +95 -0
  114. package/dist/src/keys/secp256k1-class.js.map +1 -0
  115. package/dist/src/keys/secp256k1.d.ts +17 -0
  116. package/dist/src/keys/secp256k1.d.ts.map +1 -0
  117. package/dist/src/keys/secp256k1.js +65 -0
  118. package/dist/src/keys/secp256k1.js.map +1 -0
  119. package/dist/src/pbkdf2.d.ts +5 -0
  120. package/dist/src/pbkdf2.d.ts.map +1 -0
  121. package/dist/src/pbkdf2.js +30 -0
  122. package/dist/src/pbkdf2.js.map +1 -0
  123. package/dist/src/random-bytes.d.ts +2 -0
  124. package/dist/src/random-bytes.d.ts.map +1 -0
  125. package/dist/src/random-bytes.js +9 -0
  126. package/dist/src/random-bytes.js.map +1 -0
  127. package/dist/src/util.d.ts +9 -0
  128. package/dist/src/util.d.ts.map +1 -0
  129. package/dist/src/util.js +37 -0
  130. package/dist/src/util.js.map +1 -0
  131. package/dist/src/webcrypto.d.ts +5 -0
  132. package/dist/src/webcrypto.d.ts.map +1 -0
  133. package/dist/src/webcrypto.js +17 -0
  134. package/dist/src/webcrypto.js.map +1 -0
  135. package/package.json +178 -4
  136. package/src/aes/cipher-mode.ts +15 -0
  137. package/src/aes/ciphers-browser.ts +28 -0
  138. package/src/aes/ciphers.ts +4 -0
  139. package/src/aes/index.ts +25 -0
  140. package/src/ciphers/aes-gcm.browser.ts +74 -0
  141. package/src/ciphers/aes-gcm.ts +102 -0
  142. package/src/ciphers/interface.ts +15 -0
  143. package/src/hmac/index-browser.ts +35 -0
  144. package/src/hmac/index.ts +15 -0
  145. package/src/hmac/lengths.ts +6 -0
  146. package/src/index.ts +11 -0
  147. package/src/keys/ecdh-browser.ts +138 -0
  148. package/src/keys/ecdh.ts +33 -0
  149. package/src/keys/ed25519-class.ts +145 -0
  150. package/src/keys/ed25519.ts +63 -0
  151. package/src/keys/ephemeral-keys.ts +9 -0
  152. package/src/keys/exporter.ts +13 -0
  153. package/src/keys/importer.ts +13 -0
  154. package/src/keys/index.ts +126 -0
  155. package/src/keys/interface.ts +20 -0
  156. package/src/keys/jwk2pem.ts +16 -0
  157. package/src/keys/key-stretcher.ts +77 -0
  158. package/src/keys/keys.d.ts +146 -0
  159. package/src/keys/keys.js +366 -0
  160. package/src/keys/keys.proto +15 -0
  161. package/src/keys/rsa-browser.ts +156 -0
  162. package/src/keys/rsa-class.ts +155 -0
  163. package/src/keys/rsa-utils.ts +74 -0
  164. package/src/keys/rsa.ts +69 -0
  165. package/src/keys/secp256k1-class.ts +118 -0
  166. package/src/keys/secp256k1.ts +69 -0
  167. package/src/pbkdf2.ts +39 -0
  168. package/src/random-bytes.ts +9 -0
  169. package/src/util.ts +42 -0
  170. package/src/webcrypto.ts +24 -0
@@ -0,0 +1,33 @@
1
+ import * as keysPBM from './keys.js';
2
+ import 'node-forge/lib/asn1.js';
3
+ import 'node-forge/lib/pbe.js';
4
+ import { keyStretcher } from './key-stretcher.js';
5
+ import generateEphemeralKeyPair from './ephemeral-keys.js';
6
+ import * as RSA from './rsa-class.js';
7
+ import * as Ed25519 from './ed25519-class.js';
8
+ import * as Secp256k1 from './secp256k1-class.js';
9
+ export { keyStretcher };
10
+ export { generateEphemeralKeyPair };
11
+ export { keysPBM };
12
+ export declare const supportedKeys: {
13
+ rsa: typeof RSA;
14
+ ed25519: typeof Ed25519;
15
+ secp256k1: typeof Secp256k1;
16
+ };
17
+ export declare function generateKeyPair(type: 'RSA' | 'Ed25519' | 'secp256k1', bits?: number): Promise<RSA.RsaPrivateKey | Ed25519.Ed25519PrivateKey | Secp256k1.Secp256k1PrivateKey>;
18
+ export declare function generateKeyPairFromSeed(type: 'RSA' | 'Ed25519' | 'secp256k1', seed: Uint8Array, bits?: number): Promise<Ed25519.Ed25519PrivateKey>;
19
+ export declare function unmarshalPublicKey(buf: Uint8Array): RSA.RsaPublicKey | Ed25519.Ed25519PublicKey | Secp256k1.Secp256k1PublicKey;
20
+ export declare function marshalPublicKey(key: {
21
+ bytes: Uint8Array;
22
+ }, type?: string): Uint8Array;
23
+ export declare function unmarshalPrivateKey(buf: Uint8Array): Promise<RSA.RsaPrivateKey | Ed25519.Ed25519PrivateKey | Secp256k1.Secp256k1PrivateKey>;
24
+ export declare function marshalPrivateKey(key: {
25
+ bytes: Uint8Array;
26
+ }, type?: string): Uint8Array;
27
+ /**
28
+ *
29
+ * @param {string} encryptedKey
30
+ * @param {string} password
31
+ */
32
+ export declare function importKey(encryptedKey: string, password: string): Promise<RSA.RsaPrivateKey | Ed25519.Ed25519PrivateKey | Secp256k1.Secp256k1PrivateKey>;
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,wBAAwB,CAAA;AAC/B,OAAO,uBAAuB,CAAA;AAK9B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,wBAAwB,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,OAAO,EAAE,wBAAwB,EAAE,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,eAAO,MAAM,aAAa;;;;CAIzB,CAAA;AAkBD,wBAAsB,eAAe,CAAE,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,0FAE1F;AAID,wBAAsB,uBAAuB,CAAE,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,sCAMpH;AAID,wBAAgB,kBAAkB,CAAE,GAAG,EAAE,UAAU,8EAclD;AAGD,wBAAgB,gBAAgB,CAAE,GAAG,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,EAAE,IAAI,CAAC,EAAE,MAAM,cAI1E;AAID,wBAAsB,mBAAmB,CAAE,GAAG,EAAE,UAAU,0FAczD;AAGD,wBAAgB,iBAAiB,CAAE,GAAG,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,EAAE,IAAI,CAAC,EAAE,MAAM,cAI3E;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,0FAgBtE"}
@@ -0,0 +1,111 @@
1
+ import * as keysPBM from './keys.js';
2
+ import 'node-forge/lib/asn1.js';
3
+ import 'node-forge/lib/pbe.js';
4
+ // @ts-expect-error types are missing
5
+ import forge from 'node-forge/lib/forge.js';
6
+ import errcode from 'err-code';
7
+ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
8
+ import { keyStretcher } from './key-stretcher.js';
9
+ import generateEphemeralKeyPair from './ephemeral-keys.js';
10
+ import { importer } from './importer.js';
11
+ import * as RSA from './rsa-class.js';
12
+ import * as Ed25519 from './ed25519-class.js';
13
+ import * as Secp256k1 from './secp256k1-class.js';
14
+ export { keyStretcher };
15
+ export { generateEphemeralKeyPair };
16
+ export { keysPBM };
17
+ export const supportedKeys = {
18
+ rsa: RSA,
19
+ ed25519: Ed25519,
20
+ secp256k1: Secp256k1
21
+ };
22
+ function unsupportedKey(type) {
23
+ const supported = Object.keys(supportedKeys).join(' / ');
24
+ return errcode(new Error(`invalid or unsupported key type ${type}. Must be ${supported}`), 'ERR_UNSUPPORTED_KEY_TYPE');
25
+ }
26
+ function typeToKey(type) {
27
+ type = type.toLowerCase();
28
+ if (type === 'rsa' || type === 'ed25519' || type === 'secp256k1') {
29
+ return supportedKeys[type];
30
+ }
31
+ throw unsupportedKey(type);
32
+ }
33
+ // Generates a keypair of the given type and bitsize
34
+ export async function generateKeyPair(type, bits) {
35
+ return await typeToKey(type).generateKeyPair(bits ?? 2048);
36
+ }
37
+ // Generates a keypair of the given type and bitsize
38
+ // seed is a 32 byte uint8array
39
+ export async function generateKeyPairFromSeed(type, seed, bits) {
40
+ if (type.toLowerCase() !== 'ed25519') {
41
+ throw errcode(new Error('Seed key derivation is unimplemented for RSA or secp256k1'), 'ERR_UNSUPPORTED_KEY_DERIVATION_TYPE');
42
+ }
43
+ return await Ed25519.generateKeyPairFromSeed(seed);
44
+ }
45
+ // Converts a protobuf serialized public key into its
46
+ // representative object
47
+ export function unmarshalPublicKey(buf) {
48
+ const decoded = keysPBM.PublicKey.decode(buf);
49
+ const data = decoded.Data;
50
+ switch (decoded.Type) {
51
+ case keysPBM.KeyType.RSA:
52
+ return supportedKeys.rsa.unmarshalRsaPublicKey(data);
53
+ case keysPBM.KeyType.Ed25519:
54
+ return supportedKeys.ed25519.unmarshalEd25519PublicKey(data);
55
+ case keysPBM.KeyType.Secp256k1:
56
+ return supportedKeys.secp256k1.unmarshalSecp256k1PublicKey(data);
57
+ default:
58
+ throw unsupportedKey(decoded.Type);
59
+ }
60
+ }
61
+ // Converts a public key object into a protobuf serialized public key
62
+ export function marshalPublicKey(key, type) {
63
+ type = (type ?? 'rsa').toLowerCase();
64
+ typeToKey(type); // check type
65
+ return key.bytes;
66
+ }
67
+ // Converts a protobuf serialized private key into its
68
+ // representative object
69
+ export async function unmarshalPrivateKey(buf) {
70
+ const decoded = keysPBM.PrivateKey.decode(buf);
71
+ const data = decoded.Data;
72
+ switch (decoded.Type) {
73
+ case keysPBM.KeyType.RSA:
74
+ return await supportedKeys.rsa.unmarshalRsaPrivateKey(data);
75
+ case keysPBM.KeyType.Ed25519:
76
+ return supportedKeys.ed25519.unmarshalEd25519PrivateKey(data);
77
+ case keysPBM.KeyType.Secp256k1:
78
+ return supportedKeys.secp256k1.unmarshalSecp256k1PrivateKey(data);
79
+ default:
80
+ throw unsupportedKey(decoded.Type);
81
+ }
82
+ }
83
+ // Converts a private key object into a protobuf serialized private key
84
+ export function marshalPrivateKey(key, type) {
85
+ type = (type ?? 'rsa').toLowerCase();
86
+ typeToKey(type); // check type
87
+ return key.bytes;
88
+ }
89
+ /**
90
+ *
91
+ * @param {string} encryptedKey
92
+ * @param {string} password
93
+ */
94
+ export async function importKey(encryptedKey, password) {
95
+ try {
96
+ const key = await importer(encryptedKey, password);
97
+ return await unmarshalPrivateKey(key);
98
+ }
99
+ catch (_) {
100
+ // Ignore and try the old pem decrypt
101
+ }
102
+ // Only rsa supports pem right now
103
+ const key = forge.pki.decryptRsaPrivateKey(encryptedKey, password);
104
+ if (key === null) {
105
+ throw errcode(new Error('Cannot read the key, most likely the password is wrong or not a RSA key'), 'ERR_CANNOT_DECRYPT_PEM');
106
+ }
107
+ let der = forge.asn1.toDer(forge.pki.privateKeyToAsn1(key));
108
+ der = uint8ArrayFromString(der.getBytes(), 'ascii');
109
+ return await supportedKeys.rsa.unmarshalRsaPrivateKey(der);
110
+ }
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface JWKKeyPair {
2
+ privateKey: JsonWebKey;
3
+ publicKey: JsonWebKey;
4
+ }
5
+ export interface Uint8ArrayKeyPair {
6
+ privateKey: Uint8Array;
7
+ publicKey: Uint8Array;
8
+ }
9
+ export interface ECDHKeyPair {
10
+ private: Uint8Array;
11
+ public: Uint8Array;
12
+ }
13
+ export interface ECDHKey {
14
+ key: Uint8Array;
15
+ genSharedKey: (theirPub: Uint8Array, forcePrivate?: ECDHKeyPair) => Promise<Uint8Array>;
16
+ }
17
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/keys/interface.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,UAAU,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,UAAU,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,CAAA;IACnB,MAAM,EAAE,UAAU,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,UAAU,CAAA;IACf,YAAY,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;CACxF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/keys/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import 'node-forge/lib/rsa.js';
2
+ export declare function jwk2priv(key: JsonWebKey): any;
3
+ export declare function jwk2pub(key: JsonWebKey): any;
4
+ //# sourceMappingURL=jwk2pem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwk2pem.d.ts","sourceRoot":"","sources":["../../../src/keys/jwk2pem.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;AAS9B,wBAAgB,QAAQ,CAAE,GAAG,EAAE,UAAU,OAExC;AAED,wBAAgB,OAAO,CAAE,GAAG,EAAE,UAAU,OAEvC"}
@@ -0,0 +1,14 @@
1
+ import 'node-forge/lib/rsa.js';
2
+ // @ts-expect-error types are missing
3
+ import forge from 'node-forge/lib/forge.js';
4
+ import { base64urlToBigInteger } from '../util';
5
+ function convert(key, types) {
6
+ return types.map(t => base64urlToBigInteger(key[t]));
7
+ }
8
+ export function jwk2priv(key) {
9
+ return forge.pki.setRsaPrivateKey(...convert(key, ['n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi']));
10
+ }
11
+ export function jwk2pub(key) {
12
+ return forge.pki.setRsaPublicKey(...convert(key, ['n', 'e']));
13
+ }
14
+ //# sourceMappingURL=jwk2pem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwk2pem.js","sourceRoot":"","sources":["../../../src/keys/jwk2pem.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;AAC9B,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/C,SAAS,OAAO,CAAE,GAAQ,EAAE,KAAe;IACzC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAE,GAAe;IACvC,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AACjG,CAAC;AAED,MAAM,UAAU,OAAO,CAAE,GAAe;IACtC,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Generates a set of keys for each party by stretching the shared key.
3
+ * (myIV, theirIV, myCipherKey, theirCipherKey, myMACKey, theirMACKey)
4
+ */
5
+ export declare function keyStretcher(cipherType: 'AES-128' | 'AES-256' | 'Blowfish', hash: 'SHA1' | 'SHA256' | 'SHA512', secret: Uint8Array): Promise<{
6
+ k1: {
7
+ iv: Uint8Array;
8
+ cipherKey: Uint8Array;
9
+ macKey: Uint8Array;
10
+ };
11
+ k2: {
12
+ iv: Uint8Array;
13
+ cipherKey: Uint8Array;
14
+ macKey: Uint8Array;
15
+ };
16
+ }>;
17
+ //# sourceMappingURL=key-stretcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-stretcher.d.ts","sourceRoot":"","sources":["../../../src/keys/key-stretcher.ts"],"names":[],"mappings":"AAoBA;;;GAGG;AACH,wBAAsB,YAAY,CAAE,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU;;;;;;;;;;;GAoDzI"}
@@ -0,0 +1,65 @@
1
+ import errcode from 'err-code';
2
+ import { concat as uint8ArrayConcat } from 'uint8arrays/concat';
3
+ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
4
+ import * as hmac from '../hmac/index.js';
5
+ const cipherMap = {
6
+ 'AES-128': {
7
+ ivSize: 16,
8
+ keySize: 16
9
+ },
10
+ 'AES-256': {
11
+ ivSize: 16,
12
+ keySize: 32
13
+ },
14
+ Blowfish: {
15
+ ivSize: 8,
16
+ keySize: 32
17
+ }
18
+ };
19
+ /**
20
+ * Generates a set of keys for each party by stretching the shared key.
21
+ * (myIV, theirIV, myCipherKey, theirCipherKey, myMACKey, theirMACKey)
22
+ */
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 errcode(new Error(`unknown cipher type '${cipherType}'. Must be ${allowed}`), 'ERR_INVALID_CIPHER_TYPE');
28
+ }
29
+ if (hash == null) {
30
+ throw errcode(new Error('missing hash type'), 'ERR_MISSING_HASH_TYPE');
31
+ }
32
+ const cipherKeySize = cipher.keySize;
33
+ const ivSize = cipher.ivSize;
34
+ const hmacKeySize = 20;
35
+ const seed = uint8ArrayFromString('key expansion');
36
+ const resultLength = 2 * (ivSize + cipherKeySize + hmacKeySize);
37
+ const m = await hmac.create(hash, secret);
38
+ let a = await m.digest(seed);
39
+ const result = [];
40
+ let j = 0;
41
+ while (j < resultLength) {
42
+ const b = await m.digest(uint8ArrayConcat([a, seed]));
43
+ let todo = b.length;
44
+ if (j + todo > resultLength) {
45
+ todo = resultLength - j;
46
+ }
47
+ result.push(b);
48
+ j += todo;
49
+ a = await m.digest(a);
50
+ }
51
+ const half = resultLength / 2;
52
+ const resultBuffer = uint8ArrayConcat(result);
53
+ const r1 = resultBuffer.slice(0, half);
54
+ const r2 = resultBuffer.slice(half, resultLength);
55
+ const createKey = (res) => ({
56
+ iv: res.slice(0, ivSize),
57
+ cipherKey: res.slice(ivSize, ivSize + cipherKeySize),
58
+ macKey: res.slice(ivSize + cipherKeySize)
59
+ });
60
+ return {
61
+ k1: createKey(r1),
62
+ k2: createKey(r2)
63
+ };
64
+ }
65
+ //# sourceMappingURL=key-stretcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-stretcher.js","sourceRoot":"","sources":["../../../src/keys/key-stretcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Properties of a PublicKey.
3
+ * @exports IPublicKey
4
+ * @interface IPublicKey
5
+ * @property {KeyType} Type PublicKey Type
6
+ * @property {Uint8Array} Data PublicKey Data
7
+ */
8
+ /**
9
+ * Constructs a new PublicKey.
10
+ * @exports PublicKey
11
+ * @classdesc Represents a PublicKey.
12
+ * @implements IPublicKey
13
+ * @constructor
14
+ * @param {IPublicKey=} [p] Properties to set
15
+ */
16
+ export function PublicKey(p?: any | undefined): void;
17
+ export class PublicKey {
18
+ /**
19
+ * Properties of a PublicKey.
20
+ * @exports IPublicKey
21
+ * @interface IPublicKey
22
+ * @property {KeyType} Type PublicKey Type
23
+ * @property {Uint8Array} Data PublicKey Data
24
+ */
25
+ /**
26
+ * Constructs a new PublicKey.
27
+ * @exports PublicKey
28
+ * @classdesc Represents a PublicKey.
29
+ * @implements IPublicKey
30
+ * @constructor
31
+ * @param {IPublicKey=} [p] Properties to set
32
+ */
33
+ constructor(p?: any | undefined);
34
+ /**
35
+ * PublicKey Type.
36
+ * @member {KeyType} Type
37
+ * @memberof PublicKey
38
+ * @instance
39
+ */
40
+ Type: number;
41
+ /**
42
+ * PublicKey Data.
43
+ * @member {Uint8Array} Data
44
+ * @memberof PublicKey
45
+ * @instance
46
+ */
47
+ Data: Uint8Array | $protobuf.Buffer;
48
+ /**
49
+ * Converts this PublicKey to JSON.
50
+ * @function toJSON
51
+ * @memberof PublicKey
52
+ * @instance
53
+ * @returns {Object.<string,*>} JSON object
54
+ */
55
+ toJSON(): {
56
+ [x: string]: any;
57
+ };
58
+ }
59
+ export namespace PublicKey {
60
+ /**
61
+ * Encodes the specified PublicKey message. Does not implicitly {@link PublicKey.verify|verify} messages.
62
+ * @function encode
63
+ * @memberof PublicKey
64
+ * @static
65
+ * @param {IPublicKey} m PublicKey message or plain object to encode
66
+ * @param {$protobuf.Writer} [w] Writer to encode to
67
+ * @returns {$protobuf.Writer} Writer
68
+ */
69
+ function encode(m: any, w?: $protobuf.Writer | undefined): $protobuf.Writer;
70
+ /**
71
+ * Decodes a PublicKey message from the specified reader or buffer.
72
+ * @function decode
73
+ * @memberof PublicKey
74
+ * @static
75
+ * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from
76
+ * @param {number} [l] Message length if known beforehand
77
+ * @returns {PublicKey} PublicKey
78
+ * @throws {Error} If the payload is not a reader or valid buffer
79
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
80
+ */
81
+ function decode(r: Uint8Array | $protobuf.Reader, l?: number | undefined): PublicKey;
82
+ /**
83
+ * Creates a PublicKey message from a plain object. Also converts values to their respective internal types.
84
+ * @function fromObject
85
+ * @memberof PublicKey
86
+ * @static
87
+ * @param {Object.<string,*>} d Plain object
88
+ * @returns {PublicKey} PublicKey
89
+ */
90
+ function fromObject(d: {
91
+ [x: string]: any;
92
+ }): PublicKey;
93
+ /**
94
+ * Creates a plain object from a PublicKey message. Also converts values to other types if specified.
95
+ * @function toObject
96
+ * @memberof PublicKey
97
+ * @static
98
+ * @param {PublicKey} m PublicKey
99
+ * @param {$protobuf.IConversionOptions} [o] Conversion options
100
+ * @returns {Object.<string,*>} Plain object
101
+ */
102
+ function toObject(m: PublicKey, o?: $protobuf.IConversionOptions | undefined): {
103
+ [x: string]: any;
104
+ };
105
+ }
106
+ /**
107
+ * Properties of a PrivateKey.
108
+ * @exports IPrivateKey
109
+ * @interface IPrivateKey
110
+ * @property {KeyType} Type PrivateKey Type
111
+ * @property {Uint8Array} Data PrivateKey Data
112
+ */
113
+ /**
114
+ * Constructs a new PrivateKey.
115
+ * @exports PrivateKey
116
+ * @classdesc Represents a PrivateKey.
117
+ * @implements IPrivateKey
118
+ * @constructor
119
+ * @param {IPrivateKey=} [p] Properties to set
120
+ */
121
+ export function PrivateKey(p?: any | undefined): void;
122
+ export class PrivateKey {
123
+ /**
124
+ * Properties of a PrivateKey.
125
+ * @exports IPrivateKey
126
+ * @interface IPrivateKey
127
+ * @property {KeyType} Type PrivateKey Type
128
+ * @property {Uint8Array} Data PrivateKey Data
129
+ */
130
+ /**
131
+ * Constructs a new PrivateKey.
132
+ * @exports PrivateKey
133
+ * @classdesc Represents a PrivateKey.
134
+ * @implements IPrivateKey
135
+ * @constructor
136
+ * @param {IPrivateKey=} [p] Properties to set
137
+ */
138
+ constructor(p?: any | undefined);
139
+ /**
140
+ * PrivateKey Type.
141
+ * @member {KeyType} Type
142
+ * @memberof PrivateKey
143
+ * @instance
144
+ */
145
+ Type: number;
146
+ /**
147
+ * PrivateKey Data.
148
+ * @member {Uint8Array} Data
149
+ * @memberof PrivateKey
150
+ * @instance
151
+ */
152
+ Data: Uint8Array | $protobuf.Buffer;
153
+ /**
154
+ * Converts this PrivateKey to JSON.
155
+ * @function toJSON
156
+ * @memberof PrivateKey
157
+ * @instance
158
+ * @returns {Object.<string,*>} JSON object
159
+ */
160
+ toJSON(): {
161
+ [x: string]: any;
162
+ };
163
+ }
164
+ export namespace PrivateKey {
165
+ /**
166
+ * Encodes the specified PrivateKey message. Does not implicitly {@link PrivateKey.verify|verify} messages.
167
+ * @function encode
168
+ * @memberof PrivateKey
169
+ * @static
170
+ * @param {IPrivateKey} m PrivateKey message or plain object to encode
171
+ * @param {$protobuf.Writer} [w] Writer to encode to
172
+ * @returns {$protobuf.Writer} Writer
173
+ */
174
+ function encode(m: any, w?: $protobuf.Writer | undefined): $protobuf.Writer;
175
+ /**
176
+ * Decodes a PrivateKey message from the specified reader or buffer.
177
+ * @function decode
178
+ * @memberof PrivateKey
179
+ * @static
180
+ * @param {$protobuf.Reader|Uint8Array} r Reader or buffer to decode from
181
+ * @param {number} [l] Message length if known beforehand
182
+ * @returns {PrivateKey} PrivateKey
183
+ * @throws {Error} If the payload is not a reader or valid buffer
184
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
185
+ */
186
+ function decode(r: Uint8Array | $protobuf.Reader, l?: number | undefined): PrivateKey;
187
+ /**
188
+ * Creates a PrivateKey message from a plain object. Also converts values to their respective internal types.
189
+ * @function fromObject
190
+ * @memberof PrivateKey
191
+ * @static
192
+ * @param {Object.<string,*>} d Plain object
193
+ * @returns {PrivateKey} PrivateKey
194
+ */
195
+ function fromObject(d: {
196
+ [x: string]: any;
197
+ }): PrivateKey;
198
+ /**
199
+ * Creates a plain object from a PrivateKey message. Also converts values to other types if specified.
200
+ * @function toObject
201
+ * @memberof PrivateKey
202
+ * @static
203
+ * @param {PrivateKey} m PrivateKey
204
+ * @param {$protobuf.IConversionOptions} [o] Conversion options
205
+ * @returns {Object.<string,*>} Plain object
206
+ */
207
+ function toObject(m: PrivateKey, o?: $protobuf.IConversionOptions | undefined): {
208
+ [x: string]: any;
209
+ };
210
+ }
211
+ /**
212
+ * *
213
+ */
214
+ export type KeyType = number;
215
+ /**
216
+ * KeyType enum.
217
+ * @exports KeyType
218
+ * @enum {number}
219
+ * @property {number} RSA=0 RSA value
220
+ * @property {number} Ed25519=1 Ed25519 value
221
+ * @property {number} Secp256k1=2 Secp256k1 value
222
+ */
223
+ export const KeyType: any;
224
+ import $protobuf from "protobufjs/minimal.js";
225
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/keys/keys.js"],"names":[],"mappings":"AA2BA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,qDAKC;;IArBD;;;;;;OAMG;IAEH;;;;;;;OAOG;IACH,iCAKC;IAED;;;;;OAKG;IACH,aAAwB;IAExB;;;;;OAKG;IACH,oCAAwB;IA0HxB;;;;;;OAMG;IACH;YAFqB,MAAM;MAI1B;;;IAjID;;;;;;;;OAQG;IACH,4EAMC;IAED;;;;;;;;;;OAUG;IACH,qFAuBC;IAED;;;;;;;OAOG;IACH;;kBAyBC;IAED;;;;;;;;OAQG;IACH;;MAqBC;;AAaD;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH,sDAKC;;IArBD;;;;;;OAMG;IAEH;;;;;;;OAOG;IACH,iCAKC;IAED;;;;;OAKG;IACH,aAAyB;IAEzB;;;;;OAKG;IACH,oCAAyB;IA0HzB;;;;;;OAMG;IACH;YAFqB,MAAM;MAI1B;;;IAjID;;;;;;;;OAQG;IACH,4EAMC;IAED;;;;;;;;;;OAUG;IACH,sFAuBC;IAED;;;;;;;OAOG;IACH;;mBAyBC;IAED;;;;;;;;OAQG;IACH;;MAqBC;;;;;sBApVS,MAAM;AAHhB;;;;;;;GAOG;AACH,0BAMK"}