Revision history for Perl extension Crypt::RIPEMD160.

0.12 2026-04-02

  Bug fixes:
    - Fix MAC reset() after mac()/hexmac() by preserving the key so the
      inner pad can be recomputed. PR #23
    - Prevent STRLEN-to-dword truncation for large inputs on 64-bit
      platforms in the XS add() method. PR #26
    - Croak on read errors in addfile() instead of silently truncating
      the hash input. GH #35, PR #35
    - Zero sensitive memory (hash state) on destroy and reset to avoid
      leaking intermediate digests. PR #39
    - Zero MDfinish stack buffer after final compression to prevent
      transient data from lingering on the stack. PR #44

  Improvements:
    - Add clone() method for copying mid-computation state, enabling
      efficient digest of data sharing a common prefix. PR #27
    - Simplify digest byte extraction and MAC reset internals. PR #36
    - Add const qualifiers to C function signatures and remove unused
      includes. PR #24

  Maintenance:
    - Add LICENSE file and =head1 LICENSE sections to module POD. PR #29
    - Add LICENSE section to MAC.pm POD and exclude .claude/ from dist.
      PR #37
    - Remove executable permission and shebang from Makefile.PL. PR #28
    - Modernize Makefile.PL metadata: add META_PROVIDES, test
      dependencies, and MIN_PERL_VERSION. PR #25, PR #33
    - Modernize misc/ scripts and clean up MANIFEST.SKIP. PR #34
    - Modernize README and clean cpanfile. PR #25
    - Add CONTRIBUTING.md. PR #31
    - Add SECURITY.md with vulnerability reporting contact. PR #32
    - Add AI_POLICY.md for AI policy.
    - Add CLAUDE.md with generated file warnings. PR #45
    - Add author tests for POD validation and coverage. PR #42
    - Add padding boundary test vectors. PR #43

0.11 2026-03-22

  Bug fixes:
    - Replace platform-dependent C typedefs (unsigned char, unsigned int)
      with C99 fixed-width types (uint8_t, uint32_t) from <stdint.h>.
      This eliminates the class of portability bug from 0.04_01 where
      dword was 8 bytes on 64-bit systems by guaranteeing exact widths
      at the type level. PR #22

  Maintenance:
    - Remove unused `word` (unsigned short) typedef from rmd160.h. PR #22
    - Fix cpanfile to reference XSLoader instead of replaced DynaLoader.
      PR #22

0.09 2026-03-20

  Bug fixes:
    - Fix stray semicolon in RMD160_DIGESTSIZE macro that would cause
      compilation failures if used in expressions. GH #9
    - Fix CI workflow to use supported Docker images, proper container
      format, and correct perl-versions action. GH #14, PR #15
    - Remove debug printf left in wrap_160.c. PR #11
    - Remove dead preprocessor conditionals and unused variable from
      wrap_160.c and wrap_160.h. PR #19
    - Fix rand bug, bareword filehandle, and stale print in t/01test.t.
      PR #18
    - Cast unsigned char* to const char* in newSVpv() call to silence
      -Wpointer-sign compiler warning on macOS/clang. GH #20, PR #21

  Improvements:
    - Modernize DynaLoader to XSLoader. PR #19
    - Correct POD examples in MAC.pm and RIPEMD160.pm for modern Perl
      practices. PR #8, PR #19
    - Remove unnecessary AutoLoader from MAC.pm @ISA. GH #6, PR #4, PR #7
    - Add use warnings to modules. PR #19
    - Add comprehensive method and edge case test suite (t/02methods.t).
      PR #13
    - Update META files to correct repository URLs. PR #8

  Maintenance:
    - Modernize GitHub Actions CI to current versions. PR #10
    - Remove stale .travis.yml and fix cpanfile. PR #12
    - Remove META.json and META.yml from git tracking.
    - Add .perltidyrc and update .gitignore.

0.07 Wed Oct 21 2020

  Bug fixes:
    - Rename internal C subroutine compress() to rmd160_compress() to avoid
      symbol conflict with libz on CentOS 8.

  Improvements:
    - Replace indirect object notation (new Crypt::RIPEMD160) with direct
      method calls (Crypt::RIPEMD160->new) in code and POD examples.
    - Drop unused Exporter and 'use vars' in favor of 'our' declarations.
    - Move bug tracking metadata from rt.cpan.org to GitHub Issues.

  Maintenance:
    - Move modules to standard lib/Crypt/RIPEMD160/ directory layout.
    - Add MANIFEST.SKIP file and update MANIFEST and .gitignore.
    - Add CI testing via GitHub Actions and Travis CI.

0.06 Tue June 9 2015
    - Fix for Compiler warnings about printf statement - Thanks flichtenheld

0.05 Mon April 10 2011
    - Release to CPAN without changes

0.04_01 Mon April 4 2011
    - Fix bug in Module for 64 bit systems where dword was undesirably an 8 byte not 4 byte integer.

--- Change log does not exist for 0.04 and prior