scclib
Stable Cloud Computing C++ Library
|
Symmetric block ciphers suitable for use in TLS encryption. More...
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... | |
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)