← Home

@qnsp/cryptography

Post-quantum cryptography (PQC) primitives for Node.js: ML-KEM, ML-DSA, SLH-DSA, FN-DSA, HQC — all 90 NIST PQC algorithms via liboqs. Free tier at cloud.qnsp.cuilabs.io.

4
Versions
Apache-2.0
License
No
Install Scripts
Missing
Provenance

Supply chain provenance

Status for the latest visible version.

No SLSA provenance npm registry signatures No source commit

Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.

Maintainers

cuilabs

Keywords

qnsppqcpost-quantumpost-quantum-cryptographycryptographynistfips-203fips-204fips-205ml-kemml-dsaslh-dsakyberdilithiumsphincsliboqsquantum-safequantum-resistanttypescriptnodejs

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:env-spread AI (semgrep): Fires in test file to snapshot/restore process.env — standard test hygiene, not a data leak. ai
semgrep semgrep:new-function-constructor AI (semgrep): Used to wrap dynamic import() for ESM compatibility; input is a static module path, not user-controlled. ai

Versions (showing 4 of 4)

Version Deps Published
0.2.0 4 / 2
0.1.1 3 / 2
0.1.0 4 / 2
0.0.1 1 / 2

v0.2.0

3 findings
HIGH env-spread: src/tls/pqc-tls.deep-coverage.test.ts:60 semgrep

Spreading entire process.env into an object — may capture all secrets 58 | describe("pqc-tls - Deep Branch Coverage", () => { 59 | let testDir: string; > 60 | const originalEnv = { ...process.env }; 61 | 62 | beforeAll(async () => {

HIGH env-spread: src/tls/pqc-tls.ts:459 semgrep

Spreading entire process.env into an object — may capture all secrets 457 | try { 458 | await execFileAsync(opensslPath, args, { > 459 | env: { 460 | ...process.env, 461 | ...envOverrides,

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.1.1

3 findings
HIGH env-spread: src/tls/pqc-tls.deep-coverage.test.ts:60 semgrep

Spreading entire process.env into an object — may capture all secrets 58 | describe("pqc-tls - Deep Branch Coverage", () => { 59 | let testDir: string; > 60 | const originalEnv = { ...process.env }; 61 | 62 | beforeAll(async () => {

HIGH env-spread: src/tls/pqc-tls.ts:459 semgrep

Spreading entire process.env into an object — may capture all secrets 457 | try { 458 | await execFileAsync(opensslPath, args, { > 459 | env: { 460 | ...process.env, 461 | ...envOverrides,

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.1.0

3 findings
HIGH env-spread: src/tls/pqc-tls.deep-coverage.test.ts:60 semgrep

Spreading entire process.env into an object — may capture all secrets 58 | describe("pqc-tls - Deep Branch Coverage", () => { 59 | let testDir: string; > 60 | const originalEnv = { ...process.env }; 61 | 62 | beforeAll(async () => {

HIGH env-spread: src/tls/pqc-tls.ts:459 semgrep

Spreading entire process.env into an object — may capture all secrets 457 | try { 458 | await execFileAsync(opensslPath, args, { > 459 | env: { 460 | ...process.env, 461 | ...envOverrides,

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v0.0.1

3 findings
HIGH env-spread: src/tls/pqc-tls.deep-coverage.test.ts:68 semgrep

Spreading entire process.env into an object — may capture all secrets 66 | describe("pqc-tls - Deep Branch Coverage", () => { 67 | let testDir: string; > 68 | const originalEnv = { ...process.env }; 69 | 70 | beforeAll(async () => {

HIGH env-spread: src/tls/pqc-tls.ts:446 semgrep

Spreading entire process.env into an object — may capture all secrets 444 | try { 445 | await execFileAsync(opensslPath, args, { > 446 | env: { 447 | ...process.env, 448 | ...envOverrides,

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.