€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ#/translations/zh_CN/crypto/api-aead”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/zh_TW/crypto/api-aead”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/it_IT/crypto/api-aead”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/ja_JP/crypto/api-aead”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/ko_KR/crypto/api-aead”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/pt_BR/crypto/api-aead”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/sp_SP/crypto/api-aead”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ4Authenticated Encryption With Associated Data (AEAD)”h]”hŒ4Authenticated Encryption With Associated Data (AEAD)”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ=/var/lib/git/docbuild/linux/Documentation/crypto/api-aead.rst”h´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒJAuthenticated Encryption With Associated Data (AEAD) Algorithm Definitions”h]”hŒJAuthenticated Encryption With Associated Data (AEAD) Algorithm Definitions”…”�”}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒ paragraph”“”)�”}”(hŒqThe AEAD cipher API is used with the ciphers of type CRYPTO_ALG_TYPE_AEAD (listed as type "aead" in /proc/crypto)”h]”hŒuThe AEAD cipher API is used with the ciphers of type CRYPTO_ALG_TYPE_AEAD (listed as type “aeadâ€� in /proc/crypto)”…”�”}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´KhhËh²hubhÝ)�”}”(hŒ´The most prominent examples for this type of encryption is GCM and CCM. However, the kernel supports other types of AEAD ciphers which are defined with the following cipher string:”h]”hŒ´The most prominent examples for this type of encryption is GCM and CCM. However, the kernel supports other types of AEAD ciphers which are defined with the following cipher string:”…”�”}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´KhhËh²hubhŒ block_quote”“”)�”}”(hŒ,authenc(keyed message digest, block cipher) ”h]”hÝ)�”}”(hŒ+authenc(keyed message digest, block cipher)”h]”hŒ+authenc(keyed message digest, block cipher)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´Khhþubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³jh´KhhËh²hubhÝ)�”}”(hŒ,For example: authenc(hmac(sha256), cbc(aes))”h]”hŒ,For example: authenc(hmac(sha256), cbc(aes))”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´KhhËh²hubhÝ)�”}”(hXßThe example code provided for the symmetric key cipher operation applies here as well. Naturally all *skcipher* symbols must be exchanged the *aead* pendants discussed in the following. In addition, for the AEAD operation, the aead_request_set_ad function must be used to set the pointer to the associated data memory location before performing the encryption or decryption operation. Another deviation from the asynchronous block cipher operation is that the caller should explicitly check for -EBADMSG of the crypto_aead_decrypt. That error indicates an authentication error, i.e. a breach in the integrity of the message. In essence, that -EBADMSG error code is the key bonus an AEAD cipher has over "standard" block chaining modes.”h]”(hŒeThe example code provided for the symmetric key cipher operation applies here as well. Naturally all ”…”�”}”(hj&h²hh³Nh´NubhŒemphasis”“”)�”}”(hŒ *skcipher*”h]”hŒskcipher”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j.hj&ubhŒ symbols must be exchanged the ”…”�”}”(hj&h²hh³Nh´Nubj/)�”}”(hŒ*aead*”h]”hŒaead”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j.hj&ubhXO pendants discussed in the following. In addition, for the AEAD operation, the aead_request_set_ad function must be used to set the pointer to the associated data memory location before performing the encryption or decryption operation. Another deviation from the asynchronous block cipher operation is that the caller should explicitly check for -EBADMSG of the crypto_aead_decrypt. That error indicates an authentication error, i.e. a breach in the integrity of the message. In essence, that -EBADMSG error code is the key bonus an AEAD cipher has over “standardâ€� block chaining modes.”…”�”}”(hj&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´KhhËh²hubhÝ)�”}”(hŒMemory Structure:”h]”hŒMemory Structure:”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´K)hhËh²hubhÝ)�”}”(hŒdThe source scatterlist must contain the concatenation of associated data || plaintext or ciphertext.”h]”hŒdThe source scatterlist must contain the concatenation of associated data || plaintext or ciphertext.”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´K+hhËh²hubhÝ)�”}”(hXºThe destination scatterlist has the same layout, except that the plaintext (resp. ciphertext) will grow (resp. shrink) by the authentication tag size during encryption (resp. decryption). The authentication tag is generated during the encryption operation and appended to the ciphertext. During decryption, the authentication tag is consumed along with the ciphertext and used to verify the integrity of the plaintext and the associated data.”h]”hXºThe destination scatterlist has the same layout, except that the plaintext (resp. ciphertext) will grow (resp. shrink) by the authentication tag size during encryption (resp. decryption). The authentication tag is generated during the encryption operation and appended to the ciphertext. During decryption, the authentication tag is consumed along with the ciphertext and used to verify the integrity of the plaintext and the associated data.”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´K.hhËh²hubhÝ)�”}”(hŒtIn-place encryption/decryption is enabled by using the same scatterlist pointer for both the source and destination.”h]”hŒtIn-place encryption/decryption is enabled by using the same scatterlist pointer for both the source and destination.”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´K5hhËh²hubhÝ)�”}”(hX&Even in the out-of-place case, space must be reserved in the destination for the associated data, even though it won't be written to. This makes the in-place and out-of-place cases more consistent. It is permissible for the "destination" associated data to alias the "source" associated data.”h]”hX0Even in the out-of-place case, space must be reserved in the destination for the associated data, even though it won’t be written to. This makes the in-place and out-of-place cases more consistent. It is permissible for the “destinationâ€� associated data to alias the “sourceâ€� associated data.”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´K8hhËh²hubhÝ)�”}”(hŒáAs with the other scatterlist crypto APIs, zero-length scatterlist elements are not allowed in the used part of the scatterlist. Thus, if there is no associated data, the first element must point to the plaintext/ciphertext.”h]”hŒáAs with the other scatterlist crypto APIs, zero-length scatterlist elements are not allowed in the used part of the scatterlist. Thus, if there is no associated data, the first element must point to the plaintext/ciphertext.”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´K=hhËh²hubhÝ)�”}”(hX0To meet the needs of IPsec, a special quirk applies to rfc4106, rfc4309, rfc4543, and rfc7539esp ciphers. For these ciphers, the final 'ivsize' bytes of the associated data buffer must contain a second copy of the IV. This is in addition to the copy passed to aead_request_set_crypt(). These two IV copies must not differ; different implementations of the same algorithm may behave differently in that case. Note that the algorithm might not actually treat the IV as associated data; nevertheless the length passed to aead_request_set_ad() must include it.”h]”hX4To meet the needs of IPsec, a special quirk applies to rfc4106, rfc4309, rfc4543, and rfc7539esp ciphers. For these ciphers, the final ‘ivsize’ bytes of the associated data buffer must contain a second copy of the IV. This is in addition to the copy passed to aead_request_set_crypt(). These two IV copies must not differ; different implementations of the same algorithm may behave differently in that case. Note that the algorithm might not actually treat the IV as associated data; nevertheless the length passed to aead_request_set_ad() must include it.”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒT/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:7: ./include/crypto/aead.h”h´KAhhËh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œaead_request (C struct)”Œc.aead_request”hNt”auh1jÄhhËh²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ aead_request”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct aead_request”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jçhjãh²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jùhjãh²hh³jøh´KubhŒ desc_name”“”)�”}”(hŒ aead_request”h]”hŒ desc_sig_name”“”)�”}”(hjßh]”hŒ aead_request”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j hjãh²hh³jøh´Kubeh}”(h]”h ]”h"]”h$]”h&]”j(j)Œ add_permalink”ˆuh1jáŒsphinx_line_type”Œ declarator”hjÝh²hh³jøh´Kubah}”(h]”jÓah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jÛh³jøh´KhjØh²hubhŒ desc_content”“”)�”}”(hhh]”hÝ)�”}”(hŒ AEAD request”h]”hŒ AEAD request”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KQhj@h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjØh²hh³jøh´Kubeh}”(h]”h ]”(Œc”Œstruct”eh"]”h$]”h&]”Œdomain”j[Œobjtype”j\Œdesctype”j\Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jÖh²hhhËh³jÕh´NubhŒ container”“”)�”}”(hX6**Definition**:: struct aead_request { struct crypto_async_request base; unsigned int assoclen; unsigned int cryptlen; u8 *iv; struct scatterlist *src; struct scatterlist *dst; void *__ctx[]; }; **Members** ``base`` Common attributes for async crypto requests ``assoclen`` Length in bytes of associated data for authentication ``cryptlen`` Length of data to be encrypted or decrypted ``iv`` Initialisation vector ``src`` Source data ``dst`` Destination data ``__ctx`` Start of private context data”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjlubhŒ:”…”�”}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KUhjhubhŒ literal_block”“”)�”}”(hŒÍstruct aead_request { struct crypto_async_request base; unsigned int assoclen; unsigned int cryptlen; u8 *iv; struct scatterlist *src; struct scatterlist *dst; void *__ctx[]; };”h]”hŒÍstruct aead_request { struct crypto_async_request base; unsigned int assoclen; unsigned int cryptlen; u8 *iv; struct scatterlist *src; struct scatterlist *dst; void *__ctx[]; };”…”�”}”hj�sbah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1j‹h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KWhjhubhÝ)�”}”(hŒ **Members**”h]”jq)�”}”(hjžh]”hŒMembers”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjœubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KahjhubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ5``base`` Common attributes for async crypto requests ”h]”(hŒterm”“”)�”}”(hŒ``base``”h]”hŒliteral”“”)�”}”(hjÃh]”hŒbase”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KShj»ubhŒ definition”“”)�”}”(hhh]”hÝ)�”}”(hŒ+Common attributes for async crypto requests”h]”hŒ+Common attributes for async crypto requests”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÚh´KShjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jÚh´KShj¶ubjº)�”}”(hŒC``assoclen`` Length in bytes of associated data for authentication ”h]”(jÀ)�”}”(hŒ ``assoclen``”h]”jÆ)�”}”(hjh]”hŒassoclen”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KThjúubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ5Length in bytes of associated data for authentication”h]”hŒ5Length in bytes of associated data for authentication”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´KThjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jh´KThj¶ubjº)�”}”(hŒ9``cryptlen`` Length of data to be encrypted or decrypted ”h]”(jÀ)�”}”(hŒ ``cryptlen``”h]”jÆ)�”}”(hj9h]”hŒcryptlen”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KUhj3ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ+Length of data to be encrypted or decrypted”h]”hŒ+Length of data to be encrypted or decrypted”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jNh´KUhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jNh´KUhj¶ubjº)�”}”(hŒ``iv`` Initialisation vector ”h]”(jÀ)�”}”(hŒ``iv``”h]”jÆ)�”}”(hjrh]”hŒiv”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KVhjlubjÜ)�”}”(hhh]”hÝ)�”}”(hŒInitialisation vector”h]”hŒInitialisation vector”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‡h´KVhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjlubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j‡h´KVhj¶ubjº)�”}”(hŒ``src`` Source data ”h]”(jÀ)�”}”(hŒ``src``”h]”jÆ)�”}”(hj«h]”hŒsrc”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KWhj¥ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ Source data”h]”hŒ Source data”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÀh´KWhjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jÀh´KWhj¶ubjº)�”}”(hŒ``dst`` Destination data ”h]”(jÀ)�”}”(hŒ``dst``”h]”jÆ)�”}”(hjäh]”hŒdst”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KXhjÞubjÜ)�”}”(hhh]”hÝ)�”}”(hŒDestination data”h]”hŒDestination data”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jùh´KXhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÞubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jùh´KXhj¶ubjº)�”}”(hŒ'``__ctx`` Start of private context data”h]”(jÀ)�”}”(hŒ ``__ctx``”h]”jÆ)�”}”(hjh]”hŒ__ctx”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KXhjubjÜ)�”}”(hhh]”hÝ)�”}”(hŒStart of private context data”h]”hŒStart of private context data”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KYhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j2h´KXhj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hjhubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhhËh²hh³jÕh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒaead_alg (C struct)”Œ c.aead_alg”hNt”auh1jÄhhËh²hh³jÕh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒaead_alg”h]”jâ)�”}”(hŒstruct aead_alg”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjsh²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K_ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjsh²hh³j„h´K_ubj )�”}”(hŒaead_alg”h]”j)�”}”(hjqh]”hŒaead_alg”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj“ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjsh²hh³j„h´K_ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjoh²hh³j„h´K_ubah}”(h]”jjah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³j„h´K_hjlh²hubj?)�”}”(hhh]”hÝ)�”}”(hŒAEAD cipher definition”h]”hŒAEAD cipher definition”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´Kihj¶h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjlh²hh³j„h´K_ubeh}”(h]”h ]”(j[Œstruct”eh"]”h$]”h&]”j`j[jajÑjbjÑjc‰jd‰je‰uh1jÖh²hhhËh³jÕh´Nubjg)�”}”(hXr**Definition**:: struct aead_alg { int (*setkey)(struct crypto_aead *tfm, const u8 *key, unsigned int keylen); int (*setauthsize)(struct crypto_aead *tfm, unsigned int authsize); int (*encrypt)(struct aead_request *req); int (*decrypt)(struct aead_request *req); int (*init)(struct crypto_aead *tfm); void (*exit)(struct crypto_aead *tfm); unsigned int ivsize; unsigned int maxauthsize; unsigned int chunksize; struct crypto_alg base; }; **Members** ``setkey`` see struct skcipher_alg ``setauthsize`` Set authentication size for the AEAD transformation. This function is used to specify the consumer requested size of the authentication tag to be either generated by the transformation during encryption or the size of the authentication tag to be supplied during the decryption operation. This function is also responsible for checking the authentication tag size for validity. ``encrypt`` see struct skcipher_alg ``decrypt`` see struct skcipher_alg ``init`` Initialize the cryptographic transformation object. This function is used to initialize the cryptographic transformation object. This function is called only once at the instantiation time, right after the transformation context was allocated. In case the cryptographic hardware has some special requirements which need to be handled by software, this function shall check for the precise requirement of the transformation and put any software fallbacks in place. ``exit`` Deinitialize the cryptographic transformation object. This is a counterpart to **init**, used to remove various changes set in **init**. ``ivsize`` see struct skcipher_alg ``maxauthsize`` Set the maximum authentication tag size supported by the transformation. A transformation may support smaller tag sizes. As the authentication tag is a message digest to ensure the integrity of the encrypted data, a consumer typically wants the largest authentication tag possible as defined by this variable. ``chunksize`` see struct skcipher_alg ``base`` Definition of a generic crypto cipher algorithm.”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(jq)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÙubhŒ:”…”�”}”(hjÙh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KmhjÕubjŒ)�”}”(hXÌstruct aead_alg { int (*setkey)(struct crypto_aead *tfm, const u8 *key, unsigned int keylen); int (*setauthsize)(struct crypto_aead *tfm, unsigned int authsize); int (*encrypt)(struct aead_request *req); int (*decrypt)(struct aead_request *req); int (*init)(struct crypto_aead *tfm); void (*exit)(struct crypto_aead *tfm); unsigned int ivsize; unsigned int maxauthsize; unsigned int chunksize; struct crypto_alg base; };”h]”hXÌstruct aead_alg { int (*setkey)(struct crypto_aead *tfm, const u8 *key, unsigned int keylen); int (*setauthsize)(struct crypto_aead *tfm, unsigned int authsize); int (*encrypt)(struct aead_request *req); int (*decrypt)(struct aead_request *req); int (*init)(struct crypto_aead *tfm); void (*exit)(struct crypto_aead *tfm); unsigned int ivsize; unsigned int maxauthsize; unsigned int chunksize; struct crypto_alg base; };”…”�”}”hjösbah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1j‹h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KohjÕubhÝ)�”}”(hŒ **Members**”h]”jq)�”}”(hjh]”hŒMembers”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K|hjÕubjµ)�”}”(hhh]”(jº)�”}”(hŒ#``setkey`` see struct skcipher_alg ”h]”(jÀ)�”}”(hŒ ``setkey``”h]”jÆ)�”}”(hj&h]”hŒsetkey”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´Kxhj ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒsee struct skcipher_alg”h]”hŒsee struct skcipher_alg”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j;h´Kxhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j;h´Kxhjubjº)�”}”(hXŠ``setauthsize`` Set authentication size for the AEAD transformation. This function is used to specify the consumer requested size of the authentication tag to be either generated by the transformation during encryption or the size of the authentication tag to be supplied during the decryption operation. This function is also responsible for checking the authentication tag size for validity. ”h]”(jÀ)�”}”(hŒ``setauthsize``”h]”jÆ)�”}”(hj_h]”hŒ setauthsize”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KwhjYubjÜ)�”}”(hhh]”hÝ)�”}”(hXySet authentication size for the AEAD transformation. This function is used to specify the consumer requested size of the authentication tag to be either generated by the transformation during encryption or the size of the authentication tag to be supplied during the decryption operation. This function is also responsible for checking the authentication tag size for validity.”h]”hXySet authentication size for the AEAD transformation. This function is used to specify the consumer requested size of the authentication tag to be either generated by the transformation during encryption or the size of the authentication tag to be supplied during the decryption operation. This function is also responsible for checking the authentication tag size for validity.”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´Kqhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jth´Kwhjubjº)�”}”(hŒ$``encrypt`` see struct skcipher_alg ”h]”(jÀ)�”}”(hŒ ``encrypt``”h]”jÆ)�”}”(hj™h]”hŒencrypt”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´Kyhj“ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒsee struct skcipher_alg”h]”hŒsee struct skcipher_alg”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j®h´Kyhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j®h´Kyhjubjº)�”}”(hŒ$``decrypt`` see struct skcipher_alg ”h]”(jÀ)�”}”(hŒ ``decrypt``”h]”jÆ)�”}”(hjÒh]”hŒdecrypt”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KzhjÌubjÜ)�”}”(hhh]”hÝ)�”}”(hŒsee struct skcipher_alg”h]”hŒsee struct skcipher_alg”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jçh´Kzhjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jçh´Kzhjubjº)�”}”(hXÙ``init`` Initialize the cryptographic transformation object. This function is used to initialize the cryptographic transformation object. This function is called only once at the instantiation time, right after the transformation context was allocated. In case the cryptographic hardware has some special requirements which need to be handled by software, this function shall check for the precise requirement of the transformation and put any software fallbacks in place. ”h]”(jÀ)�”}”(hŒ``init``”h]”jÆ)�”}”(hj h]”hŒinit”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K„hjubjÜ)�”}”(hhh]”hÝ)�”}”(hXÏInitialize the cryptographic transformation object. This function is used to initialize the cryptographic transformation object. This function is called only once at the instantiation time, right after the transformation context was allocated. In case the cryptographic hardware has some special requirements which need to be handled by software, this function shall check for the precise requirement of the transformation and put any software fallbacks in place.”h]”hXÏInitialize the cryptographic transformation object. This function is used to initialize the cryptographic transformation object. This function is called only once at the instantiation time, right after the transformation context was allocated. In case the cryptographic hardware has some special requirements which need to be handled by software, this function shall check for the precise requirement of the transformation and put any software fallbacks in place.”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K}hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j h´K„hjubjº)�”}”(hŒ’``exit`` Deinitialize the cryptographic transformation object. This is a counterpart to **init**, used to remove various changes set in **init**. ”h]”(jÀ)�”}”(hŒ``exit``”h]”jÆ)�”}”(hjEh]”hŒexit”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K‡hj?ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒˆDeinitialize the cryptographic transformation object. This is a counterpart to **init**, used to remove various changes set in **init**.”h]”(hŒODeinitialize the cryptographic transformation object. This is a counterpart to ”…”�”}”(hj^h²hh³Nh´Nubjq)�”}”(hŒ**init**”h]”hŒinit”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj^ubhŒ(, used to remove various changes set in ”…”�”}”(hj^h²hh³Nh´Nubjq)�”}”(hŒ**init**”h]”hŒinit”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj^ubhŒ.”…”�”}”(hj^h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K…hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jZh´K‡hjubjº)�”}”(hŒ#``ivsize`` see struct skcipher_alg ”h]”(jÀ)�”}”(hŒ ``ivsize``”h]”jÆ)�”}”(hj£h]”hŒivsize”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K{hj�ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒsee struct skcipher_alg”h]”hŒsee struct skcipher_alg”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¸h´K{hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j¸h´K{hjubjº)�”}”(hXF``maxauthsize`` Set the maximum authentication tag size supported by the transformation. A transformation may support smaller tag sizes. As the authentication tag is a message digest to ensure the integrity of the encrypted data, a consumer typically wants the largest authentication tag possible as defined by this variable. ”h]”(jÀ)�”}”(hŒ``maxauthsize``”h]”jÆ)�”}”(hjÜh]”hŒ maxauthsize”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KphjÖubjÜ)�”}”(hhh]”hÝ)�”}”(hX5Set the maximum authentication tag size supported by the transformation. A transformation may support smaller tag sizes. As the authentication tag is a message digest to ensure the integrity of the encrypted data, a consumer typically wants the largest authentication tag possible as defined by this variable.”h]”hX5Set the maximum authentication tag size supported by the transformation. A transformation may support smaller tag sizes. As the authentication tag is a message digest to ensure the integrity of the encrypted data, a consumer typically wants the largest authentication tag possible as defined by this variable.”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´Kkhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jñh´Kphjubjº)�”}”(hŒ&``chunksize`` see struct skcipher_alg ”h]”(jÀ)�”}”(hŒ ``chunksize``”h]”jÆ)�”}”(hjh]”hŒ chunksize”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K|hjubjÜ)�”}”(hhh]”hÝ)�”}”(hŒsee struct skcipher_alg”h]”hŒsee struct skcipher_alg”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j+h´K|hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j+h´K|hjubjº)�”}”(hŒ9``base`` Definition of a generic crypto cipher algorithm.”h]”(jÀ)�”}”(hŒ``base``”h]”jÆ)�”}”(hjOh]”hŒbase”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K‡hjIubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ0Definition of a generic crypto cipher algorithm.”h]”hŒ0Definition of a generic crypto cipher algorithm.”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´Kˆhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jdh´K‡hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÕubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhhËh²hh³jÕh´NubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj’h]”hŒ Description”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´K‹hhËh²hubhÝ)�”}”(hŒ=All fields except **ivsize** is mandatory and must be filled.”h]”(hŒAll fields except ”…”�”}”(hj¨h²hh³Nh´Nubjq)�”}”(hŒ **ivsize**”h]”hŒivsize”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj¨ubhŒ! is mandatory and must be filled.”…”�”}”(hj¨h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:10: ./include/crypto/aead.h”h´KˆhhËh²hubeh}”(h]”ŒHauthenticated-encryption-with-associated-data-aead-algorithm-definitions”ah ]”h"]”ŒJauthenticated encryption with associated data (aead) algorithm definitions”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ?Authenticated Encryption With Associated Data (AEAD) Cipher API”h]”hŒ?Authenticated Encryption With Associated Data (AEAD) Cipher API”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÑh²hh³hÊh´KubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒcrypto_alloc_aead (C function)”Œc.crypto_alloc_aead”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒQstruct crypto_aead * crypto_alloc_aead (const char *alg_name, u32 type, u32 mask)”h]”jâ)�”}”(hŒOstruct crypto_aead *crypto_alloc_aead(const char *alg_name, u32 type, u32 mask)”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj÷h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K·ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj÷h²hh³jh´K·ubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”Œ identifier”Œ reftarget”jŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j5Œ ASTIdentifier”“”)�”}”j0Œcrypto_alloc_aead”sbŒc.crypto_alloc_aead”†”asbuh1hhj÷h²hh³jh´K·ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj÷h²hh³jh´K·ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jQhj÷h²hh³jh´K·ubj )�”}”(hŒcrypto_alloc_aead”h]”j)�”}”(hj@h]”hŒcrypto_alloc_aead”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjbubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hj÷h²hh³jh´K·ubhŒdesc_parameterlist”“”)�”}”(hŒ*(const char *alg_name, u32 type, u32 mask)”h]”(hŒdesc_parameter”“”)�”}”(hŒconst char *alg_name”h]”(jè)�”}”(hŒconst”h]”hŒconst”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj�ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj�ubhŒdesc_sig_keyword_type”“”)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j¡hj�ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj�ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj�ubj)�”}”(hŒalg_name”h]”hŒalg_name”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj{ubj€)�”}”(hŒu32 type”h]”(h)�”}”(hhh]”j)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjæubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jëŒmodname”NŒ classname”Nj4j7)�”}”j:]”j>Œc.crypto_alloc_aead”†”asbuh1hhjâubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjâubj)�”}”(hŒtype”h]”hŒtype”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjâubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj{ubj€)�”}”(hŒu32 mask”h]”(h)�”}”(hhh]”j)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj. ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j3 Œmodname”NŒ classname”Nj4j7)�”}”j:]”j>Œc.crypto_alloc_aead”†”asbuh1hhj* ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjO h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj* ubj)�”}”(hŒmask”h]”hŒmask”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj* ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj{ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhj÷h²hh³jh´K·ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjóh²hh³jh´K·ubah}”(h]”jîah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jh´K·hjðh²hubj?)�”}”(hhh]”hÝ)�”}”(hŒallocate AEAD cipher handle”h]”hŒallocate AEAD cipher handle”…”�”}”(hj‡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K·hj„ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjðh²hh³jh´K·ubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajŸ jbjŸ jc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hX **Parameters** ``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the AEAD cipher ``u32 type`` specifies the type of the cipher ``u32 mask`` specifies the mask for the cipher **Description** Allocate a cipher handle for an AEAD. The returned struct crypto_aead is the cipher handle that is required for any subsequent API invocation for that AEAD. **Return** allocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hj© h]”hŒ Parameters”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj§ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K»hj£ ubjµ)�”}”(hhh]”(jº)�”}”(hŒd``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the AEAD cipher ”h]”(jÀ)�”}”(hŒ``const char *alg_name``”h]”jÆ)�”}”(hjÈ h]”hŒconst char *alg_name”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjÆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K¹hj ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒJis the cra_name / name or cra_driver_name / driver name of the AEAD cipher”h]”hŒJis the cra_name / name or cra_driver_name / driver name of the AEAD cipher”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K¸hjÞ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jÝ h´K¹hj¿ ubjº)�”}”(hŒ.``u32 type`` specifies the type of the cipher ”h]”(jÀ)�”}”(hŒ ``u32 type``”h]”jÆ)�”}”(hj h]”hŒu32 type”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Kºhjü ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ specifies the type of the cipher”h]”hŒ specifies the type of the cipher”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j h´Kºhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjü ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j h´Kºhj¿ ubjº)�”}”(hŒ/``u32 mask`` specifies the mask for the cipher ”h]”(jÀ)�”}”(hŒ ``u32 mask``”h]”jÆ)�”}”(hj; h]”hŒu32 mask”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj9 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K»hj5 ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ!specifies the mask for the cipher”h]”hŒ!specifies the mask for the cipher”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jP h´K»hjQ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj5 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jP h´K»hj¿ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hj£ ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hjv h]”hŒ Description”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K½hj£ ubhÝ)�”}”(hŒœAllocate a cipher handle for an AEAD. The returned struct crypto_aead is the cipher handle that is required for any subsequent API invocation for that AEAD.”h]”hŒœAllocate a cipher handle for an AEAD. The returned struct crypto_aead is the cipher handle that is required for any subsequent API invocation for that AEAD.”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K¼hj£ ubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hj� h]”hŒReturn”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj› ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´KÀhj£ ubhÝ)�”}”(hŒsallocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”h]”hŒsallocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´KÁhj£ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒcrypto_free_aead (C function)”Œc.crypto_free_aead”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒ/void crypto_free_aead (struct crypto_aead *tfm)”h]”jâ)�”}”(hŒ.void crypto_free_aead(struct crypto_aead *tfm)”h]”(j¢)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjÞ h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´KÓubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjÞ h²hh³jð h´KÓubj )�”}”(hŒcrypto_free_aead”h]”j)�”}”(hŒcrypto_free_aead”h]”hŒcrypto_free_aead”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÿ ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjÞ h²hh³jð h´KÓubjz)�”}”(hŒ(struct crypto_aead *tfm)”h]”j€)�”}”(hŒstruct crypto_aead *tfm”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj ubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj: ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j? Œmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0j sbŒc.crypto_free_aead”†”asbuh1hhj ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj ubj)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhjÞ h²hh³jð h´KÓubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjÚ h²hh³jð h´KÓubah}”(h]”jÕ ah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jð h´KÓhj× h²hubj?)�”}”(hhh]”hÝ)�”}”(hŒzeroize and free aead handle”h]”hŒzeroize and free aead handle”…”�”}”(hj¢ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´KÓhjŸ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj× h²hh³jð h´KÓubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajº jbjº jc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hŒœ**Parameters** ``struct crypto_aead *tfm`` cipher handle to be freed **Description** If **tfm** is a NULL or error pointer, this function does nothing.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjÄ h]”hŒ Parameters”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´K×hj¾ ubjµ)�”}”(hhh]”jº)�”}”(hŒ6``struct crypto_aead *tfm`` cipher handle to be freed ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hjã h]”hŒstruct crypto_aead *tfm”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjá ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´KÔhjÝ ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒcipher handle to be freed”h]”hŒcipher handle to be freed”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jø h´KÔhjù ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÝ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jø h´KÔhjÚ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj¾ ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj h]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´KÖhj¾ ubhÝ)�”}”(hŒBIf **tfm** is a NULL or error pointer, this function does nothing.”h]”(hŒIf ”…”�”}”(hj4 h²hh³Nh´Nubjq)�”}”(hŒ**tfm**”h]”hŒtfm”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj4 ubhŒ8 is a NULL or error pointer, this function does nothing.”…”�”}”(hj4 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´KÕhj¾ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒcrypto_aead_ivsize (C function)”Œc.crypto_aead_ivsize”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒ9unsigned int crypto_aead_ivsize (struct crypto_aead *tfm)”h]”jâ)�”}”(hŒ8unsigned int crypto_aead_ivsize(struct crypto_aead *tfm)”h]”(j¢)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjq h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Kÿubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjq h²hh³jƒ h´Kÿubj¢)�”}”(hŒint”h]”hŒint”…”�”}”(hj’ h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjq h²hh³jƒ h´Kÿubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj  h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjq h²hh³jƒ h´Kÿubj )�”}”(hŒcrypto_aead_ivsize”h]”j)�”}”(hŒcrypto_aead_ivsize”h]”hŒcrypto_aead_ivsize”…”�”}”(hj² h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj® ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjq h²hh³jƒ h´Kÿubjz)�”}”(hŒ(struct crypto_aead *tfm)”h]”j€)�”}”(hŒstruct crypto_aead *tfm”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjÊ ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjÊ ubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjé ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jî Œmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0j´ sbŒc.crypto_aead_ivsize”†”asbuh1hhjÊ ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjÊ ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhjÊ ubj)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÊ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjÆ ubah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhjq h²hh³jƒ h´Kÿubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjm h²hh³jƒ h´Kÿubah}”(h]”jh ah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jƒ h´Kÿhjj h²hubj?)�”}”(hhh]”hÝ)�”}”(hŒobtain IV size”h]”hŒobtain IV size”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´KÿhjN h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjj h²hh³jƒ h´Kÿubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jaji jbji jc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hŒô**Parameters** ``struct crypto_aead *tfm`` cipher handle **Description** The size of the IV for the aead referenced by the cipher handle is returned. This IV size may be zero if the cipher does not need an IV. **Return** IV size in bytes”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjs h]”hŒ Parameters”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhjm ubjµ)�”}”(hhh]”jº)�”}”(hŒ*``struct crypto_aead *tfm`` cipher handle ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hj’ h]”hŒstruct crypto_aead *tfm”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MhjŒ ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j§ h´Mhj¨ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjŒ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j§ h´Mhj‰ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjm ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hjÍ h]”hŒ Description”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjË ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhjm ubhÝ)�”}”(hŒˆThe size of the IV for the aead referenced by the cipher handle is returned. This IV size may be zero if the cipher does not need an IV.”h]”hŒˆThe size of the IV for the aead referenced by the cipher handle is returned. This IV size may be zero if the cipher does not need an IV.”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhjm ubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hjô h]”hŒReturn”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjò ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhjm ubhÝ)�”}”(hŒIV size in bytes”h]”hŒIV size in bytes”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhjm ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ!crypto_aead_authsize (C function)”Œc.crypto_aead_authsize”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒ;unsigned int crypto_aead_authsize (struct crypto_aead *tfm)”h]”jâ)�”}”(hŒ:unsigned int crypto_aead_authsize(struct crypto_aead *tfm)”h]”(j¢)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hj5h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj5h²hh³jGh´Mubj¢)�”}”(hŒint”h]”hŒint”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hj5h²hh³jGh´Mubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj5h²hh³jGh´Mubj )�”}”(hŒcrypto_aead_authsize”h]”j)�”}”(hŒcrypto_aead_authsize”h]”hŒcrypto_aead_authsize”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjrubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hj5h²hh³jGh´Mubjz)�”}”(hŒ(struct crypto_aead *tfm)”h]”j€)�”}”(hŒstruct crypto_aead *tfm”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjŽubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjŽubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj­ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j²Œmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0jxsbŒc.crypto_aead_authsize”†”asbuh1hhjŽubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjŽubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhjŽubj)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjŽubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjŠubah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhj5h²hh³jGh´Mubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hj1h²hh³jGh´Mubah}”(h]”j,ah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jGh´Mhj.h²hubj?)�”}”(hhh]”hÝ)�”}”(hŒ'obtain maximum authentication data size”h]”hŒ'obtain maximum authentication data size”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj.h²hh³jGh´Mubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jaj-jbj-jc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hXŒ**Parameters** ``struct crypto_aead *tfm`` cipher handle **Description** The maximum size of the authentication data for the AEAD cipher referenced by the AEAD cipher handle is returned. The authentication data size may be zero if the cipher implements a hard-coded maximum. The authentication data may also be known as "tag value". **Return** authentication data size / tag size in bytes”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hj7h]”hŒ Parameters”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhj1ubjµ)�”}”(hhh]”jº)�”}”(hŒ*``struct crypto_aead *tfm`` cipher handle ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hjVh]”hŒstruct crypto_aead *tfm”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MhjPubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jkh´Mhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jkh´MhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj1ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj‘h]”hŒ Description”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhj1ubhÝ)�”}”(hŒÉThe maximum size of the authentication data for the AEAD cipher referenced by the AEAD cipher handle is returned. The authentication data size may be zero if the cipher implements a hard-coded maximum.”h]”hŒÉThe maximum size of the authentication data for the AEAD cipher referenced by the AEAD cipher handle is returned. The authentication data size may be zero if the cipher implements a hard-coded maximum.”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhj1ubhÝ)�”}”(hŒ9The authentication data may also be known as "tag value".”h]”hŒ=The authentication data may also be known as “tag valueâ€�.”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhj1ubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hjÇh]”hŒReturn”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhj1ubhÝ)�”}”(hŒ,authentication data size / tag size in bytes”h]”hŒ,authentication data size / tag size in bytes”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mhj1ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ"crypto_aead_blocksize (C function)”Œc.crypto_aead_blocksize”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒhjh²hh³jh´M7ubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajjbjjc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hX=**Parameters** ``struct crypto_aead *tfm`` cipher handle **Description** The block size for the AEAD referenced with the cipher handle is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation **Return** block size of cipher”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M;hjubjµ)�”}”(hhh]”jº)�”}”(hŒ*``struct crypto_aead *tfm`` cipher handle ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hj)h]”hŒstruct crypto_aead *tfm”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M8hj#ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j>h´M8hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j>h´M8hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hjdh]”hŒ Description”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjbubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M:hjubhÝ)�”}”(hŒÍThe block size for the AEAD referenced with the cipher handle is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation”h]”hŒÍThe block size for the AEAD referenced with the cipher handle is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M9hjubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hj‹h]”hŒReturn”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M=hjubhÝ)�”}”(hŒblock size of cipher”h]”hŒblock size of cipher”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”•h´M>hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒcrypto_aead_setkey (C function)”Œc.crypto_aead_setkey”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒTint crypto_aead_setkey (struct crypto_aead *tfm, const u8 *key, unsigned int keylen)”h]”jâ)�”}”(hŒSint crypto_aead_setkey(struct crypto_aead *tfm, const u8 *key, unsigned int keylen)”h]”(j¢)�”}”(hŒint”h]”hŒint”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjÌh²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mnubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjÌh²hh³jÞh´Mnubj )�”}”(hŒcrypto_aead_setkey”h]”j)�”}”(hŒcrypto_aead_setkey”h]”hŒcrypto_aead_setkey”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjíubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjÌh²hh³jÞh´Mnubjz)�”}”(hŒ=(struct crypto_aead *tfm, const u8 *key, unsigned int keylen)”h]”(j€)�”}”(hŒstruct crypto_aead *tfm”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj ubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j-Œmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0jósbŒc.crypto_aead_setkey”†”asbuh1hhj ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj ubj)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjubj€)�”}”(hŒ const u8 *key”h]”(jè)�”}”(hj‡h]”hŒconst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj{ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj{ubh)�”}”(hhh]”j)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjšubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jŸŒmodname”NŒ classname”Nj4j7)�”}”j:]”jGŒc.crypto_aead_setkey”†”asbuh1hhj{ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj{ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj{ubj)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj{ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjubj€)�”}”(hŒunsigned int keylen”h]”(j¢)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjëubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjëubj¢)�”}”(hŒint”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjëubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjëubj)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjëubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhjÌh²hh³jÞh´Mnubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjÈh²hh³jÞh´Mnubah}”(h]”jÃah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jÞh´MnhjÅh²hubj?)�”}”(hhh]”hÝ)�”}”(hŒset key for cipher”h]”hŒset key for cipher”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MnhjNh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjÅh²hh³jÞh´Mnubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajijbjijc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hXD**Parameters** ``struct crypto_aead *tfm`` cipher handle ``const u8 *key`` buffer holding the key ``unsigned int keylen`` length of the key in bytes **Description** The caller provided key is set for the AEAD referenced by the cipher handle. Note, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed. **Return** 0 if the setting of the key was successful; < 0 if an error occurred”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjsh]”hŒ Parameters”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjqubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mrhjmubjµ)�”}”(hhh]”(jº)�”}”(hŒ*``struct crypto_aead *tfm`` cipher handle ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hj’h]”hŒstruct crypto_aead *tfm”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MohjŒubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j§h´Mohj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j§h´Mohj‰ubjº)�”}”(hŒ)``const u8 *key`` buffer holding the key ”h]”(jÀ)�”}”(hŒ``const u8 *key``”h]”jÆ)�”}”(hjËh]”hŒ const u8 *key”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MphjÅubjÜ)�”}”(hhh]”hÝ)�”}”(hŒbuffer holding the key”h]”hŒbuffer holding the key”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jàh´Mphjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jàh´Mphj‰ubjº)�”}”(hŒ3``unsigned int keylen`` length of the key in bytes ”h]”(jÀ)�”}”(hŒ``unsigned int keylen``”h]”jÆ)�”}”(hjh]”hŒunsigned int keylen”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MqhjþubjÜ)�”}”(hhh]”hÝ)�”}”(hŒlength of the key in bytes”h]”hŒlength of the key in bytes”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´Mqhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jh´Mqhj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hjmubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj?h]”hŒ Description”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MshjmubhÝ)�”}”(hŒLThe caller provided key is set for the AEAD referenced by the cipher handle.”h]”hŒLThe caller provided key is set for the AEAD referenced by the cipher handle.”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MrhjmubhÝ)�”}”(hŒôNote, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed.”h]”hŒôNote, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed.”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MuhjmubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hjuh]”hŒReturn”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjsubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MzhjmubhÝ)�”}”(hŒD0 if the setting of the key was successful; < 0 if an error occurred”h]”hŒD0 if the setting of the key was successful; < 0 if an error occurred”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M{hjmubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ$crypto_aead_setauthsize (C function)”Œc.crypto_aead_setauthsize”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒLint crypto_aead_setauthsize (struct crypto_aead *tfm, unsigned int authsize)”h]”jâ)�”}”(hŒKint crypto_aead_setauthsize(struct crypto_aead *tfm, unsigned int authsize)”h]”(j¢)�”}”(hŒint”h]”hŒint”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hj¶h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M‡ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj¶h²hh³jÈh´M‡ubj )�”}”(hŒcrypto_aead_setauthsize”h]”j)�”}”(hŒcrypto_aead_setauthsize”h]”hŒcrypto_aead_setauthsize”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj×ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hj¶h²hh³jÈh´M‡ubjz)�”}”(hŒ0(struct crypto_aead *tfm, unsigned int authsize)”h]”(j€)�”}”(hŒstruct crypto_aead *tfm”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjóubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjóubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jŒmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0jÝsbŒc.crypto_aead_setauthsize”†”asbuh1hhjóubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjóubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhjóubj)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjóubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjïubj€)�”}”(hŒunsigned int authsize”h]”(j¢)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjeubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjeubj¢)�”}”(hŒint”h]”hŒint”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjeubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjeubj)�”}”(hŒauthsize”h]”hŒauthsize”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjeubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjïubeh}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhj¶h²hh³jÈh´M‡ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hj²h²hh³jÈh´M‡ubah}”(h]”j­ah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jÈh´M‡hj¯h²hubj?)�”}”(hhh]”hÝ)�”}”(hŒset authentication data size”h]”hŒset authentication data size”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M‡hjÈh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj¯h²hh³jÈh´M‡ubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajãjbjãjc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hXi**Parameters** ``struct crypto_aead *tfm`` cipher handle ``unsigned int authsize`` size of the authentication data / tag in bytes **Description** Set the authentication data size / tag size. AEAD requires an authentication tag (or MAC) in addition to the associated data. **Return** 0 if the setting of the key was successful; < 0 if an error occurred”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjíh]”hŒ Parameters”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjëubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M‹hjçubjµ)�”}”(hhh]”(jº)�”}”(hŒ*``struct crypto_aead *tfm`` cipher handle ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hj h]”hŒstruct crypto_aead *tfm”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MˆhjubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j!h´Mˆhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j!h´Mˆhjubjº)�”}”(hŒI``unsigned int authsize`` size of the authentication data / tag in bytes ”h]”(jÀ)�”}”(hŒ``unsigned int authsize``”h]”jÆ)�”}”(hjEh]”hŒunsigned int authsize”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M‰hj?ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ.size of the authentication data / tag in bytes”h]”hŒ.size of the authentication data / tag in bytes”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jZh´M‰hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jZh´M‰hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hjçubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj€h]”hŒ Description”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M‹hjçubhÝ)�”}”(hŒ}Set the authentication data size / tag size. AEAD requires an authentication tag (or MAC) in addition to the associated data.”h]”hŒ}Set the authentication data size / tag size. AEAD requires an authentication tag (or MAC) in addition to the associated data.”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MŠhjçubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hj§h]”hŒReturn”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M�hjçubhÝ)�”}”(hŒD0 if the setting of the key was successful; < 0 if an error occurred”h]”hŒD0 if the setting of the key was successful; < 0 if an error occurred”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MŽhjçubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ crypto_aead_encrypt (C function)”Œc.crypto_aead_encrypt”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒ2int crypto_aead_encrypt (struct aead_request *req)”h]”jâ)�”}”(hŒ1int crypto_aead_encrypt(struct aead_request *req)”h]”(j¢)�”}”(hŒint”h]”hŒint”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjèh²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M¥ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjèh²hh³júh´M¥ubj )�”}”(hŒcrypto_aead_encrypt”h]”j)�”}”(hŒcrypto_aead_encrypt”h]”hŒcrypto_aead_encrypt”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjèh²hh³júh´M¥ubjz)�”}”(hŒ(struct aead_request *req)”h]”j€)�”}”(hŒstruct aead_request *req”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj%ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj%ubh)�”}”(hhh]”j)�”}”(hŒ aead_request”h]”hŒ aead_request”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjDubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jIŒmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0jsbŒc.crypto_aead_encrypt”†”asbuh1hhj%ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj%ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj%ubj)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj!ubah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhjèh²hh³júh´M¥ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjäh²hh³júh´M¥ubah}”(h]”jßah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³júh´M¥hjáh²hubj?)�”}”(hhh]”hÝ)�”}”(hŒencrypt plaintext”h]”hŒencrypt plaintext”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M¥hj©h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjáh²hh³júh´M¥ubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajÄjbjÄjc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hXk**Parameters** ``struct aead_request *req`` reference to the aead_request handle that holds all information needed to perform the cipher operation **Description** Encrypt plaintext data using the aead_request handle. That data structure and how it is filled with data is discussed with the aead_request_* functions. IMPORTANT NOTE The encryption operation creates the authentication data / tag. That data is concatenated with the created ciphertext. The ciphertext memory size is therefore the given number of block cipher blocks + the size defined by the crypto_aead_setauthsize invocation. The caller must ensure that sufficient memory is available for the ciphertext and the authentication tag. **Return** 0 if the cipher operation was successful; < 0 if an error occurred”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjÎh]”hŒ Parameters”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M©hjÈubjµ)�”}”(hhh]”jº)�”}”(hŒ„``struct aead_request *req`` reference to the aead_request handle that holds all information needed to perform the cipher operation ”h]”(jÀ)�”}”(hŒ``struct aead_request *req``”h]”jÆ)�”}”(hjíh]”hŒstruct aead_request *req”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M§hjçubjÜ)�”}”(hhh]”hÝ)�”}”(hŒfreference to the aead_request handle that holds all information needed to perform the cipher operation”h]”hŒfreference to the aead_request handle that holds all information needed to perform the cipher operation”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M¦hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jh´M§hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÈubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj)h]”hŒ Description”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M©hjÈubhÝ)�”}”(hŒ˜Encrypt plaintext data using the aead_request handle. That data structure and how it is filled with data is discussed with the aead_request_* functions.”h]”hŒ˜Encrypt plaintext data using the aead_request handle. That data structure and how it is filled with data is discussed with the aead_request_* functions.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M¨hjÈubjµ)�”}”(hhh]”jº)�”}”(hX~IMPORTANT NOTE The encryption operation creates the authentication data / tag. That data is concatenated with the created ciphertext. The ciphertext memory size is therefore the given number of block cipher blocks + the size defined by the crypto_aead_setauthsize invocation. The caller must ensure that sufficient memory is available for the ciphertext and the authentication tag. ”h]”(jÀ)�”}”(hŒIIMPORTANT NOTE The encryption operation creates the authentication data /”h]”hŒIIMPORTANT NOTE The encryption operation creates the authentication data /”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M²hjQubjÜ)�”}”(hhh]”hÝ)�”}”(hX3tag. That data is concatenated with the created ciphertext. The ciphertext memory size is therefore the given number of block cipher blocks + the size defined by the crypto_aead_setauthsize invocation. The caller must ensure that sufficient memory is available for the ciphertext and the authentication tag.”h]”hX3tag. That data is concatenated with the created ciphertext. The ciphertext memory size is therefore the given number of block cipher blocks + the size defined by the crypto_aead_setauthsize invocation. The caller must ensure that sufficient memory is available for the ciphertext and the authentication tag.”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M­hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjQubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jch´M²hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÈubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hjŠh]”hŒReturn”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M´hjÈubhÝ)�”}”(hŒB0 if the cipher operation was successful; < 0 if an error occurred”h]”hŒB0 if the cipher operation was successful; < 0 if an error occurred”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MµhjÈubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ crypto_aead_decrypt (C function)”Œc.crypto_aead_decrypt”hNt”auh1jÄhjÑh²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒ2int crypto_aead_decrypt (struct aead_request *req)”h]”jâ)�”}”(hŒ1int crypto_aead_decrypt(struct aead_request *req)”h]”(j¢)�”}”(hŒint”h]”hŒint”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjËh²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´Mºubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjËh²hh³jÝh´Mºubj )�”}”(hŒcrypto_aead_decrypt”h]”j)�”}”(hŒcrypto_aead_decrypt”h]”hŒcrypto_aead_decrypt”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjìubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjËh²hh³jÝh´Mºubjz)�”}”(hŒ(struct aead_request *req)”h]”j€)�”}”(hŒstruct aead_request *req”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjubh)�”}”(hhh]”j)�”}”(hŒ aead_request”h]”hŒ aead_request”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j,Œmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0jòsbŒc.crypto_aead_decrypt”†”asbuh1hhjubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhjubj)�”}”(hŒreq”h]”hŒreq”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhjËh²hh³jÝh´Mºubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjÇh²hh³jÝh´Mºubah}”(h]”jÂah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jÝh´MºhjÄh²hubj?)�”}”(hhh]”hÝ)�”}”(hŒdecrypt ciphertext”h]”hŒdecrypt ciphertext”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MºhjŒh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjÄh²hh³jÝh´Mºubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jaj§jbj§jc‰jd‰je‰uh1jÖh²hhjÑh³Nh´Nubjg)�”}”(hX©**Parameters** ``struct aead_request *req`` reference to the aead_request handle that holds all information needed to perform the cipher operation **Description** Decrypt ciphertext data using the aead_request handle. That data structure and how it is filled with data is discussed with the aead_request_* functions. IMPORTANT NOTE The caller must concatenate the ciphertext followed by the authentication data / tag. That authentication data / tag must have the size defined by the crypto_aead_setauthsize invocation. **Return** 0 if the cipher operation was successful; -EBADMSG: The AEAD cipher operation performs the authentication of the data during the decryption operation. Therefore, the function returns this error if the authentication of the ciphertext was unsuccessful (i.e. the integrity of the ciphertext or the associated data was violated); < 0 if an error occurred.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hj±h]”hŒ Parameters”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M¾hj«ubjµ)�”}”(hhh]”jº)�”}”(hŒ„``struct aead_request *req`` reference to the aead_request handle that holds all information needed to perform the cipher operation ”h]”(jÀ)�”}”(hŒ``struct aead_request *req``”h]”jÆ)�”}”(hjÐh]”hŒstruct aead_request *req”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M¼hjÊubjÜ)�”}”(hhh]”hÝ)�”}”(hŒfreference to the aead_request handle that holds all information needed to perform the cipher operation”h]”hŒfreference to the aead_request handle that holds all information needed to perform the cipher operation”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M»hjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jåh´M¼hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj«ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj h]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M¾hj«ubhÝ)�”}”(hŒ™Decrypt ciphertext data using the aead_request handle. That data structure and how it is filled with data is discussed with the aead_request_* functions.”h]”hŒ™Decrypt ciphertext data using the aead_request handle. That data structure and how it is filled with data is discussed with the aead_request_* functions.”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´M½hj«ubjµ)�”}”(hhh]”jº)�”}”(hŒÊIMPORTANT NOTE The caller must concatenate the ciphertext followed by the authentication data / tag. That authentication data / tag must have the size defined by the crypto_aead_setauthsize invocation. ”h]”(jÀ)�”}”(hŒIIMPORTANT NOTE The caller must concatenate the ciphertext followed by the”h]”hŒIIMPORTANT NOTE The caller must concatenate the ciphertext followed by the”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MÄhj4ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒauthentication data / tag. That authentication data / tag must have the size defined by the crypto_aead_setauthsize invocation.”h]”hŒauthentication data / tag. That authentication data / tag must have the size defined by the crypto_aead_setauthsize invocation.”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MÂhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jFh´MÄhj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hj«ubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hjmh]”hŒReturn”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjkubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MÆhj«ubhÝ)�”}”(hX`0 if the cipher operation was successful; -EBADMSG: The AEAD cipher operation performs the authentication of the data during the decryption operation. Therefore, the function returns this error if the authentication of the ciphertext was unsuccessful (i.e. the integrity of the ciphertext or the associated data was violated); < 0 if an error occurred.”h]”hX`0 if the cipher operation was successful; -EBADMSG: The AEAD cipher operation performs the authentication of the data during the decryption operation. Therefore, the function returns this error if the authentication of the ciphertext was unsuccessful (i.e. the integrity of the ciphertext or the associated data was violated); < 0 if an error occurred.”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:16: ./include/crypto/aead.h”h´MÈhj«ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhjÑh²hh³Nh´Nubeh}”(h]”Œ=authenticated-encryption-with-associated-data-aead-cipher-api”ah ]”h"]”Œ?authenticated encryption with associated data (aead) cipher api”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ Asynchronous AEAD Request Handle”h]”hŒ Asynchronous AEAD Request Handle”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj¡h²hh³hÊh´KubhÝ)�”}”(hX{The aead_request data structure contains all pointers to data required for the AEAD cipher operation. This includes the cipher handle (which can be used by multiple aead_request instances), pointer to plaintext and ciphertext, asynchronous callback function, etc. It acts as a handle to the aead_request_* API calls in a similar way as AEAD handle to the crypto_aead_* API calls.”h]”hX{The aead_request data structure contains all pointers to data required for the AEAD cipher operation. This includes the cipher handle (which can be used by multiple aead_request instances), pointer to plaintext and ciphertext, asynchronous callback function, etc. It acts as a handle to the aead_request_* API calls in a similar way as AEAD handle to the crypto_aead_* API calls.”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:22: ./include/crypto/aead.h”h´MÒhj¡h²hubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ crypto_aead_reqsize (C function)”Œc.crypto_aead_reqsize”hNt”auh1jÄhj¡h²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒ:unsigned int crypto_aead_reqsize (struct crypto_aead *tfm)”h]”jâ)�”}”(hŒ9unsigned int crypto_aead_reqsize(struct crypto_aead *tfm)”h]”(j¢)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjÖh²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MÝubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjÖh²hh³jèh´MÝubj¢)�”}”(hŒint”h]”hŒint”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjÖh²hh³jèh´MÝubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjÖh²hh³jèh´MÝubj )�”}”(hŒcrypto_aead_reqsize”h]”j)�”}”(hŒcrypto_aead_reqsize”h]”hŒcrypto_aead_reqsize”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjÖh²hh³jèh´MÝubjz)�”}”(hŒ(struct crypto_aead *tfm)”h]”j€)�”}”(hŒstruct crypto_aead *tfm”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj/ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj/ubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jSŒmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0jsbŒc.crypto_aead_reqsize”†”asbuh1hhj/ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj/ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj/ubj)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj+ubah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhjÖh²hh³jèh´MÝubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjÒh²hh³jèh´MÝubah}”(h]”jÍah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jèh´MÝhjÏh²hubj?)�”}”(hhh]”hÝ)�”}”(hŒ)obtain size of the request data structure”h]”hŒ)obtain size of the request data structure”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MÝhj³h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjÏh²hh³jèh´MÝubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajÎjbjÎjc‰jd‰je‰uh1jÖh²hhj¡h³Nh´Nubjg)�”}”(hŒX**Parameters** ``struct crypto_aead *tfm`` cipher handle **Return** number of bytes”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjØh]”hŒ Parameters”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MáhjÒubjµ)�”}”(hhh]”jº)�”}”(hŒ*``struct crypto_aead *tfm`` cipher handle ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hj÷h]”hŒstruct crypto_aead *tfm”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MÞhjñubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j h´MÞhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j h´MÞhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÒubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hj2h]”hŒReturn”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MàhjÒubhÝ)�”}”(hŒnumber of bytes”h]”hŒnumber of bytes”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MàhjÒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhj¡h²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ!aead_request_set_tfm (C function)”Œc.aead_request_set_tfm”hNt”auh1jÄhj¡h²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒMvoid aead_request_set_tfm (struct aead_request *req, struct crypto_aead *tfm)”h]”jâ)�”}”(hŒLvoid aead_request_set_tfm(struct aead_request *req, struct crypto_aead *tfm)”h]”(j¢)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjsh²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mèubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjsh²hh³j…h´Mèubj )�”}”(hŒaead_request_set_tfm”h]”j)�”}”(hŒaead_request_set_tfm”h]”hŒaead_request_set_tfm”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj”ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjsh²hh³j…h´Mèubjz)�”}”(hŒ3(struct aead_request *req, struct crypto_aead *tfm)”h]”(j€)�”}”(hŒstruct aead_request *req”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj°ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj°ubh)�”}”(hhh]”j)�”}”(hŒ aead_request”h]”hŒ aead_request”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÏubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jÔŒmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0jšsbŒc.aead_request_set_tfm”†”asbuh1hhj°ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj°ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj°ubj)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj°ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj¬ubj€)�”}”(hŒstruct crypto_aead *tfm”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj"ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj"ubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jFŒmodname”NŒ classname”Nj4j7)�”}”j:]”jîŒc.aead_request_set_tfm”†”asbuh1hhj"ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj"ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj"ubj)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhjsh²hh³j…h´Mèubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjoh²hh³j…h´Mèubah}”(h]”jjah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³j…h´Mèhjlh²hubj?)�”}”(hhh]”hÝ)�”}”(hŒ)update cipher handle reference in request”h]”hŒ)update cipher handle reference in request”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mèhj¤h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjlh²hh³j…h´Mèubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jaj¿jbj¿jc‰jd‰je‰uh1jÖh²hhj¡h³Nh´Nubjg)�”}”(hX**Parameters** ``struct aead_request *req`` request handle to be modified ``struct crypto_aead *tfm`` cipher handle that shall be added to the request handle **Description** Allow the caller to replace the existing aead handle in the request data structure with a different one.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjÉh]”hŒ Parameters”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MìhjÃubjµ)�”}”(hhh]”(jº)�”}”(hŒ;``struct aead_request *req`` request handle to be modified ”h]”(jÀ)�”}”(hŒ``struct aead_request *req``”h]”jÆ)�”}”(hjèh]”hŒstruct aead_request *req”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MéhjâubjÜ)�”}”(hhh]”hÝ)�”}”(hŒrequest handle to be modified”h]”hŒrequest handle to be modified”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jýh´Méhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jýh´Méhjßubjº)�”}”(hŒT``struct crypto_aead *tfm`` cipher handle that shall be added to the request handle ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hj!h]”hŒstruct crypto_aead *tfm”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MêhjubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ7cipher handle that shall be added to the request handle”h]”hŒ7cipher handle that shall be added to the request handle”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j6h´Mêhj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j6h´Mêhjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hjÃubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj\h]”hŒ Description”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjZubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MìhjÃubhÝ)�”}”(hŒhAllow the caller to replace the existing aead handle in the request data structure with a different one.”h]”hŒhAllow the caller to replace the existing aead handle in the request data structure with a different one.”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MëhjÃubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhj¡h²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒaead_request_alloc (C function)”Œc.aead_request_alloc”hNt”auh1jÄhj¡h²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒMstruct aead_request * aead_request_alloc (struct crypto_aead *tfm, gfp_t gfp)”h]”jâ)�”}”(hŒKstruct aead_request *aead_request_alloc(struct crypto_aead *tfm, gfp_t gfp)”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj�h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Müubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj�h²hh³j®h´Müubh)�”}”(hhh]”j)�”}”(hŒ aead_request”h]”hŒ aead_request”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj½ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jÂŒmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0Œaead_request_alloc”sbŒc.aead_request_alloc”†”asbuh1hhj�h²hh³j®h´Müubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj�h²hh³j®h´MüubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj�h²hh³j®h´Müubj )�”}”(hŒaead_request_alloc”h]”j)�”}”(hjÞh]”hŒaead_request_alloc”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjüubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hj�h²hh³j®h´Müubjz)�”}”(hŒ$(struct crypto_aead *tfm, gfp_t gfp)”h]”(j€)�”}”(hŒstruct crypto_aead *tfm”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhjubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjubh)�”}”(hhh]”j)�”}”(hŒ crypto_aead”h]”hŒ crypto_aead”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j;Œmodname”NŒ classname”Nj4j7)�”}”j:]”jÜŒc.aead_request_alloc”†”asbuh1hhjubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhjubj)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjubj€)�”}”(hŒ gfp_t gfp”h]”(h)�”}”(hhh]”j)�”}”(hŒgfp_t”h]”hŒgfp_t”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj‹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j�Œmodname”NŒ classname”Nj4j7)�”}”j:]”jÜŒc.aead_request_alloc”†”asbuh1hhj‡ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj‡ubj)�”}”(hŒgfp”h]”hŒgfp”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj‡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhj�h²hh³j®h´Müubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hj™h²hh³j®h´Müubah}”(h]”j”ah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³j®h´Mühj–h²hubj?)�”}”(hhh]”hÝ)�”}”(hŒallocate request data structure”h]”hŒallocate request data structure”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mühjáh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hj–h²hh³j®h´Müubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajüjbjüjc‰jd‰je‰uh1jÖh²hhj¡h³Nh´Nubjg)�”}”(hXÕ**Parameters** ``struct crypto_aead *tfm`` cipher handle to be registered with the request ``gfp_t gfp`` memory allocation flag that is handed to kmalloc by the API call. **Description** Allocate the request data structure that must be used with the AEAD encrypt and decrypt API calls. During the allocation, the provided aead handle is registered in the request data structure. **Return** allocated request handle in case of success, or NULL if out of memory”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhj ubjµ)�”}”(hhh]”(jº)�”}”(hŒL``struct crypto_aead *tfm`` cipher handle to be registered with the request ”h]”(jÀ)�”}”(hŒ``struct crypto_aead *tfm``”h]”jÆ)�”}”(hj% h]”hŒstruct crypto_aead *tfm”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj# ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mýhj ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ/cipher handle to be registered with the request”h]”hŒ/cipher handle to be registered with the request”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j: h´Mýhj; ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j: h´Mýhj ubjº)�”}”(hŒP``gfp_t gfp`` memory allocation flag that is handed to kmalloc by the API call. ”h]”(jÀ)�”}”(hŒ ``gfp_t gfp``”h]”jÆ)�”}”(hj^ h]”hŒ gfp_t gfp”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj\ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MþhjX ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒAmemory allocation flag that is handed to kmalloc by the API call.”h]”hŒAmemory allocation flag that is handed to kmalloc by the API call.”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³js h´Mþhjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjX ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³js h´Mþhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hj ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj™ h]”hŒ Description”…”�”}”(hj› h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj— ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhj ubhÝ)�”}”(hŒ¿Allocate the request data structure that must be used with the AEAD encrypt and decrypt API calls. During the allocation, the provided aead handle is registered in the request data structure.”h]”hŒ¿Allocate the request data structure that must be used with the AEAD encrypt and decrypt API calls. During the allocation, the provided aead handle is registered in the request data structure.”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mÿhj ubhÝ)�”}”(hŒ **Return**”h]”jq)�”}”(hjÀ h]”hŒReturn”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj¾ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhj ubhÝ)�”}”(hŒEallocated request handle in case of success, or NULL if out of memory”h]”hŒEallocated request handle in case of success, or NULL if out of memory”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhj¡h²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒaead_request_free (C function)”Œc.aead_request_free”hNt”auh1jÄhj¡h²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒ1void aead_request_free (struct aead_request *req)”h]”jâ)�”}”(hŒ0void aead_request_free(struct aead_request *req)”h]”(j¢)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hj!h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj!h²hh³j!h´Mubj )�”}”(hŒaead_request_free”h]”j)�”}”(hŒaead_request_free”h]”hŒaead_request_free”…”�”}”(hj&!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj"!ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hj!h²hh³j!h´Mubjz)�”}”(hŒ(struct aead_request *req)”h]”j€)�”}”(hŒstruct aead_request *req”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hjB!h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj>!ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjO!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj>!ubh)�”}”(hhh]”j)�”}”(hŒ aead_request”h]”hŒ aead_request”…”�”}”(hj`!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj]!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jb!Œmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0j(!sbŒc.aead_request_free”†”asbuh1hhj>!ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj>!ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjŽ!h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj>!ubj)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj›!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj>!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj:!ubah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhj!h²hh³j!h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjý h²hh³j!h´Mubah}”(h]”jø ah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³j!h´Mhjú h²hubj?)�”}”(hhh]”hÝ)�”}”(hŒ'zeroize and free request data structure”h]”hŒ'zeroize and free request data structure”…”�”}”(hjÅ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MhjÂ!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjú h²hh³j!h´Mubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajÝ!jbjÝ!jc‰jd‰je‰uh1jÖh²hhj¡h³Nh´Nubjg)�”}”(hŒ_**Parameters** ``struct aead_request *req`` request data structure cipher handle to be freed”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjç!h]”hŒ Parameters”…”�”}”(hjé!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjå!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhjá!ubjµ)�”}”(hhh]”jº)�”}”(hŒM``struct aead_request *req`` request data structure cipher handle to be freed”h]”(jÀ)�”}”(hŒ``struct aead_request *req``”h]”jÆ)�”}”(hj"h]”hŒstruct aead_request *req”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhj"ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ0request data structure cipher handle to be freed”h]”hŒ0request data structure cipher handle to be freed”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j"h´Mhjý!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j´hjá!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhj¡h²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ&aead_request_set_callback (C function)”Œc.aead_request_set_callback”hNt”auh1jÄhj¡h²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒkvoid aead_request_set_callback (struct aead_request *req, u32 flags, crypto_completion_t compl, void *data)”h]”jâ)�”}”(hŒjvoid aead_request_set_callback(struct aead_request *req, u32 flags, crypto_completion_t compl, void *data)”h]”(j¢)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj`"h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hj\"h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj\"h²hh³jn"h´Mubj )�”}”(hŒaead_request_set_callback”h]”j)�”}”(hŒaead_request_set_callback”h]”hŒaead_request_set_callback”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj}"ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hj\"h²hh³jn"h´Mubjz)�”}”(hŒL(struct aead_request *req, u32 flags, crypto_completion_t compl, void *data)”h]”(j€)�”}”(hŒstruct aead_request *req”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj™"ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj™"ubh)�”}”(hhh]”j)�”}”(hŒ aead_request”h]”hŒ aead_request”…”�”}”(hj»"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¸"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j½"Œmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0jƒ"sbŒc.aead_request_set_callback”†”asbuh1hhj™"ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛ"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj™"ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjé"h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj™"ubj)�”}”(hŒreq”h]”hŒreq”…”�”}”(hjö"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj™"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj•"ubj€)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”j)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j#Œmodname”NŒ classname”Nj4j7)�”}”j:]”j×"Œc.aead_request_set_callback”†”asbuh1hhj #ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj #ubj)�”}”(hŒflags”h]”hŒflags”…”�”}”(hj>#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj #ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj•"ubj€)�”}”(hŒcrypto_completion_t compl”h]”(h)�”}”(hhh]”j)�”}”(hŒcrypto_completion_t”h]”hŒcrypto_completion_t”…”�”}”(hjZ#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjW#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j\#Œmodname”NŒ classname”Nj4j7)�”}”j:]”j×"Œc.aead_request_set_callback”†”asbuh1hhjS#ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjS#ubj)�”}”(hŒcompl”h]”hŒcompl”…”�”}”(hj†#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjS#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj•"ubj€)�”}”(hŒ void *data”h]”(j¢)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŸ#h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hj›#ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj›#ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hj»#h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj›#ubj)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÈ#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj›#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj•"ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhj\"h²hh³jn"h´Mubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjX"h²hh³jn"h´Mubah}”(h]”jS"ah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jn"h´MhjU"h²hubj?)�”}”(hhh]”hÝ)�”}”(hŒ"set asynchronous callback function”h]”hŒ"set asynchronous callback function”…”�”}”(hjò#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhjï#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjU"h²hh³jn"h´Mubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jaj $jbj $jc‰jd‰je‰uh1jÖh²hhj¡h³Nh´Nubjg)�”}”(hXù**Parameters** ``struct aead_request *req`` request handle ``u32 flags`` specify zero or an ORing of the flags CRYPTO_TFM_REQ_MAY_BACKLOG the request queue may back log and increase the wait queue beyond the initial maximum size; CRYPTO_TFM_REQ_MAY_SLEEP the request processing may sleep ``crypto_completion_t compl`` callback function pointer to be registered with the request handle ``void *data`` The data pointer refers to memory that is not used by the kernel crypto API, but provided to the callback function for it to use. Here, the caller can provide a reference to memory the callback function can operate on. As the callback function is invoked asynchronously to the related functionality, it may need to access data structures of the related functionality which can be referenced using this pointer. The callback function can access the memory via the "data" field in the crypto_async_request data structure provided to the callback function. **Description** Setting the callback function that is triggered once the cipher operation completes The callback function is registered with the aead_request handle and must comply with the following template:: void callback_function(struct crypto_async_request *req, int error)”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hj$h]”hŒ Parameters”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M!hj$ubjµ)�”}”(hhh]”(jº)�”}”(hŒ,``struct aead_request *req`` request handle ”h]”(jÀ)�”}”(hŒ``struct aead_request *req``”h]”jÆ)�”}”(hj3$h]”hŒstruct aead_request *req”…”�”}”(hj5$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj1$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhj-$ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒrequest handle”h]”hŒrequest handle”…”�”}”(hjL$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jH$h´MhjI$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj-$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jH$h´Mhj*$ubjº)�”}”(hŒå``u32 flags`` specify zero or an ORing of the flags CRYPTO_TFM_REQ_MAY_BACKLOG the request queue may back log and increase the wait queue beyond the initial maximum size; CRYPTO_TFM_REQ_MAY_SLEEP the request processing may sleep ”h]”(jÀ)�”}”(hŒ ``u32 flags``”h]”jÆ)�”}”(hjl$h]”hŒ u32 flags”…”�”}”(hjn$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M"hjf$ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒÖspecify zero or an ORing of the flags CRYPTO_TFM_REQ_MAY_BACKLOG the request queue may back log and increase the wait queue beyond the initial maximum size; CRYPTO_TFM_REQ_MAY_SLEEP the request processing may sleep”h]”hŒÖspecify zero or an ORing of the flags CRYPTO_TFM_REQ_MAY_BACKLOG the request queue may back log and increase the wait queue beyond the initial maximum size; CRYPTO_TFM_REQ_MAY_SLEEP the request processing may sleep”…”�”}”(hj…$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mhj‚$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjf$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j�$h´M"hj*$ubjº)�”}”(hŒa``crypto_completion_t compl`` callback function pointer to be registered with the request handle ”h]”(jÀ)�”}”(hŒ``crypto_completion_t compl``”h]”jÆ)�”}”(hj¦$h]”hŒcrypto_completion_t compl”…”�”}”(hj¨$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj¤$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M#hj $ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒBcallback function pointer to be registered with the request handle”h]”hŒBcallback function pointer to be registered with the request handle”…”�”}”(hj¿$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j»$h´M#hj¼$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj $ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j»$h´M#hj*$ubjº)�”}”(hX9``void *data`` The data pointer refers to memory that is not used by the kernel crypto API, but provided to the callback function for it to use. Here, the caller can provide a reference to memory the callback function can operate on. As the callback function is invoked asynchronously to the related functionality, it may need to access data structures of the related functionality which can be referenced using this pointer. The callback function can access the memory via the "data" field in the crypto_async_request data structure provided to the callback function. ”h]”(jÀ)�”}”(hŒ``void *data``”h]”jÆ)�”}”(hjß$h]”hŒ void *data”…”�”}”(hjá$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjÝ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M+hjÙ$ubjÜ)�”}”(hhh]”hÝ)�”}”(hX)The data pointer refers to memory that is not used by the kernel crypto API, but provided to the callback function for it to use. Here, the caller can provide a reference to memory the callback function can operate on. As the callback function is invoked asynchronously to the related functionality, it may need to access data structures of the related functionality which can be referenced using this pointer. The callback function can access the memory via the "data" field in the crypto_async_request data structure provided to the callback function.”•}fh]”hX-The data pointer refers to memory that is not used by the kernel crypto API, but provided to the callback function for it to use. Here, the caller can provide a reference to memory the callback function can operate on. As the callback function is invoked asynchronously to the related functionality, it may need to access data structures of the related functionality which can be referenced using this pointer. The callback function can access the memory via the “dataâ€� field in the crypto_async_request data structure provided to the callback function.”…”�”}”(hjø$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M$hjõ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÙ$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jô$h´M+hj*$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hj$ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj%h]”hŒ Description”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M-hj$ubhÝ)�”}”(hŒSSetting the callback function that is triggered once the cipher operation completes”h]”hŒSSetting the callback function that is triggered once the cipher operation completes”…”�”}”(hj1%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M,hj$ubhÝ)�”}”(hŒnThe callback function is registered with the aead_request handle and must comply with the following template::”h]”hŒmThe callback function is registered with the aead_request handle and must comply with the following template:”…”�”}”(hj@%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M/hj$ubjŒ)�”}”(hŒCvoid callback_function(struct crypto_async_request *req, int error)”h]”hŒCvoid callback_function(struct crypto_async_request *req, int error)”…”�”}”hjO%sbah}”(h]”h ]”h"]”h$]”h&]”j(j)uh1j‹h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M2hj$ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhj¡h²hh³Nh´NubjÅ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÑŒ#aead_request_set_crypt (C function)”Œc.aead_request_set_crypt”hNt”auh1jÄhj¡h²hh³Nh´Nubj×)�”}”(hhh]”(jÜ)�”}”(hŒ‡void aead_request_set_crypt (struct aead_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int cryptlen, u8 *iv)”h]”jâ)�”}”(hŒ†void aead_request_set_crypt(struct aead_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int cryptlen, u8 *iv)”h]”(j¢)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj~%h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjz%h²hh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M@ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjz%h²hh³jŒ%h´M@ubj )�”}”(hŒaead_request_set_crypt”h]”j)�”}”(hŒaead_request_set_crypt”h]”hŒaead_request_set_crypt”…”�”}”(hjŸ%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj›%ubah}”(h]”h ]”(j#j$eh"]”h$]”h&]”j(j)uh1j hjz%h²hh³jŒ%h´M@ubjz)�”}”(hŒk(struct aead_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int cryptlen, u8 *iv)”h]”(j€)�”}”(hŒstruct aead_request *req”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj»%h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj·%ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈ%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj·%ubh)�”}”(hhh]”j)�”}”(hŒ aead_request”h]”hŒ aead_request”…”�”}”(hjÙ%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÖ%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jÛ%Œmodname”NŒ classname”Nj4j7)�”}”j:]”j=)�”}”j0j¡%sbŒc.aead_request_set_crypt”†”asbuh1hhj·%ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj·%ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj·%ubj)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj·%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj³%ubj€)�”}”(hŒstruct scatterlist *src”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj-&h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj)&ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj)&ubh)�”}”(hhh]”j)�”}”(hŒ scatterlist”h]”hŒ scatterlist”…”�”}”(hjK&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjH&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jM&Œmodname”NŒ classname”Nj4j7)�”}”j:]”jõ%Œc.aead_request_set_crypt”†”asbuh1hhj)&ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hji&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj)&ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjw&h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj)&ubj)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hj„&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj)&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj³%ubj€)�”}”(hŒstruct scatterlist *dst”h]”(jè)�”}”(hjëh]”hŒstruct”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”jôah"]”h$]”h&]”uh1jçhj™&ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj™&ubh)�”}”(hhh]”j)�”}”(hŒ scatterlist”h]”hŒ scatterlist”…”�”}”(hj»&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¸&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”j½&Œmodname”NŒ classname”Nj4j7)�”}”j:]”jõ%Œc.aead_request_set_crypt”†”asbuh1hhj™&ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj™&ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hjç&h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhj™&ubj)�”}”(hŒdst”h]”hŒdst”…”�”}”(hjô&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj™&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj³%ubj€)�”}”(hŒunsigned int cryptlen”h]”(j¢)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj 'h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hj 'ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj 'ubj¢)�”}”(hŒint”h]”hŒint”…”�”}”(hj)'h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hj 'ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhj 'ubj)�”}”(hŒcryptlen”h]”hŒcryptlen”…”�”}”(hjE'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj 'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj³%ubj€)�”}”(hŒu8 *iv”h]”(h)�”}”(hhh]”j)�”}”(hŒu8”h]”hŒu8”…”�”}”(hja'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj^'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j[Œreftype”j0Œ reftarget”jc'Œmodname”NŒ classname”Nj4j7)�”}”j:]”jõ%Œc.aead_request_set_crypt”†”asbuh1hhjZ'ubjú)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jùhjZ'ubjR)�”}”(hjUh]”hŒ*”…”�”}”(hj�'h²hh³Nh´Nubah}”(h]”h ]”j^ah"]”h$]”h&]”uh1jQhjZ'ubj)�”}”(hŒiv”h]”hŒiv”…”�”}”(hjš'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjZ'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj(j)uh1jhj³%ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)uh1jyhjz%h²hh³jŒ%h´M@ubeh}”(h]”h ]”h"]”h$]”h&]”j(j)j0ˆuh1jáj1j2hjv%h²hh³jŒ%h´M@ubah}”(h]”jq%ah ]”(j6j7eh"]”h$]”h&]”j;ˆj<)j=huh1jÛh³jŒ%h´M@hjs%h²hubj?)�”}”(hhh]”hÝ)�”}”(hŒset data buffers”h]”hŒset data buffers”…”�”}”(hjÄ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´M@hjÁ'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j>hjs%h²hh³jŒ%h´M@ubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jajÜ'jbjÜ'jc‰jd‰je‰uh1jÖh²hhj¡h³Nh´Nubjg)�”}”(hXc**Parameters** ``struct aead_request *req`` request handle ``struct scatterlist *src`` source scatter / gather list ``struct scatterlist *dst`` destination scatter / gather list ``unsigned int cryptlen`` number of bytes to process from **src** ``u8 *iv`` IV for the cipher operation which must comply with the IV size defined by crypto_aead_ivsize() **Description** Setting the source data and destination data scatter / gather lists which hold the associated data concatenated with the plaintext or ciphertext. See below for the authentication tag. For encryption, the source is treated as the plaintext and the destination is the ciphertext. For a decryption operation, the use is reversed - the source is the ciphertext and the destination is the plaintext. The memory structure for cipher operation has the following structure: - AEAD encryption input: assoc data || plaintext - AEAD encryption output: assoc data || ciphertext || auth tag - AEAD decryption input: assoc data || ciphertext || auth tag - AEAD decryption output: assoc data || plaintext Albeit the kernel requires the presence of the AAD buffer, however, the kernel does not fill the AAD buffer in the output case. If the caller wants to have that data buffer filled, the caller must either use an in-place cipher operation (i.e. same memory location for input/output memory location).”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjæ'h]”hŒ Parameters”…”�”}”(hjè'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjä'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MDhjà'ubjµ)�”}”(hhh]”(jº)�”}”(hŒ,``struct aead_request *req`` request handle ”h]”(jÀ)�”}”(hŒ``struct aead_request *req``”h]”jÆ)�”}”(hj(h]”hŒstruct aead_request *req”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MAhjÿ'ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒrequest handle”h]”hŒrequest handle”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j(h´MAhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjÿ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j(h´MAhjü'ubjº)�”}”(hŒ9``struct scatterlist *src`` source scatter / gather list ”h]”(jÀ)�”}”(hŒ``struct scatterlist *src``”h]”jÆ)�”}”(hj>(h]”hŒstruct scatterlist *src”…”�”}”(hj@(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj<(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MBhj8(ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒsource scatter / gather list”h]”hŒsource scatter / gather list”…”�”}”(hjW(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jS(h´MBhjT(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhj8(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jS(h´MBhjü'ubjº)�”}”(hŒ>``struct scatterlist *dst`` destination scatter / gather list ”h]”(jÀ)�”}”(hŒ``struct scatterlist *dst``”h]”jÆ)�”}”(hjw(h]”hŒstruct scatterlist *dst”…”�”}”(hjy(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhju(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MChjq(ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ!destination scatter / gather list”h]”hŒ!destination scatter / gather list”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jŒ(h´MChj�(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjq(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jŒ(h´MChjü'ubjº)�”}”(hŒB``unsigned int cryptlen`` number of bytes to process from **src** ”h]”(jÀ)�”}”(hŒ``unsigned int cryptlen``”h]”jÆ)�”}”(hj°(h]”hŒunsigned int cryptlen”…”�”}”(hj²(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhj®(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MDhjª(ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ'number of bytes to process from **src**”h]”(hŒ number of bytes to process from ”…”�”}”(hjÉ(h²hh³Nh´Nubjq)�”}”(hŒ**src**”h]”hŒsrc”…”�”}”(hjÑ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÉ(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÅ(h´MDhjÆ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjª(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jÅ(h´MDhjü'ubjº)�”}”(hŒj``u8 *iv`` IV for the cipher operation which must comply with the IV size defined by crypto_aead_ivsize() ”h]”(jÀ)�”}”(hŒ ``u8 *iv``”h]”jÆ)�”}”(hj÷(h]”hŒu8 *iv”…”�”}”(hjù(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjõ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MFhjñ(ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ^IV for the cipher operation which must comply with the IV size defined by crypto_aead_ivsize()”h]”hŒ^IV for the cipher operation which must comply with the IV size defined by crypto_aead_ivsize()”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MEhj )ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjñ(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j )h´MFhjü'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hjà'ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hj3)h]”hŒ Description”…”�”}”(hj5)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj1)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MHhjà'ubhÝ)�”}”(hŒ·Setting the source data and destination data scatter / gather lists which hold the associated data concatenated with the plaintext or ciphertext. See below for the authentication tag.”h]”hŒ·Setting the source data and destination data scatter / gather lists which hold the associated data concatenated with the plaintext or ciphertext. See below for the authentication tag.”…”�”}”(hjI)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MGhjà'ubhÝ)�”}”(hŒÒFor encryption, the source is treated as the plaintext and the destination is the ciphertext. For a decryption operation, the use is reversed - the source is the ciphertext and the destination is the plaintext.”h]”hŒÒFor encryption, the source is treated as the plaintext and the destination is the ciphertext. For a decryption operation, the use is reversed - the source is the ciphertext and the destination is the plaintext.”…”�”}”(hjX)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MKhjà'ubhÝ)�”}”(hŒFThe memory structure for cipher operation has the following structure:”h]”hŒFThe memory structure for cipher operation has the following structure:”…”�”}”(hjg)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MOhjà'ubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ/AEAD encryption input: assoc data || plaintext”h]”hÝ)�”}”(hj)h]”hŒ/AEAD encryption input: assoc data || plaintext”…”�”}”(hj�)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MQhj})ubah}”(h]”h ]”h"]”h$]”h&]”uh1j{)hjx)ubj|))�”}”(hŒhj *h²hh³j#*h´Miubeh}”(h]”h ]”(j[Œfunction”eh"]”h$]”h&]”j`j[jaj>+jbj>+jc‰jd‰je‰uh1jÖh²hhj¡h³Nh´Nubjg)�”}”(hŒâ**Parameters** ``struct aead_request *req`` request handle ``unsigned int assoclen`` number of bytes in associated data **Description** Setting the AD information. This function sets the length of the associated data.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jq)�”}”(hjH+h]”hŒ Parameters”…”�”}”(hjJ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjF+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MmhjB+ubjµ)�”}”(hhh]”(jº)�”}”(hŒ,``struct aead_request *req`` request handle ”h]”(jÀ)�”}”(hŒ``struct aead_request *req``”h]”jÆ)�”}”(hjg+h]”hŒstruct aead_request *req”…”�”}”(hji+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhje+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mjhja+ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒrequest handle”h]”hŒrequest handle”…”�”}”(hj€+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j|+h´Mjhj}+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhja+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³j|+h´Mjhj^+ubjº)�”}”(hŒ=``unsigned int assoclen`` number of bytes in associated data ”h]”(jÀ)�”}”(hŒ``unsigned int assoclen``”h]”jÆ)�”}”(hj +h]”hŒunsigned int assoclen”…”�”}”(hj¢+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÅhjž+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¿h³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´Mkhjš+ubjÜ)�”}”(hhh]”hÝ)�”}”(hŒ"number of bytes in associated data”h]”hŒ"number of bytes in associated data”…”�”}”(hj¹+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jµ+h´Mkhj¶+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÛhjš+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹h³jµ+h´Mkhj^+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hjB+ubhÝ)�”}”(hŒ**Description**”h]”jq)�”}”(hjÛ+h]”hŒ Description”…”�”}”(hjÝ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÙ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MmhjB+ubhÝ)�”}”(hŒRSetting the AD information. This function sets the length of the associated data.”h]”hŒRSetting the AD information. This function sets the length of the associated data.”…”�”}”(hjñ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒU/var/lib/git/docbuild/linux/Documentation/crypto/api-aead:25: ./include/crypto/aead.h”h´MlhjB+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jfhj¡h²hh³Nh´Nubeh}”(h]”Œ asynchronous-aead-request-handle”ah ]”h"]”Œ asynchronous aead request handle”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubeh}”(h]”Œ2authenticated-encryption-with-associated-data-aead”ah ]”h"]”Œ4authenticated encryption with associated data (aead)”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j:,Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j,j,jÎjËjžj›j ,j ,uŒ nametypes”}”(j,‰jΉjž‰j ,‰uh}”(j,h·jËhËjÓjÝjjjoj›jÑjîjójÕ jÚ jh jm j,j1jÿjjÃjÈj­j²jßjäjÂjÇj ,j¡jÍjÒjjjoj”j™jø jý jS"jX"jq%jv%j*j *uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.