FreeBSD Manual Pages
CRYPTO(7) Miscellaneous Information Manual CRYPTO(7) NAME crypto -- OpenCrypto algorithms DESCRIPTION The in-kernel OpenCrypto framework supports several different encryp- tion and authentication algorithms. This document describes the para- meters and requirements of these algorithms. Unless otherwise noted, all sizes listed below are in bytes. Authenticators Authenticators compute a value (also known as a digest, hash, or tag) over an input of bytes. In-kernel requests can either compute the value for a given input, or verify if a given tag matches the computed tag for a given input. The following authentication algorithms are supported: Name Nonce Key Sizes Digest Description CRYPTO_AES_CCM_CBC_MAC 12 16, 24, 32 16 Authentication-only mode of AES- CCM CRYPTO_AES_NIST_GMAC 12 16, 24, 32 16 Galois message authentication code CRYPTO_BLAKE2B 0, 64 64 Blake2b CRYPTO_BLAKE2S 0, 32 32 Blake2s CRYPTO_NULL_HMAC 12 IPsec NULL HMAC CRYPTO_POLY1305 32 16 Poly1305 au- thenticator CRYPTO_RIPEMD160 20 RIPE Message Digest-160 CRYPTO_RIPEMD160_HMAC 64 20 RIPE Message Digest-160 HMAC CRYPTO_SHA1 20 SHA-1 CRYPTO_SHA1_HMAC 64 20 SHA-1 HMAC CRYPTO_SHA2_224 28 SHA-2 224 CRYPTO_SHA2_224_HMAC 64 28 SHA-2 224 HMAC CRYPTO_SHA2_256 32 SHA-2 256 CRYPTO_SHA2_256_HMAC 64 32 SHA-2 256 HMAC CRYPTO_SHA2_384 48 SHA-2 384 CRYPTO_SHA2_384_HMAC 128 48 SHA-2 384 HMAC CRYPTO_SHA2_512 64 SHA-2 512 CRYPTO_SHA2_512_HMAC 128 64 SHA-2 512 HMAC Block Ciphers Block ciphers in OCF can only operate on messages whose length is an exact multiple of the cipher's block size. OCF supports the following block ciphers: Name IV Size Block Size Key Sizes Description CRYPTO_AES_CBC 16 16 16, 24, 32 AES-CBC CRYPTO_AES_XTS 8 16 32, 64 AES-XTS CRYPTO_CAMELLIA_CBC 16 16 16, 24, 32 Camellia CBC CRYPTO_NULL_CBC 0 4 0-256 IPsec NULL ci- pher CRYPTO_AES_XTS implements XEX Tweakable Block Cipher with Ciphertext Stealing as defined in NIST SP 800-38E. OCF consumers provide the first 8 bytes of the IV. The remaining 8 bytes are defined to be a block counter beginning at 0. NOTE: The ciphertext stealing part is not implemented in all backends which is why this cipher requires input that is a multiple of the block size. Stream Ciphers Stream ciphers can operate on messages with arbitrary lengths. OCF supports the following stream ciphers: Name IV Size Key Sizes Description CRYPTO_AES_ICM 16 16, 24, 32 AES Counter Mode CRYPTO_CHACHA20 16 16, 32 ChaCha20 The IV for each request must be provided in crp_iv via the CRYPTO_F_IV_SEPARATE flag. CRYPTO_AES_ICM uses the entire IV as a 128-bit big endian block counter. The IV sets the initial counter value for a message. If a consumer wishes to use an IV whose value is split into separate nonce and counter fields (e.g., IPsec), the consumer is responsible for splitting requests to handle counter rollover. CRYPTO_CHACHA20 accepts a 16 byte IV. The first 8 bytes are used as a nonce. The last 8 bytes are used as a 64-bit little-endian block counter. Authenticated Encryption with Associated Data Algorithms AEAD algorithms in OCF combine a stream cipher with an authentication algorithm to provide both secrecy and authentication. AEAD algorithms accept additional authentication data (AAD) in addition to the cipher- text or plaintext. AAD is passed to the authentication algorithm as input in a method defined by the specific AEAD algorithm. AEAD algorithms in OCF accept a nonce that is combined with an algo- rithm-defined counter to construct the IV for the underlying stream ci- pher. This nonce must be provided in crp_iv via the CRYPTO_F_IV_SEPARATE flag. Some AEAD algorithms support multiple nonce sizes. The first size listed is the default nonce size. The following AEAD algorithms are supported: Name Nonce Key Sizes Tag Description CRYPTO_AES_NIST_GCM_16 12 16, 24, 32 16 AES Ga- lois/Counter Mode CRYPTO_AES_CCM_16 12, 7-13 16, 24, 32 16 AES Counter with CBC-MAC CRYPTO_CHACHA20_POLY1305 12, 8 32 16 ChaCha20-Poly1305 CRYPTO_XCHACHA20_POLY1305 24 32 16 XChaCha20-Poly1305 SEE ALSO crypto(4), crypto(9) HISTORY The crypto manual page first appeared in FreeBSD 10.1. FreeBSD 13.2 January 11, 2022 CRYPTO(7)
NAME | DESCRIPTION | SEE ALSO | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=crypto&sektion=7&manpath=FreeBSD+14.2-RELEASE+and+Ports>