scclib
Stable Cloud Computing C++ Library
Files | Classes
Symmetric block ciphers

Symmetric block ciphers suitable for use in TLS encryption. More...

Collaboration diagram for Symmetric block ciphers:

Files

file  cipher.h
 Symmetric block ciphers.
 
file  cipher.cc
 Test file for Symmetric block ciphers.
 

Classes

class  scc::crypto::CipherBase
 
class  scc::crypto::Cipher
 Symmetric block cipher. More...
 

Detailed Description

Symmetric block ciphers suitable for use in TLS encryption.

AES (Advanced Encryption Standard): AES Spec: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf Block Ciphers: ISO/IEC 18033-3: https://www.sis.se/api/document/preview/912979/

Algorithms for Authenticated Encryption with Associated Data (AEAD): https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf

AES-GCM (AES - Galois/Counter Mode): IPP should make use of the carryless multiplication instruction PCLMULQDQ if available.

AES-CCM (AES - Counter with Cipher Block Chaining-Message Authentication Code)

These are considered cryptographically safe for TLS 1.3: https://tools.ietf.org/html/rfc8446

Used in TLS algorithms:

https://tools.ietf.org/html/rfc5116 defines the cipher part of the following TLS 1.3 cipher suites: TLS_AES_128_GCM_SHA256 (MUST be implemented) key length is 16 octets (128 bits) initialization vector (nonce) length is 12 octets (96 bits) ciphertext is 16 octets longer than plaintext, with 16 octet (128 bit) authentication key appended TLS_AES_256_GCM_SHA384 (SHOULD be implemented) same as above, with key length 32 octets (256 bits) TLS_AES_128_CCM_SHA256 same as above, with key length 16 octets (128 bits)