From d57b17004b64bac49647783daeffc3456790a73a Mon Sep 17 00:00:00 2001 From: Carter Perez Date: Tue, 2 Jun 2026 08:32:26 -0400 Subject: [PATCH] Update README.md --- PROJECTS/advanced/hsm-emulator/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/PROJECTS/advanced/hsm-emulator/README.md b/PROJECTS/advanced/hsm-emulator/README.md index 9dfd1b39..206513aa 100644 --- a/PROJECTS/advanced/hsm-emulator/README.md +++ b/PROJECTS/advanced/hsm-emulator/README.md @@ -18,6 +18,12 @@ > A software **Hardware Security Module** that compiles to a real Cryptoki (PKCS#11) shared object. Load it with `pkcs11-tool`, OpenSSL, or any PKCS#11 host the same way you would a real smartcard or HSM. It speaks the C ABI byte for byte, generates and stores keys, signs and encrypts, and keeps private key material sealed on disk and zeroized in RAM. +

+ + Watch Learn Video + +

+ ## Why PKCS#11 in Zig PKCS#11 (Cryptoki) is the C-ABI standard that smartcards, YubiKeys, and cloud HSMs all speak. A conforming module is a `.so` that exports one function, `C_GetFunctionList`, returning a 68-entry table of function pointers in a *fixed canonical order*. Get one struct offset or one pointer slot wrong and the host loads garbage.