| .. | .. |
|---|
| 157 | 157 | |
|---|
| 158 | 158 | - rng for random number generator |
|---|
| 159 | 159 | |
|---|
| 160 | | - - givcipher for cipher with associated IV generator (see the geniv |
|---|
| 161 | | - entry below for the specification of the IV generator type used by |
|---|
| 162 | | - the cipher implementation) |
|---|
| 163 | | - |
|---|
| 164 | 160 | - kpp for a Key-agreement Protocol Primitive (KPP) cipher such as |
|---|
| 165 | 161 | an ECDH or DH implementation |
|---|
| 166 | 162 | |
|---|
| .. | .. |
|---|
| 174 | 170 | |
|---|
| 175 | 171 | - digestsize: output size of the message digest |
|---|
| 176 | 172 | |
|---|
| 177 | | -- geniv: IV generation type: |
|---|
| 178 | | - |
|---|
| 179 | | - - eseqiv for encrypted sequence number based IV generation |
|---|
| 180 | | - |
|---|
| 181 | | - - seqiv for sequence number based IV generation |
|---|
| 182 | | - |
|---|
| 183 | | - - chainiv for chain iv generation |
|---|
| 184 | | - |
|---|
| 185 | | - - <builtin> is a marker that the cipher implements IV generation and |
|---|
| 186 | | - handling as it is specific to the given cipher |
|---|
| 173 | +- geniv: IV generator (obsolete) |
|---|
| 187 | 174 | |
|---|
| 188 | 175 | Key Sizes |
|---|
| 189 | 176 | --------- |
|---|
| .. | .. |
|---|
| 214 | 201 | - CRYPTO_ALG_TYPE_AEAD Authenticated Encryption with Associated Data |
|---|
| 215 | 202 | (MAC) |
|---|
| 216 | 203 | |
|---|
| 217 | | -- CRYPTO_ALG_TYPE_BLKCIPHER Synchronous multi-block cipher |
|---|
| 218 | | - |
|---|
| 219 | | -- CRYPTO_ALG_TYPE_ABLKCIPHER Asynchronous multi-block cipher |
|---|
| 220 | | - |
|---|
| 221 | | -- CRYPTO_ALG_TYPE_GIVCIPHER Asynchronous multi-block cipher packed |
|---|
| 222 | | - together with an IV generator (see geniv field in the /proc/crypto |
|---|
| 223 | | - listing for the known IV generators) |
|---|
| 224 | | - |
|---|
| 225 | 204 | - CRYPTO_ALG_TYPE_KPP Key-agreement Protocol Primitive (KPP) such as |
|---|
| 226 | 205 | an ECDH or DH implementation |
|---|
| 227 | 206 | |
|---|
| 228 | | -- CRYPTO_ALG_TYPE_DIGEST Raw message digest |
|---|
| 229 | | - |
|---|
| 230 | | -- CRYPTO_ALG_TYPE_HASH Alias for CRYPTO_ALG_TYPE_DIGEST |
|---|
| 207 | +- CRYPTO_ALG_TYPE_HASH Raw message digest |
|---|
| 231 | 208 | |
|---|
| 232 | 209 | - CRYPTO_ALG_TYPE_SHASH Synchronous multi-block hash |
|---|
| 233 | 210 | |
|---|
| .. | .. |
|---|
| 338 | 315 | |
|---|
| 339 | 316 | The following call sequence is applicable when the IPSEC layer triggers |
|---|
| 340 | 317 | an encryption operation with the esp_output function. During |
|---|
| 341 | | -configuration, the administrator set up the use of rfc4106(gcm(aes)) as |
|---|
| 342 | | -the cipher for ESP. The following call sequence is now depicted in the |
|---|
| 343 | | -ASCII art above: |
|---|
| 318 | +configuration, the administrator set up the use of seqiv(rfc4106(gcm(aes))) |
|---|
| 319 | +as the cipher for ESP. The following call sequence is now depicted in |
|---|
| 320 | +the ASCII art above: |
|---|
| 344 | 321 | |
|---|
| 345 | 322 | 1. esp_output() invokes crypto_aead_encrypt() to trigger an |
|---|
| 346 | 323 | encryption operation of the AEAD cipher with IV generator. |
|---|
| 347 | 324 | |
|---|
| 348 | | - In case of GCM, the SEQIV implementation is registered as GIVCIPHER |
|---|
| 349 | | - in crypto_rfc4106_alloc(). |
|---|
| 350 | | - |
|---|
| 351 | | - The SEQIV performs its operation to generate an IV where the core |
|---|
| 352 | | - function is seqiv_geniv(). |
|---|
| 325 | + The SEQIV generates the IV. |
|---|
| 353 | 326 | |
|---|
| 354 | 327 | 2. Now, SEQIV uses the AEAD API function calls to invoke the associated |
|---|
| 355 | 328 | AEAD cipher. In our case, during the instantiation of SEQIV, the |
|---|