secure_buffernow coordinates page locks process-wide at page granularity, preventing one buffer from unlocking a page still used by another buffer.- Replacement, copy, assignment, and string-consumption paths wipe old storage before release and lock replacement storage before copying secrets.
- Breaking ABI change:
secure_bufferlayout and move-operation exception specification changed. Shared-library consumers must be fully rebuilt; do not use a 0.6.0 DLL/SO as a drop-in replacement for a 0.5.x build. - CI now runs the secure-buffer regression target with page locking both enabled and disabled.
- CMake package compatibility is
ExactVersionwhile the project remains pre-1.0; a 0.x minor release may contain breaking changes.
- The page-lock registry coordinates calls only within one loaded copy of hmac-cpp. Separate statically linked modules have independent registries.
- Continuing after POSIX
fork()withoutexec()is unsupported for page locking because child processes do not inherit memory locks.
- Rebuild every consumer against the 0.6.0 headers and library together.
- The bundled vcpkg port remains at the latest tagged release until
v0.6.0is published.
- Lifecycle management APIs and hardened zeroing for
secure_buffer. - Improved
secret_stringimplementation for better safety and performance. - Expanded tests covering nonce rotation and integrity checks in
secret_string.
- Renamed
secret.hpptosecret_string.hpp; includes must update.
- Breaking changes: header rename.
- Base32 (RFC 4648), Base64, and Base36 encoding/decoding utilities.
secure_buffer<T>zeroizing container and helpers (page locking, secret_string).- Expanded HOTP/TOTP test coverage.
- CMake install exports new headers.
- README updated.
- Breaking changes: none (public API only extended).
- PBKDF2 implementation.
- Documentation corrections.