@libp2p/crypto 0.0.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +314 -0
- package/dist/src/aes/cipher-mode.d.ts +2 -0
- package/dist/src/aes/cipher-mode.d.ts.map +1 -0
- package/dist/src/aes/cipher-mode.js +13 -0
- package/dist/src/aes/cipher-mode.js.map +1 -0
- package/dist/src/aes/ciphers-browser.d.ts +8 -0
- package/dist/src/aes/ciphers-browser.d.ts.map +1 -0
- package/dist/src/aes/ciphers-browser.js +26 -0
- package/dist/src/aes/ciphers-browser.js.map +1 -0
- package/dist/src/aes/ciphers.d.ts +5 -0
- package/dist/src/aes/ciphers.d.ts.map +1 -0
- package/dist/src/aes/ciphers.js +4 -0
- package/dist/src/aes/ciphers.js.map +1 -0
- package/dist/src/aes/index.d.ts +6 -0
- package/dist/src/aes/index.d.ts.map +1 -0
- package/dist/src/aes/index.js +17 -0
- package/dist/src/aes/index.js.map +1 -0
- package/dist/src/ciphers/aes-gcm.browser.d.ts +3 -0
- package/dist/src/ciphers/aes-gcm.browser.d.ts.map +1 -0
- package/dist/src/ciphers/aes-gcm.browser.js +61 -0
- package/dist/src/ciphers/aes-gcm.browser.js.map +1 -0
- package/dist/src/ciphers/aes-gcm.d.ts +3 -0
- package/dist/src/ciphers/aes-gcm.d.ts.map +1 -0
- package/dist/src/ciphers/aes-gcm.js +83 -0
- package/dist/src/ciphers/aes-gcm.js.map +1 -0
- package/dist/src/ciphers/interface.d.ts +14 -0
- package/dist/src/ciphers/interface.d.ts.map +1 -0
- package/dist/src/ciphers/interface.js +2 -0
- package/dist/src/ciphers/interface.js.map +1 -0
- package/dist/src/hmac/index-browser.d.ts +5 -0
- package/dist/src/hmac/index-browser.d.ts.map +1 -0
- package/dist/src/hmac/index-browser.js +25 -0
- package/dist/src/hmac/index-browser.js.map +1 -0
- package/dist/src/hmac/index.d.ts +5 -0
- package/dist/src/hmac/index.d.ts.map +1 -0
- package/dist/src/hmac/index.js +14 -0
- package/dist/src/hmac/index.js.map +1 -0
- package/dist/src/hmac/lengths.d.ts +7 -0
- package/dist/src/hmac/lengths.d.ts.map +1 -0
- package/dist/src/hmac/lengths.js +6 -0
- package/dist/src/hmac/lengths.js.map +1 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +11 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/keys/ecdh-browser.d.ts +3 -0
- package/dist/src/keys/ecdh-browser.d.ts.map +1 -0
- package/dist/src/keys/ecdh-browser.js +97 -0
- package/dist/src/keys/ecdh-browser.js.map +1 -0
- package/dist/src/keys/ecdh.d.ts +3 -0
- package/dist/src/keys/ecdh.d.ts.map +1 -0
- package/dist/src/keys/ecdh.js +26 -0
- package/dist/src/keys/ecdh.js.map +1 -0
- package/dist/src/keys/ed25519-class.d.ts +39 -0
- package/dist/src/keys/ed25519-class.d.ts.map +1 -0
- package/dist/src/keys/ed25519-class.js +119 -0
- package/dist/src/keys/ed25519-class.js.map +1 -0
- package/dist/src/keys/ed25519.d.ts +18 -0
- package/dist/src/keys/ed25519.d.ts.map +1 -0
- package/dist/src/keys/ed25519.js +52 -0
- package/dist/src/keys/ed25519.js.map +1 -0
- package/dist/src/keys/ephemeral-keys.d.ts +9 -0
- package/dist/src/keys/ephemeral-keys.d.ts.map +1 -0
- package/dist/src/keys/ephemeral-keys.js +9 -0
- package/dist/src/keys/ephemeral-keys.js.map +1 -0
- package/dist/src/keys/exporter.d.ts +7 -0
- package/dist/src/keys/exporter.d.ts.map +1 -0
- package/dist/src/keys/exporter.js +13 -0
- package/dist/src/keys/exporter.js.map +1 -0
- package/dist/src/keys/importer.d.ts +7 -0
- package/dist/src/keys/importer.d.ts.map +1 -0
- package/dist/src/keys/importer.js +13 -0
- package/dist/src/keys/importer.js.map +1 -0
- package/dist/src/keys/index.d.ts +33 -0
- package/dist/src/keys/index.d.ts.map +1 -0
- package/dist/src/keys/index.js +111 -0
- package/dist/src/keys/index.js.map +1 -0
- package/dist/src/keys/interface.d.ts +17 -0
- package/dist/src/keys/interface.d.ts.map +1 -0
- package/dist/src/keys/interface.js +2 -0
- package/dist/src/keys/interface.js.map +1 -0
- package/dist/src/keys/jwk2pem.d.ts +4 -0
- package/dist/src/keys/jwk2pem.d.ts.map +1 -0
- package/dist/src/keys/jwk2pem.js +14 -0
- package/dist/src/keys/jwk2pem.js.map +1 -0
- package/dist/src/keys/key-stretcher.d.ts +17 -0
- package/dist/src/keys/key-stretcher.d.ts.map +1 -0
- package/dist/src/keys/key-stretcher.js +65 -0
- package/dist/src/keys/key-stretcher.js.map +1 -0
- package/dist/src/keys/keys.d.ts +225 -0
- package/dist/src/keys/keys.d.ts.map +1 -0
- package/dist/src/keys/keys.js +345 -0
- package/dist/src/keys/keys.js.map +1 -0
- package/dist/src/keys/rsa-browser.d.ts +17 -0
- package/dist/src/keys/rsa-browser.d.ts.map +1 -0
- package/dist/src/keys/rsa-browser.js +99 -0
- package/dist/src/keys/rsa-browser.js.map +1 -0
- package/dist/src/keys/rsa-class.d.ts +42 -0
- package/dist/src/keys/rsa-class.d.ts.map +1 -0
- package/dist/src/keys/rsa-class.js +126 -0
- package/dist/src/keys/rsa-class.js.map +1 -0
- package/dist/src/keys/rsa-utils.d.ts +7 -0
- package/dist/src/keys/rsa-utils.d.ts.map +1 -0
- package/dist/src/keys/rsa-utils.js +65 -0
- package/dist/src/keys/rsa-utils.js.map +1 -0
- package/dist/src/keys/rsa.d.ts +13 -0
- package/dist/src/keys/rsa.d.ts.map +1 -0
- package/dist/src/keys/rsa.js +58 -0
- package/dist/src/keys/rsa.js.map +1 -0
- package/dist/src/keys/secp256k1-class.d.ts +36 -0
- package/dist/src/keys/secp256k1-class.d.ts.map +1 -0
- package/dist/src/keys/secp256k1-class.js +95 -0
- package/dist/src/keys/secp256k1-class.js.map +1 -0
- package/dist/src/keys/secp256k1.d.ts +17 -0
- package/dist/src/keys/secp256k1.d.ts.map +1 -0
- package/dist/src/keys/secp256k1.js +65 -0
- package/dist/src/keys/secp256k1.js.map +1 -0
- package/dist/src/pbkdf2.d.ts +5 -0
- package/dist/src/pbkdf2.d.ts.map +1 -0
- package/dist/src/pbkdf2.js +30 -0
- package/dist/src/pbkdf2.js.map +1 -0
- package/dist/src/random-bytes.d.ts +2 -0
- package/dist/src/random-bytes.d.ts.map +1 -0
- package/dist/src/random-bytes.js +9 -0
- package/dist/src/random-bytes.js.map +1 -0
- package/dist/src/util.d.ts +9 -0
- package/dist/src/util.d.ts.map +1 -0
- package/dist/src/util.js +37 -0
- package/dist/src/util.js.map +1 -0
- package/dist/src/webcrypto.d.ts +5 -0
- package/dist/src/webcrypto.d.ts.map +1 -0
- package/dist/src/webcrypto.js +17 -0
- package/dist/src/webcrypto.js.map +1 -0
- package/package.json +123 -4
- package/src/aes/cipher-mode.ts +15 -0
- package/src/aes/ciphers-browser.ts +28 -0
- package/src/aes/ciphers.ts +4 -0
- package/src/aes/index.ts +25 -0
- package/src/ciphers/aes-gcm.browser.ts +74 -0
- package/src/ciphers/aes-gcm.ts +102 -0
- package/src/ciphers/interface.ts +15 -0
- package/src/hmac/index-browser.ts +35 -0
- package/src/hmac/index.ts +15 -0
- package/src/hmac/lengths.ts +6 -0
- package/src/index.ts +11 -0
- package/src/keys/ecdh-browser.ts +138 -0
- package/src/keys/ecdh.ts +33 -0
- package/src/keys/ed25519-class.ts +145 -0
- package/src/keys/ed25519.ts +63 -0
- package/src/keys/ephemeral-keys.ts +9 -0
- package/src/keys/exporter.ts +13 -0
- package/src/keys/importer.ts +13 -0
- package/src/keys/index.ts +126 -0
- package/src/keys/interface.ts +20 -0
- package/src/keys/jwk2pem.ts +16 -0
- package/src/keys/key-stretcher.ts +77 -0
- package/src/keys/keys.d.ts +146 -0
- package/src/keys/keys.js +366 -0
- package/src/keys/keys.proto +15 -0
- package/src/keys/rsa-browser.ts +156 -0
- package/src/keys/rsa-class.ts +155 -0
- package/src/keys/rsa-utils.ts +74 -0
- package/src/keys/rsa.ts +69 -0
- package/src/keys/secp256k1-class.ts +118 -0
- package/src/keys/secp256k1.ts +69 -0
- package/src/pbkdf2.ts +39 -0
- package/src/random-bytes.ts +9 -0
- package/src/util.ts +42 -0
- package/src/webcrypto.ts +24 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { base64 } from 'multiformats/bases/base64';
|
|
2
|
+
import * as ciphers from '../ciphers/aes-gcm.js';
|
|
3
|
+
/**
|
|
4
|
+
* Attempts to decrypt a base64 encoded PrivateKey string
|
|
5
|
+
* with the given password. The privateKey must have been exported
|
|
6
|
+
* using the same password and underlying cipher (aes-gcm)
|
|
7
|
+
*/
|
|
8
|
+
export async function importer(privateKey, password) {
|
|
9
|
+
const encryptedKey = base64.decode(privateKey);
|
|
10
|
+
const cipher = ciphers.create();
|
|
11
|
+
return await cipher.decrypt(encryptedKey, password);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=importer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../../src/keys/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAEhD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAE,UAAkB,EAAE,QAAgB;IAClE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAC/B,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;AACrD,CAAC"}
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/keys/interface.ts"],"names":[],"mappings":""}
|
|
@@ -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"}
|