Changes for version 0.018 - 2026-02-11

  • New exportable span() function which universally constructs a span from a SecretBuffer, Span object, or plain scalar.
  • PEM object header values are no longer secrets, by default. This is a breaking change, but the module has been out less than two months.
  • New methods to encode and decode variable-length integers and length-prefixed strings:
    • append_lenprefixed / parse_lenprefixed
    • append_base128le / parse_base128le
    • append_base128be / parse_base128be
    • append_asn1_der_length / parse_asn1_der_length
  • New method Span->append_to, and normalize Span->copy_to to overwrite. This is a breaking change in that ->copy_to used to append to SecretBuffer but overwrite scalars. Now copy_to overwrites for both destination types and append_to appends to both destination types.
  • Change type of secret_buffer_charset_test_codepoint codepoint from `uint32_t` to `U32` so that users of Inline aren't forced to `#include <stdint.h>` This is a breaking change for any C code which was looking up the function by name in the %C_API hash, but the ABI is unchanged.

Modules

Prevent accidentally leaking a string of sensitive data
Observe results of a write_async operation
Disable TTY echo within a scope
Parse INI format from a SecretBuffer
Parse PEM format from a SecretBuffer
Reference a span of bytes within a SecretBuffer

Provides

in lib/Crypt/SecretBuffer.pm