Changes for version 0.22 - 2026-04-02

  • Deprecation Notice
    • OpenSSL versions below 0.9.8 will not be supported in an upcoming release.
    • It will likely be removed in the next production release.
  • Updates since 0.21
    • A fairly large list of commits.
    • Thanks to Joe Schaefer (@joesuf4) for prompting the release.
    • Fix type casting for plaintext in AES decryption (@joesuf4)
    • Allow encryption and decryption of zero length data
    • tests: add additional tests and enable strict and warnings
    • tests: Modernize the module new syntax
    • Properly free memory in the event of an error
    • Add checks to ensure the module is not cloned across threads
    • A fair number of miscelaneous cleanups
    • Verify that the IV is the correct length
    • Add a check for fips mode and method to enable
    • Replace static cipher getters with EVP_CIPHER_fetch()
    • Re-initialize EVP Context Between Calls to encrypt or decrypt
  • Detailed Change Log
    • 1587ac2 Remove Crypt::CBC as a set dependency
    • 6f813d8 Upgrade ppport.h to Version 3.73
    • f064619 Update copyright year and add META.json
    • 7ad96e4 Add a MANIFEST.SKIP
    • 2f4783c Example Docker Container to run in Apache
    • 16d2d64 get_padding should return true or false
    • 17fc906 Update the version number for the next release
    • a452981 License text updates
    • 488c11b Add Crypt::CBC as a test dependency
    • 97de73e Update Dependencies
    • a693ae7 Update the testsuite
    • 9e0d2b7 Increase plaintext buffer size in accordance with OpenSSL documentation
    • 4a827c9 Even encrypt and decrypt zero length data
    • 5a60996 tests: Fix typo
    • 9bbbc8d tests: localize the key to the scope
    • 8f96914 tests: Modernize the module new syntax
    • 3764f7d tests: Fix the error checks and improve error handling use Crypt::OpenSSL::Guess in openssl check
    • 31c4493 tests: Add strict and warnings
    • a65f963 Properly free RETVAL in new()
    • acd9ce7 Add unsafe thread checks and add thread information to pod
    • 612e57c Clarify the err: label and cleanup usage
    • 3c33d3a Fix indenting issue
    • f89c323 Be consistent with STRLEN usage
    • 372717f Ensure that options exists before reading it
    • cc49603 We do not export anything
    • 48baad2 Replace the SYNOPSIS with more secure recommendation
    • 7a3071d Free ciphertext in legacy encrypt
    • df809e8 cipher from EVP_CIPHER_fetch() must be freed
    • 42f362f Verify that the IV used is the correct length
    • 5eb7263 Fix type casting for plaintext in AES decryption
    • 00af656 Be consistent on using plaintext_len
    • 8001417 Croak on ECB ciphers if an IV is specified before calling get_cipher
    • 3f728fa Properly free memory if calls when an error causes a croak and fix memory leak on error
    • 3d0b263 Check fips mode and add pod information related to FIPS
    • 5ecc3be Replace static cipher getters with EVP_CIPHER_fetch()
    • 6e202f1 Re-initialize EVP Context Between Calls

Modules

A Perl wrapper around OpenSSL's AES library