Carter Perez
21741e0906
Merge pull request #286 from CarterPerez-dev/project/ja3-ja4-tls-fingerprinting
...
Project/ja3 ja4 tls fingerprinting
2026-06-18 19:38:51 -04:00
CarterPerez-dev
fb8e8c0ac9
chore(ja3-ja4-tls-fingerprinting): untrack accidentally committed frontend/.pnpm-store
2026-06-18 19:32:46 -04:00
CarterPerez-dev
e87efe7e29
i count the tiles every morning. today there's one more. there's always one more.
2026-06-18 19:28:21 -04:00
Carter Perez
3347843c61
Merge pull request #284 from CarterPerez-dev/dependabot/go_modules/PROJECTS/beginner/canary-token-generator/backend/github.com/go-chi/chi/v5-5.2.4
...
chore(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 in /PROJECTS/beginner/canary-token-generator/backend
2026-06-18 19:04:41 -04:00
CarterPerez-dev
56c2b0233c
the hallway is four steps longer at night. i've confirmed this.
2026-06-18 17:40:31 -04:00
dependabot[bot]
28553a9703
chore(deps): bump pypdf in /PROJECTS/beginner/metadata-scrubber-tool
...
Bumps [pypdf](https://github.com/py-pdf/pypdf ) from 6.12.0 to 6.13.3.
- [Release notes](https://github.com/py-pdf/pypdf/releases )
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md )
- [Commits](https://github.com/py-pdf/pypdf/compare/6.12.0...6.13.3 )
---
updated-dependencies:
- dependency-name: pypdf
dependency-version: 6.13.3
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 15:28:54 +00:00
CarterPerez-dev
4bb95fdb97
feat(ja3-ja4-tls-fingerprinting): M11 forensic pcap report, criterion benches, TLS miss-rate counter
...
Add a --report flag to the pcap command that prints one forensic summary of
a whole capture (endpoint inventory, fingerprint distribution, intel verdicts,
detection alerts, and a coverage section with the TLS miss rate and throughput)
instead of the per-event stream, folding in intel and detection automatically
when a seeded database is present. Add a tls_handshakes_fingerprinted counter
and Counters::tls_miss_rate so truncated and multi-segment ClientHellos the
capture clipped are reported rather than mistaken for absence. Add criterion
benches over the vendored captures and the parse/hash hot path. Plus frontend
landing and asset polish.
2026-06-18 11:19:13 -04:00
dependabot[bot]
f742a39b65
chore(deps): bump github.com/go-chi/chi/v5
...
Bumps [github.com/go-chi/chi/v5](https://github.com/go-chi/chi ) from 5.2.3 to 5.2.4.
- [Release notes](https://github.com/go-chi/chi/releases )
- [Changelog](https://github.com/go-chi/chi/blob/master/CHANGELOG.md )
- [Commits](https://github.com/go-chi/chi/compare/v5.2.3...v5.2.4 )
---
updated-dependencies:
- dependency-name: github.com/go-chi/chi/v5
dependency-version: 5.2.4
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-18 14:09:37 +00:00
CarterPerez-dev
b689b4ceb9
lol
2026-06-17 15:40:25 -04:00
Carter Perez
ddbe7b2387
Merge pull request #281 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/bug-bounty-platform/backend/pyjwt-2.13.0
...
chore(deps): bump pyjwt from 2.12.0 to 2.13.0 in /PROJECTS/advanced/bug-bounty-platform/backend
2026-06-16 10:05:48 -04:00
dependabot[bot]
7bb2319b78
chore(deps): bump pyjwt in /PROJECTS/advanced/api-rate-limiter
...
Bumps [pyjwt](https://github.com/jpadilla/pyjwt ) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases )
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst )
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.12.0...2.13.0 )
---
updated-dependencies:
- dependency-name: pyjwt
dependency-version: 2.13.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 12:07:25 +00:00
CarterPerez-dev
c7e4f7572c
feat(hsm-emulator): materialize default key-usage attributes per object class
...
materializeDefaults now sets CKA_ENCRYPT/DECRYPT/SIGN/VERIFY/SIGN_RECOVER/VERIFY_RECOVER/WRAP/UNWRAP/DERIVE (plus ALWAYS_AUTHENTICATE for private keys) to CK_FALSE when absent, per CKO_PUBLIC_KEY/PRIVATE_KEY/SECRET_KEY; smoke sets the RSA wrap and recover usage flags.
2026-06-16 03:07:03 -04:00
CarterPerez-dev
1bb94b08eb
feat(ja3-ja4-tls-fingerprinting): M8 SQLite intel store + M9 detection engine
...
M8: tlsfp-intel crate with seeded fingerprint DB, JA4 fuzzy matcher, prevalence scoring.
M9: six detection rules (known_bad, ua_mismatch, os_mismatch, first_seen, fp_rotation, monoculture) over an observation/alert store (migration v2); --detect on pcap/live plus an intel alerts feed; user_agent plumbed through StreamEvent::HttpRequest.
M10 scaffolding: cybercore frontend, compose/infra/install groundwork (serve not yet wired).
Relicense MIT -> AGPL-3.0; ignore env/node_modules/dist; exclude seed CSVs from whitespace hooks.
2026-06-16 03:06:31 -04:00
dependabot[bot]
ba83b180bb
chore(deps): bump pyjwt
...
Bumps [pyjwt](https://github.com/jpadilla/pyjwt ) from 2.12.0 to 2.13.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases )
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst )
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.12.0...2.13.0 )
---
updated-dependencies:
- dependency-name: pyjwt
dependency-version: 2.13.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-16 02:40:51 +00:00
CarterPerez-dev
7845d9a1d9
m1-7
2026-06-14 02:38:11 -04:00
dependabot[bot]
d3cc416254
chore(deps): bump pypdf in /PROJECTS/beginner/metadata-scrubber-tool
...
Bumps [pypdf](https://github.com/py-pdf/pypdf ) from 6.10.2 to 6.12.0.
- [Release notes](https://github.com/py-pdf/pypdf/releases )
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md )
- [Commits](https://github.com/py-pdf/pypdf/compare/6.10.2...6.12.0 )
---
updated-dependencies:
- dependency-name: pypdf
dependency-version: 6.12.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-12 19:03:01 +00:00
CarterPerez-dev
e4207b343a
feat(ja3-ja4-tls-fingerprinting): JA3/JA4 TLS fingerprinting tool in Rust (M0-M5)
...
Passive TLS client and server fingerprinting from packet captures. Two-crate
workspace: tlsfp-core (parsing and fingerprint logic, no I/O, unsafe forbidden)
and tlsfp (clap CLI). Edition 2024, MSRV 1.85.
Core (M0-M4): a hand-rolled bounds-checked TLS parser for ClientHello,
ServerHello, and the TLS 1.2 Certificate chain, plus the full fingerprint
family computed byte-exact against published vectors: JA3/JA3S (MD5), JA4/JA4_r,
JA4S, JA4H, JA4X, and JA4T. GREASE is stripped, wire order and unknown cipher
and extension values are preserved.
Pipeline (M5): a pcap and pcapng file reader behind a PacketSource trait,
etherparse L2-L4 decode (Ethernet, raw IP, BSD loopback, Linux SLL and SLL2,
VLAN and QinQ), and a hand-rolled per-flow TCP reassembler with wrapping serial
arithmetic, out-of-order parking, first-write-wins overlap resolution, and
bounded memory. The tlsfp pcap subcommand fingerprints every handshake in a
capture, as readable lines or NDJSON.
Verified three ways: 94 tests including unit KATs, nine real-pcap full-pipeline
KATs against the FoxIO sample corpus, and property tests that reassemble
arbitrarily segmented and reordered streams. Builds clean on stable and MSRV
1.85; clippy -D warnings and rustfmt clean.
Test captures under testdata/pcap are vendored unmodified from the FoxIO ja4
repository with per-file SHA-256 provenance.
2026-06-10 08:01:24 -04:00
dependabot[bot]
3af80845a1
chore(deps): bump pyarrow
...
Bumps [pyarrow](https://github.com/apache/arrow ) from 22.0.0 to 23.0.1.
- [Release notes](https://github.com/apache/arrow/releases )
- [Commits](https://github.com/apache/arrow/compare/apache-arrow-22.0.0...apache-arrow-23.0.1 )
---
updated-dependencies:
- dependency-name: pyarrow
dependency-version: 23.0.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-05 23:50:09 +00:00
Carter Perez
35efe0806d
Update README.md
2026-06-05 13:18:57 -04:00
dependabot[bot]
f18e8e5e5e
chore(deps): bump axios
...
Bumps [axios](https://github.com/axios/axios ) from 1.15.2 to 1.16.0.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.15.2...v1.16.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.16.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-05 08:33:15 +00:00
Carter Perez
48b6d21517
Merge pull request #271 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/bug-bounty-platform/backend/starlette-1.0.1
...
chore(deps): bump starlette from 0.50.0 to 1.0.1 in /PROJECTS/advanced/bug-bounty-platform/backend
2026-06-05 04:32:50 -04:00
Carter Perez
e7766c6402
Merge pull request #270 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/encrypted-p2p-chat/backend/starlette-1.0.1
...
chore(deps): bump starlette from 0.50.0 to 1.0.1 in /PROJECTS/advanced/encrypted-p2p-chat/backend
2026-06-05 04:32:30 -04:00
Carter Perez
4bc5d4b5ca
Merge pull request #272 from CarterPerez-dev/dependabot/uv/PROJECTS/beginner/c2-beacon/backend/starlette-1.0.1
...
chore(deps): bump starlette from 0.52.1 to 1.0.1 in /PROJECTS/beginner/c2-beacon/backend
2026-06-05 04:32:17 -04:00
Carter Perez
6281cce625
Merge pull request #273 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/api-rate-limiter/starlette-1.0.1
...
chore(deps): bump starlette from 0.52.1 to 1.0.1 in /PROJECTS/advanced/api-rate-limiter
2026-06-05 04:32:06 -04:00
Carter Perez
20befbcb08
Merge pull request #275 from CarterPerez-dev/dependabot/npm_and_yarn/PROJECTS/intermediate/api-security-scanner/frontend/axios-1.16.0
...
chore(deps): bump axios from 1.15.2 to 1.16.0 in /PROJECTS/intermediate/api-security-scanner/frontend
2026-06-05 04:31:54 -04:00
dependabot[bot]
3ce38116db
chore(deps): bump axios
...
Bumps [axios](https://github.com/axios/axios ) from 1.15.2 to 1.16.0.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.15.2...v1.16.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.16.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 19:09:18 +00:00
dependabot[bot]
66b5bfb4be
chore(deps): bump axios
...
Bumps [axios](https://github.com/axios/axios ) from 1.15.2 to 1.16.0.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.15.2...v1.16.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.16.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 18:58:53 +00:00
dependabot[bot]
48ed34a3a5
chore(deps): bump starlette in /PROJECTS/advanced/api-rate-limiter
...
Bumps [starlette](https://github.com/Kludex/starlette ) from 0.52.1 to 1.0.1.
- [Release notes](https://github.com/Kludex/starlette/releases )
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md )
- [Commits](https://github.com/Kludex/starlette/compare/0.52.1...1.0.1 )
---
updated-dependencies:
- dependency-name: starlette
dependency-version: 1.0.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 17:27:21 +00:00
dependabot[bot]
4cf5e8beeb
chore(deps): bump starlette in /PROJECTS/beginner/c2-beacon/backend
...
Bumps [starlette](https://github.com/Kludex/starlette ) from 0.52.1 to 1.0.1.
- [Release notes](https://github.com/Kludex/starlette/releases )
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md )
- [Commits](https://github.com/Kludex/starlette/compare/0.52.1...1.0.1 )
---
updated-dependencies:
- dependency-name: starlette
dependency-version: 1.0.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 17:25:29 +00:00
dependabot[bot]
5071d5f77e
chore(deps): bump starlette
...
Bumps [starlette](https://github.com/Kludex/starlette ) from 0.50.0 to 1.0.1.
- [Release notes](https://github.com/Kludex/starlette/releases )
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md )
- [Commits](https://github.com/Kludex/starlette/compare/0.50.0...1.0.1 )
---
updated-dependencies:
- dependency-name: starlette
dependency-version: 1.0.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 17:13:30 +00:00
dependabot[bot]
b51361c4d4
chore(deps): bump starlette
...
Bumps [starlette](https://github.com/Kludex/starlette ) from 0.50.0 to 1.0.1.
- [Release notes](https://github.com/Kludex/starlette/releases )
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md )
- [Commits](https://github.com/Kludex/starlette/compare/0.50.0...1.0.1 )
---
updated-dependencies:
- dependency-name: starlette
dependency-version: 1.0.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 17:09:29 +00:00
Carter Perez
387346bcb2
Merge pull request #267 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/encrypted-p2p-chat/backend/aiohttp-3.14.0
...
chore(deps): bump aiohttp from 3.13.4 to 3.14.0 in /PROJECTS/advanced/encrypted-p2p-chat/backend
2026-06-03 21:11:52 -04:00
Carter Perez
4cc084b74e
Merge pull request #268 from CarterPerez-dev/dependabot/uv/PROJECTS/advanced/ai-threat-detection/backend/aiohttp-3.14.0
...
chore(deps): bump aiohttp from 3.13.4 to 3.14.0 in /PROJECTS/advanced/ai-threat-detection/backend
2026-06-03 21:11:39 -04:00
dependabot[bot]
52647ee8b1
chore(deps): bump aiohttp
...
---
updated-dependencies:
- dependency-name: aiohttp
dependency-version: 3.14.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-03 23:47:52 +00:00
dependabot[bot]
f9c1c2c183
chore(deps): bump aiohttp
...
---
updated-dependencies:
- dependency-name: aiohttp
dependency-version: 3.14.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-03 23:46:31 +00:00
dependabot[bot]
6d3e01c6cf
chore(deps): bump aiohttp
...
---
updated-dependencies:
- dependency-name: aiohttp
dependency-version: 3.14.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-03 23:42:42 +00:00
Carter Perez
0b6f0479f0
Update README.md
2026-06-02 15:20:45 -04:00
Carter Perez
afa663d350
Update README.md
2026-06-02 14:18:11 -04:00
Carter Perez
edee9e11bd
Update README.md
2026-06-02 09:28:16 -04:00
Carter Perez
8c3f891bf5
Update README.md
2026-06-02 09:16:11 -04:00
Carter Perez
e8fe3c18c1
Update README.md
2026-06-02 08:37:58 -04:00
Carter Perez
d57b17004b
Update README.md
2026-06-02 08:32:26 -04:00
Carter Perez
26166998ed
Merge pull request #265 from CarterPerez-dev/project/hsm-emulator
...
Project/hsm emulator
2026-06-02 08:29:01 -04:00
dependabot[bot]
d0aa0b0e0b
chore(deps): bump axios
...
Bumps [axios](https://github.com/axios/axios ) from 1.15.2 to 1.16.0.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.15.2...v1.16.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.16.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-02 12:19:18 +00:00
CarterPerez-dev
d03b9a37ad
fix(hsm-emulator): install.sh builds and validates the ReleaseSafe artifact
...
build_module printed (ReleaseSafe) but ran plain 'zig build', which is Debug here (preferred_optimize_mode only ships ReleaseSafe with --release). It left a 20M Debug .so labeled as the shipped build, and 'zig build smoke' would reinstall Debug over any ReleaseSafe artifact via its install-step dependency.
Run build + test + smoke with --release=safe so the script produces and validates the real 5.9M shipped artifact end to end. Kept check-only (no dependency auto-install): missing deps still hard-fail/warn with the exact apt command.
Verified: ./install.sh exits 0 on a clean tree, final zig-out/lib/libhsm.so is 5.9M ReleaseSafe, tests + smoke pass, pkcs11-tool loads it.
2026-06-02 08:01:48 -04:00
CarterPerez-dev
53fd886ed8
docs(hsm-emulator): M12 learn track + README flip
...
learn/: add 00-OVERVIEW, 01-CONCEPTS, 02-ARCHITECTURE, 03-IMPLEMENTATION, 04-CHALLENGES, and MECHANICS (the byte-by-byte crypto deep-dive). CONFORMANCE shipped in M11. Real-breach grounding, function/file code refs (no line numbers), no AI voice.
Project README: flip M0-stale to real M0-M11 (21 mechanisms, std.Io.randomSecure, roadmap done through M12, learn/ link table).
Root README: graduate HSM to a completed project (Full Source Code 32->33, C badge -> Zig, title + footer now link to source and learn/).
Verified docs-only: zig build test and zig build smoke both exit 0, smoke mechanisms=21, objdump -T shows only C_GetFunctionList. No source changed.
2026-06-02 07:28:08 -04:00
dependabot[bot]
86128cd1a1
chore(deps-dev): bump vitest
...
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ) from 2.1.9 to 4.1.0.
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md )
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.0/packages/vitest )
---
updated-dependencies:
- dependency-name: vitest
dependency-version: 4.1.0
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-06-02 11:15:51 +00:00
CarterPerez-dev
f70ca3f32c
feat(hsm-emulator): M10 crypto-surface, M11 conformance, deep-audit hardening
...
M10 (crypto-surface): RUP-safe buffered AES-GCM streaming (16 MiB cap),
DigestEncrypt/SignEncrypt/DecryptDigest/DecryptVerify dual functions
(decrypt-side CBC-only), RSA C_SignRecover/C_VerifyRecover (CKM_RSA_PKCS),
digest-only Get/SetOperationState.
M11 (conformance): spec-correct C_WaitForSlotEvent (DONT_BLOCK->CKR_NO_EVENT,
blocking->FUNCTION_NOT_SUPPORTED, pReserved->ARGUMENTS_BAD) + CKF_DONT_BLOCK;
public learn/CONFORMANCE.md documenting every deliberate N/A with its OASIS
v2.40 section and exact return code.
Deep project audit (5 read-only dimension agents, 0 Critical/High):
- fix: C_Finalize-vs-fast-path use-after-free race -- replace lockless
state.current() with state.acquire() (lock + verify-live atomically)
across all ~57 entry points
- fix: enforce CKR_PIN_LEN_RANGE on the new PIN in InitToken/InitPIN/SetPIN
- fix: clear a stale sealed flag on Object.set replace (login-unseal wedge)
- harden: zeroize CBC plaintext stack temporaries; Debug leak-assert at
C_Finalize turns smoke into an API-layer leak gate
- test: ABI layout-check PSS/OAEP param structs; +sealed-flag regression
Proven: 76/76 unit (Debug + ReleaseSafe), in-process smoke (with PIN-length
asserts), cross-process pkcs11-tool (init/pin/RSA keygen+sign/wrong-pin).
.so exports only C_GetFunctionList.
2026-06-02 06:48:25 -04:00
CarterPerez-dev
0b8f8df8a3
feat(hsm-emulator): M9 key management — wrap/unwrap, derive, digest-key
...
- C_WrapKey/C_UnwrapKey: CKM_AES_KEY_WRAP (RFC 3394) + CKM_RSA_PKCS_OAEP, secret keys only
- new AES-KEY-WRAP primitive in cipher.zig (RFC 3394 KAT-verified, fail-closed, zeroized temps)
- C_DeriveKey: factor shared secret-key-object builder; accept raw SEC1 or DER peer point
- C_DigestKey: secret-key class + sealed-guard (CKR_KEY_INDIGESTIBLE / CKR_USER_NOT_LOGGED_IN)
- advertise CKM_ECDH1_DERIVE + CKM_AES_KEY_WRAP; add WRAP/UNWRAP to RSA-PKCS-OAEP
- 9 OASIS-exact CKR_* wrap/unwrap/digest error codes
- 70/70 tests; proven via in-process smoke + cross-process pkcs11-tool (OpenSSL + RFC 3394 oracles)
2026-06-01 23:03:53 -04:00
CarterPerez-dev
ccb1b40a15
feat(hsm-emulator): PKCS#11 HSM emulator in Zig (M0–M7)
...
Software HSM that compiles to a real Cryptoki (PKCS#11) v2.40 shared
object, loadable by pkcs11-tool / OpenSSL like a smartcard. SoftHSM2-style
three-layer split: C-ABI facade -> typed core state -> crypto + persistence.
- M0 hand-written v2.40 ABI + build-time OASIS cross-check; exports only C_GetFunctionList
- M1 sessions, login, Argon2id PIN, lockout
- M2 objects + find, CKA_PRIVATE gating, persisted token store
- M3 RNG, SHA-2 digest, HMAC, AES-CBC/CBC-PAD/GCM
- M4 ECDSA P-256/P-384 keygen + sign/verify (std.crypto)
- M5 RSA 2048-4096 via libcrypto: PKCS#1 v1.5 / PSS sign-verify, PKCS#1 / OAEP enc-dec
- M6 encrypted-at-rest store: selective AES-256-GCM envelope, master key wrapped under Argon2id(User-PIN)
- M7 hardening (session-secret zeroization, fail-closed relock, heap-leak scrub, ubsan-free ABI) + Docker
Verified three ways: 65/65 unit tests, in-process dlopen smoke, and
cross-process OpenSC pkcs11-tool (token keys survive process restart).
Also excludes vendor/pkcs11 from the trailing-whitespace / end-of-file
pre-commit hooks so the vendored OASIS headers keep their documented
SHA-256 provenance.
2026-06-01 20:35:48 -04:00