cipher_class Enum

namespace keychainenum 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)

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]