.. | .. |
---|
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 |
---|