[1.6.0.0]
Mega update with lots of new features.
Added
- HC-128 and HC-256 algorithms with unit tests
- ChaCha20Poly1305 and XChaCha20Poly1305 algorithms
- Rabbit algorithm
- "GCMNoVerify" block mode for AES - performs AES-GCM without verifying the tag
- Ability to export RSA keys from RSA Calculator directly to the main window (as any supported format, including raw modulus/exponent)
- Import base64-encoded ASN.1 blob to Blob Analyzer
- CALG_RSA_KEYX to Blob Generator
- Tooltip with hex numbers for Filesize texts
- Length display to input dialog boxes, including hex parsing if expecting bytes
- "Lock Parameters" checkbox to not overwrite Offset/Length when loading files
- secp128r1, secp256r1, secp384r1, and secp521r1 ECDH key exchanges as derive functions
- HChaCha20 as derive function
- Option to view hash of input
- Option to Verify for encrypt/decrypt - e.g. verifying an ECDSA signature of the output
- Operations -> Attempt Blind Decryption - crawls the Input and attempts to decrypt any valid block (only supports RSA algorithm currently)
- Detection of base64-encoded PEM and base64-ROT13-encoded PEM keys to Key Finder
- Detection of base64-encoded ASN.1 keys to Key Finder
- RSA Calculator can now also calculate D using [N, P|Q, E], and fills the missing variables
- Input -> Integer for accepting an integer (converts to bytes)
- "ECC Validator" tool - supports secpk1 and secpr1 curve families, or custom parameters
- ECPoint import and export to ECC Validator
- PEM import to ECC Validator - will also automatically load curve parameters (if OID is defined)
- CNG Blob import to ECC Validator - will also automatically load curve parameters (if valid magic)
- "Scarab Ransomware" Base64 charset preset to Base Encoder
- Custom round and position support for ChaCha20 (RFC-7539) algorithm
- Progress bar for "Bruteforce Algorithm" operation
- Input IV from Base64 (Advanced -> IV)
- "Recover IV From Plaintext" (Advanced -> IV), recovers the IV by XORing the ciphertext (Output) and your known plaintext
- "Chunk Viewer" tool - allows viewing input as per-block chunks, with optional XOR filter
- "Skip Chars" to RNG Tester
- Custom constant support for XXTEA algorithm
- ASN.1 format support to Bruteforce Keys tool
- "Reset Length" button to reset the File Options -> Length to the input's length
- SHA-512/224 and SHA-512/256 hashes
- OAEP_SHA512_224, OAEP_SHA512_256, OAEP_SHA3_256, and OAEP_SHA3_512 padding schemes (for RSA)
- OAEP_SHA256_MFG1_SHA384, OAEP_SHA256_MFG1_SHA512, and OAEP_SHA384_MFG1_SHA512 padding schemes (for RSA)
- Support for RSA keys > 4096 bit
- Support for ECPoint formatted or raw byte private/public keys when using Elliptic Derive algorithms
- SHA3 and Blake2b families of hash algorithms
- XXHash and Murmur3 families of hash algorithms
- Adler32 checksum and BlackMatter's custom hash algorithms
- "Copy C Array" option for hex boxes (context menu or Ctrl+Shift+C)
- "Copy BigNum" option for hex boxes (context menu)
- "Chunks" mode for encrypt input bytes - define number of bytes to take and skip to encrypt/decrypt bytes in chunks (also works with "Splice Remaining Bytes" to interweave untouched bytes)
- aPLib compression algorithm (only decompression supported for now)
- "Reverse Input" button to Base Encoder
- "LibSodium CryptoBox Easy" (crypto_box_easy / crypto_box_open_easy) algorithm - expects private_key|public_key for Key currently
- "LibSodium CryptoBox Seal" (crypto_box_seal / crypto_box_seal_open) algorithm
- Detection of XML keys to Key Finder
- Detection of some NTRU keys (libntru format EES401EP2 and EES587EP1) to Key Finder
- Textbox for seed with hashes that support one (default is provided otherwise)
- Real HMAC_MD5 and HMAC_SHA* derive algorithms
- Operation -> "Generate Keystream" on the Encrypt/Decrypt tab can now generate a direct keystream to file (encrypt 0x00 bytes) for stream ciphers
- RSA algorithm will now automatically decrypt in sequential chunks if total length is divisible by the modulus bitlength
Changed
- Updated target framework to .NET 4.7.2
- Updated dependent libraries
- RSA Calculator form now allows resizing
- Changed output hash to update when dropdown changes
- Expanded size of Algorithm, Hash, Derive, and Padding dropdowns to view full text better
- Grouped Hashes for easier finding of algorithm
- Grouped Derive functions for easier finding of algorithm
- Grouped Padding modes for easier finding of algorithm
- Renamed HMACSHA*, to respective PBDKF2* derive algorithms
Fixed
- Fixed Sosemanuk unit test
- Fixed Sosemanuk to accept derived keys
- Fixed File Options -> Length to assume relative to end of input if parsed value is negative
- Fixed output endianness of RSA Raw algorithm
- Fixed hex output when generating a key in RSA Calculator
- Fixed being able to export a blank/broken key when first opening RSA Calculator
- Fixed XOR Analysis in Compare tab when not the whole file was encrypted
- Fixed "To Hex" conversion in Hex Integer Converter when using commas and spaces
- Fixed Bruteforce Algorithm operation selecting Custom padding mode (caused popup on each iteration)
- Moved Bruteforce Algorithm operation to a background thread for better performance and UI responsiveness
- Fixed export of key in RSA Calculator where N bitlength may be -1 from valid RSA bit lengths (e.g. 0x3FF or 0x7FF)
- Fixed Cut operation on hex views
- Fixed Base Encoder resetting dropdowns when it was opened multiple times
- Fixed Key Finder to stop async task if dialog is closed
- Fixed display of a repairable CNG key blob in Key Finder
- Fixed unhelpful message on bad derive key length
- Fixed compression under Compress/Decompress tab
- Fixed crash in Key Finder with displaying an invalid CNG blob when it is a false-positive from the magic header
- Fixed mis-reporting of key count in Key Finder when a false-positive is found (and suppressed)
- Fixed bug with Reverse Input Bytes when input was empty
- Fixed finding ASN.1 sequences with certain lengths in Key Finder
- Fixed duplicate keys found with nested ASN.1 sequences in Key Finder
- Fixed vague error with TEA algorithm and keys < 16 bytes (TEA exclusively will only use 16 bytes of any given key)
- Fixed Little Endian mode for TEA algorithm when using an IV
- Fixed "Flip Endianness" in RSA Calculator when value went negative
- Fixed enumerating folder of CryptoAPI blobs in Bruteforce Keys tool
- Fixed "Non NULL" expectation in Bruteforce Keys tool
- Fixed RSA decryption of CryptoAPI-encrypted ciphertext when using OAEP_SHA256, OAEP_SHA384, or OAEP_SHA512 padding
- Fixed RSA key PEM parsing when encoded newlines are present
Removed
- Removed ECDH-ED25519 derive (misunderstanding, not actually a ECDH key exchange algorithm - it is an EdDSA signature algorithm)