Add pkcs7_pad and pkcs7_unpad functions for block cipher modes:
- Pad data to block size multiples with N bytes of value N
- Validate and remove padding on decryption
- Add InvalidPadding variant to CipherError
Add 128-bit IV type using secret_block! macro with:
- Parsing from hex/binary/ASCII strings
- Conversions to/from Block128 for XOR operations
- Big-endian byte array conversions
Document BlockCipher, InputBlock, and BlockParser with usage examples
and method descriptions. Fix incorrect error message in decrypt() that
referenced "plaintext" instead of "ciphertext".
Move duplicated macro definitions from aes and des crates into
cipher-core for shared use. Both macros now:
- Support u8 through u128 integer types
- Include Zeroize derive for secure memory handling
- Generate consistent formatting and conversion methods
Add generic BlockInt trait and parse_block_int<T>() function to
cipher-core, eliminating duplicate parsing code in aes and des crates.
- BlockInt trait abstracts over u64/u128 integer types
- Supports hex (0x), binary (0b), and ASCII string formats
- Improved BlockError::InvalidByteStringLength with max/actual fields