@hg-ts/rsa 0.7.27 → 0.8.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/README.md +91 -0
- package/dist/X25519/key-pair.d.ts +4 -4
- package/dist/X25519/key-pair.d.ts.map +1 -1
- package/dist/X25519/key-pair.js +3 -5
- package/dist/X25519/key-pair.js.map +1 -1
- package/dist/X25519/private-key.d.ts +5 -4
- package/dist/X25519/private-key.d.ts.map +1 -1
- package/dist/X25519/private-key.js +8 -21
- package/dist/X25519/private-key.js.map +1 -1
- package/dist/X25519/public-key.d.ts +4 -6
- package/dist/X25519/public-key.d.ts.map +1 -1
- package/dist/X25519/public-key.js +8 -19
- package/dist/X25519/public-key.js.map +1 -1
- package/dist/X25519/x25519.test.d.ts +7 -6
- package/dist/X25519/x25519.test.d.ts.map +1 -1
- package/dist/X25519/x25519.test.js +70 -58
- package/dist/X25519/x25519.test.js.map +1 -1
- package/dist/aead/index.d.ts +2 -0
- package/dist/aead/index.d.ts.map +1 -0
- package/dist/aead/index.js +2 -0
- package/dist/aead/index.js.map +1 -0
- package/dist/aead/xchacha20-poly1305.d.ts +10 -0
- package/dist/aead/xchacha20-poly1305.d.ts.map +1 -0
- package/dist/aead/xchacha20-poly1305.js +48 -0
- package/dist/aead/xchacha20-poly1305.js.map +1 -0
- package/dist/aead/xchacha20-poly1305.test.d.ts +14 -0
- package/dist/aead/xchacha20-poly1305.test.d.ts.map +1 -0
- package/dist/aead/xchacha20-poly1305.test.js +140 -0
- package/dist/aead/xchacha20-poly1305.test.js.map +1 -0
- package/dist/base/index.d.ts +1 -0
- package/dist/base/index.d.ts.map +1 -1
- package/dist/base/index.js +1 -0
- package/dist/base/index.js.map +1 -1
- package/dist/base/key-capabilities.d.ts +36 -0
- package/dist/base/key-capabilities.d.ts.map +1 -0
- package/dist/base/key-capabilities.js +2 -0
- package/dist/base/key-capabilities.js.map +1 -0
- package/dist/base/key-pair.d.ts +3 -7
- package/dist/base/key-pair.d.ts.map +1 -1
- package/dist/base/key-pair.js.map +1 -1
- package/dist/base/key.d.ts +2 -1
- package/dist/base/key.d.ts.map +1 -1
- package/dist/base/key.js.map +1 -1
- package/dist/base/private-key.d.ts +2 -3
- package/dist/base/private-key.d.ts.map +1 -1
- package/dist/base/private-key.js.map +1 -1
- package/dist/base/public-key.d.ts +2 -3
- package/dist/base/public-key.d.ts.map +1 -1
- package/dist/base/public-key.js.map +1 -1
- package/dist/exceptions/hkdf-output-length.exception.d.ts +5 -0
- package/dist/exceptions/hkdf-output-length.exception.d.ts.map +1 -0
- package/dist/exceptions/hkdf-output-length.exception.js +7 -0
- package/dist/exceptions/hkdf-output-length.exception.js.map +1 -0
- package/dist/exceptions/index.d.ts +4 -0
- package/dist/exceptions/index.d.ts.map +1 -1
- package/dist/exceptions/index.js +4 -0
- package/dist/exceptions/index.js.map +1 -1
- package/dist/exceptions/invalid-encryption-key.exception.d.ts +5 -0
- package/dist/exceptions/invalid-encryption-key.exception.d.ts.map +1 -0
- package/dist/exceptions/invalid-encryption-key.exception.js +7 -0
- package/dist/exceptions/invalid-encryption-key.exception.js.map +1 -0
- package/dist/exceptions/invalid-pq-kem-key-length.exception.d.ts +5 -0
- package/dist/exceptions/invalid-pq-kem-key-length.exception.d.ts.map +1 -0
- package/dist/exceptions/invalid-pq-kem-key-length.exception.js +7 -0
- package/dist/exceptions/invalid-pq-kem-key-length.exception.js.map +1 -0
- package/dist/exceptions/invalid-pq-kem-message-length.exception.d.ts +5 -0
- package/dist/exceptions/invalid-pq-kem-message-length.exception.d.ts.map +1 -0
- package/dist/exceptions/invalid-pq-kem-message-length.exception.js +7 -0
- package/dist/exceptions/invalid-pq-kem-message-length.exception.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/pq-kem/algorithm.d.ts +16 -0
- package/dist/pq-kem/algorithm.d.ts.map +1 -0
- package/dist/pq-kem/algorithm.js +25 -0
- package/dist/pq-kem/algorithm.js.map +1 -0
- package/dist/pq-kem/index.d.ts +5 -0
- package/dist/pq-kem/index.d.ts.map +1 -0
- package/dist/pq-kem/index.js +5 -0
- package/dist/pq-kem/index.js.map +1 -0
- package/dist/pq-kem/key-pair.d.ts +15 -0
- package/dist/pq-kem/key-pair.d.ts.map +1 -0
- package/dist/pq-kem/key-pair.js +44 -0
- package/dist/pq-kem/key-pair.js.map +1 -0
- package/dist/pq-kem/pq-kem.test.d.ts +18 -0
- package/dist/pq-kem/pq-kem.test.d.ts.map +1 -0
- package/dist/pq-kem/pq-kem.test.js +173 -0
- package/dist/pq-kem/pq-kem.test.js.map +1 -0
- package/dist/pq-kem/private-key.d.ts +16 -0
- package/dist/pq-kem/private-key.d.ts.map +1 -0
- package/dist/pq-kem/private-key.js +43 -0
- package/dist/pq-kem/private-key.js.map +1 -0
- package/dist/pq-kem/public-key.d.ts +18 -0
- package/dist/pq-kem/public-key.d.ts.map +1 -0
- package/dist/pq-kem/public-key.js +70 -0
- package/dist/pq-kem/public-key.js.map +1 -0
- package/dist/rsa/key-pair.d.ts +2 -2
- package/dist/rsa/key-pair.d.ts.map +1 -1
- package/dist/rsa/key-pair.js.map +1 -1
- package/dist/rsa/private-key.d.ts +3 -2
- package/dist/rsa/private-key.d.ts.map +1 -1
- package/dist/rsa/private-key.js +2 -1
- package/dist/rsa/private-key.js.map +1 -1
- package/dist/rsa/public-key.d.ts +3 -2
- package/dist/rsa/public-key.d.ts.map +1 -1
- package/dist/rsa/public-key.js +2 -1
- package/dist/rsa/public-key.js.map +1 -1
- package/dist/rsa/rsa.test.d.ts.map +1 -1
- package/dist/rsa/rsa.test.js +1 -0
- package/dist/rsa/rsa.test.js.map +1 -1
- package/dist/utils/hkdf.d.ts +26 -0
- package/dist/utils/hkdf.d.ts.map +1 -0
- package/dist/utils/hkdf.js +43 -0
- package/dist/utils/hkdf.js.map +1 -0
- package/dist/utils/hkdf.test.d.ts +7 -0
- package/dist/utils/hkdf.test.d.ts.map +1 -0
- package/dist/utils/hkdf.test.js +79 -0
- package/dist/utils/hkdf.test.js.map +1 -0
- package/dist/utils/hmac.d.ts +5 -0
- package/dist/utils/hmac.d.ts.map +1 -0
- package/dist/utils/hmac.js +16 -0
- package/dist/utils/hmac.js.map +1 -0
- package/dist/utils/hmac.test.d.ts +6 -0
- package/dist/utils/hmac.test.d.ts.map +1 -0
- package/dist/utils/hmac.test.js +33 -0
- package/dist/utils/hmac.test.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/kdf.d.ts +3 -0
- package/dist/utils/kdf.d.ts.map +1 -0
- package/dist/utils/kdf.js +10 -0
- package/dist/utils/kdf.js.map +1 -0
- package/package.json +16 -10
- package/src/X25519/key-pair.ts +9 -9
- package/src/X25519/private-key.ts +15 -30
- package/src/X25519/public-key.ts +15 -31
- package/src/X25519/x25519.test.ts +81 -68
- package/src/aead/index.ts +1 -0
- package/src/aead/xchacha20-poly1305.test.ts +147 -0
- package/src/aead/xchacha20-poly1305.ts +80 -0
- package/src/base/index.ts +1 -0
- package/src/base/key-capabilities.ts +54 -0
- package/src/base/key-pair.ts +6 -11
- package/src/base/key.ts +3 -1
- package/src/base/private-key.ts +2 -5
- package/src/base/public-key.ts +4 -5
- package/src/exceptions/hkdf-output-length.exception.ts +7 -0
- package/src/exceptions/index.ts +4 -0
- package/src/exceptions/invalid-encryption-key.exception.ts +7 -0
- package/src/exceptions/invalid-pq-kem-key-length.exception.ts +7 -0
- package/src/exceptions/invalid-pq-kem-message-length.exception.ts +7 -0
- package/src/index.ts +3 -0
- package/src/pq-kem/algorithm.ts +51 -0
- package/src/pq-kem/index.ts +4 -0
- package/src/pq-kem/key-pair.ts +76 -0
- package/src/pq-kem/pq-kem.test.ts +144 -0
- package/src/pq-kem/private-key.ts +67 -0
- package/src/pq-kem/public-key.ts +99 -0
- package/src/rsa/key-pair.ts +11 -5
- package/src/rsa/private-key.ts +9 -2
- package/src/rsa/public-key.ts +9 -2
- package/src/rsa/rsa.test.ts +1 -0
- package/src/utils/hkdf.test.ts +77 -0
- package/src/utils/hkdf.ts +89 -0
- package/src/utils/hmac.test.ts +43 -0
- package/src/utils/hmac.ts +21 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/kdf.ts +17 -0
- package/tsconfig.json +3 -1
- package/dist/X25519/utils.d.ts +0 -2
- package/dist/X25519/utils.d.ts.map +0 -1
- package/dist/X25519/utils.js +0 -12
- package/dist/X25519/utils.js.map +0 -1
- package/src/X25519/utils.ts +0 -22
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Buffer from '@hg-ts/buffer';
|
|
2
|
+
export declare class XChaCha20Poly1305Aead {
|
|
3
|
+
deriveKey(...values: Buffer[]): Buffer;
|
|
4
|
+
encrypt(value: string | Buffer, key: Buffer, associatedData?: string | Buffer): Buffer;
|
|
5
|
+
decrypt(value: string | Buffer, key: Buffer, associatedData?: string | Buffer): Buffer;
|
|
6
|
+
private validateKey;
|
|
7
|
+
private toBuffer;
|
|
8
|
+
private toOptionalBuffer;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=xchacha20-poly1305.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xchacha20-poly1305.d.ts","sourceRoot":"","sources":["../../src/aead/xchacha20-poly1305.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AAanC,qBAAa,qBAAqB;IAC1B,SAAS,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;IAQtC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAgBtF,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAsB7F,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,gBAAgB;CAOxB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import Buffer from '@hg-ts/buffer';
|
|
2
|
+
import sodium from 'libsodium-wrappers';
|
|
3
|
+
import { InvalidDecryptionKeyExpection, InvalidEncryptionKeyException, } from '../exceptions/index.js';
|
|
4
|
+
import { deriveKey } from '../utils/index.js';
|
|
5
|
+
const ALGORITHM = Buffer.from('X25519-XChaCha20-Poly1305', 'utf8');
|
|
6
|
+
sodium.ready.catch(() => { });
|
|
7
|
+
export class XChaCha20Poly1305Aead {
|
|
8
|
+
deriveKey(...values) {
|
|
9
|
+
return deriveKey(sodium.crypto_aead_xchacha20poly1305_ietf_KEYBYTES, ALGORITHM, ...values);
|
|
10
|
+
}
|
|
11
|
+
encrypt(value, key, associatedData) {
|
|
12
|
+
this.validateKey(key);
|
|
13
|
+
const nonce = Buffer.from(sodium.randombytes_buf(sodium.crypto_aead_xchacha20poly1305_ietf_NPUBBYTES));
|
|
14
|
+
const ciphertext = Buffer.from(sodium.crypto_aead_xchacha20poly1305_ietf_encrypt(this.toBuffer(value), this.toOptionalBuffer(associatedData), null, nonce, key));
|
|
15
|
+
return Buffer.concat([nonce, ciphertext]);
|
|
16
|
+
}
|
|
17
|
+
decrypt(value, key, associatedData) {
|
|
18
|
+
this.validateKey(key);
|
|
19
|
+
const encrypted = typeof value === 'string'
|
|
20
|
+
? Buffer.from(value, 'base64')
|
|
21
|
+
: value;
|
|
22
|
+
try {
|
|
23
|
+
const nonce = encrypted.subarray(0, sodium.crypto_aead_xchacha20poly1305_ietf_NPUBBYTES);
|
|
24
|
+
const ciphertext = encrypted.subarray(sodium.crypto_aead_xchacha20poly1305_ietf_NPUBBYTES);
|
|
25
|
+
return Buffer.from(sodium.crypto_aead_xchacha20poly1305_ietf_decrypt(null, ciphertext, this.toOptionalBuffer(associatedData), nonce, key));
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
throw new InvalidDecryptionKeyExpection();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
validateKey(key) {
|
|
32
|
+
if (key.length !== sodium.crypto_aead_xchacha20poly1305_ietf_KEYBYTES) {
|
|
33
|
+
throw new InvalidEncryptionKeyException();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
toBuffer(value) {
|
|
37
|
+
return typeof value === 'string'
|
|
38
|
+
? Buffer.from(value, 'utf8')
|
|
39
|
+
: value;
|
|
40
|
+
}
|
|
41
|
+
toOptionalBuffer(value) {
|
|
42
|
+
if (!value) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return this.toBuffer(value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=xchacha20-poly1305.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xchacha20-poly1305.js","sourceRoot":"","sources":["../../src/aead/xchacha20-poly1305.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EACN,6BAA6B,EAC7B,6BAA6B,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;AAEnE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAE7B,MAAM,OAAO,qBAAqB;IAC1B,SAAS,CAAC,GAAG,MAAgB;QACnC,OAAO,SAAS,CACf,MAAM,CAAC,2CAA2C,EAClD,SAAS,EACT,GAAG,MAAM,CACT,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,KAAsB,EAAE,GAAW,EAAE,cAAgC;QACnF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACxB,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAC3E,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,0CAA0C,CAC/E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACpB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EACrC,IAAI,EACJ,KAAK,EACL,GAAG,CACH,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO,CAAC,KAAsB,EAAE,GAAW,EAAE,cAAgC;QACnF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ;YAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC9B,CAAC,CAAC,KAAK,CAAC;QAET,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,4CAA4C,CAAC,CAAC;YACzF,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC;YAE3F,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,0CAA0C,CACnE,IAAI,EACJ,UAAU,EACV,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EACrC,KAAK,EACL,GAAG,CACH,CAAC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,IAAI,6BAA6B,EAAE,CAAC;QAC3C,CAAC;IACF,CAAC;IAEO,WAAW,CAAC,GAAW;QAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,2CAA2C,EAAE,CAAC;YACvE,MAAM,IAAI,6BAA6B,EAAE,CAAC;QAC3C,CAAC;IACF,CAAC;IAEO,QAAQ,CAAC,KAAsB;QACtC,OAAO,OAAO,KAAK,KAAK,QAAQ;YAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;YAC5B,CAAC,CAAC,KAAK,CAAC;IACV,CAAC;IAEO,gBAAgB,CAAC,KAAuB;QAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;CACD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Suite } from '@hg-ts/tests';
|
|
2
|
+
export declare class XChaCha20Poly1305AeadTest extends Suite {
|
|
3
|
+
encryption(): Promise<void>;
|
|
4
|
+
encryptionBuffer(): Promise<void>;
|
|
5
|
+
duplicateEncryptionDifferences(): Promise<void>;
|
|
6
|
+
associatedData(): Promise<void>;
|
|
7
|
+
decryptFailsForAnotherAssociatedData(): Promise<void>;
|
|
8
|
+
decryptFailsForAnotherKey(): Promise<void>;
|
|
9
|
+
encryptionFailsForInvalidKeyLength(): Promise<void>;
|
|
10
|
+
deriveKeyDependsOnPublicKeyOrder(): Promise<void>;
|
|
11
|
+
setUp(): Promise<void>;
|
|
12
|
+
private deriveAliceBobKeys;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=xchacha20-poly1305.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xchacha20-poly1305.test.d.ts","sourceRoot":"","sources":["../../src/aead/xchacha20-poly1305.test.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,KAAK,EAEL,MAAM,cAAc,CAAC;AAUtB,qBACa,yBAA0B,SAAQ,KAAK;IAEtC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/B,oCAAoC,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrD,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAY1C,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnD,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C,OAAO,CAAC,kBAAkB;CAoB1B"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import Buffer from '@hg-ts/buffer';
|
|
3
|
+
import { Describe, expect, ExpectException, Suite, Test, } from '@hg-ts/tests';
|
|
4
|
+
import sodium from 'libsodium-wrappers';
|
|
5
|
+
import { InvalidDecryptionKeyExpection, InvalidEncryptionKeyException, } from '../exceptions/index.js';
|
|
6
|
+
import { X25519KeyPair } from '../X25519/index.js';
|
|
7
|
+
import { XChaCha20Poly1305Aead } from './xchacha20-poly1305.js';
|
|
8
|
+
let XChaCha20Poly1305AeadTest = class XChaCha20Poly1305AeadTest extends Suite {
|
|
9
|
+
async encryption() {
|
|
10
|
+
const { aliceKey, bobKey } = this.deriveAliceBobKeys();
|
|
11
|
+
const value = Math.random().toString();
|
|
12
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
13
|
+
const encrypted = aead.encrypt(value, aliceKey);
|
|
14
|
+
const decrypted = aead.decrypt(encrypted.toString('base64'), bobKey);
|
|
15
|
+
expect(decrypted.toString('utf8')).toBe(value);
|
|
16
|
+
}
|
|
17
|
+
async encryptionBuffer() {
|
|
18
|
+
const { aliceKey, bobKey } = this.deriveAliceBobKeys();
|
|
19
|
+
const value = Buffer.from(Math.random().toString(), 'utf8');
|
|
20
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
21
|
+
const encrypted = aead.encrypt(value, aliceKey);
|
|
22
|
+
const decrypted = aead.decrypt(encrypted, bobKey);
|
|
23
|
+
expect(decrypted).toMatchObject(value);
|
|
24
|
+
}
|
|
25
|
+
async duplicateEncryptionDifferences() {
|
|
26
|
+
const { aliceKey, bobKey } = this.deriveAliceBobKeys();
|
|
27
|
+
const value = Math.random().toString();
|
|
28
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
29
|
+
const encryptedA = aead.encrypt(value, aliceKey);
|
|
30
|
+
const encryptedB = aead.encrypt(value, aliceKey);
|
|
31
|
+
expect(encryptedA).not.toMatchObject(encryptedB);
|
|
32
|
+
expect(aead.decrypt(encryptedA, bobKey).toString('utf8')).toBe(value);
|
|
33
|
+
expect(aead.decrypt(encryptedB, bobKey).toString('utf8')).toBe(value);
|
|
34
|
+
}
|
|
35
|
+
async associatedData() {
|
|
36
|
+
const { aliceKey, bobKey } = this.deriveAliceBobKeys();
|
|
37
|
+
const value = Math.random().toString();
|
|
38
|
+
const associatedData = Buffer.from('message-header', 'utf8');
|
|
39
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
40
|
+
const encrypted = aead.encrypt(value, aliceKey, associatedData);
|
|
41
|
+
const decrypted = aead.decrypt(encrypted, bobKey, associatedData);
|
|
42
|
+
expect(decrypted.toString('utf8')).toBe(value);
|
|
43
|
+
}
|
|
44
|
+
async decryptFailsForAnotherAssociatedData() {
|
|
45
|
+
const { aliceKey, bobKey } = this.deriveAliceBobKeys();
|
|
46
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
47
|
+
const encrypted = aead.encrypt(Math.random().toString(), aliceKey, 'message-header');
|
|
48
|
+
aead.decrypt(encrypted, bobKey, 'another-message-header');
|
|
49
|
+
}
|
|
50
|
+
async decryptFailsForAnotherKey() {
|
|
51
|
+
const { aliceKey } = this.deriveAliceBobKeys();
|
|
52
|
+
const anotherKey = new X25519KeyPair().privateKeyInstance.nativeKey;
|
|
53
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
54
|
+
const encrypted = aead.encrypt(Math.random().toString(), aliceKey);
|
|
55
|
+
aead.decrypt(encrypted, anotherKey);
|
|
56
|
+
}
|
|
57
|
+
async encryptionFailsForInvalidKeyLength() {
|
|
58
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
59
|
+
aead.encrypt(Math.random().toString(), Buffer.from('invalid-key', 'utf8'));
|
|
60
|
+
}
|
|
61
|
+
async deriveKeyDependsOnPublicKeyOrder() {
|
|
62
|
+
const alice = new X25519KeyPair();
|
|
63
|
+
const bob = new X25519KeyPair();
|
|
64
|
+
const sharedSecret = alice.deriveSharedSecret(bob.publicKeyInstance);
|
|
65
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
66
|
+
const keyA = aead.deriveKey(sharedSecret, alice.publicKeyInstance.nativeKey, bob.publicKeyInstance.nativeKey);
|
|
67
|
+
const keyB = aead.deriveKey(sharedSecret, bob.publicKeyInstance.nativeKey, alice.publicKeyInstance.nativeKey);
|
|
68
|
+
expect(keyA).not.toMatchObject(keyB);
|
|
69
|
+
}
|
|
70
|
+
async setUp() {
|
|
71
|
+
await sodium.ready;
|
|
72
|
+
}
|
|
73
|
+
deriveAliceBobKeys() {
|
|
74
|
+
const alice = new X25519KeyPair();
|
|
75
|
+
const bob = new X25519KeyPair();
|
|
76
|
+
const aliceSecret = alice.deriveSharedSecret(bob.publicKeyInstance);
|
|
77
|
+
const bobSecret = bob.deriveSharedSecret(alice.publicKeyInstance);
|
|
78
|
+
const aead = new XChaCha20Poly1305Aead();
|
|
79
|
+
return {
|
|
80
|
+
aliceKey: aead.deriveKey(aliceSecret, alice.publicKeyInstance.nativeKey, bob.publicKeyInstance.nativeKey),
|
|
81
|
+
bobKey: aead.deriveKey(bobSecret, alice.publicKeyInstance.nativeKey, bob.publicKeyInstance.nativeKey),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
__decorate([
|
|
86
|
+
Test(),
|
|
87
|
+
__metadata("design:type", Function),
|
|
88
|
+
__metadata("design:paramtypes", []),
|
|
89
|
+
__metadata("design:returntype", Promise)
|
|
90
|
+
], XChaCha20Poly1305AeadTest.prototype, "encryption", null);
|
|
91
|
+
__decorate([
|
|
92
|
+
Test(),
|
|
93
|
+
__metadata("design:type", Function),
|
|
94
|
+
__metadata("design:paramtypes", []),
|
|
95
|
+
__metadata("design:returntype", Promise)
|
|
96
|
+
], XChaCha20Poly1305AeadTest.prototype, "encryptionBuffer", null);
|
|
97
|
+
__decorate([
|
|
98
|
+
Test(),
|
|
99
|
+
__metadata("design:type", Function),
|
|
100
|
+
__metadata("design:paramtypes", []),
|
|
101
|
+
__metadata("design:returntype", Promise)
|
|
102
|
+
], XChaCha20Poly1305AeadTest.prototype, "duplicateEncryptionDifferences", null);
|
|
103
|
+
__decorate([
|
|
104
|
+
Test(),
|
|
105
|
+
__metadata("design:type", Function),
|
|
106
|
+
__metadata("design:paramtypes", []),
|
|
107
|
+
__metadata("design:returntype", Promise)
|
|
108
|
+
], XChaCha20Poly1305AeadTest.prototype, "associatedData", null);
|
|
109
|
+
__decorate([
|
|
110
|
+
Test(),
|
|
111
|
+
ExpectException(InvalidDecryptionKeyExpection),
|
|
112
|
+
__metadata("design:type", Function),
|
|
113
|
+
__metadata("design:paramtypes", []),
|
|
114
|
+
__metadata("design:returntype", Promise)
|
|
115
|
+
], XChaCha20Poly1305AeadTest.prototype, "decryptFailsForAnotherAssociatedData", null);
|
|
116
|
+
__decorate([
|
|
117
|
+
Test(),
|
|
118
|
+
ExpectException(InvalidDecryptionKeyExpection),
|
|
119
|
+
__metadata("design:type", Function),
|
|
120
|
+
__metadata("design:paramtypes", []),
|
|
121
|
+
__metadata("design:returntype", Promise)
|
|
122
|
+
], XChaCha20Poly1305AeadTest.prototype, "decryptFailsForAnotherKey", null);
|
|
123
|
+
__decorate([
|
|
124
|
+
Test(),
|
|
125
|
+
ExpectException(InvalidEncryptionKeyException),
|
|
126
|
+
__metadata("design:type", Function),
|
|
127
|
+
__metadata("design:paramtypes", []),
|
|
128
|
+
__metadata("design:returntype", Promise)
|
|
129
|
+
], XChaCha20Poly1305AeadTest.prototype, "encryptionFailsForInvalidKeyLength", null);
|
|
130
|
+
__decorate([
|
|
131
|
+
Test(),
|
|
132
|
+
__metadata("design:type", Function),
|
|
133
|
+
__metadata("design:paramtypes", []),
|
|
134
|
+
__metadata("design:returntype", Promise)
|
|
135
|
+
], XChaCha20Poly1305AeadTest.prototype, "deriveKeyDependsOnPublicKeyOrder", null);
|
|
136
|
+
XChaCha20Poly1305AeadTest = __decorate([
|
|
137
|
+
Describe()
|
|
138
|
+
], XChaCha20Poly1305AeadTest);
|
|
139
|
+
export { XChaCha20Poly1305AeadTest };
|
|
140
|
+
//# sourceMappingURL=xchacha20-poly1305.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xchacha20-poly1305.test.js","sourceRoot":"","sources":["../../src/aead/xchacha20-poly1305.test.ts"],"names":[],"mappings":"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"}
|
package/dist/base/index.d.ts
CHANGED
package/dist/base/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
package/dist/base/index.js
CHANGED
package/dist/base/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type SerializableKey<TKey = unknown> = {
|
|
2
|
+
readonly nativeKey: TKey;
|
|
3
|
+
toString(): string;
|
|
4
|
+
};
|
|
5
|
+
export type PublicKey<TKey = unknown> = SerializableKey<TKey>;
|
|
6
|
+
export type PrivateKey<TNativeKey = unknown, TPublicKey extends PublicKey = PublicKey> = SerializableKey<TNativeKey> & {
|
|
7
|
+
toPublicKey(): TPublicKey;
|
|
8
|
+
};
|
|
9
|
+
export type EncryptingPublicKey = {
|
|
10
|
+
encrypt(value: string | Buffer): Buffer;
|
|
11
|
+
};
|
|
12
|
+
export type DecryptingPrivateKey = {
|
|
13
|
+
decrypt(value: string | Buffer): string;
|
|
14
|
+
};
|
|
15
|
+
export type SigningPrivateKey = {
|
|
16
|
+
sign(value: string): Buffer;
|
|
17
|
+
};
|
|
18
|
+
export type VerifyingPublicKey = {
|
|
19
|
+
verify(signature: string | Buffer, value: string): boolean;
|
|
20
|
+
};
|
|
21
|
+
export type KemEncapsulation = {
|
|
22
|
+
cipherText: Buffer;
|
|
23
|
+
sharedSecret: Buffer;
|
|
24
|
+
};
|
|
25
|
+
export type EncapsulatingPublicKey = {
|
|
26
|
+
encapsulate(message?: string | Buffer): KemEncapsulation;
|
|
27
|
+
};
|
|
28
|
+
export type DecapsulatingPrivateKey = {
|
|
29
|
+
decapsulate(cipherText: string | Buffer): Buffer;
|
|
30
|
+
};
|
|
31
|
+
export type KeyAgreementPublicKey<TKey = unknown> = PublicKey<TKey>;
|
|
32
|
+
export type KeyAgreementPrivateKey<TPublicKey extends KeyAgreementPublicKey, TNativeKey = unknown> = PrivateKey<TNativeKey, TPublicKey> & KeyAgreement<TPublicKey>;
|
|
33
|
+
export type KeyAgreement<TPublicKey extends KeyAgreementPublicKey> = {
|
|
34
|
+
deriveSharedSecret(peerPublicKey: TPublicKey): Buffer;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=key-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-capabilities.d.ts","sourceRoot":"","sources":["../../src/base/key-capabilities.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,CAAC,IAAI,GAAG,OAAO,IAAI;IAC7C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IAEzB,QAAQ,IAAI,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,IAAI,GAAG,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AAE9D,MAAM,MAAM,UAAU,CACrB,UAAU,GAAG,OAAO,EACpB,UAAU,SAAS,SAAS,GAAG,SAAS,IACrC,eAAe,CAAC,UAAU,CAAC,GAAG;IACjC,WAAW,IAAI,UAAU,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACrC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,IAAI,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpE,MAAM,MAAM,sBAAsB,CACjC,UAAU,SAAS,qBAAqB,EACxC,UAAU,GAAG,OAAO,IACjB,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAElE,MAAM,MAAM,YAAY,CAAC,UAAU,SAAS,qBAAqB,IAAI;IACpE,kBAAkB,CAAC,aAAa,EAAE,UAAU,GAAG,MAAM,CAAC;CACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-capabilities.js","sourceRoot":"","sources":["../../src/base/key-capabilities.ts"],"names":[],"mappings":""}
|
package/dist/base/key-pair.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BasePrivateKey, StaticPrivateKey } from './private-key.js';
|
|
2
2
|
import { BasePublicKey } from './public-key.js';
|
|
3
|
-
export type NewKeyPairOptions = {
|
|
3
|
+
export type NewKeyPairOptions<TBits extends number = number> = {
|
|
4
4
|
seed?: string;
|
|
5
|
-
bits?:
|
|
5
|
+
bits?: TBits;
|
|
6
6
|
};
|
|
7
|
-
export type KeyPairOptions<TPrivateKey extends BasePrivateKey> = NewKeyPairOptions & {
|
|
7
|
+
export type KeyPairOptions<TPrivateKey extends BasePrivateKey, TBits extends number = number> = NewKeyPairOptions<TBits> & {
|
|
8
8
|
privateKey?: TPrivateKey | string;
|
|
9
9
|
};
|
|
10
10
|
export type KeyPairResult<TPrivateKey extends BasePrivateKey<unknown, TPublicKey>, TPublicKey extends BasePublicKey> = {
|
|
@@ -15,10 +15,6 @@ export declare abstract class BaseKeyPair<TPrivateKey extends BasePrivateKey<unk
|
|
|
15
15
|
readonly privateKeyInstance: TPrivateKey;
|
|
16
16
|
readonly publicKeyInstance: TPublicKey;
|
|
17
17
|
protected constructor(options: TOptions, privateKeyCtor: StaticPrivateKey<TPrivateKey>);
|
|
18
|
-
abstract encrypt(value: string | Buffer, ...additionalArguments: unknown[]): Buffer;
|
|
19
|
-
abstract decrypt(value: string | Buffer, ...additionalArguments: unknown[]): string;
|
|
20
|
-
abstract sign(value: string): Buffer;
|
|
21
|
-
abstract verify(signature: string | Buffer, value: string): boolean;
|
|
22
18
|
get publicKey(): string;
|
|
23
19
|
get privateKey(): string;
|
|
24
20
|
protected generateKeys(options: TOptions, privateKeyCtor: StaticPrivateKey<TPrivateKey>): KeyPairResult<TPrivateKey, TPublicKey>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-pair.d.ts","sourceRoot":"","sources":["../../src/base/key-pair.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,iBAAiB,GAAG;
|
|
1
|
+
{"version":3,"file":"key-pair.d.ts","sourceRoot":"","sources":["../../src/base/key-pair.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,CACzB,WAAW,SAAS,cAAc,EAClC,KAAK,SAAS,MAAM,GAAG,MAAM,IAC1B,iBAAiB,CAAC,KAAK,CAAC,GAAG;IAC9B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,aAAa,CACxB,WAAW,SAAS,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EACvD,UAAU,SAAS,aAAa,IAC7B;IACH,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,8BAAsB,WAAW,CAChC,WAAW,SAAS,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EACvD,UAAU,SAAS,aAAa,EAChC,QAAQ,SAAS,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC;IAE1E,SAAgB,kBAAkB,EAAE,WAAW,CAAC;IAChD,SAAgB,iBAAiB,EAAE,UAAU,CAAC;IAE9C,SAAS,aAAa,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,WAAW,CAAC;IAOtF,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,SAAS,CAAC,YAAY,CACrB,OAAO,EAAE,QAAQ,EACjB,cAAc,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAC3C,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC;IAgBzC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC;CACtG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-pair.js","sourceRoot":"","sources":["../../src/base/key-pair.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"key-pair.js","sourceRoot":"","sources":["../../src/base/key-pair.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAgB,WAAW;IAKhB,kBAAkB,CAAc;IAChC,iBAAiB,CAAa;IAE9C,YAAsB,OAAiB,EAAE,cAA6C;QACrF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE3D,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAES,YAAY,CACrB,OAAiB,EACjB,cAA6C;QAE7C,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;QAEjD,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,OAAO,UAAU,KAAK,QAAQ;gBACpD,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;gBACvC,CAAC,CAAC,UAAU,CAAC;YAEd,OAAO;gBACN,UAAU,EAAE,cAAc;gBAC1B,SAAS,EAAE,cAAc,CAAC,WAAW,EAAE;aACvC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,aAAkC,CAAC,CAAC;IACjE,CAAC;CAED"}
|
package/dist/base/key.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { SerializableKey } from './key-capabilities.js';
|
|
2
|
+
export declare abstract class BaseKey<TKey = unknown> implements SerializableKey<TKey> {
|
|
2
3
|
protected readonly key: TKey;
|
|
3
4
|
constructor(key: TKey);
|
|
4
5
|
get nativeKey(): TKey;
|
package/dist/base/key.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/base/key.ts"],"names":[],"mappings":"AAAA,8BAAsB,OAAO,CAAC,IAAI,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/base/key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,8BAAsB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAE,YAAW,eAAe,CAAC,IAAI,CAAC;IAC7E,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;gBAEV,GAAG,EAAE,IAAI;IAI5B,IAAW,SAAS,IAAI,IAAI,CAE3B;aAEe,QAAQ,IAAI,MAAM;CAClC"}
|
package/dist/base/key.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../src/base/key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../../src/base/key.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,OAAO;IACT,GAAG,CAAO;IAE7B,YAAmB,GAAS;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;CAGD"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { BaseKey } from './key.js';
|
|
2
|
+
import { PrivateKey } from './key-capabilities.js';
|
|
2
3
|
import { BasePublicKey } from './public-key.js';
|
|
3
4
|
export type StaticPrivateKey<T extends BasePrivateKey> = Class<T, any[]> & {
|
|
4
5
|
fromString(privateKey: string): T;
|
|
5
6
|
};
|
|
6
|
-
export declare abstract class BasePrivateKey<TNativeKey = unknown, TPublicKey extends BasePublicKey = BasePublicKey> extends BaseKey<TNativeKey> {
|
|
7
|
-
abstract decrypt(encrypted: string | Buffer, ...additionalArguments: unknown[]): string;
|
|
8
|
-
abstract sign(value: string): Buffer;
|
|
7
|
+
export declare abstract class BasePrivateKey<TNativeKey = unknown, TPublicKey extends BasePublicKey = BasePublicKey> extends BaseKey<TNativeKey> implements PrivateKey<TNativeKey, TPublicKey> {
|
|
9
8
|
abstract toPublicKey(): TPublicKey;
|
|
10
9
|
}
|
|
11
10
|
//# sourceMappingURL=private-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-key.d.ts","sourceRoot":"","sources":["../../src/base/private-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,cAAc,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG;IAC1E,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;CAClC,CAAA;AAED,8BAAsB,cAAc,CACnC,UAAU,GAAG,OAAO,EACpB,UAAU,SAAS,aAAa,GAAG,aAAa,CAC/C,SAAQ,OAAO,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"private-key.d.ts","sourceRoot":"","sources":["../../src/base/private-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,cAAc,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG;IAC1E,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC;CAClC,CAAA;AAED,8BAAsB,cAAc,CACnC,UAAU,GAAG,OAAO,EACpB,UAAU,SAAS,aAAa,GAAG,aAAa,CAC/C,SAAQ,OAAO,CAAC,UAAU,CAAE,YAAW,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC;aAC1D,WAAW,IAAI,UAAU;CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-key.js","sourceRoot":"","sources":["../../src/base/private-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"private-key.js","sourceRoot":"","sources":["../../src/base/private-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAQnC,MAAM,OAAgB,cAGpB,SAAQ,OAAmB;CAE5B"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BaseKey } from './key.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
abstract verify(signature: string | Buffer, value: string): boolean;
|
|
2
|
+
import { PublicKey } from './key-capabilities.js';
|
|
3
|
+
export declare abstract class BasePublicKey<TNativeKey = unknown> extends BaseKey<TNativeKey> implements PublicKey<TNativeKey> {
|
|
5
4
|
}
|
|
6
5
|
//# sourceMappingURL=public-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-key.d.ts","sourceRoot":"","sources":["../../src/base/public-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"public-key.d.ts","sourceRoot":"","sources":["../../src/base/public-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,8BAAsB,aAAa,CAAC,UAAU,GAAG,OAAO,CACvD,SAAQ,OAAO,CAAC,UAAU,CAC1B,YAAW,SAAS,CAAC,UAAU,CAAC;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-key.js","sourceRoot":"","sources":["../../src/base/public-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"public-key.js","sourceRoot":"","sources":["../../src/base/public-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,MAAM,OAAgB,aACrB,SAAQ,OAAmB;CACQ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hkdf-output-length.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/hkdf-output-length.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,yBAA0B,SAAQ,aAAa;gBACxC,SAAS,EAAE,MAAM;CAGpC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseException } from '@hg-ts/exception';
|
|
2
|
+
export class HkdfOutputLengthException extends BaseException {
|
|
3
|
+
constructor(maxLength) {
|
|
4
|
+
super(`HKDF output length must not exceed ${maxLength} bytes`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=hkdf-output-length.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hkdf-output-length.exception.js","sourceRoot":"","sources":["../../src/exceptions/hkdf-output-length.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,yBAA0B,SAAQ,aAAa;IAC3D,YAAmB,SAAiB;QACnC,KAAK,CAAC,sCAAsC,SAAS,QAAQ,CAAC,CAAC;IAChE,CAAC;CACD"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
export * from './hkdf-output-length.exception.js';
|
|
1
2
|
export * from './invalid-decryption-key.expection.js';
|
|
3
|
+
export * from './invalid-encryption-key.exception.js';
|
|
4
|
+
export * from './invalid-pq-kem-key-length.exception.js';
|
|
5
|
+
export * from './invalid-pq-kem-message-length.exception.js';
|
|
2
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC"}
|
package/dist/exceptions/index.js
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
export * from './hkdf-output-length.exception.js';
|
|
1
2
|
export * from './invalid-decryption-key.expection.js';
|
|
3
|
+
export * from './invalid-encryption-key.exception.js';
|
|
4
|
+
export * from './invalid-pq-kem-key-length.exception.js';
|
|
5
|
+
export * from './invalid-pq-kem-message-length.exception.js';
|
|
2
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-encryption-key.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/invalid-encryption-key.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,6BAA8B,SAAQ,aAAa;;CAI/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-encryption-key.exception.js","sourceRoot":"","sources":["../../src/exceptions/invalid-encryption-key.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,6BAA8B,SAAQ,aAAa;IAC/D;QACC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACjC,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-pq-kem-key-length.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/invalid-pq-kem-key-length.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,8BAA+B,SAAQ,aAAa;gBAC7C,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM;CAGrE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseException } from '@hg-ts/exception';
|
|
2
|
+
export class InvalidPqKemKeyLengthException extends BaseException {
|
|
3
|
+
constructor(keyType, length) {
|
|
4
|
+
super(`Invalid PQKEM ${keyType} length: ${length}`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=invalid-pq-kem-key-length.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-pq-kem-key-length.exception.js","sourceRoot":"","sources":["../../src/exceptions/invalid-pq-kem-key-length.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,8BAA+B,SAAQ,aAAa;IAChE,YAAmB,OAAkC,EAAE,MAAc;QACpE,KAAK,CAAC,iBAAiB,OAAO,YAAY,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-pq-kem-message-length.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/invalid-pq-kem-message-length.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,kCAAmC,SAAQ,aAAa;gBACjD,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAG/D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseException } from '@hg-ts/exception';
|
|
2
|
+
export class InvalidPqKemMessageLengthException extends BaseException {
|
|
3
|
+
constructor(expectedLength, actualLength) {
|
|
4
|
+
super(`PQKEM encapsulation message must be ${expectedLength} bytes, got ${actualLength}`);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=invalid-pq-kem-message-length.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-pq-kem-message-length.exception.js","sourceRoot":"","sources":["../../src/exceptions/invalid-pq-kem-message-length.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,OAAO,kCAAmC,SAAQ,aAAa;IACpE,YAAmB,cAAsB,EAAE,YAAoB;QAC9D,KAAK,CAAC,uCAAuC,cAAc,eAAe,YAAY,EAAE,CAAC,CAAC;IAC3F,CAAC;CACD"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export * from './base/index.js';
|
|
2
|
+
export * from './aead/index.js';
|
|
2
3
|
export * from './exceptions/index.js';
|
|
4
|
+
export * from './pq-kem/index.js';
|
|
3
5
|
export * from './rsa/index.js';
|
|
4
6
|
export * from './X25519/index.js';
|
|
7
|
+
export * from './utils/index.js';
|
|
5
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export * from './base/index.js';
|
|
2
|
+
export * from './aead/index.js';
|
|
2
3
|
export * from './exceptions/index.js';
|
|
4
|
+
export * from './pq-kem/index.js';
|
|
3
5
|
export * from './rsa/index.js';
|
|
4
6
|
export * from './X25519/index.js';
|
|
7
|
+
export * from './utils/index.js';
|
|
5
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { KEM } from '@noble/post-quantum/utils.js';
|
|
2
|
+
export type PqKemAlgorithm = 512 | 768 | 1024;
|
|
3
|
+
export declare const DEFAULT_PQ_KEM_ALGORITHM: PqKemAlgorithm;
|
|
4
|
+
export declare const PQ_KEM_ALGORITHMS: readonly [512, 768, 1024];
|
|
5
|
+
export type PqKemImplementation = KEM & {
|
|
6
|
+
lengths: {
|
|
7
|
+
cipherText: number;
|
|
8
|
+
msg: number;
|
|
9
|
+
publicKey: number;
|
|
10
|
+
secretKey: number;
|
|
11
|
+
seed: number;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare function getPqKemImplementation(bits: PqKemAlgorithm): PqKemImplementation;
|
|
15
|
+
export declare function inferPqKemBitsByKeyLength(length: number, keyType: 'publicKey' | 'secretKey'): PqKemAlgorithm;
|
|
16
|
+
//# sourceMappingURL=algorithm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"algorithm.d.ts","sourceRoot":"","sources":["../../src/pq-kem/algorithm.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAIxD,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAE9C,eAAO,MAAM,wBAAwB,EAAE,cAAoB,CAAC;AAE5D,eAAO,MAAM,iBAAiB,2BAIgB,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG,GAAG,GAAG;IACvC,OAAO,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACb,CAAC;CACF,CAAC;AAQF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,mBAAmB,CAEhF;AAED,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,GAAG,WAAW,GAChC,cAAc,CAQhB"}
|