cipher_class Enum
namespace keychain
→ enum class cipher_class
Overview
The cipher_class
enumeration categorizes symmetric cipher algorithms by their underlying cryptographic families and operational characteristics.
Syntax
namespace keychain {
enum class cipher_class {
AES, // Advanced Encryption Standard family
CAMELLIA // Camellia cipher family
};
}
Members
AES
Value: cipher_class::AES
Advanced Encryption Standard cipher family. Includes all AES variants with different key sizes (128, 192, 256 bits).
Characteristics: * NIST-approved symmetric cipher * Block size: 128 bits * Key sizes: 128, 192, or 256 bits * High performance and security * Widely supported hardware acceleration
CAMELLIA
Value: cipher_class::CAMELLIA
Camellia cipher family. Includes all Camellia variants with different key sizes.
Characteristics: * International standard cipher (ISO/IEC 18033-3) * Block size: 128 bits * Key sizes: 128, 192, or 256 bits * Comparable security to AES * Efficient in both software and hardware
Usage
#include <keychain/keychain.h>
// Check cipher class compatibility
keychain::cipher_class aes_class = keychain::cipher_class::AES;
keychain::cipher_class camellia_class = keychain::cipher_class::CAMELLIA;
// Use with specific cipher selection
keychain::cipher selected_cipher = keychain::cipher::AES_256_GCM;
if (selected_cipher.get_class() == keychain::cipher_class::AES) {
// Handle AES-specific logic
}
Cipher Family Comparison
Cipher Class | Key Sizes | Block Size | Standards | Performance |
---|---|---|---|---|
AES |
128, 192, 256 bits |
128 bits |
NIST FIPS 197 |
Excellent (hardware acceleration) |
CAMELLIA |
128, 192, 256 bits |
128 bits |
ISO/IEC 18033-3 |
Good (software optimized) |
Related Types
-
cipher - Specific cipher algorithms with parameters
-
encryption_scheme - Complete encryption schemes
See Also
-
gateway - Symmetric encryption operations
-
encrypted_data - Encrypted data containers
-
{nist-aes-spec}[NIST AES Specification]
-
{iso-18033-3}[ISO/IEC 18033-3 Camellia Standard]