Tags

Tags give the ability to mark specific points in history as being important
  • v0.2.0

    - Added CryptoHandler class to jlizard namespace
    
    - moved overview before the TOC in the README.md
    - fixed the markdown code display for the gmac example
    
    - Removed redundant main.cpp
    - Removed some redundant comments
  • v0.1.0-alpha.2

    4d28dca8 · update changelog.md ·
    - Removed redundant calculate_digest signature. Kept only signature in active use, old function was not used
      and doesn't adhere to error propagation methodology applied for other functions
    - Updated Readme.md with reference to ByteArray library
    - Reorganize the structure of readme and improve examples
    
    - Fixed some bugs in the provided examples
  • v0.1.0-alpha.1

    - Initial implementation of CryptoHandler class with support for:
        - AES encryption in CBC and GCM modes
        - SHA-256 message digest functionality
        - HMAC generation with SHA-256
        - CBC-MAC authentication
        - GMAC authentication for GCM mode
    - Comprehensive set of unit tests:
        - AES-CBC encryption/decryption with and without padding
        - AES-GCM authenticated encryption
        - SHA-256 digest calculation and truncation
        - HMAC-SHA256 verification against RFC 4231 test vectors
        - CBC-MAC and GMAC authentication
        - Error handling for mismatched modes and wrong keys
    - New edge case tests for AES-GCM:
        - Behavior when tag is missing during decryption
        - Handling of tags smaller than required 16 bytes
        - Validation of empty tag buffers
        - Support for oversized tag buffers
    - Proper error handling and reporting through std::expected
    - Comprehensive validation of cryptographic parameters
    - Support for legacy crypto algorithms through providers
    
    - Secure memory handling with ByteArray class that wipes sensitive data
    - Proper IV handling for CBC and GCM modes
    - Complete tag validation for authenticated encryption
    - Implementation follows cryptographic best practices
    - OpenSSL-based cryptographic operations