Changes for version 0.13 - 2026-04-23

  • Bug fixes:
    • Use SvPVbyte in XS add() so wide-character strings are handled consistently rather than relying on the caller's UTF-8 flag. PR #56
    • Add binmode to addfile() for cross-platform consistency on Windows. PR #57
    • Return $self from Perl-level add() and addfile() to enable method chaining at the Perl layer (XS already returned $self). PR #54
    • Zero MAC key material (key, k_ipad, k_opad) in DESTROY to reduce the window for key material leaking into freed memory. PR #62
    • Use dead-store-proof memset loop for zeroing sensitive memory so the compiler cannot optimise away the wipe. PR #50
    • Define PERL_NO_GET_CONTEXT in the XS file for correctness under threaded Perl builds. PR #60
    • Silence -Wall -Wextra compiler warnings in XS code. PR #49
    • Include t/03streaming.t in MANIFEST so it is shipped in CPAN distributions. PR #48
  • Improvements:
    • Inherit from Digest::base to support the standard Perl Digest API: b64digest, add_bits, and loading via Digest->new('RIPEMD-160'). PR #58
    • Return $self from XS-level add() and reset() to allow method chaining: $ctx->reset->add($data)->digest(). PR #53
    • Delegate MAC addfile() to the inner RIPEMD-160 addfile() to avoid duplicating the read loop and binmode handling. PR #64
  • Maintenance:
    • Add proper =head2 method sections to MAC.pm POD. PR #51
    • Add comprehensive MAC test suite covering HMAC correctness, reset, addfile, and long-key hashing. PR #55
    • Add streaming consistency tests verifying that single-call and multi-call add() produce identical digests. PR #46
    • Move X[] scratch buffer from the RIPEMD-160 state struct to the stack, reducing per-context memory usage. PR #52
    • Add #!include_default to MANIFEST.SKIP for robust exclusion of build artefacts. PR #59
    • Fix CI author-test failures on older Perls: install develop deps and skip tests for methods unavailable before Digest::base integration. PR #61
    • Narrow .gitignore *.c pattern to only the XS-generated C file. PR #63

Modules

Perl extension for the RIPEMD-160 Hash function
Perl extension for RIPEMD-160 MAC function