leviathan-crypto 2.0.1 → 3.0.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/CLAUDE.md +88 -281
- package/LICENSE +4 -0
- package/README.md +275 -87
- package/dist/aes/aes-cbc.d.ts +40 -0
- package/dist/aes/aes-cbc.js +158 -0
- package/dist/aes/aes-ctr.d.ts +50 -0
- package/dist/aes/aes-ctr.js +141 -0
- package/dist/aes/aes-gcm-siv.d.ts +67 -0
- package/dist/aes/aes-gcm-siv.js +217 -0
- package/dist/aes/aes-gcm.d.ts +61 -0
- package/dist/aes/aes-gcm.js +226 -0
- package/dist/aes/cipher-suite.d.ts +21 -0
- package/dist/aes/cipher-suite.js +179 -0
- package/dist/aes/embedded.d.ts +1 -0
- package/dist/aes/embedded.js +26 -0
- package/dist/aes/generator.d.ts +14 -0
- package/dist/aes/generator.js +103 -0
- package/dist/aes/index.d.ts +58 -0
- package/dist/aes/index.js +125 -0
- package/dist/aes/ops.d.ts +60 -0
- package/dist/aes/ops.js +164 -0
- package/dist/aes/pool-worker.d.ts +1 -0
- package/dist/aes/pool-worker.js +92 -0
- package/dist/aes/types.d.ts +1 -0
- package/dist/aes/types.js +23 -0
- package/dist/aes.wasm +0 -0
- package/dist/blake3/embedded.d.ts +1 -0
- package/dist/blake3/embedded.js +26 -0
- package/dist/blake3/index.d.ts +143 -0
- package/dist/blake3/index.js +620 -0
- package/dist/blake3/types.d.ts +102 -0
- package/dist/blake3/types.js +31 -0
- package/dist/blake3/validate.d.ts +29 -0
- package/dist/blake3/validate.js +80 -0
- package/dist/blake3.wasm +0 -0
- package/dist/chacha20/cipher-suite.d.ts +10 -0
- package/dist/chacha20/cipher-suite.js +98 -13
- package/dist/chacha20/generator.d.ts +12 -0
- package/dist/chacha20/generator.js +91 -0
- package/dist/chacha20/index.d.ts +100 -3
- package/dist/chacha20/index.js +169 -35
- package/dist/chacha20/ops.d.ts +57 -6
- package/dist/chacha20/ops.js +107 -27
- package/dist/chacha20/pool-worker.js +14 -0
- package/dist/chacha20/types.d.ts +1 -32
- package/dist/cte-wasm.d.ts +1 -0
- package/dist/cte-wasm.js +3 -0
- package/dist/cte.wasm +0 -0
- package/dist/curve25519.wasm +0 -0
- package/dist/ecdsa/der.d.ts +23 -0
- package/dist/ecdsa/der.js +192 -0
- package/dist/ecdsa/ecprivatekey-der.d.ts +32 -0
- package/dist/ecdsa/ecprivatekey-der.js +230 -0
- package/dist/ecdsa/embedded.d.ts +1 -0
- package/dist/ecdsa/embedded.js +25 -0
- package/dist/ecdsa/index.d.ts +124 -0
- package/dist/ecdsa/index.js +366 -0
- package/dist/ecdsa/types.d.ts +31 -0
- package/dist/ecdsa/types.js +28 -0
- package/dist/ecdsa/validate.d.ts +18 -0
- package/dist/ecdsa/validate.js +92 -0
- package/dist/ed25519/embedded.d.ts +1 -0
- package/dist/ed25519/embedded.js +31 -0
- package/dist/ed25519/index.d.ts +70 -0
- package/dist/ed25519/index.js +308 -0
- package/dist/ed25519/types.d.ts +27 -0
- package/dist/ed25519/types.js +27 -0
- package/dist/ed25519/validate.d.ts +7 -0
- package/dist/ed25519/validate.js +77 -0
- package/dist/embedded/aes-pool-worker.d.ts +1 -0
- package/dist/embedded/aes-pool-worker.js +5 -0
- package/dist/embedded/aes.d.ts +1 -0
- package/dist/embedded/aes.js +3 -0
- package/dist/embedded/blake3.d.ts +1 -0
- package/dist/embedded/blake3.js +3 -0
- package/dist/embedded/chacha20-pool-worker.d.ts +1 -0
- package/dist/embedded/chacha20-pool-worker.js +5 -0
- package/dist/embedded/chacha20.d.ts +1 -1
- package/dist/embedded/chacha20.js +2 -2
- package/dist/embedded/curve25519.d.ts +1 -0
- package/dist/embedded/curve25519.js +3 -0
- package/dist/embedded/mldsa.d.ts +1 -0
- package/dist/embedded/mldsa.js +3 -0
- package/dist/embedded/mlkem.d.ts +1 -0
- package/dist/embedded/mlkem.js +3 -0
- package/dist/embedded/p256.d.ts +1 -0
- package/dist/embedded/p256.js +3 -0
- package/dist/embedded/serpent-pool-worker.d.ts +1 -0
- package/dist/embedded/serpent-pool-worker.js +5 -0
- package/dist/embedded/serpent.d.ts +1 -1
- package/dist/embedded/serpent.js +2 -2
- package/dist/embedded/sha2.d.ts +1 -1
- package/dist/embedded/sha2.js +2 -2
- package/dist/embedded/sha3.d.ts +1 -1
- package/dist/embedded/sha3.js +2 -2
- package/dist/embedded/slhdsa.d.ts +1 -0
- package/dist/embedded/slhdsa.js +3 -0
- package/dist/errors.d.ts +92 -1
- package/dist/errors.js +111 -1
- package/dist/fortuna.d.ts +18 -12
- package/dist/fortuna.js +166 -99
- package/dist/index.d.ts +42 -11
- package/dist/index.js +65 -20
- package/dist/init.d.ts +1 -3
- package/dist/init.js +73 -7
- package/dist/keccak/embedded.js +1 -1
- package/dist/keccak/index.d.ts +2 -0
- package/dist/keccak/index.js +4 -2
- package/dist/loader.d.ts +1 -19
- package/dist/loader.js +26 -32
- package/dist/merkle/blake3-tree.d.ts +35 -0
- package/dist/merkle/blake3-tree.js +187 -0
- package/dist/merkle/checkpoint.d.ts +58 -0
- package/dist/merkle/checkpoint.js +217 -0
- package/dist/merkle/index.d.ts +19 -0
- package/dist/merkle/index.js +37 -0
- package/dist/merkle/merkle-log.d.ts +130 -0
- package/dist/merkle/merkle-log.js +207 -0
- package/dist/merkle/merkle-verifier.d.ts +126 -0
- package/dist/merkle/merkle-verifier.js +296 -0
- package/dist/merkle/proof.d.ts +70 -0
- package/dist/merkle/proof.js +300 -0
- package/dist/merkle/sha256-tree.d.ts +33 -0
- package/dist/merkle/sha256-tree.js +145 -0
- package/dist/merkle/signed-log.d.ts +156 -0
- package/dist/merkle/signed-log.js +356 -0
- package/dist/merkle/signed-note.d.ts +309 -0
- package/dist/merkle/signed-note.js +648 -0
- package/dist/merkle/sth.d.ts +31 -0
- package/dist/merkle/sth.js +31 -0
- package/dist/merkle/storage.d.ts +40 -0
- package/dist/merkle/storage.js +71 -0
- package/dist/merkle/tree.d.ts +68 -0
- package/dist/merkle/tree.js +94 -0
- package/dist/mldsa/embedded.d.ts +1 -0
- package/dist/{kyber → mldsa}/embedded.js +5 -5
- package/dist/mldsa/expand.d.ts +53 -0
- package/dist/mldsa/expand.js +188 -0
- package/dist/mldsa/format.d.ts +16 -0
- package/dist/mldsa/format.js +68 -0
- package/dist/mldsa/hashvariant.d.ts +32 -0
- package/dist/mldsa/hashvariant.js +248 -0
- package/dist/mldsa/index.d.ts +142 -0
- package/dist/mldsa/index.js +463 -0
- package/dist/mldsa/keygen.d.ts +16 -0
- package/dist/mldsa/keygen.js +232 -0
- package/dist/mldsa/params.d.ts +21 -0
- package/dist/mldsa/params.js +55 -0
- package/dist/mldsa/sha3-helpers.d.ts +30 -0
- package/dist/mldsa/sha3-helpers.js +124 -0
- package/dist/mldsa/sign.d.ts +36 -0
- package/dist/mldsa/sign.js +380 -0
- package/dist/mldsa/types.d.ts +91 -0
- package/dist/mldsa/types.js +25 -0
- package/dist/mldsa/validate.d.ts +55 -0
- package/dist/mldsa/validate.js +125 -0
- package/dist/mldsa/verify.d.ts +29 -0
- package/dist/mldsa/verify.js +269 -0
- package/dist/mldsa.wasm +0 -0
- package/dist/mlkem/embedded.d.ts +1 -0
- package/dist/mlkem/embedded.js +27 -0
- package/dist/mlkem/indcpa.d.ts +49 -0
- package/dist/{kyber → mlkem}/indcpa.js +48 -48
- package/dist/mlkem/index.d.ts +37 -0
- package/dist/{kyber → mlkem}/index.js +41 -31
- package/dist/mlkem/kem.d.ts +21 -0
- package/dist/{kyber → mlkem}/kem.js +48 -13
- package/dist/{kyber → mlkem}/params.d.ts +4 -4
- package/dist/{kyber → mlkem}/params.js +2 -2
- package/dist/mlkem/suite.d.ts +12 -0
- package/dist/{kyber → mlkem}/suite.js +17 -12
- package/dist/{kyber → mlkem}/types.d.ts +4 -3
- package/dist/{kyber → mlkem}/types.js +1 -1
- package/dist/mlkem/validate.d.ts +23 -0
- package/dist/{kyber → mlkem}/validate.js +24 -20
- package/dist/{kyber.wasm → mlkem.wasm} +0 -0
- package/dist/p256.wasm +0 -0
- package/dist/ratchet/index.d.ts +8 -0
- package/dist/ratchet/index.js +38 -0
- package/dist/ratchet/kdf-chain.d.ts +13 -0
- package/dist/ratchet/kdf-chain.js +85 -0
- package/dist/ratchet/ratchet-keypair.d.ts +9 -0
- package/dist/ratchet/ratchet-keypair.js +61 -0
- package/dist/ratchet/root-kdf.d.ts +4 -0
- package/dist/ratchet/root-kdf.js +124 -0
- package/dist/ratchet/skipped-key-store.d.ts +14 -0
- package/dist/ratchet/skipped-key-store.js +154 -0
- package/dist/ratchet/types.d.ts +36 -0
- package/dist/ratchet/types.js +26 -0
- package/dist/serpent/cipher-suite.d.ts +10 -0
- package/dist/serpent/cipher-suite.js +144 -56
- package/dist/serpent/generator.d.ts +12 -0
- package/dist/serpent/generator.js +97 -0
- package/dist/serpent/index.d.ts +62 -1
- package/dist/serpent/index.js +97 -21
- package/dist/serpent/pool-worker.js +28 -102
- package/dist/serpent/serpent-cbc.d.ts +16 -6
- package/dist/serpent/serpent-cbc.js +58 -37
- package/dist/serpent/shared-ops.d.ts +63 -0
- package/dist/serpent/shared-ops.js +178 -0
- package/dist/serpent/types.d.ts +1 -5
- package/dist/serpent.wasm +0 -0
- package/dist/sha2/hash.d.ts +2 -0
- package/dist/sha2/hash.js +53 -0
- package/dist/sha2/hkdf.js +5 -5
- package/dist/sha2/index.d.ts +22 -1
- package/dist/sha2/index.js +80 -11
- package/dist/sha2/types.d.ts +41 -2
- package/dist/sha2.wasm +0 -0
- package/dist/sha3/hash.d.ts +2 -0
- package/dist/sha3/hash.js +53 -0
- package/dist/sha3/index.d.ts +87 -3
- package/dist/sha3/index.js +317 -19
- package/dist/sha3/kmac.d.ts +121 -0
- package/dist/sha3/kmac.js +800 -0
- package/dist/sha3.wasm +0 -0
- package/dist/shared/pkcs7.d.ts +22 -0
- package/dist/shared/pkcs7.js +84 -0
- package/dist/sign/ctx.d.ts +41 -0
- package/dist/sign/ctx.js +102 -0
- package/dist/sign/envelope.d.ts +45 -0
- package/dist/sign/envelope.js +152 -0
- package/dist/sign/hasher.d.ts +9 -0
- package/dist/sign/hasher.js +132 -0
- package/dist/sign/index.d.ts +11 -0
- package/dist/sign/index.js +34 -0
- package/dist/sign/sign-stream.d.ts +25 -0
- package/dist/sign/sign-stream.js +112 -0
- package/dist/sign/suites/ecdsa-p256.d.ts +2 -0
- package/dist/sign/suites/ecdsa-p256.js +120 -0
- package/dist/sign/suites/ed25519.d.ts +3 -0
- package/dist/sign/suites/ed25519.js +165 -0
- package/dist/sign/suites/hybrid-classical.d.ts +23 -0
- package/dist/sign/suites/hybrid-classical.js +526 -0
- package/dist/sign/suites/hybrid-pq.d.ts +4 -0
- package/dist/sign/suites/hybrid-pq.js +234 -0
- package/dist/sign/suites/mldsa.d.ts +7 -0
- package/dist/sign/suites/mldsa.js +161 -0
- package/dist/sign/suites/slhdsa.d.ts +7 -0
- package/dist/sign/suites/slhdsa.js +176 -0
- package/dist/sign/types.d.ts +106 -0
- package/dist/sign/types.js +28 -0
- package/dist/sign/verify-stream.d.ts +30 -0
- package/dist/sign/verify-stream.js +227 -0
- package/dist/slhdsa/embedded.d.ts +1 -0
- package/dist/slhdsa/embedded.js +26 -0
- package/dist/slhdsa/index.d.ts +149 -0
- package/dist/slhdsa/index.js +493 -0
- package/dist/slhdsa/params.d.ts +26 -0
- package/dist/slhdsa/params.js +70 -0
- package/dist/slhdsa/prehash.d.ts +68 -0
- package/dist/slhdsa/prehash.js +307 -0
- package/dist/slhdsa/sign.d.ts +39 -0
- package/dist/slhdsa/sign.js +116 -0
- package/dist/slhdsa/types.d.ts +129 -0
- package/dist/slhdsa/types.js +27 -0
- package/dist/slhdsa/validate.d.ts +60 -0
- package/dist/slhdsa/validate.js +127 -0
- package/dist/slhdsa/verify.d.ts +32 -0
- package/dist/slhdsa/verify.js +107 -0
- package/dist/slhdsa.wasm +0 -0
- package/dist/stream/header.js +8 -8
- package/dist/stream/index.d.ts +1 -0
- package/dist/stream/index.js +1 -0
- package/dist/stream/open-stream.js +65 -22
- package/dist/stream/seal-stream-pool.d.ts +2 -0
- package/dist/stream/seal-stream-pool.js +100 -33
- package/dist/stream/seal-stream.d.ts +1 -1
- package/dist/stream/seal-stream.js +48 -19
- package/dist/stream/seal.js +6 -6
- package/dist/stream/types.d.ts +3 -1
- package/dist/stream/types.js +1 -1
- package/dist/types.d.ts +22 -1
- package/dist/types.js +1 -1
- package/dist/utils.d.ts +9 -10
- package/dist/utils.js +84 -59
- package/dist/wasm-source.d.ts +9 -8
- package/dist/wasm-source.js +1 -1
- package/dist/x25519/embedded.d.ts +1 -0
- package/dist/x25519/embedded.js +31 -0
- package/dist/x25519/index.d.ts +43 -0
- package/dist/x25519/index.js +159 -0
- package/dist/x25519/types.d.ts +25 -0
- package/dist/x25519/types.js +27 -0
- package/dist/x25519/validate.d.ts +2 -0
- package/dist/x25519/validate.js +39 -0
- package/package.json +123 -64
- package/SECURITY.md +0 -276
- package/dist/ct-wasm.d.ts +0 -1
- package/dist/ct-wasm.js +0 -3
- package/dist/ct.wasm +0 -0
- package/dist/docs/aead.md +0 -323
- package/dist/docs/architecture.md +0 -932
- package/dist/docs/argon2id.md +0 -302
- package/dist/docs/chacha20.md +0 -674
- package/dist/docs/exports.md +0 -241
- package/dist/docs/fortuna.md +0 -313
- package/dist/docs/init.md +0 -302
- package/dist/docs/loader.md +0 -161
- package/dist/docs/serpent.md +0 -519
- package/dist/docs/sha2.md +0 -613
- package/dist/docs/sha3.md +0 -546
- package/dist/docs/types.md +0 -276
- package/dist/docs/utils.md +0 -367
- package/dist/embedded/kyber.d.ts +0 -1
- package/dist/embedded/kyber.js +0 -3
- package/dist/kyber/embedded.d.ts +0 -1
- package/dist/kyber/indcpa.d.ts +0 -49
- package/dist/kyber/index.d.ts +0 -38
- package/dist/kyber/kem.d.ts +0 -21
- package/dist/kyber/suite.d.ts +0 -13
- package/dist/kyber/validate.d.ts +0 -19
package/dist/kyber/indcpa.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { KyberExports, Sha3Exports } from './types.js';
|
|
2
|
-
import type { KyberParams } from './params.js';
|
|
3
|
-
/** SHA3-512(msg) → 64 bytes. Resets sha3 state. */
|
|
4
|
-
export declare function sha3_512Hash(sx: Sha3Exports, msg: Uint8Array): Uint8Array;
|
|
5
|
-
/** SHA3-256(msg) → 32 bytes. Resets sha3 state. */
|
|
6
|
-
export declare function sha3_256Hash(sx: Sha3Exports, msg: Uint8Array): Uint8Array;
|
|
7
|
-
/**
|
|
8
|
-
* SHAKE256(msg, n) → n bytes. Resets sha3 state.
|
|
9
|
-
* Used for J function (z || c) and PRF seeding in kem.ts.
|
|
10
|
-
*/
|
|
11
|
-
export declare function shake256Hash(sx: Sha3Exports, msg: Uint8Array, n: number): Uint8Array;
|
|
12
|
-
/**
|
|
13
|
-
* K-PKE.KeyGen (FIPS 203 Algorithm 12) — deterministic.
|
|
14
|
-
*
|
|
15
|
-
* Slot map:
|
|
16
|
-
* pvec0 — current row of  (overwritten per row)
|
|
17
|
-
* pvec1 — ŝ (noise, persistent through dot products)
|
|
18
|
-
* pvec2 — ê (noise)
|
|
19
|
-
* pvec3 — t̂ = ·ŝ + ê (output)
|
|
20
|
-
*/
|
|
21
|
-
export declare function indcpaKeypairDerand(kx: KyberExports, sx: Sha3Exports, params: KyberParams, d: Uint8Array): {
|
|
22
|
-
ekCpa: Uint8Array;
|
|
23
|
-
skCpa: Uint8Array;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* K-PKE.Encrypt (FIPS 203 Algorithm 13) — deterministic.
|
|
27
|
-
*
|
|
28
|
-
* Slot map:
|
|
29
|
-
* pvec0 — current row of Â^T (transposed, overwritten per row)
|
|
30
|
-
* pvec1 — r̂ = NTT(r)
|
|
31
|
-
* pvec2 — e₁ (noise)
|
|
32
|
-
* pvec3 — u = invNTT(Â^T · r̂) + e₁
|
|
33
|
-
* pvec4 — t̂ (unpacked from ek)
|
|
34
|
-
* poly1 — e₂ (noise)
|
|
35
|
-
* poly2 — v = invNTT(t̂^T · r̂) + e₂ + msg
|
|
36
|
-
* poly3 — message polynomial
|
|
37
|
-
*/
|
|
38
|
-
export declare function indcpaEncrypt(kx: KyberExports, sx: Sha3Exports, params: KyberParams, ek: Uint8Array, m: Uint8Array, coins: Uint8Array): Uint8Array;
|
|
39
|
-
/**
|
|
40
|
-
* K-PKE.Decrypt (FIPS 203 Algorithm 14).
|
|
41
|
-
*
|
|
42
|
-
* Slot map:
|
|
43
|
-
* pvec0 — û (decompressed from ct)
|
|
44
|
-
* pvec1 — ŝ (from sk)
|
|
45
|
-
* poly0 — v (decompressed from ct)
|
|
46
|
-
* poly1 — w = invNTT(ŝ^T · NTT(û))
|
|
47
|
-
* poly2 — m' = v - w
|
|
48
|
-
*/
|
|
49
|
-
export declare function indcpaDecrypt(kx: KyberExports, params: KyberParams, skCpa: Uint8Array, ct: Uint8Array): Uint8Array;
|
package/dist/kyber/index.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { isInitialized } from '../init.js';
|
|
2
|
-
import type { WasmSource } from '../wasm-source.js';
|
|
3
|
-
import type { KyberExports, Sha3Exports, KyberKeyPair, KyberEncapsulation } from './types.js';
|
|
4
|
-
import { KyberParams, MLKEM512, MLKEM768, MLKEM1024 } from './params.js';
|
|
5
|
-
export declare function kyberInit(source: WasmSource): Promise<void>;
|
|
6
|
-
export declare function _kyberReady(): boolean;
|
|
7
|
-
export type { WasmSource };
|
|
8
|
-
export type { KyberKeyPair, KyberEncapsulation, KyberExports, Sha3Exports };
|
|
9
|
-
export { MLKEM512, MLKEM768, MLKEM1024 };
|
|
10
|
-
export type { KyberParams };
|
|
11
|
-
export { isInitialized };
|
|
12
|
-
export { KyberSuite } from './suite.js';
|
|
13
|
-
export declare class MlKemBase {
|
|
14
|
-
readonly params: KyberParams;
|
|
15
|
-
constructor(params: KyberParams);
|
|
16
|
-
private get kx();
|
|
17
|
-
private get sx();
|
|
18
|
-
keygenDerand(d: Uint8Array, z: Uint8Array): KyberKeyPair;
|
|
19
|
-
keygen(): KyberKeyPair;
|
|
20
|
-
encapsulateDerand(ek: Uint8Array, m: Uint8Array): KyberEncapsulation;
|
|
21
|
-
encapsulate(ek: Uint8Array): KyberEncapsulation;
|
|
22
|
-
decapsulate(dk: Uint8Array, c: Uint8Array): Uint8Array;
|
|
23
|
-
checkEncapsulationKey(ek: Uint8Array): boolean;
|
|
24
|
-
checkDecapsulationKey(dk: Uint8Array): boolean;
|
|
25
|
-
dispose(): void;
|
|
26
|
-
}
|
|
27
|
-
/** ML-KEM-512 — k=2, η₁=3, η₂=2, dᵤ=10, dᵥ=4. */
|
|
28
|
-
export declare class MlKem512 extends MlKemBase {
|
|
29
|
-
constructor();
|
|
30
|
-
}
|
|
31
|
-
/** ML-KEM-768 — k=3, η₁=2, η₂=2, dᵤ=10, dᵥ=4. */
|
|
32
|
-
export declare class MlKem768 extends MlKemBase {
|
|
33
|
-
constructor();
|
|
34
|
-
}
|
|
35
|
-
/** ML-KEM-1024 — k=4, η₁=2, η₂=2, dᵤ=11, dᵥ=5. */
|
|
36
|
-
export declare class MlKem1024 extends MlKemBase {
|
|
37
|
-
constructor();
|
|
38
|
-
}
|
package/dist/kyber/kem.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { KyberExports, Sha3Exports, KyberKeyPair, KyberEncapsulation } from './types.js';
|
|
2
|
-
import type { KyberParams } from './params.js';
|
|
3
|
-
/**
|
|
4
|
-
* ML-KEM.KeyGen_internal (FIPS 203 Algorithm 15).
|
|
5
|
-
*
|
|
6
|
-
* dk = skCpa || ek || H(ek) || z
|
|
7
|
-
*/
|
|
8
|
-
export declare function kemKeypairDerand(kx: KyberExports, sx: Sha3Exports, params: KyberParams, d: Uint8Array, z: Uint8Array): KyberKeyPair;
|
|
9
|
-
/**
|
|
10
|
-
* ML-KEM.Encaps_internal (FIPS 203 Algorithm 16).
|
|
11
|
-
*
|
|
12
|
-
* (K, r) = G(m || H(ek)), c = K-PKE.Encrypt(ek, m, r)
|
|
13
|
-
*/
|
|
14
|
-
export declare function kemEncapsulateDerand(kx: KyberExports, sx: Sha3Exports, params: KyberParams, ek: Uint8Array, m: Uint8Array): KyberEncapsulation;
|
|
15
|
-
/**
|
|
16
|
-
* ML-KEM.Decaps_internal (FIPS 203 Algorithm 17).
|
|
17
|
-
*
|
|
18
|
-
* Constant-time: uses ct_verify and ct_cmov from kyber WASM.
|
|
19
|
-
* MUST NOT branch on secret data in JS — all comparison via WASM primitives.
|
|
20
|
-
*/
|
|
21
|
-
export declare function kemDecapsulate(kx: KyberExports, sx: Sha3Exports, params: KyberParams, dk: Uint8Array, c: Uint8Array): Uint8Array;
|
package/dist/kyber/suite.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { CipherSuite } from '../stream/types.js';
|
|
2
|
-
import type { KyberKeyPair, KyberEncapsulation } from './types.js';
|
|
3
|
-
import type { KyberParams } from './params.js';
|
|
4
|
-
interface MlKemLike {
|
|
5
|
-
readonly params: KyberParams;
|
|
6
|
-
encapsulate(ek: Uint8Array): KyberEncapsulation;
|
|
7
|
-
decapsulate(dk: Uint8Array, c: Uint8Array): Uint8Array;
|
|
8
|
-
keygen(): KyberKeyPair;
|
|
9
|
-
}
|
|
10
|
-
export declare function KyberSuite(kem: MlKemLike, inner: CipherSuite): CipherSuite & {
|
|
11
|
-
keygen(): KyberKeyPair;
|
|
12
|
-
};
|
|
13
|
-
export {};
|
package/dist/kyber/validate.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { KyberExports, Sha3Exports } from './types.js';
|
|
2
|
-
import type { KyberParams } from './params.js';
|
|
3
|
-
/**
|
|
4
|
-
* Encapsulation key check — FIPS 203 §7.2 (EncapsulationKeyCheck).
|
|
5
|
-
*
|
|
6
|
-
* 1. Length check: ek.length == params.ekBytes
|
|
7
|
-
* 2. ByteDecode₁₂ → ByteEncode₁₂ round-trip check on the polyvec portion.
|
|
8
|
-
* Any coefficient ≥ q stored modulo 2^12 survives frombytes, but tobytes
|
|
9
|
-
* re-encodes it differently — so the round-trip fails iff any coeff was ≥ q.
|
|
10
|
-
*/
|
|
11
|
-
export declare function checkEncapsulationKey(kx: KyberExports, params: KyberParams, ek: Uint8Array): boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Decapsulation key check — FIPS 203 §7.3 (DecapsulationKeyCheck).
|
|
14
|
-
*
|
|
15
|
-
* 1. Length check: dk.length == params.dkBytes
|
|
16
|
-
* 2. Extract embedded ek and H(ek), verify SHA3-256(ek) matches stored H
|
|
17
|
-
* 3. Also run checkEncapsulationKey on the embedded ek
|
|
18
|
-
*/
|
|
19
|
-
export declare function checkDecapsulationKey(kx: KyberExports, sx: Sha3Exports, params: KyberParams, dk: Uint8Array): boolean;
|