Version 0.011 - 2025-12-02
- Fix bug in parsing strings of '$encoding' parameters that could return
an uninitialized value for an invalid encoding.
- Fix compatibility of tests for Win32 and Cygwin
Version 0.010 - 2025-11-22
- Fix bug where substr with replacement that shrinks the buffer would leave
un-wiped bytes at the end of the string.
- Fix compile error on BSD, possibly others
- New methods: splice, append
- substr, splice, append, and assign now all have special cases for assigning
a Span of a buffer.
- New C API functions:
- secret_buffer_SvPVbyte
- secret_buffer_splice
- secret_buffer_splice_sv
- Removed the short-lived secret_buffer_assign_sv from the previous release
since secret_buffer_splice_sv provides a more powerful way to do it.
- C API is now exported as package variables for simpler conditional use of
the API, such as
get_sv("Crypt::SecretBuffer::C_API::void secret_buffer_wipe(char *, size_t)",0);
- Standardized signatures of exported functions in these variables
- Removed the macros
SECRET_BUFFER_DECLARE_FUNCTION_POINTERS,
SECRET_BUFFER_DEFINE_FUNCTION_POINTERS, and
SECRET_BUFFER_DEFINE_FUNCTION_POINTERS
because I'm pretty sure they'll never get used, and so now SecretBuffer.h
doesn't need to include SecretBufferManualLinkage.h and the user can just
copy SecretBuffer.h as-is from the git repo.
Version 0.008 - 2025-11-17
- New Span objects assist with parsing secrets.
- New INI object for parsing common INI-like formats.
- SecretBuffer now has 'rindex' and 'scan' methods, and 'index' allows the
pattern to be a Regexp-ref as long as it is only a single character class.
- New SecretBuffer methods load_file and save_file.
- New C API functions:
- secret_buffer_charset_from_regexpref
- secret_buffer_charset_test_byte
- secret_buffer_charset_test_codepoint
- secret_buffer_parse_init
- secret_buffer_match
- secret_buffer_match_charset
- secret_buffer_match_bytestr
- secret_buffer_sizeof_transcode
- secret_buffer_transcode
- secret_buffer_assign_sv
Version 0.007 - 2025-10-31
- New API unmask_secrets_to and ->unmask_to
- Documented ways to use SecretBuffer without depending on it
Version 0.006 - 2025-09-09
- Fix bug checking errno for EAGAIN after failed _append_random
- Fix Makefile.PL feature tests for required lib linker flags
- Fix Win32 compat when wincrypt.h isn't required/available
Version 0.005 - 2025-06-05
- Fix bug in index() that fails to search on final char of buffer
- Improved OS feature detection, which should fix many build failures
- Fix 5.8 compat
- More unit tests
- Document security policy
Version 0.004 - 2025-06-05
- Add "Inline with => Crypt::SecretBuffer" support
- Tooling now provides C API from the XS shared lib as native exported symbols
- Fix failing assertion in substr()
Version 0.003 - 2025-05-23
- Make attribute accessor for stringify_mask
Also allows stringify_mask to be specified in the constructor
Version 0.002 - 2025-05-23
- Fix 5.8 compatibility
- Fix exports & documentation
Version 0.001 - 2025-05-23
- Initial version, working on Linux, FreeBSD, and MSWin32