/linux-6.8/Documentation/crypto/ |
D | architecture.rst | 4 Cipher algorithm types 8 cipher types: 33 A single block cipher may even be called with multiple templates. 34 However, templates cannot be used without a single cipher. 63 When using the synchronous API operation, the caller invokes a cipher 65 That means, the caller waits until the cipher operation completes. 71 implies that the invocation of a cipher operation will complete almost 72 instantly. That invocation triggers the cipher operation but it does not 73 signal its completion. Before invoking a cipher operation, the caller 75 signal the completion of the cipher operation. Furthermore, the caller [all …]
|
D | userspace-if.rst | 13 consumer and never as a provider of a transformation or cipher 56 A cipher is accessed with the same name as done for the in-kernel API 61 user space application. User space invokes the cipher operation with the 62 send()/write() system call family. The result of the cipher operation is 73 parameter specified below for the different cipher types. 79 particular cipher instance. When invoking send/write or recv/read 83 In-place Cipher operation 87 space interface allows the cipher operation in-place. That means that 90 is of particular interest for symmetric cipher operations where a 101 The message digest type to be used for the cipher operation is selected [all …]
|
D | api-skcipher.rst | 1 Block Cipher Algorithm Definitions 5 :doc: Block Cipher Algorithm Definitions 10 Symmetric Key Cipher API 14 :doc: Symmetric Key Cipher API 19 Symmetric Key Cipher Request Handle 23 :doc: Symmetric Key Cipher Request Handle 28 Single Block Cipher API 31 .. kernel-doc:: include/crypto/internal/cipher.h 32 :doc: Single Block Cipher API 34 .. kernel-doc:: include/crypto/internal/cipher.h
|
D | intro.rst | 19 Therefore, a cipher handle variable usually has the name "tfm". Besides 37 Note: The terms "transformation" and cipher algorithm are used 56 to as a "cipher handle". Such a cipher handle is always subject to the 58 a cipher handle: 60 1. Initialization of a cipher handle. 62 2. Execution of all intended cipher operations applicable for the handle 63 where the cipher handle must be furnished to every API call. 65 3. Destruction of a cipher handle. 67 When using the initialization API calls, a cipher handle is created and
|
D | devel-algos.rst | 1 Developing Cipher Algorithms 47 Single-Block Symmetric Ciphers [CIPHER] 53 implementations, that being the CIPHER type used for symmetric ciphers. 54 The CIPHER type is used for transformations which operate on exactly one 60 The registration of [CIPHER] algorithm is specific in that struct 61 crypto_alg field .cra_type is empty. The .cra_u.cipher has to be 66 Cipher Definition With struct cipher_alg 69 Struct cipher_alg defines a single block cipher. 103 This section describes the multi-block cipher transformation 111 The registration of multi-block cipher algorithms is one of the most [all …]
|
/linux-6.8/include/crypto/internal/ |
D | cipher.h | 21 * DOC: Single Block Cipher API 23 * The single block cipher API is used with the ciphers of type 24 * CRYPTO_ALG_TYPE_CIPHER (listed as type "cipher" in /proc/crypto). 26 * Using the single block cipher API calls, operations with the basic cipher 27 * primitive can be implemented. These cipher primitives exclude any block 30 * The purpose of this single block cipher API is to support the implementation 31 * of templates or other concepts that only need to perform the cipher operation 32 * on one block at a time. Templates invoke the underlying cipher primitive 33 * block-wise and process either the input or the output data of these cipher 43 * crypto_alloc_cipher() - allocate single block cipher handle [all …]
|
/linux-6.8/arch/arm64/crypto/ |
D | Kconfig | 135 Block ciphers: AES cipher algorithms (FIPS-197) 138 AEAD cipher: AES with CBC, ESSIV, and SHA-256 149 Block ciphers: AES cipher algorithms (FIPS-197) 160 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 161 with block cipher modes: 163 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 177 Length-preserving ciphers: AES cipher algorithms (FIPS-197) 178 with block cipher modes: 180 - CBC (Cipher Block Chaining) mode (NIST SP800-38A) 196 stream cipher algorithms [all …]
|
/linux-6.8/include/crypto/ |
D | skcipher.h | 32 * struct skcipher_request - Symmetric key cipher request 68 * struct crypto_istat_cipher - statistics for cipher algorithm 73 * @err_cnt: number of error for cipher requests 106 * @stat: Statistics for cipher algorithm 123 * struct skcipher_alg - symmetric key cipher definition 195 * struct lskcipher_alg - linear symmetric key cipher definition 254 * DOC: Symmetric Key Cipher API 256 * Symmetric key cipher API is used with the ciphers of type 259 * Asynchronous cipher operations imply that the function invocation for a 260 * cipher request returns immediately before the completion of the operation. [all …]
|
D | aead.h | 18 * DOC: Authenticated Encryption With Associated Data (AEAD) Cipher API 20 * The AEAD cipher API is used with the ciphers of type CRYPTO_ALG_TYPE_AEAD 25 * with the following cipher string: 27 * authenc(keyed message digest, block cipher) 31 * The example code provided for the symmetric key cipher operation applies 36 * decryption operation. Another deviation from the asynchronous block cipher 40 * code is the key bonus an AEAD cipher has over "standard" block chaining 121 * struct aead_alg - AEAD cipher definition 152 * @base: Definition of a generic crypto cipher algorithm. 189 * crypto_alloc_aead() - allocate AEAD cipher handle [all …]
|
D | hash.h | 57 * @base: Start of data structure of cipher algorithm. The common data 266 * The asynchronous cipher operation discussion provided for the 276 * crypto_alloc_ahash() - allocate ahash cipher handle 278 * ahash cipher 279 * @type: specifies the type of the cipher 280 * @mask: specifies the mask for the cipher 282 * Allocate a cipher handle for an ahash. The returned struct 283 * crypto_ahash is the cipher handle that is required for any subsequent 286 * Return: allocated cipher handle in case of success; IS_ERR() is true in case 301 * @tfm: cipher handle to be freed [all …]
|
D | rng.h | 94 * message digest cipher 95 * @type: specifies the type of the cipher 96 * @mask: specifies the mask for the cipher 98 * Allocate a cipher handle for a random number generator. The returned struct 99 * crypto_rng is the cipher handle that is required for any subsequent 108 * Return: allocated cipher handle in case of success; IS_ERR() is true in case 125 * @tfm: cipher handle 138 * @tfm: cipher handle to be freed 169 * @tfm: cipher handle 177 * cipher handle. [all …]
|
/linux-6.8/arch/x86/crypto/ |
D | Kconfig | 25 Block cipher: AES cipher algorithms 26 AEAD cipher: AES with GCM 39 Block cipher: Blowfish cipher algorithm 50 Block cipher: Camellia cipher algorithms 89 Length-preserving ciphers: CAST5 (CAST-128) cipher algorithm 107 Length-preserving ciphers: CAST6 (CAST-256) cipher algorithm 122 Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm 137 Length-preserving ciphers: Serpent cipher algorithm 153 Length-preserving ciphers: Serpent cipher algorithm 170 Length-preserving ciphers: Serpent cipher algorithm [all …]
|
/linux-6.8/crypto/ |
D | ecb.c | 8 #include <crypto/internal/cipher.h> 16 static int crypto_ecb_crypt(struct crypto_cipher *cipher, const u8 *src, in crypto_ecb_crypt() argument 20 const unsigned int bsize = crypto_cipher_blocksize(cipher); in crypto_ecb_crypt() 23 fn(crypto_cipher_tfm(cipher), dst, src); in crypto_ecb_crypt() 38 struct crypto_cipher *cipher = *ctx; in crypto_ecb_encrypt2() local 40 return crypto_ecb_crypt(cipher, src, dst, len, in crypto_ecb_encrypt2() 42 crypto_cipher_alg(cipher)->cia_encrypt); in crypto_ecb_encrypt2() 49 struct crypto_cipher *cipher = *ctx; in crypto_ecb_decrypt2() local 51 return crypto_ecb_crypt(cipher, src, dst, len, in crypto_ecb_decrypt2() 53 crypto_cipher_alg(cipher)->cia_decrypt); in crypto_ecb_decrypt2() [all …]
|
D | Kconfig | 350 AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3) 368 AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3) 389 Anubis cipher algorithm 391 Anubis is a variable key length cipher which can use keys from 402 ARIA cipher algorithm (RFC5794) 418 Blowfish cipher algorithm, by Bruce Schneier 420 This is a variable key length cipher which can use keys from 32 429 Common parts of the Blowfish cipher algorithm shared by the 436 Camellia cipher algorithms (ISO/IEC 18033-3) 438 Camellia is a symmetric key block cipher developed jointly [all …]
|
D | ctr.c | 10 #include <crypto/internal/cipher.h> 102 struct crypto_cipher *cipher = skcipher_cipher_simple(tfm); in crypto_ctr_crypt() local 103 const unsigned int bsize = crypto_cipher_blocksize(cipher); in crypto_ctr_crypt() 112 nbytes = crypto_ctr_crypt_inplace(&walk, cipher); in crypto_ctr_crypt() 114 nbytes = crypto_ctr_crypt_segment(&walk, cipher); in crypto_ctr_crypt() 120 crypto_ctr_crypt_final(&walk, cipher); in crypto_ctr_crypt() 148 /* CTR mode is a stream cipher. */ in crypto_ctr_create() 223 struct crypto_skcipher *cipher; in crypto_rfc3686_init_tfm() local 227 cipher = crypto_spawn_skcipher(spawn); in crypto_rfc3686_init_tfm() 228 if (IS_ERR(cipher)) in crypto_rfc3686_init_tfm() [all …]
|
D | lskcipher.c | 3 * Linear symmetric key cipher operations. 55 struct lskcipher_alg *cipher = crypto_lskcipher_alg(tfm); in lskcipher_setkey_unaligned() local 67 ret = cipher->setkey(tfm, alignbuffer, keylen); in lskcipher_setkey_unaligned() 76 struct lskcipher_alg *cipher = crypto_lskcipher_alg(tfm); in crypto_lskcipher_setkey() local 78 if (keylen < cipher->co.min_keysize || keylen > cipher->co.max_keysize) in crypto_lskcipher_setkey() 84 return cipher->setkey(tfm, key, keylen); in crypto_lskcipher_setkey() 334 strscpy(rcipher.type, "cipher", sizeof(rcipher.type)); in crypto_lskcipher_report_stat() 493 struct crypto_lskcipher *cipher = lskcipher_cipher_simple(tfm); in lskcipher_setkey_simple() local 495 crypto_lskcipher_clear_flags(cipher, CRYPTO_TFM_REQ_MASK); in lskcipher_setkey_simple() 496 crypto_lskcipher_set_flags(cipher, crypto_lskcipher_get_flags(tfm) & in lskcipher_setkey_simple() [all …]
|
D | pcbc.c | 3 * PCBC: Propagating Cipher Block Chaining mode 13 #include <crypto/internal/cipher.h> 67 struct crypto_cipher *cipher = skcipher_cipher_simple(tfm); in crypto_pcbc_encrypt() local 77 cipher); in crypto_pcbc_encrypt() 80 cipher); in crypto_pcbc_encrypt() 134 struct crypto_cipher *cipher = skcipher_cipher_simple(tfm); in crypto_pcbc_decrypt() local 144 cipher); in crypto_pcbc_decrypt() 147 cipher); in crypto_pcbc_decrypt() 193 MODULE_DESCRIPTION("PCBC block cipher mode of operation");
|
/linux-6.8/drivers/crypto/amcc/ |
D | crypto4xx_alg.c | 73 struct crypto_skcipher *cipher = crypto_skcipher_reqtfm(req); in crypto4xx_crypt() local 74 struct crypto4xx_ctx *ctx = crypto_skcipher_ctx(cipher); in crypto4xx_crypt() 121 static int crypto4xx_setkey_aes(struct crypto_skcipher *cipher, in crypto4xx_setkey_aes() argument 127 struct crypto4xx_ctx *ctx = crypto_skcipher_ctx(cipher); in crypto4xx_setkey_aes() 177 int crypto4xx_setkey_aes_cbc(struct crypto_skcipher *cipher, in crypto4xx_setkey_aes_cbc() argument 180 return crypto4xx_setkey_aes(cipher, key, keylen, CRYPTO_MODE_CBC, in crypto4xx_setkey_aes_cbc() 184 int crypto4xx_setkey_aes_ecb(struct crypto_skcipher *cipher, in crypto4xx_setkey_aes_ecb() argument 187 return crypto4xx_setkey_aes(cipher, key, keylen, CRYPTO_MODE_ECB, in crypto4xx_setkey_aes_ecb() 191 int crypto4xx_setkey_rfc3686(struct crypto_skcipher *cipher, in crypto4xx_setkey_rfc3686() argument 194 struct crypto4xx_ctx *ctx = crypto_skcipher_ctx(cipher); in crypto4xx_setkey_rfc3686() [all …]
|
/linux-6.8/drivers/crypto/cavium/nitrox/ |
D | nitrox_skcipher.c | 24 * supported cipher list 41 const struct nitrox_cipher *cipher = flexi_cipher_table; in flexi_cipher_type() local 43 while (cipher->name) { in flexi_cipher_type() 44 if (!strcmp(cipher->name, name)) in flexi_cipher_type() 46 cipher++; in flexi_cipher_type() 48 return cipher->value; in flexi_cipher_type() 83 struct crypto_skcipher *cipher = crypto_skcipher_reqtfm(skreq); in nitrox_cbc_cipher_callback() local 84 int ivsize = crypto_skcipher_ivsize(cipher); in nitrox_cbc_cipher_callback() 165 static inline int nitrox_skcipher_setkey(struct crypto_skcipher *cipher, in nitrox_skcipher_setkey() argument 169 struct crypto_tfm *tfm = crypto_skcipher_tfm(cipher); in nitrox_skcipher_setkey() [all …]
|
/linux-6.8/drivers/crypto/bcm/ |
D | spu2.c | 88 * Convert from a software cipher mode value to the corresponding value 126 * spu2_cipher_xlate() - Convert a cipher {alg/mode/type} triple to a SPU2 127 * cipher type and mode. 128 * @cipher_alg: [in] cipher algorithm value from software enumeration 129 * @cipher_mode: [in] cipher mode value from software enumeration 130 * @cipher_type: [in] cipher type value from software enumeration 131 * @spu2_type: [out] cipher type value used by spu2 hardware 132 * @spu2_mode: [out] cipher mode value used by spu2 hardware 146 flow_log("Invalid cipher mode %d\n", cipher_mode); in spu2_cipher_xlate() 187 flow_log("Invalid cipher alg %d or type %d\n", in spu2_cipher_xlate() [all …]
|
/linux-6.8/net/sunrpc/auth_gss/ |
D | gss_krb5_crypto.c | 66 * pad minimum plaintext length to at least a single cipher block. 88 * @tfm: initialized cipher transform 96 * cipher's ivsize. 143 * @tfm: initialized cipher transform 151 * cipher's ivsize. 592 gss_krb5_cts_crypt(struct crypto_sync_skcipher *cipher, struct xdr_buf *buf, in gss_krb5_cts_crypt() argument 597 SYNC_SKCIPHER_REQUEST_ON_STACK(req, cipher); in gss_krb5_cts_crypt() 626 skcipher_request_set_sync_tfm(req, cipher); in gss_krb5_cts_crypt() 649 memcpy(iv, data, crypto_sync_skcipher_ivsize(cipher)); in gss_krb5_cts_crypt() 659 * @cts_tfm: CBC cipher with CTS [all …]
|
/linux-6.8/arch/s390/crypto/ |
D | Kconfig | 89 Block cipher: AES cipher algorithms (FIPS 197) 90 AEAD cipher: AES with GCM 112 Block ciphers: DES (FIPS 46-2) cipher algorithm 113 Block ciphers: Triple DES EDE (FIPS 46-3) cipher algorithm 129 Length-preserving cipher: ChaCha20 stream cipher (RFC 7539)
|
/linux-6.8/arch/sparc/crypto/ |
D | Kconfig | 12 Block cipher: DES (FIPS 46-2) cipher algorithm 13 Block cipher: Triple DES EDE (FIPS 46-3) cipher algorithm 74 Block ciphers: AES cipher algorithms (FIPS-197) 85 Block ciphers: Camellia cipher algorithms
|
/linux-6.8/drivers/crypto/cavium/cpt/ |
D | cptvf_algs.c | 232 static int cvm_xts_setkey(struct crypto_skcipher *cipher, const u8 *key, in cvm_xts_setkey() argument 235 struct cvm_enc_ctx *ctx = crypto_skcipher_ctx(cipher); in cvm_xts_setkey() 240 err = xts_verify_key(cipher, key, keylen); in cvm_xts_setkey() 288 static int cvm_setkey(struct crypto_skcipher *cipher, const u8 *key, in cvm_setkey() argument 291 struct cvm_enc_ctx *ctx = crypto_skcipher_ctx(cipher); in cvm_setkey() 302 static int cvm_cbc_aes_setkey(struct crypto_skcipher *cipher, const u8 *key, in cvm_cbc_aes_setkey() argument 305 return cvm_setkey(cipher, key, keylen, AES_CBC); in cvm_cbc_aes_setkey() 308 static int cvm_ecb_aes_setkey(struct crypto_skcipher *cipher, const u8 *key, in cvm_ecb_aes_setkey() argument 311 return cvm_setkey(cipher, key, keylen, AES_ECB); in cvm_ecb_aes_setkey() 314 static int cvm_cbc_des3_setkey(struct crypto_skcipher *cipher, const u8 *key, in cvm_cbc_des3_setkey() argument [all …]
|
/linux-6.8/Documentation/admin-guide/device-mapper/ |
D | dm-crypt.rst | 13 <cipher> <key> <iv_offset> <device path> \ 16 <cipher> 17 Encryption cipher, encryption mode and Initial Vector (IV) generator. 19 The cipher specifications format is:: 21 cipher[:keycount]-chainmode-ivmode[:ivopts] 29 Cipher format also supports direct specification with kernel crypt API 34 The crypto API cipher specifications format is:: 55 You can only use key sizes that are valid for the selected cipher 179 # Create a crypt device using cryptsetup and LUKS header with default cipher
|