Roadmap¶
Done¶
- Token format —
IsToken/ParseToken/FormatTokenfor theENC[PKCS7,<base64>]tokens hiera-eyaml embeds in YAML, tolerant of whitespace-wrapped values. - PKCS7 encryptor — A random AES-256 content key (AES-256-CBC, PKCS#7 padding) wrapped with RSA PKCS#1 v1.5 under an X.509 certificate, serialised as a CMS EnvelopedData
ContentInfo— mirroring hiera-eyaml'spkcs7encryptor. - Key management —
CreateKeysgenerates the RSA keypair and self-signed certificate thateyaml createkeysproduces;LoadPrivateKey/LoadCertificateread PEM / PKCS8 material;LoadGPGKeyRingreads OpenPGP keyring material. - PKCS7 crypto — Built on
crypto/rsa,crypto/x509,crypto/aes,crypto/cipher,crypto/rand,encoding/pemandencoding/asn1; the PKCS#7 / CMS structure is hand-assembled — no third-party crypto, no cgo. - GPG encryptor —
NewGPGmirrors hiera-eyaml'sgpg(GPGME) encryptor on the pure-Go, CGO-freegithub.com/ProtonMail/go-crypto/openpgpimplementation, producingENC[GPG,<base64>]tokens byte-for-byte interoperable with realgpg --encrypt/--decrypt.
Next¶
Nothing currently deferred; further hiera-eyaml schemes can be added through the Encryptor seam as needed.
Quality is a standing gate: 100% coverage including error branches, gofmt + go vet clean, CI green across the six 64-bit Go targets (amd64, arm64, riscv64, loong64, ppc64le, s390x).