Skip to content

Releases: abdorrahmani/CryptoLens

cryptolens v1.4.0

27 Jul 08:17
Compare
Choose a tag to compare

🚀 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.
  • 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

04 Jul 20:19
Compare
Choose a tag to compare

🚀 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.
  • 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

08 Jun 08:11
c5e8072
Compare
Choose a tag to compare

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

03 Jun 13:59
Compare
Choose a tag to compare

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

03 Jun 12:15
Compare
Choose a tag to compare

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

31 May 11:11
Compare
Choose a tag to compare

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

27 May 06:47
Compare
Choose a tag to compare

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/