@noble/post-quantum 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
package/package.json ADDED
@@ -0,0 +1,100 @@
1
+ {
2
+ "name": "@noble/post-quantum",
3
+ "version": "0.1.0",
4
+ "description": "Auditable & minimal JS implementation of public-key post-quantum cryptography",
5
+ "files": [
6
+ "esm",
7
+ "src",
8
+ "*.js",
9
+ "*.js.map",
10
+ "*.d.ts",
11
+ "*.d.ts.map"
12
+ ],
13
+ "scripts": {
14
+ "bench": "node benchmark/ml-kem.js noble; node benchmark/ml-dsa.js noble; node benchmark/slh-dsa.js noble",
15
+ "bench:all": "node benchmark/{ml-kem,ml-dsa,slh-dsa}.js",
16
+ "bench:install": "cd benchmark && npm install && cd ../../",
17
+ "build": "npm run build:clean; tsc && tsc -p tsconfig.esm.json",
18
+ "build:release": "cd build; npm i; npm run build",
19
+ "build:clean": "rm *.{js,d.ts,js.map,d.ts.map} esm/*.{js,d.ts,js.map,d.ts.map} 2> /dev/null",
20
+ "lint": "prettier --check 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'",
21
+ "format": "prettier --write 'src/**/*.{js,ts}' 'test/**/*.{js,ts,mjs}'",
22
+ "test": "node test/index.js"
23
+ },
24
+ "author": "Paul Miller (https://paulmillr.com)",
25
+ "homepage": "https://paulmillr.com/noble/",
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/paulmillr/noble-post-quantum.git"
29
+ },
30
+ "license": "MIT",
31
+ "sideEffects": false,
32
+ "dependencies": {
33
+ "@noble/ciphers": "0.5.2",
34
+ "@noble/hashes": "1.4.0"
35
+ },
36
+ "devDependencies": {
37
+ "@paulmillr/jsbt": "0.1.0",
38
+ "@scure/base": "1.1.5",
39
+ "micro-bmark": "0.3.1",
40
+ "micro-should": "0.4.0",
41
+ "prettier": "3.1.1",
42
+ "typescript": "5.3.2"
43
+ },
44
+ "main": "index.js",
45
+ "exports": {
46
+ ".": {
47
+ "types": "./index.d.ts",
48
+ "import": "./esm/index.js",
49
+ "default": "./index.js"
50
+ },
51
+ "./index": {
52
+ "types": "./index.d.ts",
53
+ "import": "./esm/index.js",
54
+ "default": "./index.js"
55
+ },
56
+ "./_crystals": {
57
+ "types": "./_crystals.d.ts",
58
+ "import": "./esm/_crystals.js",
59
+ "default": "./_crystals.js"
60
+ },
61
+ "./ml-dsa": {
62
+ "types": "./ml-dsa.d.ts",
63
+ "import": "./esm/ml-dsa.js",
64
+ "default": "./ml-dsa.js"
65
+ },
66
+ "./ml-kem": {
67
+ "types": "./ml-kem.d.ts",
68
+ "import": "./esm/ml-kem.js",
69
+ "default": "./ml-kem.js"
70
+ },
71
+ "./slh-dsa": {
72
+ "types": "./slh-dsa.d.ts",
73
+ "import": "./esm/slh-dsa.js",
74
+ "default": "./slh-dsa.js"
75
+ },
76
+ "./utils": {
77
+ "types": "./utils.d.ts",
78
+ "import": "./esm/utils.js",
79
+ "default": "./utils.js"
80
+ }
81
+ },
82
+ "keywords": [
83
+ "ml-kem",
84
+ "ml-dsa",
85
+ "slh-dsa",
86
+ "kyber",
87
+ "dilithium",
88
+ "sphincs",
89
+ "fips203",
90
+ "fips204",
91
+ "fips205",
92
+ "pqc",
93
+ "post-quantum",
94
+ "public-key",
95
+ "crypto",
96
+ "noble",
97
+ "cryptography"
98
+ ],
99
+ "funding": "https://paulmillr.com/funding/"
100
+ }
package/slh-dsa.d.ts ADDED
@@ -0,0 +1,70 @@
1
+ import { Signer } from './utils.js';
2
+ /**
3
+ * * N: Security parameter (in bytes). W: Winternitz parameter
4
+ * * H: Hypertree height. D: Hypertree layers
5
+ * * K: FORS trees numbers. A: FORS trees height
6
+ */
7
+ export type SphincsOpts = {
8
+ N: number;
9
+ W: number;
10
+ H: number;
11
+ D: number;
12
+ K: number;
13
+ A: number;
14
+ };
15
+ export type SphincsHashOpts = {
16
+ isCompressed?: boolean;
17
+ getContext: GetContext;
18
+ };
19
+ export declare const PARAMS: Record<string, SphincsOpts>;
20
+ export type ADRS = Uint8Array;
21
+ type Context = {
22
+ PRFaddr: (addr: ADRS) => Uint8Array;
23
+ PRFmsg: (skPRF: Uint8Array, random: Uint8Array, msg: Uint8Array) => Uint8Array;
24
+ Hmsg: (R: Uint8Array, pk: Uint8Array, m: Uint8Array, outLen: number) => Uint8Array;
25
+ thash1: (input: Uint8Array, addr: ADRS) => Uint8Array;
26
+ thashN: (blocks: number, input: Uint8Array, addr: ADRS) => Uint8Array;
27
+ clean: () => void;
28
+ };
29
+ export type GetContext = (opts: SphincsOpts) => (pub_seed: Uint8Array, sk_seed?: Uint8Array) => Context;
30
+ type SphincsSigner = Signer & {
31
+ seedLen: number;
32
+ };
33
+ export declare const sphincs_shake_128f_simple: SphincsSigner;
34
+ export declare const sphincs_shake_128f_robust: SphincsSigner;
35
+ export declare const sphincs_shake_128s_simple: SphincsSigner;
36
+ export declare const sphincs_shake_128s_robust: SphincsSigner;
37
+ export declare const sphincs_shake_192f_simple: SphincsSigner;
38
+ export declare const sphincs_shake_192f_robust: SphincsSigner;
39
+ export declare const sphincs_shake_192s_simple: SphincsSigner;
40
+ export declare const sphincs_shake_192s_robust: SphincsSigner;
41
+ export declare const sphincs_shake_256f_simple: SphincsSigner;
42
+ export declare const sphincs_shake_256f_robust: SphincsSigner;
43
+ export declare const sphincs_shake_256s_simple: SphincsSigner;
44
+ export declare const sphincs_shake_256s_robust: SphincsSigner;
45
+ export declare const slh_dsa_shake_128f: SphincsSigner;
46
+ export declare const slh_dsa_shake_128s: SphincsSigner;
47
+ export declare const slh_dsa_shake_192f: SphincsSigner;
48
+ export declare const slh_dsa_shake_192s: SphincsSigner;
49
+ export declare const slh_dsa_shake_256f: SphincsSigner;
50
+ export declare const slh_dsa_shake_256s: SphincsSigner;
51
+ export declare const sphincs_sha2_128f_simple: SphincsSigner;
52
+ export declare const sphincs_sha2_128f_robust: SphincsSigner;
53
+ export declare const sphincs_sha2_128s_simple: SphincsSigner;
54
+ export declare const sphincs_sha2_128s_robust: SphincsSigner;
55
+ export declare const sphincs_sha2_192f_simple: SphincsSigner;
56
+ export declare const sphincs_sha2_192f_robust: SphincsSigner;
57
+ export declare const sphincs_sha2_192s_simple: SphincsSigner;
58
+ export declare const sphincs_sha2_192s_robust: SphincsSigner;
59
+ export declare const sphincs_sha2_256f_simple: SphincsSigner;
60
+ export declare const sphincs_sha2_256f_robust: SphincsSigner;
61
+ export declare const sphincs_sha2_256s_simple: SphincsSigner;
62
+ export declare const sphincs_sha2_256s_robust: SphincsSigner;
63
+ export declare const slh_dsa_sha2_128f: SphincsSigner;
64
+ export declare const slh_dsa_sha2_128s: SphincsSigner;
65
+ export declare const slh_dsa_sha2_192f: SphincsSigner;
66
+ export declare const slh_dsa_sha2_192s: SphincsSigner;
67
+ export declare const slh_dsa_sha2_256f: SphincsSigner;
68
+ export declare const slh_dsa_sha2_256s: SphincsSigner;
69
+ export {};
70
+ //# sourceMappingURL=slh-dsa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slh-dsa.d.ts","sourceRoot":"","sources":["src/slh-dsa.ts"],"names":[],"mappings":"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"}