AOCL-Cryptography is a library consisting of the core cryptographic functions optimized for AMD “Zen” micro-architecture. This library has multiple implementations of different types:
Advanced Encryption Standard (AES) block ciphers, ChaCha20 stream cipher, ChaCha20-Poly1305 Cipher algorithms
Secure Hash Algorithms (SHA-2, SHA-3 and SHAKE)
Cipher, Hash, and Poly1305 based Message Authentication Code (MAC) algorithms
Elliptic-curve Diffie–Hellman (ECDH) Key Generation algorithms, and Rivest, Shamir, and Adleman (RSA) Encryption/Decryption and Sign/Verify algorithms
The AOCL-Cryptography library has the following functions:
AES block cipher encrypt/decrypt routines for the following schemes:
Cipher Block Chaining (CBC)
Cipher Feedback (CFB)
Output Feedback (OFB)
Counter (CTR)
Galois/Counter Mode (GCM)
Ciphertext Stealing Mode (XTS)
Counter with Cipher Block Chaining Message Authentication Code (CCM)
Synthetic Initialization Vector (SIV)
Stream cipher encrypt/decrypt routines - ChaCha20, and ChaCha20-Poly1305
Multibuffer (Encrypt/Decrypt multiple parallel buffers) support for CBC and CFB.
SHA-2 digest routines for the following schemes:
SHA2_224
SHA2_256
SHA2_384
SHA2_512
SHA2_512_224
SHA2_512_256
SHA-3 digest routines for the following schemes:
SHA3_224, SHA3_256, SHA3_384, and SHA3_512
SHAKE128 and SHAKE256
MAC routines:
Hash-based Message Authentication Code (HMAC)
Cipher-based Message Authentication Code (CMAC)
Poly1305
ECDH x25519 key exchange functions:
Generate Public Key
Compute Secret Key
RSA 1024/2048
Encrypt text with Public Key (Non-Padded, OAEP and PKCS padding modes)
Decrypt text with Private Key (Non-Padded, OAEP and PKCS padding modes)
Sign with Private Key and Verify with Public Key (PKCS and PSS padding modes)
Note
AES Ciphers, RSA and EC algorithms are not supported in pre-AVX2 architectures.
IPP Compat library is in experimental state in 5.2 release.
Behavior might be undefined if AVX512 is disabled in the BIOS configuration on the Zen5 platform.
AOCL Cryptography is not FIPS compliant.
AOCL-Crypto API Guide documentation is available at AOCL-Crypto API Guide