OpenSSL cryptographic algorithm support¶
OpenSSL is a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols.^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md] It is also a general-purpose cryptography library, implemented in the C programming language.^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md]
The library provides support for a wide array of cryptographic algorithms, including various ciphers, hash functions, and public key cryptosystems.^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md]
Supported Algorithms¶
The following categories of algorithms are supported by the toolkit^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md]:
Encryption Ciphers¶
OpenSSL supports Symmetric encryption algorithms including AES, Blowfish, Camellia, ChaCha20, Poly1305, SEED, CAST-128, DES, IDEA, RC2, RC4, RC5, TDES, GOST 28147-89, and SM4^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md].
Hash Functions¶
Supported Cryptographic hash functions and message digests include MD5, MD4, MD2, SHA-1, SHA-2, SHA-3, RIPEMD-160, MDC-2, GOST R 34.11-94, BLAKE2, Whirlpool, and SM3^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md].
Public Key Cryptography¶
The toolkit implements several public-key algorithms and key exchange mechanisms, such as RSA, DSA, ECDSA, ECDHE, and the Diffie-Hellman key exchange^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md]. It also supports Elliptic Curve Cryptography (ECC), specifically X25519, Ed25519, X448, Ed448, GOST R 34.10-2001, and SM2^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md].
Related Concepts¶
- SSL/TLS
- [[Public-key cryptography]]
- [[Symmetric encryption]]
Sources¶
^[400-devops-02-os-and-linux-basics-ssl-openssl-openssl.md]