| Crates.io | pqready |
| lib.rs | pqready |
| version | 0.1.2 |
| created_at | 2025-06-21 05:12:31.625982+00 |
| updated_at | 2026-01-16 22:26:27.548505+00 |
| description | A cross-platform CLI tool to test for quantum-secure TLS/HTTPS encryption support |
| homepage | https://github.com/degan/pqready |
| repository | https://github.com/degan/pqready |
| max_upload_size | |
| id | 1720539 |
| size | 163,236 |
A cross-platform CLI tool to test TLS/HTTPS servers for quantum-secure encryption support, specifically the X25519MLKEM768 key exchange algorithm introduced in Apple's latest operating systems.
Based on Apple's quantum-secure encryption specifications from iOS 26, iPadOS 26, macOS Tahoe 26 and visionOS 26, this tool tests whether HTTPS servers support hybrid, quantum-secure key exchange algorithms that are designed to protect against future quantum computer attacks.
Download the latest release for your platform from GitHub Releases:
pqready from the releases page# Remove macOS quarantine (required for unsigned binaries)
chmod +x pqready
xattr -d com.apple.quarantine pqready
./pqready example.com
# optional
sudo mv pqready /usr/local/bin/pqready
pqready from the releases page# install
chmod +x pqready
./pqready example.com
# optional
sudo mv pqready /usr/local/bin/
Download pqready.exe from the releases page and (OPTIONAL) add it to your PATH.
cargo install pqready
git clone https://github.com/degan/pqready.git
cd pqready
# Using Make (recommended)
make release
# Or using Cargo directly
cargo build --release
The binary will be available at target/release/pqready (or target/release/pqready.exe on Windows).
# Test a single URL
pqready https://example.com
# Test with verbose output
pqready -v https://example.com
# Test with JSON output
pqready -j https://example.com
# Test with custom timeout
pqready -t 30 https://example.com
pqready [OPTIONS] <URL>
Arguments:
<URL> The HTTPS URL to test
Options:
-v, --verbose Enable verbose output
-j, --json Output results in JSON format
-t, --timeout <SECONDS> Connection timeout in seconds [default: 10]
-r, --regular Use regular high-level TLS analysis (limited quantum detection)
-c, --conservative Use conservative ClientHello (for servers that reject unknown groups)
-n, --no-color Disable color and emoji output
-h, --help Print help
-V, --version Print version
$ pqready https://google.com
🔍 Quantum Security Test Results vX.X.X
URL: https://google.com
Quantum-secure encryption: ✅ SUPPORTED
$ pqready -v https://example.com
🔍 Quantum Security Scanner
Testing: https://example.com
Timeout: 10s
🔬 Starting DEEP quantum security analysis
🔌 Connecting to example.com:443
📡 Resolved to: 96.7.128.198:443
🤝 TCP connection established
🔬 Starting low-level TLS handshake analysis
📤 Sending ClientHello with quantum-secure groups
🔍 ClientHello details:
• Total size: 157 bytes
• Hostname: example.com
• Client offering groups: X25519+ML-KEM-768 (0x11ec), X25519+Kyber768-Draft00 (0x6399), X25519 (0x001d)
✅ ClientHello sent successfully
📥 Reading server response...
📦 Received 2690 bytes from server
🤝 Handshake message: type=02, length=86
🔒 ServerHello version: 0303
🔑 Selected cipher suite: 1302
🗝️ Server selected group: 001d (key length: 32)
🛡️ No quantum-secure encryption detected
🔧 Using classical key exchange: 001d
🔬 Deep analysis complete!
🔍 Quantum Security Test Results v0.X.X
URL: https://example.com
Quantum-secure encryption: ❌ NOT SUPPORTED
TLS Version: TLS 1.3
Cipher Suite: TLS_AES_256_GCM_SHA384
Key Exchange: X25519 (Classical)
✅ Deep Analysis Mode:
• Low-level TLS handshake inspection performed
• Actual key exchange algorithms detected from handshake messages
• Results show true negotiated algorithms, not library interpretations
$ pqready -j https://example.com
{
"version": "X.X.X",
"url": "https://example.com/",
"supports_quantum": false,
"tls_version": "TLS 1.3",
"cipher_suite": "TLS_AES_256_GCM_SHA384",
"key_exchange": "X25519 (Classical)",
"error": null
}
# Download pqready.exe and run from command prompt
C:\Downloads> pqready.exe example.com
🔍 Quantum Security Test Results vX.X.X
URL: https://example.com/
Quantum-secure encryption: ❌ NOT SUPPORTED
This tool tests for the X25519MLKEM768 key exchange algorithm, which is a hybrid approach combining:
This hybrid approach provides:
X25519MLKEM768# Show all available commands
make help
# Build debug version
make build
# Build release version
make release
# Run with example
make run
# Run demo with multiple URLs
make demo
# Development workflow (format + lint + test + build)
make dev
# Clean build artifacts
make clean
# Building
cargo build # Debug build
cargo build --release # Release build
# Testing
cargo test
# Running
cargo run -- https://example.com -v
# Code quality
cargo clippy # Linting
cargo fmt # Formatting
Follow this workflow to create a new release:
# Update version in Cargo.toml
# Example: version = "0.1.1" or "0.2.0"
# Update CHANGELOG.md with new version and proper date
## [0.1.1] - 2025-01-15
### Added
- New feature descriptions
### Fixed
- Bug fix descriptions
### Changed
- Breaking change descriptions (for major versions)
make dev
git add -A
git commit -m "Bump version to 0.1.1"
git push
git tag v0.1.1
git push origin v0.1.1
When you push the tag, GitHub Actions will automatically:
# Test publish without actually doing it
make publish-check
# Actually publish to crates.io
make publish
Follow Semantic Versioning:
Your Makefile includes these publishing commands:
make publish-check - Dry run publish check (requires clean git)make publish - Full publish workflow with CI checks and user confirmationmake publish-check-dirty - Development version allowing uncommitted changesmake publish-dirty - Development publish allowing uncommitted changesThis project is licensed under the MIT License - see the LICENSE file for details.