3 releases
Uses new Rust 2024
| 0.1.2 | Jan 26, 2026 |
|---|---|
| 0.1.1 | Jan 23, 2026 |
| 0.1.0 | Jan 22, 2026 |
#1457 in Cryptography
Used in arcanum-holocrypt
495KB
9K
SLoC
Arcanum Cryptographic Agility
Framework for managing algorithm selection, versioning, and migration.
Algorithm Registry
Central registry of all supported algorithms with metadata:
- Security level classification
- Deprecation status and timeline
- Performance characteristics
- Compliance mappings (FIPS, SOC2, etc.)
Versioned Containers
Self-describing encrypted containers:
- Algorithm identification in header
- Forward-compatible parsing
- Automatic migration recommendations
Policy Engine
Declarative algorithm restrictions:
- Minimum security levels
- Required post-quantum support
- Compliance profiles (FIPS 140-3, etc.)
Example
use arcanum_agile::prelude::*;
// Look up algorithm metadata
let algo = AlgorithmRegistry::get(AlgorithmId::Aes256Gcm)?;
assert_eq!(algo.security_level(), SecurityLevel::Bits256);
assert!(!algo.is_deprecated());
// Create versioned container
let container = AgileCiphertext::encrypt(
AlgorithmId::Aes256Gcm,
&key,
&plaintext,
)?;
// Check migration status
if let Some(recommendation) = container.migration_recommendation() {
println!("Recommend migrating to {:?}", recommendation.target);
}
// Enforce policy
let policy = Policy::fips_140_3();
assert!(policy.allows(AlgorithmId::Aes256Gcm));
assert!(!policy.allows(AlgorithmId::ChaCha20Poly1305)); // Not FIPS
Migration Support
- Automatic re-encryption with newer algorithms
- Batch migration pipelines
- Progress tracking and rollback
Dependencies
~18MB
~336K SLoC