@lib-q/fn-dsa 0.0.6 → 0.0.7
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 +10 -4
- package/integrity-manifest.json +2 -2
- package/nodejs/README.md +12 -5
- package/nodejs/lib_q_fn_dsa.d.ts +9 -8
- package/nodejs/lib_q_fn_dsa.js +10 -9
- package/nodejs/lib_q_fn_dsa_bg.wasm +0 -0
- package/nodejs/package.json +1 -1
- package/package.json +1 -1
- package/web/README.md +12 -5
- package/web/lib_q_fn_dsa.d.ts +9 -8
- package/web/lib_q_fn_dsa.js +10 -9
- package/web/lib_q_fn_dsa_bg.wasm +0 -0
- package/web/package.json +1 -1
package/README.md
CHANGED
|
@@ -202,11 +202,17 @@ When the `shake256x4` feature is enabled, the Known Answer Test (KAT) values dif
|
|
|
202
202
|
2. **AVX2 Code Generation**: Subtle differences in how the compiler generates AVX2 instructions or manages state
|
|
203
203
|
3. **Integration Changes**: Minor adaptations made during integration into the libQ workspace structure
|
|
204
204
|
|
|
205
|
-
**
|
|
205
|
+
**Note on FIPS 206**: FIPS 206 (FN-DSA) is **not yet published** — there is no finalized standard
|
|
206
|
+
(nor public draft) to be "compliant" with. The wording below should be read as *alignment with the
|
|
207
|
+
upstream `fn-dsa` reference implementation and the expected FN-DSA design*, not certified
|
|
208
|
+
standards conformance. Interoperability claims are with respect to that reference, and may change
|
|
209
|
+
when FIPS 206 is finalized.
|
|
210
|
+
|
|
211
|
+
These differences do NOT affect cryptographic correctness or interoperability with the reference:
|
|
206
212
|
- All signatures are mathematically valid and verify correctly
|
|
207
|
-
- The implementation
|
|
208
|
-
- Signatures generated by this implementation
|
|
209
|
-
- Signatures from
|
|
213
|
+
- The implementation follows the FN-DSA design (the basis for the forthcoming FIPS 206)
|
|
214
|
+
- Signatures generated by this implementation verify under a compatible FN-DSA implementation
|
|
215
|
+
- Signatures from a compatible FN-DSA implementation verify under this implementation
|
|
210
216
|
|
|
211
217
|
The KAT differences only affect the internal test vectors used for regression testing. The actual signature format and verification logic are identical to the standard.
|
|
212
218
|
|
package/integrity-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"integrity": {
|
|
3
|
-
"nodejs/lib_q_fn_dsa_bg.wasm": "sha384-
|
|
4
|
-
"web/lib_q_fn_dsa_bg.wasm": "sha384-
|
|
3
|
+
"nodejs/lib_q_fn_dsa_bg.wasm": "sha384-fprUt6xUYTn8bBYMkA/Eixo2dr2UJfnoE2EtERKaiFnOeE2jYWtOYZW6Rw9OQVI3",
|
|
4
|
+
"web/lib_q_fn_dsa_bg.wasm": "sha384-fprUt6xUYTn8bBYMkA/Eixo2dr2UJfnoE2EtERKaiFnOeE2jYWtOYZW6Rw9OQVI3"
|
|
5
5
|
}
|
|
6
6
|
}
|
package/nodejs/README.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# lib-Q - Post-Quantum Cryptography Library
|
|
2
2
|
|
|
3
|
+
[](https://deepwiki.com/Enkom-Tech/libQ)
|
|
4
|
+
|
|
3
5
|
A Rust cryptography workspace focused on **NIST-standardized post-quantum** key exchange and signatures, **SHA-3-family** hashes and XOFs, and a **transparent STARK**–based zero-knowledge stack. CI enforces `cargo check --workspace --exclude lib-q-examples --exclude lib-q-sca-test --target wasm32-unknown-unknown` (with the `getrandom` wasm_js cfg) so the **publishable library workspace** compiles for the WebAssembly target; npm bundles are produced for the `@lib-q/*` packages listed below (see [docs/npm-packages.md](docs/npm-packages.md)). For build modes, feature flags, and browser baselines, see [docs/wasm-compilation.md](docs/wasm-compilation.md).
|
|
4
6
|
|
|
5
7
|
## Mission
|
|
6
8
|
|
|
7
|
-
lib-Q provides a coherent Rust API surface over NIST-track post-quantum primitives, SHA-3–family hashing, Saturnin AEAD, HPKE, and optional STARK-based proofs, with the goal of keeping advanced cryptography approachable without hiding residual implementation risk.
|
|
9
|
+
lib-Q provides a coherent Rust API surface over NIST-track post-quantum primitives, SHA-3–family hashing, Saturnin and Rocca-S AEAD, HPKE, and optional STARK-based proofs, with the goal of keeping advanced cryptography approachable without hiding residual implementation risk.
|
|
8
10
|
|
|
9
11
|
## Key features
|
|
10
12
|
|
|
@@ -66,8 +68,9 @@ Publishing to [crates.io](https://crates.io/) is driven by [`.github/workflows/c
|
|
|
66
68
|
| **`lib-q-intrinsics`** | SIMD / intrinsics helpers |
|
|
67
69
|
| **`lib-q-sig`** | Signature façade (ML-DSA, SLH-DSA) |
|
|
68
70
|
| **`lib-q-hash`** | Hash façade (SHAKE, KMAC, TupleHash, etc.) |
|
|
69
|
-
| **`lib-q-aead`** | AEAD façade (Saturnin, Romulus, duplex, tweak) |
|
|
71
|
+
| **`lib-q-aead`** | AEAD façade (Saturnin, Rocca-S, Romulus, duplex, tweak) |
|
|
70
72
|
| **`lib-q-saturnin`** | Saturnin suite |
|
|
73
|
+
| **`lib-q-rocca-s`** | Rocca-S AEAD (AES-accelerated; IETF draft-nakano-rocca-s) |
|
|
71
74
|
| **`lib-q-duplex-aead`** | Duplex-sponge AEAD |
|
|
72
75
|
| **`lib-q-tweak-aead`** | Tweakable CTR AEAD over Keccak |
|
|
73
76
|
| **`lib-q-romulus`** | Romulus AEAD (Skinny-based) |
|
|
@@ -119,7 +122,7 @@ Publishing to [crates.io](https://crates.io/) is driven by [`.github/workflows/c
|
|
|
119
122
|
- **`@lib-q/fn-dsa`** — FN-DSA (FIPS 206)
|
|
120
123
|
- **`@lib-q/hash`** — SHA-3–family hash façade
|
|
121
124
|
- **`@lib-q/utils`** — Utilities
|
|
122
|
-
- **`@lib-q/aead`** — Post-quantum AEAD (Saturnin, Romulus, duplex-sponge)
|
|
125
|
+
- **`@lib-q/aead`** — Post-quantum AEAD (Saturnin, Rocca-S, Romulus, duplex-sponge)
|
|
123
126
|
- **`@lib-q/hpke`** — Post-quantum HPKE (RFC 9180)
|
|
124
127
|
- **`@lib-q/zkp`** — ZKP / STARK proofs (high-level JSON API)
|
|
125
128
|
- **`@lib-q/random`** — Secure random bytes (`getrandom` / wasm_js)
|
|
@@ -208,6 +211,10 @@ npm install @lib-q/aead @lib-q/hpke @lib-q/zkp @lib-q/random @lib-q/hqc @lib-q/s
|
|
|
208
211
|
|
|
209
212
|
### Authenticated encryption
|
|
210
213
|
- **Saturnin** (post-quantum symmetric suite: AEAD, block cipher, hash, and stream modes)
|
|
214
|
+
- **Rocca-S** (AES-accelerated 256-bit AEAD; IETF draft-nakano-rocca-s; 128-bit nonce, 256-bit tag)
|
|
215
|
+
- **Romulus** (NIST-submitted Skinny-based AEAD)
|
|
216
|
+
- **Duplex-sponge AEAD** (Keccak-duplex construction)
|
|
217
|
+
- **Tweak-AEAD** (tweakable CTR AEAD over Keccak)
|
|
211
218
|
|
|
212
219
|
### Hybrid public-key encryption (HPKE)
|
|
213
220
|
- **Tier 1: Ultra-Secure** (Pure post-quantum with SHAKE256-based AEAD)
|
|
@@ -236,7 +243,7 @@ lib-Q/ (repository root)
|
|
|
236
243
|
├── lib-q-lattice-zkp/ # Module-lattice ZKP research (sigma, commitments)
|
|
237
244
|
├── lib-q-sca-test/ # SCA screening tooling
|
|
238
245
|
├── lib-q-hash/, lib-q-sha3/, lib-q-keccak/, lib-q-k12/
|
|
239
|
-
├── lib-q-aead/, lib-q-saturnin/
|
|
246
|
+
├── lib-q-aead/, lib-q-saturnin/, lib-q-rocca-s/
|
|
240
247
|
├── lib-q-hpke/
|
|
241
248
|
├── lib-q-zkp/, lib-q-stark*/, lib-q-plonky*/
|
|
242
249
|
├── lib-q-utils/, lib-q-random/, lib-q-platform/, …
|
|
@@ -264,7 +271,7 @@ The table above is the authoritative crate list; the `[workspace].members` table
|
|
|
264
271
|
- **ML-KEM** (FIPS 203; levels 1, 3, and 5)
|
|
265
272
|
- **CB-KEM** (Classic McEliece–family; five parameter sets, feature-selected)
|
|
266
273
|
- **HQC** (HQC-128, HQC-192, HQC-256)
|
|
267
|
-
- **Saturnin** (AEAD, block, hash, stream modes)
|
|
274
|
+
- **Saturnin** (AEAD, block, hash, stream modes) and **Rocca-S** (AES-accelerated 256-bit AEAD)
|
|
268
275
|
- **HPKE** (RFC 9180) with post-quantum KEM and AEAD options
|
|
269
276
|
- **Hash and XOF suite** (SHA-3 family, including SHAKE and cSHAKE, as exposed by workspace crates)
|
|
270
277
|
- **ZKP / STARK stack** (`lib-q-zkp` and supporting `lib-q-stark*` / `lib-q-plonky*` crates)
|
package/nodejs/lib_q_fn_dsa.d.ts
CHANGED
|
@@ -62,29 +62,30 @@ export enum Algorithm {
|
|
|
62
62
|
TweakAead = 54,
|
|
63
63
|
RomulusN = 55,
|
|
64
64
|
RomulusM = 56,
|
|
65
|
+
RoccaS = 57,
|
|
65
66
|
/**
|
|
66
67
|
* Privacy-protocol identifiers (not standalone KEM/sig/hash providers).
|
|
67
68
|
*/
|
|
68
|
-
LatticeRingSignature =
|
|
69
|
-
LatticeBlindIssuance =
|
|
70
|
-
LatticeAnonymousToken =
|
|
71
|
-
LatticeNullifierRegistry =
|
|
69
|
+
LatticeRingSignature = 58,
|
|
70
|
+
LatticeBlindIssuance = 59,
|
|
71
|
+
LatticeAnonymousToken = 60,
|
|
72
|
+
LatticeNullifierRegistry = 61,
|
|
72
73
|
/**
|
|
73
74
|
* Witness-derived nullifier mode (SHAKE256 over opening witness wire; see `lib-q-lattice-zkp`).
|
|
74
75
|
*/
|
|
75
|
-
LatticeWitnessNullifier =
|
|
76
|
+
LatticeWitnessNullifier = 62,
|
|
76
77
|
/**
|
|
77
78
|
* DualRing-LB (CCS 2021 Alg. 3 aggregated verify on Ajtai openings, `lib-q-ring-sig`).
|
|
78
79
|
*/
|
|
79
|
-
LatticeDualRingLb =
|
|
80
|
+
LatticeDualRingLb = 63,
|
|
80
81
|
/**
|
|
81
82
|
* ML-KEM-768 layered encapsulation with Saturnin AEAD per hop (mix-layer transport).
|
|
82
83
|
*/
|
|
83
|
-
MixOnionRouting =
|
|
84
|
+
MixOnionRouting = 64,
|
|
84
85
|
/**
|
|
85
86
|
* SHAKE256 session token and stateless retry-cookie derivation for resumption handshakes.
|
|
86
87
|
*/
|
|
87
|
-
SessionResumptionBinding =
|
|
88
|
+
SessionResumptionBinding = 65,
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
/**
|
package/nodejs/lib_q_fn_dsa.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Algorithm identifiers for cryptographic operations
|
|
5
|
-
* @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64}
|
|
5
|
+
* @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65}
|
|
6
6
|
*/
|
|
7
7
|
const Algorithm = Object.freeze({
|
|
8
8
|
MlKem512: 0, "0": "MlKem512",
|
|
@@ -62,29 +62,30 @@ const Algorithm = Object.freeze({
|
|
|
62
62
|
TweakAead: 54, "54": "TweakAead",
|
|
63
63
|
RomulusN: 55, "55": "RomulusN",
|
|
64
64
|
RomulusM: 56, "56": "RomulusM",
|
|
65
|
+
RoccaS: 57, "57": "RoccaS",
|
|
65
66
|
/**
|
|
66
67
|
* Privacy-protocol identifiers (not standalone KEM/sig/hash providers).
|
|
67
68
|
*/
|
|
68
|
-
LatticeRingSignature:
|
|
69
|
-
LatticeBlindIssuance:
|
|
70
|
-
LatticeAnonymousToken:
|
|
71
|
-
LatticeNullifierRegistry:
|
|
69
|
+
LatticeRingSignature: 58, "58": "LatticeRingSignature",
|
|
70
|
+
LatticeBlindIssuance: 59, "59": "LatticeBlindIssuance",
|
|
71
|
+
LatticeAnonymousToken: 60, "60": "LatticeAnonymousToken",
|
|
72
|
+
LatticeNullifierRegistry: 61, "61": "LatticeNullifierRegistry",
|
|
72
73
|
/**
|
|
73
74
|
* Witness-derived nullifier mode (SHAKE256 over opening witness wire; see `lib-q-lattice-zkp`).
|
|
74
75
|
*/
|
|
75
|
-
LatticeWitnessNullifier:
|
|
76
|
+
LatticeWitnessNullifier: 62, "62": "LatticeWitnessNullifier",
|
|
76
77
|
/**
|
|
77
78
|
* DualRing-LB (CCS 2021 Alg. 3 aggregated verify on Ajtai openings, `lib-q-ring-sig`).
|
|
78
79
|
*/
|
|
79
|
-
LatticeDualRingLb:
|
|
80
|
+
LatticeDualRingLb: 63, "63": "LatticeDualRingLb",
|
|
80
81
|
/**
|
|
81
82
|
* ML-KEM-768 layered encapsulation with Saturnin AEAD per hop (mix-layer transport).
|
|
82
83
|
*/
|
|
83
|
-
MixOnionRouting:
|
|
84
|
+
MixOnionRouting: 64, "64": "MixOnionRouting",
|
|
84
85
|
/**
|
|
85
86
|
* SHAKE256 session token and stateless retry-cookie derivation for resumption handshakes.
|
|
86
87
|
*/
|
|
87
|
-
SessionResumptionBinding:
|
|
88
|
+
SessionResumptionBinding: 65, "65": "SessionResumptionBinding",
|
|
88
89
|
});
|
|
89
90
|
exports.Algorithm = Algorithm;
|
|
90
91
|
|
|
Binary file
|
package/nodejs/package.json
CHANGED
package/package.json
CHANGED
package/web/README.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
# lib-Q - Post-Quantum Cryptography Library
|
|
2
2
|
|
|
3
|
+
[](https://deepwiki.com/Enkom-Tech/libQ)
|
|
4
|
+
|
|
3
5
|
A Rust cryptography workspace focused on **NIST-standardized post-quantum** key exchange and signatures, **SHA-3-family** hashes and XOFs, and a **transparent STARK**–based zero-knowledge stack. CI enforces `cargo check --workspace --exclude lib-q-examples --exclude lib-q-sca-test --target wasm32-unknown-unknown` (with the `getrandom` wasm_js cfg) so the **publishable library workspace** compiles for the WebAssembly target; npm bundles are produced for the `@lib-q/*` packages listed below (see [docs/npm-packages.md](docs/npm-packages.md)). For build modes, feature flags, and browser baselines, see [docs/wasm-compilation.md](docs/wasm-compilation.md).
|
|
4
6
|
|
|
5
7
|
## Mission
|
|
6
8
|
|
|
7
|
-
lib-Q provides a coherent Rust API surface over NIST-track post-quantum primitives, SHA-3–family hashing, Saturnin AEAD, HPKE, and optional STARK-based proofs, with the goal of keeping advanced cryptography approachable without hiding residual implementation risk.
|
|
9
|
+
lib-Q provides a coherent Rust API surface over NIST-track post-quantum primitives, SHA-3–family hashing, Saturnin and Rocca-S AEAD, HPKE, and optional STARK-based proofs, with the goal of keeping advanced cryptography approachable without hiding residual implementation risk.
|
|
8
10
|
|
|
9
11
|
## Key features
|
|
10
12
|
|
|
@@ -66,8 +68,9 @@ Publishing to [crates.io](https://crates.io/) is driven by [`.github/workflows/c
|
|
|
66
68
|
| **`lib-q-intrinsics`** | SIMD / intrinsics helpers |
|
|
67
69
|
| **`lib-q-sig`** | Signature façade (ML-DSA, SLH-DSA) |
|
|
68
70
|
| **`lib-q-hash`** | Hash façade (SHAKE, KMAC, TupleHash, etc.) |
|
|
69
|
-
| **`lib-q-aead`** | AEAD façade (Saturnin, Romulus, duplex, tweak) |
|
|
71
|
+
| **`lib-q-aead`** | AEAD façade (Saturnin, Rocca-S, Romulus, duplex, tweak) |
|
|
70
72
|
| **`lib-q-saturnin`** | Saturnin suite |
|
|
73
|
+
| **`lib-q-rocca-s`** | Rocca-S AEAD (AES-accelerated; IETF draft-nakano-rocca-s) |
|
|
71
74
|
| **`lib-q-duplex-aead`** | Duplex-sponge AEAD |
|
|
72
75
|
| **`lib-q-tweak-aead`** | Tweakable CTR AEAD over Keccak |
|
|
73
76
|
| **`lib-q-romulus`** | Romulus AEAD (Skinny-based) |
|
|
@@ -119,7 +122,7 @@ Publishing to [crates.io](https://crates.io/) is driven by [`.github/workflows/c
|
|
|
119
122
|
- **`@lib-q/fn-dsa`** — FN-DSA (FIPS 206)
|
|
120
123
|
- **`@lib-q/hash`** — SHA-3–family hash façade
|
|
121
124
|
- **`@lib-q/utils`** — Utilities
|
|
122
|
-
- **`@lib-q/aead`** — Post-quantum AEAD (Saturnin, Romulus, duplex-sponge)
|
|
125
|
+
- **`@lib-q/aead`** — Post-quantum AEAD (Saturnin, Rocca-S, Romulus, duplex-sponge)
|
|
123
126
|
- **`@lib-q/hpke`** — Post-quantum HPKE (RFC 9180)
|
|
124
127
|
- **`@lib-q/zkp`** — ZKP / STARK proofs (high-level JSON API)
|
|
125
128
|
- **`@lib-q/random`** — Secure random bytes (`getrandom` / wasm_js)
|
|
@@ -208,6 +211,10 @@ npm install @lib-q/aead @lib-q/hpke @lib-q/zkp @lib-q/random @lib-q/hqc @lib-q/s
|
|
|
208
211
|
|
|
209
212
|
### Authenticated encryption
|
|
210
213
|
- **Saturnin** (post-quantum symmetric suite: AEAD, block cipher, hash, and stream modes)
|
|
214
|
+
- **Rocca-S** (AES-accelerated 256-bit AEAD; IETF draft-nakano-rocca-s; 128-bit nonce, 256-bit tag)
|
|
215
|
+
- **Romulus** (NIST-submitted Skinny-based AEAD)
|
|
216
|
+
- **Duplex-sponge AEAD** (Keccak-duplex construction)
|
|
217
|
+
- **Tweak-AEAD** (tweakable CTR AEAD over Keccak)
|
|
211
218
|
|
|
212
219
|
### Hybrid public-key encryption (HPKE)
|
|
213
220
|
- **Tier 1: Ultra-Secure** (Pure post-quantum with SHAKE256-based AEAD)
|
|
@@ -236,7 +243,7 @@ lib-Q/ (repository root)
|
|
|
236
243
|
├── lib-q-lattice-zkp/ # Module-lattice ZKP research (sigma, commitments)
|
|
237
244
|
├── lib-q-sca-test/ # SCA screening tooling
|
|
238
245
|
├── lib-q-hash/, lib-q-sha3/, lib-q-keccak/, lib-q-k12/
|
|
239
|
-
├── lib-q-aead/, lib-q-saturnin/
|
|
246
|
+
├── lib-q-aead/, lib-q-saturnin/, lib-q-rocca-s/
|
|
240
247
|
├── lib-q-hpke/
|
|
241
248
|
├── lib-q-zkp/, lib-q-stark*/, lib-q-plonky*/
|
|
242
249
|
├── lib-q-utils/, lib-q-random/, lib-q-platform/, …
|
|
@@ -264,7 +271,7 @@ The table above is the authoritative crate list; the `[workspace].members` table
|
|
|
264
271
|
- **ML-KEM** (FIPS 203; levels 1, 3, and 5)
|
|
265
272
|
- **CB-KEM** (Classic McEliece–family; five parameter sets, feature-selected)
|
|
266
273
|
- **HQC** (HQC-128, HQC-192, HQC-256)
|
|
267
|
-
- **Saturnin** (AEAD, block, hash, stream modes)
|
|
274
|
+
- **Saturnin** (AEAD, block, hash, stream modes) and **Rocca-S** (AES-accelerated 256-bit AEAD)
|
|
268
275
|
- **HPKE** (RFC 9180) with post-quantum KEM and AEAD options
|
|
269
276
|
- **Hash and XOF suite** (SHA-3 family, including SHAKE and cSHAKE, as exposed by workspace crates)
|
|
270
277
|
- **ZKP / STARK stack** (`lib-q-zkp` and supporting `lib-q-stark*` / `lib-q-plonky*` crates)
|
package/web/lib_q_fn_dsa.d.ts
CHANGED
|
@@ -62,29 +62,30 @@ export enum Algorithm {
|
|
|
62
62
|
TweakAead = 54,
|
|
63
63
|
RomulusN = 55,
|
|
64
64
|
RomulusM = 56,
|
|
65
|
+
RoccaS = 57,
|
|
65
66
|
/**
|
|
66
67
|
* Privacy-protocol identifiers (not standalone KEM/sig/hash providers).
|
|
67
68
|
*/
|
|
68
|
-
LatticeRingSignature =
|
|
69
|
-
LatticeBlindIssuance =
|
|
70
|
-
LatticeAnonymousToken =
|
|
71
|
-
LatticeNullifierRegistry =
|
|
69
|
+
LatticeRingSignature = 58,
|
|
70
|
+
LatticeBlindIssuance = 59,
|
|
71
|
+
LatticeAnonymousToken = 60,
|
|
72
|
+
LatticeNullifierRegistry = 61,
|
|
72
73
|
/**
|
|
73
74
|
* Witness-derived nullifier mode (SHAKE256 over opening witness wire; see `lib-q-lattice-zkp`).
|
|
74
75
|
*/
|
|
75
|
-
LatticeWitnessNullifier =
|
|
76
|
+
LatticeWitnessNullifier = 62,
|
|
76
77
|
/**
|
|
77
78
|
* DualRing-LB (CCS 2021 Alg. 3 aggregated verify on Ajtai openings, `lib-q-ring-sig`).
|
|
78
79
|
*/
|
|
79
|
-
LatticeDualRingLb =
|
|
80
|
+
LatticeDualRingLb = 63,
|
|
80
81
|
/**
|
|
81
82
|
* ML-KEM-768 layered encapsulation with Saturnin AEAD per hop (mix-layer transport).
|
|
82
83
|
*/
|
|
83
|
-
MixOnionRouting =
|
|
84
|
+
MixOnionRouting = 64,
|
|
84
85
|
/**
|
|
85
86
|
* SHAKE256 session token and stateless retry-cookie derivation for resumption handshakes.
|
|
86
87
|
*/
|
|
87
|
-
SessionResumptionBinding =
|
|
88
|
+
SessionResumptionBinding = 65,
|
|
88
89
|
}
|
|
89
90
|
|
|
90
91
|
/**
|
package/web/lib_q_fn_dsa.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Algorithm identifiers for cryptographic operations
|
|
5
|
-
* @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64}
|
|
5
|
+
* @enum {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65}
|
|
6
6
|
*/
|
|
7
7
|
export const Algorithm = Object.freeze({
|
|
8
8
|
MlKem512: 0, "0": "MlKem512",
|
|
@@ -62,29 +62,30 @@ export const Algorithm = Object.freeze({
|
|
|
62
62
|
TweakAead: 54, "54": "TweakAead",
|
|
63
63
|
RomulusN: 55, "55": "RomulusN",
|
|
64
64
|
RomulusM: 56, "56": "RomulusM",
|
|
65
|
+
RoccaS: 57, "57": "RoccaS",
|
|
65
66
|
/**
|
|
66
67
|
* Privacy-protocol identifiers (not standalone KEM/sig/hash providers).
|
|
67
68
|
*/
|
|
68
|
-
LatticeRingSignature:
|
|
69
|
-
LatticeBlindIssuance:
|
|
70
|
-
LatticeAnonymousToken:
|
|
71
|
-
LatticeNullifierRegistry:
|
|
69
|
+
LatticeRingSignature: 58, "58": "LatticeRingSignature",
|
|
70
|
+
LatticeBlindIssuance: 59, "59": "LatticeBlindIssuance",
|
|
71
|
+
LatticeAnonymousToken: 60, "60": "LatticeAnonymousToken",
|
|
72
|
+
LatticeNullifierRegistry: 61, "61": "LatticeNullifierRegistry",
|
|
72
73
|
/**
|
|
73
74
|
* Witness-derived nullifier mode (SHAKE256 over opening witness wire; see `lib-q-lattice-zkp`).
|
|
74
75
|
*/
|
|
75
|
-
LatticeWitnessNullifier:
|
|
76
|
+
LatticeWitnessNullifier: 62, "62": "LatticeWitnessNullifier",
|
|
76
77
|
/**
|
|
77
78
|
* DualRing-LB (CCS 2021 Alg. 3 aggregated verify on Ajtai openings, `lib-q-ring-sig`).
|
|
78
79
|
*/
|
|
79
|
-
LatticeDualRingLb:
|
|
80
|
+
LatticeDualRingLb: 63, "63": "LatticeDualRingLb",
|
|
80
81
|
/**
|
|
81
82
|
* ML-KEM-768 layered encapsulation with Saturnin AEAD per hop (mix-layer transport).
|
|
82
83
|
*/
|
|
83
|
-
MixOnionRouting:
|
|
84
|
+
MixOnionRouting: 64, "64": "MixOnionRouting",
|
|
84
85
|
/**
|
|
85
86
|
* SHAKE256 session token and stateless retry-cookie derivation for resumption handshakes.
|
|
86
87
|
*/
|
|
87
|
-
SessionResumptionBinding:
|
|
88
|
+
SessionResumptionBinding: 65, "65": "SessionResumptionBinding",
|
|
88
89
|
});
|
|
89
90
|
|
|
90
91
|
/**
|
package/web/lib_q_fn_dsa_bg.wasm
CHANGED
|
Binary file
|