otp_crypto/otp_cipher library
OTP Crypto – AES-256-CBC with PKCS#7 padding (via encrypt
package)
Thin wrapper around package:encrypt
to perform AES-256-CBC encryption
and decryption with PKCS#7 padding. This class does not derive keys
or IVs; it only consumes the encKey
(32B) and iv
(16B) provided by
higher layers (HKDF + IV derivation).
SECURITY NOTES:
- Enforce key length (32) and IV length (16) before calling AES.
- This layer performs no MAC verification; always verify the HMAC tag (Encrypt-then-MAC) before decryption at a higher layer.
- Catch and wrap low-level errors to avoid leaking internals.
HINTS:
- Use
encrypt(...)
to obtain ciphertext bytes for the wire headerc
. - Use
decrypt(...)
only after tag verification passes.