Releases: abdorrahmani/CryptoLens
Releases · abdorrahmani/CryptoLens
cryptolens v1.4.0
🚀 CryptoLens v1.4.0 Release Notes
Highlights
- Major new features: JWT None Algorithm Attack simulation, ChaCha20-Poly1305 AEAD, comprehensive attack simulations (ECB, nonce reuse, brute force, timing), enhanced benchmark, and improved CLI/visualization.
- Key improvements: Key management overhaul, test coverage, modular refactor, and comprehensive documentation.
✨ Features
- ChaCha20-Poly1305 AEAD
- Full processor implementation with encryption/decryption, secure key/nonce management, and detailed visualization.
- Manual key/nonce entry with strong security warnings and improved error handling.
- Interactive tampering test with step-by-step guide and real-time feedback.
- Enhanced documentation: key/nonce/tag details, security notes, and usage guidance.
- Attack Simulations
- JWT None Algorithm Attack: demonstrates JWT signature bypass, algorithm manipulation, and security implications.
- ECB mode vulnerability demo: pattern leakage, visual block detection, and security implications.
- Nonce reuse attack for AEAD ciphers: catastrophic impact, XOR demonstration, and best practices.
- Brute force attack: dictionary attack on weak PBKDF, security comparison, and best practices.
- Timing attack: ETA calculation, accuracy stats, and improved progress visualization.
- Benchmark Enhancements
- Memory usage tracking, platform info (OS, arch, CPU), cross-platform comparison, and memory efficiency tips.
- Display & CLI
- Centered ASCII art and welcome messages, improved formatting, and color standardization.
- Enhanced step visualization: section headers, arrows, indicators, diagrams, and labels.
🛠️ Enhancements & Refactors
- Key Management
- All key file paths now use a dedicated
keys
directory for better organization. - Automatic creation of
keys
directory if missing across all processors and tests.
- All key file paths now use a dedicated
- Code Structure
- Attack processors refactored for modularity and SOLID principles.
- Consistent configuration handling, reusable methods, and clear separation of concerns.
- Standardized attack demonstration flow and progress tracking.
- Test Coverage
- 91%+ coverage for config package with robust error handling.
- Comprehensive test suites for ChaCha20-Poly1305 and ECB attack processors.
🐛 Fixes
- Handled unchecked error returns in nonce reuse and ChaCha20-Poly1305 tests.
- Improved error handling and validation throughout attacks and crypto modules.
- Fixed step reordering and formatting issues in display/visualizer.
📚 Documentation
- New & Enhanced Docs:
- JWT None Algorithm Attack: comprehensive vulnerability explanation, attack process, prevention methods, and real-world examples.
- AES, Base64, Caesar, ChaCha20-Poly1305, DH, HMAC, JWT, PBKDF, RSA, SHA-256, X25519.
- README: CLI interface image, attack simulations, usage, features, and best practices.
- Detailed CLI usage, encryption examples, key/nonce/tag explanations, and troubleshooting.
🧪 Tests
- JWT None Algorithm Attack: comprehensive test suite covering token creation, attack simulation, error handling, and integration testing.
- ChaCha20-Poly1305: encryption/decryption, edge cases, tampering, AAD, invalid config, and more.
- ECB attack: config, input scenarios, base64, pattern detection, and padding.
- Config: all getters, defaults, error scenarios, file ops, and edge cases.
💡 Upgrade Notes
- All key files are now stored in the
keys
directory. Ensure this directory exists or is writable. - Attack simulations are accessible from the new menu section (now includes JWT None Algorithm Attack).
- Review updated documentation for new features and best practices.
- JWT None Algorithm Attack demonstrates critical JWT vulnerabilities and prevention methods.
🙏 Thanks for using CryptoLens! Your feedback and contributions are welcome.
cryptolens v1.4.0-beta
🚀 CryptoLens v1.4.0-beta Release Notes
Highlights
- Major new features: ChaCha20-Poly1305 AEAD, attack simulations (ECB, nonce reuse, brute force, timing), enhanced benchmark, and improved CLI/visualization.
- Key improvements: Key management overhaul, test coverage, modular refactor, and comprehensive documentation.
✨ Features
- ChaCha20-Poly1305 AEAD
- Full processor implementation with encryption/decryption, secure key/nonce management, and detailed visualization.
- Manual key/nonce entry with strong security warnings and improved error handling.
- Interactive tampering test with step-by-step guide and real-time feedback.
- Enhanced documentation: key/nonce/tag details, security notes, and usage guidance.
- Attack Simulations
- ECB mode vulnerability demo: pattern leakage, visual block detection, and security implications.
- Nonce reuse attack for AEAD ciphers: catastrophic impact, XOR demonstration, and best practices.
- Brute force attack: dictionary attack on weak PBKDF, security comparison, and best practices.
- Timing attack: ETA calculation, accuracy stats, and improved progress visualization.
- Benchmark Enhancements
- Memory usage tracking, platform info (OS, arch, CPU), cross-platform comparison, and memory efficiency tips.
- Display & CLI
- Centered ASCII art and welcome messages, improved formatting, and color standardization.
- Enhanced step visualization: section headers, arrows, indicators, diagrams, and labels.
🛠️ Enhancements & Refactors
- Key Management
- All key file paths now use a dedicated
keys
directory for better organization. - Automatic creation of
keys
directory if missing across all processors and tests.
- All key file paths now use a dedicated
- Code Structure
- Attack processors refactored for modularity and SOLID principles.
- Consistent configuration handling, reusable methods, and clear separation of concerns.
- Standardized attack demonstration flow and progress tracking.
- Test Coverage
- 91%+ coverage for config package with robust error handling.
- Comprehensive test suites for ChaCha20-Poly1305 and ECB attack processors.
🐛 Fixes
- Handled unchecked error returns in nonce reuse and ChaCha20-Poly1305 tests.
- Improved error handling and validation throughout attacks and crypto modules.
- Fixed step reordering and formatting issues in display/visualizer.
📚 Documentation
- New & Enhanced Docs:
- AES, Base64, Caesar, ChaCha20-Poly1305, DH, HMAC, JWT, PBKDF, RSA, SHA-256, X25519.
- README: CLI interface image, attack simulations, usage, features, and best practices.
- Detailed CLI usage, encryption examples, key/nonce/tag explanations, and troubleshooting.
🧪 Tests
- ChaCha20-Poly1305: encryption/decryption, edge cases, tampering, AAD, invalid config, and more.
- ECB attack: config, input scenarios, base64, pattern detection, and padding.
- Config: all getters, defaults, error scenarios, file ops, and edge cases.
💡 Upgrade Notes
- All key files are now stored in the
keys
directory. Ensure this directory exists or is writable. - Attack simulations are accessible from the new menu section.
- Review updated documentation for new features and best practices.
🙏 Thanks for using CryptoLens! Your feedback and contributions are welcome.
cryptolens v1.3.0
CryptoLens v1.3.0 🎉
✨ New Features
- Added version number to welcome message
- Implemented Diffie-Hellman key exchange with authentication
- Added RSA key pairs for Alice and Bob
- Implemented SHA-256 hashing before RSA signing
- Added signature verification for key authenticity
- Added AES-GCM encryption demo using derived shared secret
- Enhanced TLS-like protocol with authentication steps
- Added modern Curve25519 (X25519) key exchange implementation
- Implemented X25519Processor with Curve25519 key exchange
- Added HKDF key derivation and AES-GCM encryption demo
- Added performance comparison with traditional DH
- Added JWT support to CLI menu
- Added JWT algorithm selection (HS256, RS256, EdDSA)
- Implemented JWT processor configuration
- Added secret key prompt for HS256 algorithm
- Added colored ASCII art visualization for benchmarks
- Added visual bar chart for HMAC and PBKDF comparisons
- Implemented proportional scaling for performance bars
- Added average time display with appropriate units
- Enhanced readability with aligned algorithm names and coloring
🐛 Bug Fixes
- Fixed unhandled errors in HMAC and PBKDF implementations
- Fixed parameter naming conflicts (max → maxValue, min → minValue)
♻️ Refactoring
- Split menu.go into modular packages for better maintainability
- Simplified output formatting and removed tablewriter dependency
📚 Documentation
- Added comprehensive TLS 1.3 connection flow documentation
- Added professional ASCII diagram for X25519 key exchange flow
- Added critical security warnings and best practices
- Enhanced documentation with:
- Authentication requirements
- Constant-time implementation details
- Certificate management guidelines
- Monitoring recommendations
- Common pitfalls
- Key management requirements
- Visual legend for key exchange components
🔒 Security Enhancements
- Added MITM prevention details
- Enhanced key exchange security with authentication
- Improved signature verification process
- Added proper scalar validation for private keys
🚀 Installation
# Using Go Install
go install github.com/abdorrahmani/cryptolens@v1.3.0
# From Source
git clone https://github.com/abdorrahmani/cryptolens.git
cd cryptolens
git checkout v1.3.0
go build -o cryptolens cmd/cryptolens/main.go
# Using Pre-built Binaries
# Download the appropriate binary for your system from the GitHub releases page:
# - Windows (x86_64): cryptolens_Windows_x86_64.zip
# - Linux (x86_64): cryptolens_Linux_x86_64.tar.gz
# - macOS (x86_64): cryptolens_Darwin_x86_64.tar.gz
# - macOS (ARM64): cryptolens_Darwin_arm64.tar.gz
# - Linux (ARM64): cryptolens_Linux_arm64.tar.gz
📋 Requirements
- Go 1.21 or higher
- Git (for installation from source)
🔒 Security Notes
- Enhanced security with authenticated key exchange
- Added modern X25519 implementation
- Improved JWT support with multiple algorithms
- Enhanced benchmark visualization for security analysis
📝 Breaking Changes
- None. This is a feature release that maintains backward compatibility.
🔍 Known Issues
- None reported at this time.
🙏 Acknowledgments
- Thanks to all contributors and users for their feedback
- Special thanks to the cryptography community for their guidance
📫 Support
For support, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers
🔄 Upgrade Notes
- No special upgrade steps required
- Existing configurations will be automatically updated
📅 Release Date
June 8, 2025
cryptolens v1.2.1
CryptoLens v1.2.1 🎉
🐛 Bug Fixes
- Fixed all linter errors across the codebase
- Fixed text input prompt after operation selection in the menu
- Fixed error handling in processor.Process calls
- Improved error messages and context
🔧 Technical Improvements
- Enhanced code quality through linter compliance
- Improved error handling patterns
- Better user experience with clearer input prompts
- More robust error propagation
📚 Documentation
- Updated error handling documentation
- Added comments for linter directives
🔄 Dependencies
- No dependency changes
🚀 Installation
# Using Go Install
go install github.com/abdorrahmani/cryptolens@v1.2.1
# From Source
git clone https://github.com/abdorrahmani/cryptolens.git
cd cryptolens
git checkout v1.2.1
go build -o cryptolens cmd/cryptolens/main.go
# Using Pre-built Binaries
# Download the appropriate binary for your system from the GitHub releases page:
# - Windows (x86_64): cryptolens_Windows_x86_64.zip
# - Linux (x86_64): cryptolens_Linux_x86_64.tar.gz
# - macOS (x86_64): cryptolens_Darwin_x86_64.tar.gz
# - macOS (ARM64): cryptolens_Darwin_arm64.tar.gz
# - Linux (ARM64): cryptolens_Linux_arm64.tar.gz
📋 Requirements
- Go 1.21 or higher
- Git (for installation from source)
🔒 Security Notes
- No security-related changes in this release
📝 Breaking Changes
- None. This is a patch release that maintains backward compatibility.
🔍 Known Issues
- None reported at this time.
🙏 Acknowledgments
- Thanks to all contributors and users for their feedback
📫 Support
For support, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers
🔄 Upgrade Notes
- No special upgrade steps required
- Existing configurations will be automatically updated
📅 Release Date
June 03, 2025
cryptolens v1.2.0
CryptoLens v1.2.0 🎉
🎉 New Features
HMAC Implementation
- Added HMAC (Hash-based Message Authentication Code) support
- Multiple hash algorithm options:
- SHA-256 (default)
- SHA-1 (legacy)
- SHA-512
- BLAKE2b-256
- BLAKE2b-512
- BLAKE3
- Real-time performance measurements
- Detailed algorithm information display
- Step-by-step HMAC process visualization
- Secure key management
- Output in both Hex and Base64 formats
Password-Based Key Derivation (PBKDF)
- Added PBKDF2 implementation
- Configurable parameters:
- Iterations (default: 1000)
- Salt size (default: 8 bytes)
- Key length
- Secure salt generation
- One-way key derivation
- Detailed parameter information
- Security recommendations
- Base64 encoded output
🔧 Technical Improvements
Code Refactoring & Architecture
- Implemented SOLID principles throughout the codebase
- Interface Segregation: Created focused interfaces for each component
- Improved code organization and modularity
- Enhanced maintainability and testability
- Reduced code duplication
- Better separation of concerns
- Cleaner and more consistent code structure
Testing Infrastructure
- Added a comprehensive test for all crypto processors
- Unit tests for all new features
- Test coverage for error cases
Security Enhancements
- Secure key generation for HMAC
- Proper salt generation for PBKDF
- Enhanced password strength analysis
- Security recommendations in output
- Detailed security notes in visualization
🐛 Bug Fixes
- Enhanced error messages
- Fixed visualization formatting issues
📚 Documentation
- Updated README with HMAC and PBKDF features
- Added algorithm comparison guides
- Updated configuration documentation
- Added test coverage documentation
- Improved usage examples
🔄 Dependencies
- Added HMAC dependencies
- Added PBKDF2 dependencies
- Updated test dependencies
- Added benchmark dependencies
🚀 Installation
# Using Go Install
go install github.com/abdorrahmani/cryptolens@v1.2.0
# From Source
git clone https://github.com/abdorrahmani/cryptolens.git
cd cryptolens
git checkout v1.2.0
go build -o cryptolens cmd/cryptolens/main.go
# Using Pre-built Binaries
# Download the appropriate binary for your system from the GitHub releases page:
# - Windows (x86_64): cryptolens_Windows_x86_64.zip
# - Linux (x86_64): cryptolens_Linux_x86_64.tar.gz
# - macOS (x86_64): cryptolens_Darwin_x86_64.tar.gz
# - macOS (ARM64): cryptolens_Darwin_arm64.tar.gz
# - Linux (ARM64): cryptolens_Linux_arm64.tar.gz
📋 Requirements
- Go 1.21 or higher
- Git (for installation from source)
🔒 Security Notes
- HMAC keys are generated with 256-bit minimum key size
- PBKDF2 uses 1000 iterations by default
- All keys are stored with restricted permissions
- Automatic key generation uses secure random number generation
🎯 Usage Example
# Run CryptoLens
cryptolens
# Choose HMAC (option 6)
# Select hash algorithm
# Enter text to process
# View the HMAC process and result
# Choose PBKDF (option 7)
# Enter password
# View the key derivation process
📝 Breaking Changes
- None. This is a feature release that maintains backward compatibility.
🔍 Known Issues
- None reported at this time.
🙏 Acknowledgments
- Thanks to all contributors and users for their feedback
- Special thanks to the Go cryptography team for their excellent libraries
📫 Support
For support, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers
🔄 Upgrade Notes
- No special upgrade steps required
- Existing configurations will be automatically updated
- New configuration options will use secure defaults
📅 Release Date
June 3, 2025
cryptolens v1.1.0
CryptoLens v1.1.0 🎉
🎉 New Features
RSA Encryption Support
- Added RSA-2048 asymmetric encryption/decryption
- Automatic public/private key pair generation
- Secure key storage in project directory
- Base64 encoded output for encrypted data
- Step-by-step visualization of RSA operations
Enhanced Key Management
- New dedicated
keys
directory in project root - Automatic directory creation with proper permissions
- Secure storage for all encryption keys
- Cross-platform compatibility (Windows, Linux, macOS)
- Improved key file handling and error management
🔧 Technical Improvements
Configuration System
- Added RSA key size configuration
- Enhanced key file path management
- Improved error handling and validation
- Better cross-platform path handling
Security Enhancements
- Proper file permissions for key storage
- Secure key generation with crypto/rand
- PEM format for RSA key storage
- Restricted access to private keys (0600)
- Read-only access for public keys (0644)
🐛 Bug Fixes
- Fixed key storage path issues
- Resolved cross-platform compatibility problems
- Improved file permission handling
- Enhanced error messages for key operations
📚 Documentation
- Updated README with RSA feature details
- Added key storage documentation
- Enhanced security policy
- Updated changelog
- Added new examples and usage instructions
🔄 Dependencies
- No new external dependencies added
- Updated internal dependencies for better security
🚀 Installation
# Using Go Install
go install github.com/abdorrahmani/cryptolens@v1.1.0
# From Source
git clone https://github.com/abdorrahmani/cryptolens.git
cd cryptolens
git checkout v1.1.0
go build -o cryptolens cmd/cryptolens/main.go
# Using Pre-built Binaries
# Download the appropriate binary for your system from the GitHub releases page:
# - Windows (x86_64): cryptolens_Windows_x86_64.zip
# - Linux (x86_64): cryptolens_Linux_x86_64.tar.gz
# - macOS (x86_64): cryptolens_Darwin_x86_64.tar.gz
# - macOS (ARM64): cryptolens_Darwin_arm64.tar.gz
# - Linux (ARM64): cryptolens_Linux_arm64.tar.gz
📋 Requirements
- Go 1.21 or higher
- Git (for installation from source)
🔒 Security Notes
- RSA keys are generated with 2048-bit minimum key size
- Private keys are stored with restricted permissions
- Public keys are stored with read-only permissions
- All keys are stored in the project's
keys
directory - Automatic key generation uses secure random number generation
🎯 Usage Example
# Run CryptoLens
cryptolens
# Choose RSA encryption (option 5)
# Enter text to encrypt
# View the encryption process and result
📝 Breaking Changes
- None. This is a feature release that maintains backward compatibility.
🔍 Known Issues
- None reported at this time.
🙏 Acknowledgments
- Thanks to all contributors and users for their feedback
- Special thanks to the Go cryptography team for their excellent libraries
📫 Support
For support, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers
🔄 Upgrade Notes
- No special upgrade steps required
- Existing configurations will be automatically updated
- Keys will be stored in the new
keys
directory
📅 Release Date
May 31, 2025
cryptolens v1.0.0
CryptoLens v1.0.0 🎉
🚀 Features
Encryption Methods
-
Base64 Encoding/Decoding
- Binary-to-text encoding
- Step-by-step visualization
- ASCII and binary representations
- Bidirectional support
-
Caesar Cipher
- Classical substitution cipher
- Character-by-character transformation
- Alphabet shift visualization
- Customizable shift value
- Bidirectional support
-
AES Encryption
- Modern symmetric encryption (AES-256)
- CBC mode with PKCS7 padding
- Secure key and IV handling
- Automatic key generation
- Bidirectional support
-
SHA-256 Hashing
- Cryptographic hash function
- One-way transformation
- 256-bit hash output
- Input validation
Core Features
- Interactive CLI interface
- Real-time step-by-step process visualization
- Detailed algorithm explanations
- Binary, hexadecimal, and ASCII representations
- Educational notes and security considerations
- Input validation and error handling
- Factory pattern for encryption method selection
- Modular and extensible architecture
🔧 Technical Details
Requirements
- Go 1.21 or higher
- Git (for installation from source)
Installation
# Using Go Install
go install github.com/abdorrahmani/cryptolens@latest
# From Source
git clone https://github.com/abdorrahmani/cryptolens.git
cd cryptolens
go build -o cryptolens cmd/cryptolens/main.go
Configuration
The application uses a YAML configuration file for customization:
- AES key size and storage
- Base64 padding character
- Caesar cipher default shift
- General settings (log level, debug mode)
🎯 Usage Examples
Base64
Original: Hello
Encoded: SGVsbG8=
Decoded: Hello
Caesar Cipher (Shift: 3)
Original: Hello
Encrypted: Khoor
Decrypted: Hello
AES
Original: Hello
Encrypted: [base64 encoded output]
Decrypted: Hello
SHA-256
Input: Hello
Hash: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
🛠️ Development
Project Structure
cryptolens/
├── cmd/
│ └── cryptolens/
│ └── main.go
├── internal/
│ ├── crypto/
│ ├── cli/
│ └── utils/
├── assets/
└── config/