€•=Œ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”Œ6/translations/zh_CN/crypto/libcrypto-unauth-encryption”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/zh_TW/crypto/libcrypto-unauth-encryption”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/it_IT/crypto/libcrypto-unauth-encryption”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/ja_JP/crypto/libcrypto-unauth-encryption”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/ko_KR/crypto/libcrypto-unauth-encryption”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/pt_BR/crypto/libcrypto-unauth-encryption”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/sp_SP/crypto/libcrypto-unauth-encryption”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ)SPDX-License-Identifier: GPL-2.0-or-later”h]”hŒ)SPDX-License-Identifier: GPL-2.0-or-later”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒP/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒUnauthenticated encryption”h]”hŒUnauthenticated encryption”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒåThese APIs provide support for unauthenticated encryption and decryption, including bare stream ciphers and other length-preserving algorithms such as block ciphers in XTS mode. The legitimate use cases for these algorithms are:”h]”hŒåThese APIs provide support for unauthenticated encryption and decryption, including bare stream ciphers and other length-preserving algorithms such as block ciphers in XTS mode. The legitimate use cases for these algorithms are:”…”�”}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒƒSupport for legacy protocols that really should have chosen an authenticated mode (or even another primitive entirely) but didn't. ”h]”hÞ)�”}”(hŒ‚Support for legacy protocols that really should have chosen an authenticated mode (or even another primitive entirely) but didn't.”h]”hŒ„Support for legacy protocols that really should have chosen an authenticated mode (or even another primitive entirely) but didn’t.”…”�”}”(hhøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhôubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhhïh²hh³hÇh´Nubhó)�”}”(hŒmInternal components of authenticated modes. For example, AES-CTR is used by AES-GCM and AES-CCM internally. ”h]”hÞ)�”}”(hŒlInternal components of authenticated modes. For example, AES-CTR is used by AES-GCM and AES-CCM internally.”h]”hŒlInternal components of authenticated modes. For example, AES-CTR is used by AES-GCM and AES-CCM internally.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhhïh²hh³hÇh´Nubhó)�”}”(hŒdStorage encryption that cannot accommodate ciphertext expansion. Usually AES-XTS is used for this. ”h]”hÞ)�”}”(hŒcStorage encryption that cannot accommodate ciphertext expansion. Usually AES-XTS is used for this.”h]”hŒcStorage encryption that cannot accommodate ciphertext expansion. Usually AES-XTS is used for this.”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhhïh²hh³hÇh´Nubhó)�”}”(hŒ@Stream ciphers for key derivation and random number generation. ”h]”hÞ)�”}”(hŒ?Stream ciphers for key derivation and random number generation.”h]”hŒ?Stream ciphers for key derivation and random number generation.”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhhïh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1híh³hÇh´K hhÊh²hubhÞ)�”}”(hŒ+Besides the above, these shouldn't be used.”h]”hŒ-Besides the above, these shouldn’t be used.”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAES-CBC and AES-CBC-CTS”h]”hŒAES-CBC and AES-CBC-CTS”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjjh²hh³hÇh´KubhÞ)�”}”(hŒLThis API provides support for AES in the CBC and CBC-CTS modes of operation.”h]”hŒLThis API provides support for AES in the CBC and CBC-CTS modes of operation.”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjjh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œaes_cbc_encrypt (C function)”Œc.aes_cbc_encrypt”hNt”auh1j‰hjjh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒlvoid aes_cbc_encrypt (u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”hŒdesc_signature_line”“”)�”}”(hŒkvoid aes_cbc_encrypt(u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j«hj§h²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K ubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j½hj§h²hh³j¼h´K ubhŒ desc_name”“”)�”}”(hŒaes_cbc_encrypt”h]”hŒ desc_sig_name”“”)�”}”(hŒaes_cbc_encrypt”h]”hŒaes_cbc_encrypt”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jÔhjÐubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jÎhj§h²hh³j¼h´K ubhŒdesc_parameterlist”“”)�”}”(hŒW(u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”(hŒdesc_parameter”“”)�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjùubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”jþŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jŒ ASTIdentifier”“”)�”}”jjØsbŒc.aes_cbc_encrypt”†”asbuh1hhjõubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjõubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j3hjõubjÕ)�”}”(hŒdst”h]”hŒdst”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjõubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjïubjô)�”}”(hŒ const u8 *src”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒconst”h]”hŒconst”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j]hjYubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjYubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j�Œmodname”NŒ classname”Njj)�”}”j]”j!Œc.aes_cbc_encrypt”†”asbuh1hhjYubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjYubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjYubjÕ)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjïubjô)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÑubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jÖŒmodname”NŒ classname”Njj)�”}”j]”j!Œc.aes_cbc_encrypt”†”asbuh1hhjÍubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÍubjÕ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjïubjô)�”}”(hŒu8 iv[static AES_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jŒmodname”NŒ classname”Njj)�”}”j]”j!Œc.aes_cbc_encrypt”†”asbuh1hhjubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjubjÕ)�”}”(hŒiv”h]”hŒiv”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjubj4)�”}”(hŒ[”h]”hŒ[”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjubj^)�”}”(hŒstatic”h]”hŒstatic”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjubh)�”}”(hhh]”jÕ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj€ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j…Œmodname”NŒ classname”Njj)�”}”j]”j!Œc.aes_cbc_encrypt”†”asbuh1hhjubj4)�”}”(hŒ]”h]”hŒ]”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjïubjô)�”}”(hŒaes_encrypt_arg key”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒaes_encrypt_arg”h]”hŒaes_encrypt_arg”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjºubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j¿Œmodname”NŒ classname”Njj)�”}”j]”j!Œc.aes_cbc_encrypt”†”asbuh1hhj¶ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj¶ubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj¶ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjïubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhj§h²hh³j¼h´K ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j¥Œsphinx_line_type”Œ declarator”hj¡h²hh³j¼h´K ubah}”(h]”j˜ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jŸh³j¼h´K hjœh²hubhŒ desc_content”“”)�”}”(hhh]”hÞ)�”}”(hŒEncrypt data using AES-CBC”h]”hŒEncrypt data using AES-CBC”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœh²hh³j¼h´K ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”Œdomain”jŒobjtype”j5Œdesctype”j5Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jšh²hhjjh³Nh´NubhŒ container”“”)�”}”(hX×**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to encrypt. Must be a multiple of AES_BLOCK_SIZE. ``u8 iv[static AES_BLOCK_SIZE]`` The initialization vector. It is updated with the next value, i.e. the last ciphertext block (or left unchanged if **len** == 0). ``aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() **Description** This supports incremental encryption. The length of each chunk must be a multiple of AES_BLOCK_SIZE, and the updated **iv** must be passed in each time. **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hjGh]”hŒ Parameters”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KhjAubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(hŒterm”“”)�”}”(hŒ ``u8 *dst``”h]”hŒliteral”“”)�”}”(hjnh]”hŒu8 *dst”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KhjfubhŒ definition”“”)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´Khjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjfubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j…h´Khjaubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hj¬h]”hŒ const u8 *src”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´Khj¦ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÁh´KhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jÁh´Khjaubje)�”}”(hŒR``size_t len`` Number of bytes to encrypt. Must be a multiple of AES_BLOCK_SIZE. ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hjåh]”hŒ size_t len”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjãubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´Khjßubj‡)�”}”(hhh]”hÞ)�”}”(hŒBNumber of bytes to encrypt. Must be a multiple of AES_BLOCK_SIZE.”h]”hŒBNumber of bytes to encrypt. Must be a multiple of AES_BLOCK_SIZE.”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³júh´Khjûubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³júh´Khjaubje)�”}”(hŒ¤``u8 iv[static AES_BLOCK_SIZE]`` The initialization vector. It is updated with the next value, i.e. the last ciphertext block (or left unchanged if **len** == 0). ”h]”(jk)�”}”(hŒ ``u8 iv[static AES_BLOCK_SIZE]``”h]”jq)�”}”(hjh]”hŒu8 iv[static AES_BLOCK_SIZE]”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´Khjubj‡)�”}”(hhh]”hÞ)�”}”(hŒ‚The initialization vector. It is updated with the next value, i.e. the last ciphertext block (or left unchanged if **len** == 0).”h]”(hŒtThe initialization vector. It is updated with the next value, i.e. the last ciphertext block (or left unchanged if ”…”�”}”(hj7h²hh³Nh´NubjJ)�”}”(hŒ**len**”h]”hŒlen”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj7ubhŒ == 0).”…”�”}”(hj7h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´Khj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j3h´Khjaubje)�”}”(hŒ```aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() ”h]”(jk)�”}”(hŒ``aes_encrypt_arg key``”h]”jq)�”}”(hjjh]”hŒaes_encrypt_arg key”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´Khjdubj‡)�”}”(hhh]”hÞ)�”}”(hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”h]”hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´Khj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjdubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jh´Khjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hjAubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hj¥h]”hŒ Description”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KhjAubhÞ)�”}”(hŒ™This supports incremental encryption. The length of each chunk must be a multiple of AES_BLOCK_SIZE, and the updated **iv** must be passed in each time.”h]”(hŒvThis supports incremental encryption. The length of each chunk must be a multiple of AES_BLOCK_SIZE, and the updated ”…”�”}”(hj»h²hh³Nh´NubjJ)�”}”(hŒ**iv**”h]”hŒiv”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj»ubhŒ must be passed in each time.”…”�”}”(hj»h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KhjAubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hjÞh]”hŒContext”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KhjAubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KhjAubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hjjh²hh³Nh´NubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œaes_cbc_decrypt (C function)”Œc.aes_cbc_decrypt”hNt”auh1j‰hjjh²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒrvoid aes_cbc_decrypt (u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], const struct aes_key *key)”h]”j¦)�”}”(hŒqvoid aes_cbc_decrypt(u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], const struct aes_key *key)”h]”(j¬)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjh²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´Kubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjh²hh³j1h´KubjÏ)�”}”(hŒaes_cbc_decrypt”h]”jÕ)�”}”(hŒaes_cbc_decrypt”h]”hŒaes_cbc_decrypt”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj@ubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhjh²hh³j1h´Kubjî)�”}”(hŒ](u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], const struct aes_key *key)”h]”(jô)�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj`ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jeŒmodname”NŒ classname”Njj)�”}”j]”j )�”}”jjFsbŒc.aes_cbc_decrypt”†”asbuh1hhj\ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj\ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj\ubjÕ)�”}”(hŒdst”h]”hŒdst”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj\ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjXubjô)�”}”(hŒ const u8 *src”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj³ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj³ubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j׌modname”NŒ classname”Njj)�”}”j]”jŒc.aes_cbc_decrypt”†”asbuh1hhj³ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj³ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj³ubjÕ)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjXubjô)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j,Œmodname”NŒ classname”Njj)�”}”j]”jŒc.aes_cbc_decrypt”†”asbuh1hhj#ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj#ubjÕ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjXubjô)�”}”(hŒu8 iv[static AES_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjoubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jtŒmodname”NŒ classname”Njj)�”}”j]”jŒc.aes_cbc_decrypt”†”asbuh1hhjkubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjkubjÕ)�”}”(hŒiv”h]”hŒiv”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjkubj4)�”}”(hjXh]”hŒ[”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjkubj^)�”}”(hjfh]”hŒstatic”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjkubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjkubh)�”}”(hhh]”jÕ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÔubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jÙŒmodname”NŒ classname”Njj)�”}”j]”jŒc.aes_cbc_decrypt”†”asbuh1hhjkubj4)�”}”(hj£h]”hŒ]”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjkubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjXubjô)�”}”(hŒconst struct aes_key *key”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj ubj^)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj ubh)�”}”(hhh]”jÕ)�”}”(hŒaes_key”h]”hŒaes_key”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjDubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jIŒmodname”NŒ classname”Njj)�”}”j]”jŒc.aes_cbc_decrypt”†”asbuh1hhj ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj ubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjXubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhjh²hh³j1h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hjh²hh³j1h´Kubah}”(h]”jah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³j1h´Khjh²hubj)�”}”(hhh]”hÞ)�”}”(hŒDecrypt data using AES-CBC”h]”hŒDecrypt data using AES-CBC”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´Khj§h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³j1h´Kubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j9jj:jÂj;jÂj<‰j=‰j>‰uh1jšh²hhjjh³Nh´Nubj@)�”}”(hXÆ**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to decrypt. Must be a multiple of AES_BLOCK_SIZE. ``u8 iv[static AES_BLOCK_SIZE]`` The initialization vector. It is updated with the next value, i.e. the last ciphertext block (or left unchanged if **len** == 0). ``const struct aes_key *key`` The key, already prepared using aes_preparekey() **Description** This supports incremental decryption. The length of each chunk must be a multiple of AES_BLOCK_SIZE, and the updated **iv** must be passed in each time. **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hjÌh]”hŒ Parameters”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K#hjÆubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(hjëh]”hŒu8 *dst”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K!hjåubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j h´K!hjâubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hj% h]”hŒ const u8 *src”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj# ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K"hj ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(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&]”uh1jdh³j: h´K"hjâubje)�”}”(hŒR``size_t len`` Number of bytes to decrypt. Must be a multiple of AES_BLOCK_SIZE. ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hj^ h]”hŒ size_t len”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj\ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K#hjX ubj‡)�”}”(hhh]”hÞ)�”}”(hŒBNumber of bytes to decrypt. Must be a multiple of AES_BLOCK_SIZE.”h]”hŒBNumber of bytes to decrypt. Must be a multiple of AES_BLOCK_SIZE.”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³js h´K#hjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjX ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³js h´K#hjâubje)�”}”(hŒ¤``u8 iv[static AES_BLOCK_SIZE]`` The initialization vector. It is updated with the next value, i.e. the last ciphertext block (or left unchanged if **len** == 0). ”h]”(jk)�”}”(hŒ ``u8 iv[static AES_BLOCK_SIZE]``”h]”jq)�”}”(hj— h]”hŒu8 iv[static AES_BLOCK_SIZE]”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj• ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K%hj‘ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ‚The initialization vector. It is updated with the next value, i.e. the last ciphertext block (or left unchanged if **len** == 0).”h]”(hŒtThe initialization vector. It is updated with the next value, i.e. the last ciphertext block (or left unchanged if ”…”�”}”(hj° h²hh³Nh´NubjJ)�”}”(hŒ**len**”h]”hŒlen”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj° ubhŒ == 0).”…”�”}”(hj° h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K$hj­ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj‘ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j¬ h´K%hjâubje)�”}”(hŒO``const struct aes_key *key`` The key, already prepared using aes_preparekey() ”h]”(jk)�”}”(hŒ``const struct aes_key *key``”h]”jq)�”}”(hjã h]”hŒconst struct aes_key *key”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjá ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K&hjÝ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ0The key, already prepared using aes_preparekey()”h]”hŒ0The key, already prepared using aes_preparekey()”…”�”}”(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&]”uh1jdh³jø h´K&hjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hjÆubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hj h]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K(hjÆubhÞ)�”}”(hŒ™This supports incremental decryption. The length of each chunk must be a multiple of AES_BLOCK_SIZE, and the updated **iv** must be passed in each time.”h]”(hŒvThis supports incremental decryption. The length of each chunk must be a multiple of AES_BLOCK_SIZE, and the updated ”…”�”}”(hj4 h²hh³Nh´NubjJ)�”}”(hŒ**iv**”h]”hŒiv”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj4 ubhŒ must be passed in each time.”…”�”}”(hj4 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K'hjÆubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hjW h]”hŒContext”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjU ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K*hjÆubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K+hjÆubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hjjh²hh³Nh´NubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œ aes_cbc_cts_encrypt (C function)”Œc.aes_cbc_cts_encrypt”hNt”auh1j‰hjjh²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒpvoid aes_cbc_cts_encrypt (u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”j¦)�”}”(hŒovoid aes_cbc_cts_encrypt(u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”(j¬)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj˜ h²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K1ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj˜ h²hh³jª h´K1ubjÏ)�”}”(hŒaes_cbc_cts_encrypt”h]”jÕ)�”}”(hŒaes_cbc_cts_encrypt”h]”hŒaes_cbc_cts_encrypt”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj¹ ubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhj˜ h²hh³jª h´K1ubjî)�”}”(hŒW(u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”(jô)�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÜ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÙ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jÞ Œmodname”NŒ classname”Njj)�”}”j]”j )�”}”jj¿ sbŒc.aes_cbc_cts_encrypt”†”asbuh1hhjÕ ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÕ ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÕ ubjÕ)�”}”(hŒdst”h]”hŒdst”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÕ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjÑ ubjô)�”}”(hŒ const u8 *src”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj, ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj, ubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjK ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jP Œmodname”NŒ classname”Njj)�”}”j]”jø Œc.aes_cbc_cts_encrypt”†”asbuh1hhj, ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj, ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjz h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj, ubjÕ)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hj‡ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj, ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjÑ ubjô)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj  ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j¥ Œmodname”NŒ classname”Njj)�”}”j]”jø Œc.aes_cbc_cts_encrypt”†”asbuh1hhjœ ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjœ ubjÕ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjœ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjÑ ubjô)�”}”(hŒu8 iv[static AES_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjè ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jí Œmodname”NŒ classname”Njj)�”}”j]”jø Œc.aes_cbc_cts_encrypt”†”asbuh1hhjä ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjä ubjÕ)�”}”(hŒiv”h]”hŒiv”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjä ubj4)�”}”(hjXh]”hŒ[”…”�”}”(hj% h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjä ubj^)�”}”(hjfh]”hŒstatic”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjä ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjä ubh)�”}”(hhh]”jÕ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjM ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jR Œmodname”NŒ classname”Njj)�”}”j]”jø Œc.aes_cbc_cts_encrypt”†”asbuh1hhjä ubj4)�”}”(hj£h]”hŒ]”…”�”}”(hjn h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjä ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjÑ ubjô)�”}”(hŒaes_encrypt_arg key”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒaes_encrypt_arg”h]”hŒaes_encrypt_arg”…”�”}”(hj‰ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj† ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j‹ Œmodname”NŒ classname”Njj)�”}”j]”jø Œc.aes_cbc_cts_encrypt”†”asbuh1hhj‚ ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§ h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj‚ ubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj‚ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjÑ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhj˜ h²hh³jª h´K1ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hj” h²hh³jª h´K1ubah}”(h]”j� ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³jª h´K1hj‘ h²hubj)�”}”(hhh]”hÞ)�”}”(hŒ,Encrypt data using AES-CBC-CTS (CS3 variant)”h]”hŒ,Encrypt data using AES-CBC-CTS (CS3 variant)”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K1hjÜ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‘ h²hh³jª h´K1ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j9jj:j÷ j;j÷ j<‰j=‰j>‰uh1jšh²hhjjh³Nh´Nubj@)�”}”(hXÍ**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to encrypt, at least AES_BLOCK_SIZE ``u8 iv[static AES_BLOCK_SIZE]`` The initialization vector, clobbered by this function ``aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjÿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K5hjû ubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(hj h]”hŒu8 *dst”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K3hj ubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K2hj6 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j5 h´K3hj ubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hjZ h]”hŒ const u8 *src”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjX ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K4hjT ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jo h´K4hjp ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjT ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jo h´K4hj ubje)�”}”(hŒC``size_t len`` Number of bytes to encrypt, at least AES_BLOCK_SIZE ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hj“ h]”hŒ size_t len”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj‘ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K5hj� ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ3Number of bytes to encrypt, at least AES_BLOCK_SIZE”h]”hŒ3Number of bytes to encrypt, at least AES_BLOCK_SIZE”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j¨ h´K5hj© ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j¨ h´K5hj ubje)�”}”(hŒW``u8 iv[static AES_BLOCK_SIZE]`` The initialization vector, clobbered by this function ”h]”(jk)�”}”(hŒ ``u8 iv[static AES_BLOCK_SIZE]``”h]”jq)�”}”(hjÌ h]”hŒu8 iv[static AES_BLOCK_SIZE]”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÊ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K6hjÆ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ5The initialization vector, clobbered by this function”h]”hŒ5The initialization vector, clobbered by this function”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³já h´K6hjâ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÆ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³já h´K6hj ubje)�”}”(hŒ```aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() ”h]”(jk)�”}”(hŒ``aes_encrypt_arg key``”h]”jq)�”}”(hjh]”hŒaes_encrypt_arg key”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K7hjÿ ubj‡)�”}”(hhh]”hÞ)�”}”(hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”h]”hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´K7hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÿ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jh´K7hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hjû ubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hj@h]”hŒContext”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K9hjû ubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K9hjû ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hjjh²hh³Nh´NubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œ aes_cbc_cts_decrypt (C function)”Œc.aes_cbc_cts_decrypt”hNt”auh1j‰hjjh²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒvvoid aes_cbc_cts_decrypt (u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], const struct aes_key *key)”h]”j¦)�”}”(hŒuvoid aes_cbc_cts_decrypt(u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], const struct aes_key *key)”h]”(j¬)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj�h²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K?ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj�h²hh³j“h´K?ubjÏ)�”}”(hŒaes_cbc_cts_decrypt”h]”jÕ)�”}”(hŒaes_cbc_cts_decrypt”h]”hŒaes_cbc_cts_decrypt”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj¢ubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhj�h²hh³j“h´K?ubjî)�”}”(hŒ](u8 *dst, const u8 *src, size_t len, u8 iv[static AES_BLOCK_SIZE], const struct aes_key *key)”h]”(jô)�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÂubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jÇŒmodname”NŒ classname”Njj)�”}”j]”j )�”}”jj¨sbŒc.aes_cbc_cts_decrypt”†”asbuh1hhj¾ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj¾ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj¾ubjÕ)�”}”(hŒdst”h]”hŒdst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj¾ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjºubjô)�”}”(hŒ const u8 *src”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j9Œmodname”NŒ classname”Njj)�”}”j]”jáŒc.aes_cbc_cts_decrypt”†”asbuh1hhjubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjubjÕ)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjºubjô)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj‰ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jŽŒmodname”NŒ classname”Njj)�”}”j]”jáŒc.aes_cbc_cts_decrypt”†”asbuh1hhj…ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj…ubjÕ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj…ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjºubjô)�”}”(hŒu8 iv[static AES_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÑubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jÖŒmodname”NŒ classname”Njj)�”}”j]”jáŒc.aes_cbc_cts_decrypt”†”asbuh1hhjÍubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÍubjÕ)�”}”(hŒiv”h]”hŒiv”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÍubj4)�”}”(hjXh]”hŒ[”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÍubj^)�”}”(hjfh]”hŒstatic”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÍubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÍubh)�”}”(hhh]”jÕ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j;Œmodname”NŒ classname”Njj)�”}”j]”jáŒc.aes_cbc_cts_decrypt”†”asbuh1hhjÍubj4)�”}”(hj£h]”hŒ]”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjºubjô)�”}”(hŒconst struct aes_key *key”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjkubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjkubj^)�”}”(hj*h]”hŒstruct”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjkubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjkubh)�”}”(hhh]”jÕ)�”}”(hŒaes_key”h]”hŒaes_key”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj¥ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jªŒmodname”NŒ classname”Njj)�”}”j]”jáŒc.aes_cbc_cts_decrypt”†”asbuh1hhjkubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjkubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjkubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjkubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjºubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhj�h²hh³j“h´K?ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hj}h²hh³j“h´K?ubah}”(h]”jxah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³j“h´K?hjzh²hubj)�”}”(hhh]”hÞ)�”}”(hŒ,Decrypt data using AES-CBC-CTS (CS3 variant)”h]”hŒ,Decrypt data using AES-CBC-CTS (CS3 variant)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K?hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjzh²hh³j“h´K?ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j9jj:j#j;j#j<‰j=‰j>‰uh1jšh²hhjjh³Nh´Nubj@)�”}”(hX¼**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to decrypt, at least AES_BLOCK_SIZE ``u8 iv[static AES_BLOCK_SIZE]`` The initialization vector, clobbered by this function ``const struct aes_key *key`` The key, already prepared using aes_preparekey() **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hj-h]”hŒ Parameters”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KChj'ubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(hjLh]”hŒu8 *dst”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KAhjFubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´K@hjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jah´KAhjCubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hj†h]”hŒ const u8 *src”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KBhj€ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j›h´KBhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j›h´KBhjCubje)�”}”(hŒC``size_t len`` Number of bytes to decrypt, at least AES_BLOCK_SIZE ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hj¿h]”hŒ size_t len”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KChj¹ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ3Number of bytes to decrypt, at least AES_BLOCK_SIZE”h]”hŒ3Number of bytes to decrypt, at least AES_BLOCK_SIZE”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÔh´KChjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jÔh´KChjCubje)�”}”(hŒW``u8 iv[static AES_BLOCK_SIZE]`` The initialization vector, clobbered by this function ”h]”(jk)�”}”(hŒ ``u8 iv[static AES_BLOCK_SIZE]``”h]”jq)�”}”(hjøh]”hŒu8 iv[static AES_BLOCK_SIZE]”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjöubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KDhjòubj‡)�”}”(hhh]”hÞ)�”}”(hŒ5The initialization vector, clobbered by this function”h]”hŒ5The initialization vector, clobbered by this function”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j h´KDhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j h´KDhjCubje)�”}”(hŒO``const struct aes_key *key`` The key, already prepared using aes_preparekey() ”h]”(jk)�”}”(hŒ``const struct aes_key *key``”h]”jq)�”}”(hj1h]”hŒconst struct aes_key *key”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KEhj+ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ0The key, already prepared using aes_preparekey()”h]”hŒ0The key, already prepared using aes_preparekey()”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jFh´KEhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jFh´KEhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hj'ubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hjlh]”hŒContext”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KGhj'ubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:28: ./include/crypto/aes-cbc.h”h´KGhj'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hjjh²hh³Nh´Nubeh}”(h]”Œaes-cbc-and-aes-cbc-cts”ah ]”h"]”Œaes-cbc and aes-cbc-cts”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAES-CTR and AES-XCTR”h]”hŒAES-CTR and AES-XCTR”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj h²hh³hÇh´KubhÞ)�”}”(hŒIThis API provides support for AES in the CTR and XCTR modes of operation.”h]”hŒIThis API provides support for AES in the CTR and XCTR modes of operation.”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K!hj h²hubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œaes_ctr (C function)”Œ c.aes_ctr”hNt”auh1j‰hj h²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒevoid aes_ctr (u8 *dst, const u8 *src, size_t len, u8 ctr[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”j¦)�”}”(hŒdvoid aes_ctr(u8 *dst, const u8 *src, size_t len, u8 ctr[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”(j¬)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjÔh²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÔh²hh³jæh´K ubjÏ)�”}”(hŒaes_ctr”h]”jÕ)�”}”(hŒaes_ctr”h]”hŒaes_ctr”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjõubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhjÔh²hh³jæh´K ubjî)�”}”(hŒX(u8 *dst, const u8 *src, size_t len, u8 ctr[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”(jô)�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jŒmodname”NŒ classname”Njj)�”}”j]”j )�”}”jjûsbŒ c.aes_ctr”†”asbuh1hhjubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjubjÕ)�”}”(hŒdst”h]”hŒdst”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj ubjô)�”}”(hŒ const u8 *src”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjhubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjhubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jŒŒmodname”NŒ classname”Njj)�”}”j]”j4Œ c.aes_ctr”†”asbuh1hhjhubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjhubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjhubjÕ)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjhubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj ubjô)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jáŒmodname”NŒ classname”Njj)�”}”j]”j4Œ c.aes_ctr”†”asbuh1hhjØubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjØubjÕ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjØubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj ubjô)�”}”(hŒu8 ctr[static AES_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j)Œmodname”NŒ classname”Njj)�”}”j]”j4Œ c.aes_ctr”†”asbuh1hhj ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj ubjÕ)�”}”(hŒctr”h]”hŒctr”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj ubj4)�”}”(hjXh]”hŒ[”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj ubj^)�”}”(hjfh]”hŒstatic”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj ubh)�”}”(hhh]”jÕ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj‰ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jŽŒmodname”NŒ classname”Njj)�”}”j]”j4Œ c.aes_ctr”†”asbuh1hhj ubj4)�”}”(hj£h]”hŒ]”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj ubjô)�”}”(hŒaes_encrypt_arg key”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒaes_encrypt_arg”h]”hŒaes_encrypt_arg”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÂubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jÇŒmodname”NŒ classname”Njj)�”}”j]”j4Œ c.aes_ctr”†”asbuh1hhj¾ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj¾ubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj¾ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhjÔh²hh³jæh´K ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hjÐh²hh³jæh´K ubah}”(h]”jËah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³jæh´K hjÍh²hubj)�”}”(hhh]”hÞ)�”}”(hŒAES-CTR en/decryption”h]”hŒAES-CTR en/decryption”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍh²hh³jæh´K ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j9jj:j3j;j3j<‰j=‰j>‰uh1jšh²hhj h³Nh´Nubj@)�”}”(hXó**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to en/decrypt ``u8 ctr[static AES_BLOCK_SIZE]`` The counter. It will be incremented by ceil(**len** / AES_BLOCK_SIZE). ``aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() **Description** This implements AES in counter mode with a 128-bit big endian counter. This exists only for use by the implementation of modes built on top of CTR (e.g., GCM and CCM) and some legacy protocols that use CTR mode directly. Callers are expected to know how to use CTR mode appropriately, including choosing (key, counter) pairs appropriately to avoid keystream reuse. This supports incremental en/decryption. The length of each non-final chunk must be a multiple of AES_BLOCK_SIZE, and the updated **ctr** must be passed in each time. **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hj=h]”hŒ Parameters”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khj7ubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(hj\h]”hŒu8 *dst”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´KhjVubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jqh´KhjSubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hj–h]”hŒ const u8 *src”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khj�ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j«h´Khj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j«h´KhjSubje)�”}”(hŒ-``size_t len`` Number of bytes to en/decrypt ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hjÏh]”hŒ size_t len”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´KhjÉubj‡)�”}”(hhh]”hÞ)�”}”(hŒNumber of bytes to en/decrypt”h]”hŒNumber of bytes to en/decrypt”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jäh´Khjåubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jäh´KhjSubje)�”}”(hŒj``u8 ctr[static AES_BLOCK_SIZE]`` The counter. It will be incremented by ceil(**len** / AES_BLOCK_SIZE). ”h]”(jk)�”}”(hŒ!``u8 ctr[static AES_BLOCK_SIZE]``”h]”jq)�”}”(hjh]”hŒu8 ctr[static AES_BLOCK_SIZE]”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khjubj‡)�”}”(hhh]”hÞ)�”}”(hŒGThe counter. It will be incremented by ceil(**len** / AES_BLOCK_SIZE).”•h]”(hŒ-The counter. It will be incremented by ceil(”…”�”}”(hj!h²hh³Nh´NubjJ)�”}”(hŒ**len**”h]”hŒlen”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj!ubhŒ / AES_BLOCK_SIZE).”…”�”}”(hj!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jh´KhjSubje)�”}”(hŒ```aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() ”h]”(jk)�”}”(hŒ``aes_encrypt_arg key``”h]”jq)�”}”(hjSh]”hŒaes_encrypt_arg key”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´KhjMubj‡)�”}”(hhh]”hÞ)�”}”(hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”h]”hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jhh´Khjiubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jhh´KhjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hj7ubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hjŽh]”hŒ Description”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khj7ubhÞ)�”}”(hŒFThis implements AES in counter mode with a 128-bit big endian counter.”h]”hŒFThis implements AES in counter mode with a 128-bit big endian counter.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khj7ubhÞ)�”}”(hX%This exists only for use by the implementation of modes built on top of CTR (e.g., GCM and CCM) and some legacy protocols that use CTR mode directly. Callers are expected to know how to use CTR mode appropriately, including choosing (key, counter) pairs appropriately to avoid keystream reuse.”h]”hX%This exists only for use by the implementation of modes built on top of CTR (e.g., GCM and CCM) and some legacy protocols that use CTR mode directly. Callers are expected to know how to use CTR mode appropriately, including choosing (key, counter) pairs appropriately to avoid keystream reuse.”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khj7ubhÞ)�”}”(hŒ§This supports incremental en/decryption. The length of each non-final chunk must be a multiple of AES_BLOCK_SIZE, and the updated **ctr** must be passed in each time.”h]”(hŒƒThis supports incremental en/decryption. The length of each non-final chunk must be a multiple of AES_BLOCK_SIZE, and the updated ”…”�”}”(hjÂh²hh³Nh´NubjJ)�”}”(hŒ**ctr**”h]”hŒctr”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjÂubhŒ must be passed in each time.”…”�”}”(hjÂh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khj7ubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hjåh]”hŒContext”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjãubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´Khj7ubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K hj7ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hj h²hh³Nh´NubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œaes_xctr (C function)”Œ c.aes_xctr”hNt”auh1j‰hj h²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒuvoid aes_xctr (u8 *dst, const u8 *src, size_t len, u64 *ctr, const u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”j¦)�”}”(hŒtvoid aes_xctr(u8 *dst, const u8 *src, size_t len, u64 *ctr, const u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”(j¬)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj&h²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K&ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj&h²hh³j8h´K&ubjÏ)�”}”(hŒaes_xctr”h]”jÕ)�”}”(hŒaes_xctr”h]”hŒaes_xctr”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjGubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhj&h²hh³j8h´K&ubjî)�”}”(hŒg(u8 *dst, const u8 *src, size_t len, u64 *ctr, const u8 iv[static AES_BLOCK_SIZE], aes_encrypt_arg key)”h]”(jô)�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jlŒmodname”NŒ classname”Njj)�”}”j]”j )�”}”jjMsbŒ c.aes_xctr”†”asbuh1hhjcubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjcubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjcubjÕ)�”}”(hŒdst”h]”hŒdst”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjcubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj_ubjô)�”}”(hŒ const u8 *src”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjºubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjºubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÙubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jÞŒmodname”NŒ classname”Njj)�”}”j]”j†Œ c.aes_xctr”†”asbuh1hhjºubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjºubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjºubjÕ)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjºubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj_ubjô)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j3Œmodname”NŒ classname”Njj)�”}”j]”j†Œ c.aes_xctr”†”asbuh1hhj*ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj*ubjÕ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj_ubjô)�”}”(hŒu64 *ctr”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu64”h]”hŒu64”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjvubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j{Œmodname”NŒ classname”Njj)�”}”j]”j†Œ c.aes_xctr”†”asbuh1hhjrubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjrubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjrubjÕ)�”}”(hŒctr”h]”hŒctr”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjrubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj_ubjô)�”}”(hŒ"const u8 iv[static AES_BLOCK_SIZE]”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÇubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÇubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjæubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jëŒmodname”NŒ classname”Njj)�”}”j]”j†Œ c.aes_xctr”†”asbuh1hhjÇubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÇubjÕ)�”}”(hŒiv”h]”hŒiv”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÇubj4)�”}”(hjXh]”hŒ[”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÇubj^)�”}”(hjfh]”hŒstatic”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÇubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÇubh)�”}”(hhh]”jÕ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjKubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jPŒmodname”NŒ classname”Njj)�”}”j]”j†Œ c.aes_xctr”†”asbuh1hhjÇubj4)�”}”(hj£h]”hŒ]”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÇubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj_ubjô)�”}”(hŒaes_encrypt_arg key”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒaes_encrypt_arg”h]”hŒaes_encrypt_arg”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj„ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j‰Œmodname”NŒ classname”Njj)�”}”j]”j†Œ c.aes_xctr”†”asbuh1hhj€ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj€ubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj_ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhj&h²hh³j8h´K&ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hj"h²hh³j8h´K&ubah}”(h]”jah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³j8h´K&hjh²hubj)�”}”(hhh]”hÞ)�”}”(hŒAES-XCTR en/decryption”h]”hŒAES-XCTR en/decryption”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K&hjÚh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³j8h´K&ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j9jj:jõj;jõj<‰j=‰j>‰uh1jšh²hhj h³Nh´Nubj@)�”}”(hXd**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to en/decrypt ``u64 *ctr`` The block counter (in host endianness). For the first call, set it to 1. It will be incremented by ceil(**len** / AES_BLOCK_SIZE). ``const u8 iv[static AES_BLOCK_SIZE]`` The initialization vector ``aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() **Description** This implements AES in XOR Counter mode, as specified in the paper "Length-preserving encryption with HCTR2" (https://eprint.iacr.org/2021/1441.pdf). This exists only for use by the implementation of modes built on top of XCTR. Callers are expected to know how to use XCTR mode appropriately, including choosing (key, IV) pairs appropriately to avoid keystream reuse. This supports incremental en/decryption. The length of each non-final chunk must be a multiple of AES_BLOCK_SIZE, and the updated **ctr** must be passed in each time. **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hjÿh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K*hjùubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(hjh]”hŒu8 *dst”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K(hjubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K'hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j3h´K(hjubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hjXh]”hŒ const u8 *src”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K)hjRubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jmh´K)hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jmh´K)hjubje)�”}”(hŒ-``size_t len`` Number of bytes to en/decrypt ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hj‘h]”hŒ size_t len”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K*hj‹ubj‡)�”}”(hhh]”hÞ)�”}”(hŒNumber of bytes to en/decrypt”h]”hŒNumber of bytes to en/decrypt”…”�”}”(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&]”uh1jdh³j¦h´K*hjubje)�”}”(hŒ’``u64 *ctr`` The block counter (in host endianness). For the first call, set it to 1. It will be incremented by ceil(**len** / AES_BLOCK_SIZE). ”h]”(jk)�”}”(hŒ ``u64 *ctr``”h]”jq)�”}”(hjÊh]”hŒu64 *ctr”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K,hjÄubj‡)�”}”(hhh]”hÞ)�”}”(hŒ„The block counter (in host endianness). For the first call, set it to 1. It will be incremented by ceil(**len** / AES_BLOCK_SIZE).”h]”(hŒjThe block counter (in host endianness). For the first call, set it to 1. It will be incremented by ceil(”…”�”}”(hjãh²hh³Nh´NubjJ)�”}”(hŒ**len**”h]”hŒlen”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjãubhŒ / AES_BLOCK_SIZE).”…”�”}”(hjãh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K+hjàubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jßh´K,hjubje)�”}”(hŒA``const u8 iv[static AES_BLOCK_SIZE]`` The initialization vector ”h]”(jk)�”}”(hŒ&``const u8 iv[static AES_BLOCK_SIZE]``”h]”jq)�”}”(hjh]”hŒ"const u8 iv[static AES_BLOCK_SIZE]”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K-hjubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe initialization vector”h]”hŒThe initialization vector”…”�”}”(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&]”uh1jdh³j+h´K-hjubje)�”}”(hŒ```aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() ”h]”(jk)�”}”(hŒ``aes_encrypt_arg key``”h]”jq)�”}”(hjOh]”hŒaes_encrypt_arg key”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K.hjIubj‡)�”}”(hhh]”hÞ)�”}”(hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”h]”hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jdh´K.hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jdh´K.hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hjùubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hjŠh]”hŒ Description”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K0hjùubhÞ)�”}”(hŒ•This implements AES in XOR Counter mode, as specified in the paper "Length-preserving encryption with HCTR2" (https://eprint.iacr.org/2021/1441.pdf).”h]”(hŒrThis implements AES in XOR Counter mode, as specified in the paper “Length-preserving encryption with HCTR2â€� (”…”�”}”(hj h²hh³Nh´NubhŒ reference”“”)�”}”(hŒ%https://eprint.iacr.org/2021/1441.pdf”h]”hŒ%https://eprint.iacr.org/2021/1441.pdf”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j¬uh1j¨hj ubhŒ).”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K/hjùubhÞ)�”}”(hŒÙThis exists only for use by the implementation of modes built on top of XCTR. Callers are expected to know how to use XCTR mode appropriately, including choosing (key, IV) pairs appropriately to avoid keystream reuse.”h]”hŒÙThis exists only for use by the implementation of modes built on top of XCTR. Callers are expected to know how to use XCTR mode appropriately, including choosing (key, IV) pairs appropriately to avoid keystream reuse.”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K3hjùubhÞ)�”}”(hŒ§This supports incremental en/decryption. The length of each non-final chunk must be a multiple of AES_BLOCK_SIZE, and the updated **ctr** must be passed in each time.”h]”(hŒƒThis supports incremental en/decryption. The length of each non-final chunk must be a multiple of AES_BLOCK_SIZE, and the updated ”…”�”}”(hjÓh²hh³Nh´NubjJ)�”}”(hŒ**ctr**”h]”hŒctr”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjÓubhŒ must be passed in each time.”…”�”}”(hjÓh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K7hjùubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hjöh]”hŒContext”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K;hjùubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:35: ./include/crypto/aes-ctr.h”h´K‰uh1jšh²hhj*h³Nh´Nubj@)�”}”(hX†**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to encrypt. Must be a multiple of AES_BLOCK_SIZE. ``aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() **Description** ECB mode is insecure by itself. This function exists only for compatibility with legacy protocols and for internal use by other modes. This supports incremental encryption, but the length of each chunk must be a multiple of AES_BLOCK_SIZE. **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hj)h]”hŒ Parameters”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj#ubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(hjHh]”hŒu8 *dst”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´KhjBubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j]h´Khj?ubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hj‚h]”hŒ const u8 *src”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj|ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j—h´Khj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j—h´Khj?ubje)�”}”(hŒR``size_t len`` Number of bytes to encrypt. Must be a multiple of AES_BLOCK_SIZE. ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hj»h]”hŒ size_t len”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khjµubj‡)�”}”(hhh]”hÞ)�”}”(hŒBNumber of bytes to encrypt. Must be a multiple of AES_BLOCK_SIZE.”h]”hŒBNumber of bytes to encrypt. Must be a multiple of AES_BLOCK_SIZE.”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÐh´KhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjµubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jÐh´Khj?ubje)�”}”(hŒ```aes_encrypt_arg key`` The key, already prepared using aes_preparekey() or aes_prepareenckey() ”h]”(jk)�”}”(hŒ``aes_encrypt_arg key``”h]”jq)�”}”(hjôh]”hŒaes_encrypt_arg key”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khjîubj‡)�”}”(hhh]”hÞ)�”}”(hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”h]”hŒGThe key, already prepared using aes_preparekey() or aes_prepareenckey()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j h´Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j h´Khj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hj#ubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hj/h]”hŒ Description”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj#ubhÞ)�”}”(hŒ‡ECB mode is insecure by itself. This function exists only for compatibility with legacy protocols and for internal use by other modes.”h]”hŒ‡ECB mode is insecure by itself. This function exists only for compatibility with legacy protocols and for internal use by other modes.”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj#ubhÞ)�”}”(hŒhThis supports incremental encryption, but the length of each chunk must be a multiple of AES_BLOCK_SIZE.”h]”hŒhThis supports incremental encryption, but the length of each chunk must be a multiple of AES_BLOCK_SIZE.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj#ubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hjeh]”hŒContext”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj#ubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hj*h²hh³Nh´NubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œaes_ecb_decrypt (C function)”Œc.aes_ecb_decrypt”hNt”auh1j‰hj*h²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒTvoid aes_ecb_decrypt (u8 *dst, const u8 *src, size_t len, const struct aes_key *key)”h]”j¦)�”}”(hŒSvoid aes_ecb_decrypt(u8 *dst, const u8 *src, size_t len, const struct aes_key *key)”h]”(j¬)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj¦h²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Kubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj¦h²hh³j¸h´KubjÏ)�”}”(hŒaes_ecb_decrypt”h]”jÕ)�”}”(hŒaes_ecb_decrypt”h]”hŒaes_ecb_decrypt”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÇubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhj¦h²hh³j¸h´Kubjî)�”}”(hŒ?(u8 *dst, const u8 *src, size_t len, const struct aes_key *key)”h]”(jô)�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjçubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jìŒmodname”NŒ classname”Njj)�”}”j]”j )�”}”jjÍsbŒc.aes_ecb_decrypt”†”asbuh1hhjãubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjãubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjãubjÕ)�”}”(hŒdst”h]”hŒdst”…”�”}”(hj% h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjßubjô)�”}”(hŒ const u8 *src”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj: ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj: ubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjY ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j^ Œmodname”NŒ classname”Njj)�”}”j]”j Œc.aes_ecb_decrypt”†”asbuh1hhj: ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj: ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj: ubjÕ)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj: ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjßubjô)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj® ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j³ Œmodname”NŒ classname”Njj)�”}”j]”j Œc.aes_ecb_decrypt”†”asbuh1hhjª ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjª ubjÕ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjª ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjßubjô)�”}”(hŒconst struct aes_key *key”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjò ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjò ubj^)�”}”(hj*h]”hŒstruct”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjò ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjò ubh)�”}”(hhh]”jÕ)�”}”(hŒaes_key”h]”hŒaes_key”…”�”}”(hj/!h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj,!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j1!Œmodname”NŒ classname”Njj)�”}”j]”j Œc.aes_ecb_decrypt”†”asbuh1hhjò ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM!h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjò ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj[!h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjò ubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjh!h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjò ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhjßubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhj¦h²hh³j¸h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hj¢h²hh³j¸h´Kubah}”(h]”j�ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³j¸h´KhjŸh²hubj)�”}”(hhh]”hÞ)�”}”(hŒDecrypt data using AES-ECB”h]”hŒDecrypt data using AES-ECB”…”�”}”(hj’!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´Khj�!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸh²hh³j¸h´Kubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j9jj:jª!j;jª!j<‰j=‰j>‰uh1jšh²hhj*h³Nh´Nubj@)�”}”(hXu**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to decrypt. Must be a multiple of AES_BLOCK_SIZE. ``const struct aes_key *key`` The key, already prepared using aes_preparekey() **Description** ECB mode is insecure by itself. This function exists only for compatibility with legacy protocols and for internal use by other modes. This supports incremental decryption, but the length of each chunk must be a multiple of AES_BLOCK_SIZE. **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hj´!h]”hŒ Parameters”…”�”}”(hj¶!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj²!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K#hj®!ubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(hjÓ!h]”hŒu8 *dst”…”�”}”(hjÕ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÑ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K!hjÍ!ubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hjì!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K hjé!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÍ!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jè!h´K!hjÊ!ubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hj "h]”hŒ const u8 *src”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj "ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K"hj"ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(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&]”uh1jdh³j""h´K"hjÊ!ubje)�”}”(hŒR``size_t len`` Number of bytes to decrypt. Must be a multiple of AES_BLOCK_SIZE. ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hjF"h]”hŒ size_t len”…”�”}”(hjH"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjD"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K#hj@"ubj‡)�”}”(hhh]”hÞ)�”}”(hŒBNumber of bytes to decrypt. Must be a multiple of AES_BLOCK_SIZE.”h]”hŒBNumber of bytes to decrypt. Must be a multiple of AES_BLOCK_SIZE.”…”�”}”(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&]”uh1jdh³j["h´K#hjÊ!ubje)�”}”(hŒO``const struct aes_key *key`` The key, already prepared using aes_preparekey() ”h]”(jk)�”}”(hŒ``const struct aes_key *key``”h]”jq)�”}”(hj"h]”hŒconst struct aes_key *key”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj}"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K$hjy"ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ0The key, already prepared using aes_preparekey()”h]”hŒ0The key, already prepared using aes_preparekey()”…”�”}”(hj˜"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j”"h´K$hj•"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjy"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j”"h´K$hjÊ!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hj®!ubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hjº"h]”hŒ Description”…”�”}”(hj¼"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj¸"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K&hj®!ubhÞ)�”}”(hŒ‡ECB mode is insecure by itself. This function exists only for compatibility with legacy protocols and for internal use by other modes.”h]”hŒ‡ECB mode is insecure by itself. This function exists only for compatibility with legacy protocols and for internal use by other modes.”…”�”}”(hjÐ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K%hj®!ubhÞ)�”}”(hŒhThis supports incremental decryption, but the length of each chunk must be a multiple of AES_BLOCK_SIZE.”h]”hŒhThis supports incremental decryption, but the length of each chunk must be a multiple of AES_BLOCK_SIZE.”…”�”}”(hjß"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K(hj®!ubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hjð"h]”hŒContext”…”�”}”(hjò"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjî"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K+hj®!ubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:42: ./include/crypto/aes-ecb.h”h´K,hj®!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hj*h²hh³Nh´Nubeh}”(h]”Œaes-ecb”ah ]”h"]”Œaes-ecb”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K&ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAES-XTS”h]”hŒAES-XTS”…”�”}”(hj'#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj$#h²hh³hÇh´K-ubhÞ)�”}”(hŒ?This API provides support for AES in the XTS mode of operation.”h]”hŒ?This API provides support for AES in the XTS mode of operation.”…”�”}”(hj5#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K/hj$#h²hubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œaes_xts_key (C struct)”Œ c.aes_xts_key”hNt”auh1j‰hj$#h²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒ aes_xts_key”h]”j¦)�”}”(hŒstruct aes_xts_key”h]”(j^)�”}”(hj*h]”hŒstruct”…”�”}”(hj\#h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjX#h²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Kubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj#h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjX#h²hh³ji#h´KubjÏ)�”}”(hŒ aes_xts_key”h]”jÕ)�”}”(hjV#h]”hŒ aes_xts_key”…”�”}”(hj|#h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjx#ubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhjX#h²hh³ji#h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hjT#h²hh³ji#h´Kubah}”(h]”jO#ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³ji#h´KhjQ#h²hubj)�”}”(hhh]”hÞ)�”}”(hŒ4A key prepared for AES-XTS encryption and decryption”h]”hŒ4A key prepared for AES-XTS encryption and decryption”…”�”}”(hjž#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khj›#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQ#h²hh³ji#h´Kubeh}”(h]”h ]”(jŒstruct”eh"]”h$]”h&]”j9jj:j¶#j;j¶#j<‰j=‰j>‰uh1jšh²hhj$#h³Nh´Nubj@)�”}”(hŒ:**Definition**:: struct aes_xts_key { }; **Members**”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jJ)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÂ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj¾#ubhŒ:”…”�”}”(hj¾#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khjº#ubhŒ literal_block”“”)�”}”(hŒstruct aes_xts_key { };”h]”hŒstruct aes_xts_key { };”…”�”}”hjÝ#sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÛ#h³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khjº#ubhÞ)�”}”(hŒ **Members**”h]”jJ)�”}”(hjî#h]”hŒMembers”…”�”}”(hjð#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjì#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khjº#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hj$#h²hh³Nh´NubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hj $h]”hŒ Description”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj $ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khj$#h²hubhÞ)�”}”(hŒ”Note that (depending on the architecture) this typically is around 768 bytes, which makes it a bit too large to allocate on the stack in most cases.”h]”hŒ”Note that (depending on the architecture) this typically is around 768 bytes, which makes it a bit too large to allocate on the stack in most cases.”…”�”}”(hj#$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khj$#h²hubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œaes_xts_preparekey (C function)”Œc.aes_xts_preparekey”hNt”auh1j‰hj$#h²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒ]int aes_xts_preparekey (struct aes_xts_key *key, const u8 *in_key, size_t key_len, int flags)”h]”j¦)�”}”(hŒ\int aes_xts_preparekey(struct aes_xts_key *key, const u8 *in_key, size_t key_len, int flags)”h]”(j¬)�”}”(hŒint”h]”hŒint”…”�”}”(hjK$h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjG$h²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Kubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ$h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjG$h²hh³jY$h´KubjÏ)�”}”(hŒaes_xts_preparekey”h]”jÕ)�”}”(hŒaes_xts_preparekey”h]”hŒaes_xts_preparekey”…”�”}”(hjl$h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjh$ubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhjG$h²hh³jY$h´Kubjî)�”}”(hŒF(struct aes_xts_key *key, const u8 *in_key, size_t key_len, int flags)”h]”(jô)�”}”(hŒstruct aes_xts_key *key”h]”(j^)�”}”(hj*h]”hŒstruct”…”�”}”(hjˆ$h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj„$ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•$h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj„$ubh)�”}”(hhh]”jÕ)�”}”(hŒ aes_xts_key”h]”hŒ aes_xts_key”…”�”}”(hj¦$h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj£$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j¨$Œmodname”NŒ classname”Njj)�”}”j]”j )�”}”jjn$sbŒc.aes_xts_preparekey”†”asbuh1hhj„$ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆ$h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj„$ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjÔ$h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj„$ubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjá$h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj„$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj€$ubjô)�”}”(hŒconst u8 *in_key”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hjú$h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjö$ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjö$ubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j%Œmodname”NŒ classname”Njj)�”}”j]”jÂ$Œc.aes_xts_preparekey”†”asbuh1hhjö$ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6%h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjö$ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjD%h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjö$ubjÕ)�”}”(hŒin_key”h]”hŒin_key”…”�”}”(hjQ%h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjö$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj€$ubjô)�”}”(hŒsize_t key_len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjm%h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jo%Œmodname”NŒ classname”Njj)�”}”j]”jÂ$Œc.aes_xts_preparekey”†”asbuh1hhjf%ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹%h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjf%ubjÕ)�”}”(hŒkey_len”h]”hŒkey_len”…”�”}”(hj™%h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjf%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj€$ubjô)�”}”(hŒ int flags”h]”(j¬)�”}”(hŒint”h]”hŒint”…”�”}”(hj²%h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hj®%ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀ%h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj®%ubjÕ)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjÎ%h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj®%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj€$ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhjG$h²hh³jY$h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hjC$h²hh³jY$h´Kubah}”(h]”j>$ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³jY$h´Khj@$h²hubj)�”}”(hhh]”hÞ)�”}”(hŒ3Prepare a key for AES-XTS encryption and decryption”h]”hŒ3Prepare a key for AES-XTS encryption and decryption”…”�”}”(hjø%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khjõ%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@$h²hh³jY$h´Kubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j9jj:j&j;j&j<‰j=‰j>‰uh1jšh²hhj$#h³Nh´Nubj@)�”}”(hXÎ**Parameters** ``struct aes_xts_key *key`` (output) The key structure to initialize ``const u8 *in_key`` The raw AES-XTS key ``size_t key_len`` Length of the raw key in bytes ``int flags`` Optional flag XTS_FORBID_WEAK_KEYS to forbid keys whose two halves are the same. **Description** Users should use memzero_explicit() to zeroize the key struct at the end of its lifetime. (But if this function fails, zeroization is unnecessary.) **Context** Any context. **Return** * 0 on success * -EINVAL if the key is rejected because its length isn't 32, 64, or (when FIPS mode isn't enabled) 48; or because its two halves are the same and either XTS_FORBID_WEAK_KEYS is given or FIPS mode is enabled.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hj&h]”hŒ Parameters”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khj&ubj`)�”}”(hhh]”(je)�”}”(hŒE``struct aes_xts_key *key`` (output) The key structure to initialize ”h]”(jk)�”}”(hŒ``struct aes_xts_key *key``”h]”jq)�”}”(hj9&h]”hŒstruct aes_xts_key *key”…”�”}”(hj;&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj7&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khj3&ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ((output) The key structure to initialize”h]”hŒ((output) The key structure to initialize”…”�”}”(hjR&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jN&h´KhjO&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj3&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jN&h´Khj0&ubje)�”}”(hŒ)``const u8 *in_key`` The raw AES-XTS key ”h]”(jk)�”}”(hŒ``const u8 *in_key``”h]”jq)�”}”(hjr&h]”hŒconst u8 *in_key”…”�”}”(hjt&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjp&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khjl&ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe raw AES-XTS key”h]”hŒThe raw AES-XTS key”…”�”}”(hj‹&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‡&h´Khjˆ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjl&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j‡&h´Khj0&ubje)�”}”(hŒ2``size_t key_len`` Length of the raw key in bytes ”h]”(jk)�”}”(hŒ``size_t key_len``”h]”jq)�”}”(hj«&h]”hŒsize_t key_len”…”�”}”(hj­&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj©&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khj¥&ubj‡)�”}”(hhh]”hÞ)�”}”(hŒLength of the raw key in bytes”h]”hŒLength of the raw key in bytes”…”�”}”(hjÄ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÀ&h´KhjÁ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj¥&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jÀ&h´Khj0&ubje)�”}”(hŒ_``int flags`` Optional flag XTS_FORBID_WEAK_KEYS to forbid keys whose two halves are the same. ”h]”(jk)�”}”(hŒ ``int flags``”h]”jq)�”}”(hjä&h]”hŒ int flags”…”�”}”(hjæ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjâ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KhjÞ&ubj‡)�”}”(hhh]”hÞ)�”}”(hŒPOptional flag XTS_FORBID_WEAK_KEYS to forbid keys whose two halves are the same.”h]”hŒPOptional flag XTS_FORBID_WEAK_KEYS to forbid keys whose two halves are the same.”…”�”}”(hjý&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´Khjú&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÞ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jù&h´Khj0&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hj&ubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hj 'h]”hŒ Description”…”�”}”(hj"'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K!hj&ubhÞ)�”}”(hŒ”Users should use memzero_explicit() to zeroize the key struct at the end of its lifetime. (But if this function fails, zeroization is unnecessary.)”h]”hŒ”Users should use memzero_explicit() to zeroize the key struct at the end of its lifetime. (But if this function fails, zeroization is unnecessary.)”…”�”}”(hj6'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K hj&ubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hjG'h]”hŒContext”…”�”}”(hjI'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjE'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K#hj&ubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj]'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K$hj&ubhÞ)�”}”(hŒ **Return**”h]”jJ)�”}”(hjn'h]”hŒReturn”…”�”}”(hjp'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjl'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K&hj&ubhî)�”}”(hhh]”(hó)�”}”(hŒ 0 on success”h]”hÞ)�”}”(hj‰'h]”hŒ 0 on success”…”�”}”(hj‹'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K%hj‡'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhj„'ubhó)�”}”(hŒÎ-EINVAL if the key is rejected because its length isn't 32, 64, or (when FIPS mode isn't enabled) 48; or because its two halves are the same and either XTS_FORBID_WEAK_KEYS is given or FIPS mode is enabled.”h]”hÞ)�”}”(hŒÎ-EINVAL if the key is rejected because its length isn't 32, 64, or (when FIPS mode isn't enabled) 48; or because its two halves are the same and either XTS_FORBID_WEAK_KEYS is given or FIPS mode is enabled.”h]”hŒÒ-EINVAL if the key is rejected because its length isn’t 32, 64, or (when FIPS mode isn’t enabled) 48; or because its two halves are the same and either XTS_FORBID_WEAK_KEYS is given or FIPS mode is enabled.”…”�”}”(hj£'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K&hjŸ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hòhj„'ubeh}”(h]”h ]”h"]”h$]”h&]”jZj7uh1híh³j˜'h´K%hj&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hj$#h²hh³Nh´NubjŠ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j–Œaes_xts_encrypt (C function)”Œc.aes_xts_encrypt”hNt”auh1j‰hj$#h²hh³Nh´Nubj›)�”}”(hhh]”(j )�”}”(hŒ„void aes_xts_encrypt (u8 *dst, const u8 *src, size_t len, u8 tweak[static AES_BLOCK_SIZE], const struct aes_xts_key *key, bool cont)”h]”j¦)�”}”(hŒƒvoid aes_xts_encrypt(u8 *dst, const u8 *src, size_t len, u8 tweak[static AES_BLOCK_SIZE], const struct aes_xts_key *key, bool cont)”h]”(j¬)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÞ'h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjÚ'h²hh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K/ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí'h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÚ'h²hh³jì'h´K/ubjÏ)�”}”(hŒaes_xts_encrypt”h]”jÕ)�”}”(hŒaes_xts_encrypt”h]”hŒaes_xts_encrypt”…”�”}”(hjÿ'h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjû'ubah}”(h]”h ]”(jèjéeh"]”h$]”h&]”hÅhÆuh1jÎhjÚ'h²hh³jì'h´K/ubjî)�”}”(hŒo(u8 *dst, const u8 *src, size_t len, u8 tweak[static AES_BLOCK_SIZE], const struct aes_xts_key *key, bool cont)”h]”(jô)�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j (Œmodname”NŒ classname”Njj)�”}”j]”j )�”}”jj(sbŒc.aes_xts_encrypt”†”asbuh1hhj(ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>(h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj(ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hjL(h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj(ubjÕ)�”}”(hŒdst”h]”hŒdst”…”�”}”(hjY(h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj(ubjô)�”}”(hŒ const u8 *src”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hjr(h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjn(ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjn(ubh)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj�(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j’(Œmodname”NŒ classname”Njj)�”}”j]”j:(Œc.aes_xts_encrypt”†”asbuh1hhjn(ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®(h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjn(ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj¼(h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjn(ubjÕ)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hjÉ(h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjn(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj(ubjô)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjå(h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjâ(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”jç(Œmodname”NŒ classname”Njj)�”}”j]”j:(Œc.aes_xts_encrypt”†”asbuh1hhjÞ(ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÞ(ubjÕ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÞ(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj(ubjô)�”}”(hŒu8 tweak[static AES_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jÕ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj-)h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj*)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j/)Œmodname”NŒ classname”Njj)�”}”j]”j:(Œc.aes_xts_encrypt”†”asbuh1hhj&)ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK)h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj&)ubjÕ)�”}”(hŒtweak”h]”hŒtweak”…”�”}”(hjY)h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj&)ubj4)�”}”(hjXh]”hŒ[”…”�”}”(hjg)h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj&)ubj^)�”}”(hjfh]”hŒstatic”…”�”}”(hjt)h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hj&)ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�)h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hj&)ubh)�”}”(hhh]”jÕ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hj’)h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhj�)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j”)Œmodname”NŒ classname”Njj)�”}”j]”j:(Œc.aes_xts_encrypt”†”asbuh1hhj&)ubj4)�”}”(hj£h]”hŒ]”…”�”}”(hj°)h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hj&)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj(ubjô)�”}”(hŒconst struct aes_xts_key *key”h]”(j^)�”}”(hjah]”hŒconst”…”�”}”(hjÈ)h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÄ)ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕ)h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÄ)ubj^)�”}”(hj*h]”hŒstruct”…”�”}”(hjã)h²hh³Nh´Nubah}”(h]”h ]”jjah"]”h$]”h&]”uh1j]hjÄ)ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjð)h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÄ)ubh)�”}”(hhh]”jÕ)�”}”(hŒ aes_xts_key”h]”hŒ aes_xts_key”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjþ)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jŒreftype”jŒ reftarget”j*Œmodname”NŒ classname”Njj)�”}”j]”j:(Œc.aes_xts_encrypt”†”asbuh1hhjÄ)ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjÄ)ubj4)�”}”(hj7h]”hŒ*”…”�”}”(hj-*h²hh³Nh´Nubah}”(h]”h ]”j@ah"]”h$]”h&]”uh1j3hjÄ)ubjÕ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj:*h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjÄ)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj(ubjô)�”}”(hŒ bool cont”h]”(j¬)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjS*h²hh³Nh´Nubah}”(h]”h ]”j¸ah"]”h$]”h&]”uh1j«hjO*ubj¾)�”}”(hŒ ”h]”hŒ ”…”�”}”(hja*h²hh³Nh´Nubah}”(h]”h ]”jÊah"]”h$]”h&]”uh1j½hjO*ubjÕ)�”}”(hŒcont”h]”hŒcont”…”�”}”(hjo*h²hh³Nh´Nubah}”(h]”h ]”jáah"]”h$]”h&]”uh1jÔhjO*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jóhj(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jíhjÚ'h²hh³jì'h´K/ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¥j j hjÖ'h²hh³jì'h´K/ubah}”(h]”jÑ'ah ]”(jjeh"]”h$]”h&]”jˆj)jhuh1jŸh³jì'h´K/hjÓ'h²hubj)�”}”(hhh]”hÞ)�”}”(hŒEncrypt data using AES-XTS”h]”hŒEncrypt data using AES-XTS”…”�”}”(hj™*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K/hj–*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÓ'h²hh³jì'h´K/ubeh}”(h]”h ]”(jŒfunction”eh"]”h$]”h&]”j9jj:j±*j;j±*j<‰j=‰j>‰uh1jšh²hhj$#h³Nh´Nubj@)�”}”(hXL**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to encrypt. On non-final calls it must be a nonzero multiple of AES_BLOCK_SIZE. On the final call it can be any value >= AES_BLOCK_SIZE, i.e. ciphertext stealing is supported. ``u8 tweak[static AES_BLOCK_SIZE]`` The tweak. It is updated with the next value, unless **len** isn't a multiple of AES_BLOCK_SIZE in which case the value is unspecified. ``const struct aes_xts_key *key`` The key, already prepared using aes_xts_preparekey() ``bool cont`` ``false`` to begin encrypting a new message (do the tweak encryption); ``true`` to continue encrypting a message (skip tweak encryption) **Description** This supports both one-shot and incremental encryption. On the first call, pass **cont** = ``false``. On any later calls, pass **cont** = ``true`` and the updated **tweak**; all earlier **len** must have been multiples of AES_BLOCK_SIZE. **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hj»*h]”hŒ Parameters”…”�”}”(hj½*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj¹*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K3hjµ*ubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(•“khjÚ*h]”hŒu8 *dst”…”�”}”(hjÜ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjØ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K1hjÔ*ubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hjó*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K0hjð*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÔ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jï*h´K1hjÑ*ubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hj+h]”hŒ const u8 *src”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K2hj+ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(hj-+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j)+h´K2hj*+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j)+h´K2hjÑ*ubje)�”}”(hŒÑ``size_t len`` Number of bytes to encrypt. On non-final calls it must be a nonzero multiple of AES_BLOCK_SIZE. On the final call it can be any value >= AES_BLOCK_SIZE, i.e. ciphertext stealing is supported. ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hjM+h]”hŒ size_t len”…”�”}”(hjO+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjK+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K5hjG+ubj‡)�”}”(hhh]”hÞ)�”}”(hŒÁNumber of bytes to encrypt. On non-final calls it must be a nonzero multiple of AES_BLOCK_SIZE. On the final call it can be any value >= AES_BLOCK_SIZE, i.e. ciphertext stealing is supported.”h]”hŒÁNumber of bytes to encrypt. On non-final calls it must be a nonzero multiple of AES_BLOCK_SIZE. On the final call it can be any value >= AES_BLOCK_SIZE, i.e. ciphertext stealing is supported.”…”�”}”(hjf+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K3hjc+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjG+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jb+h´K5hjÑ*ubje)�”}”(hŒ­``u8 tweak[static AES_BLOCK_SIZE]`` The tweak. It is updated with the next value, unless **len** isn't a multiple of AES_BLOCK_SIZE in which case the value is unspecified. ”h]”(jk)�”}”(hŒ#``u8 tweak[static AES_BLOCK_SIZE]``”h]”jq)�”}”(hj‡+h]”hŒu8 tweak[static AES_BLOCK_SIZE]”…”�”}”(hj‰+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj…+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K7hj�+ubj‡)�”}”(hhh]”hÞ)�”}”(hŒˆThe tweak. It is updated with the next value, unless **len** isn't a multiple of AES_BLOCK_SIZE in which case the value is unspecified.”h]”(hŒ6The tweak. It is updated with the next value, unless ”…”�”}”(hj +h²hh³Nh´NubjJ)�”}”(hŒ**len**”h]”hŒlen”…”�”}”(hj¨+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj +ubhŒM isn’t a multiple of AES_BLOCK_SIZE in which case the value is unspecified.”…”�”}”(hj +h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K6hj�+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj�+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jœ+h´K7hjÑ*ubje)�”}”(hŒW``const struct aes_xts_key *key`` The key, already prepared using aes_xts_preparekey() ”h]”(jk)�”}”(hŒ!``const struct aes_xts_key *key``”h]”jq)�”}”(hjÓ+h]”hŒconst struct aes_xts_key *key”…”�”}”(hjÕ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjÑ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K8hjÍ+ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ4The key, already prepared using aes_xts_preparekey()”h]”hŒ4The key, already prepared using aes_xts_preparekey()”…”�”}”(hjì+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jè+h´K8hjé+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjÍ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jè+h´K8hjÑ*ubje)�”}”(hŒ—``bool cont`` ``false`` to begin encrypting a new message (do the tweak encryption); ``true`` to continue encrypting a message (skip tweak encryption) ”h]”(jk)�”}”(hŒ ``bool cont``”h]”jq)�”}”(hj ,h]”hŒ bool cont”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K:hj,ubj‡)�”}”(hhh]”hÞ)�”}”(hŒˆ``false`` to begin encrypting a new message (do the tweak encryption); ``true`` to continue encrypting a message (skip tweak encryption)”h]”(jq)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hj),h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj%,ubhŒ> to begin encrypting a new message (do the tweak encryption); ”…”�”}”(hj%,h²hh³Nh´Nubjq)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hj;,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj%,ubhŒ9 to continue encrypting a message (skip tweak encryption)”…”�”}”(hj%,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K9hj",ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j!,h´K:hjÑ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hjµ*ubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hjh,h]”hŒ Description”…”�”}”(hjj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjf,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´K‰uh1jšh²hhj$#h³Nh´Nubj@)�”}”(hXL**Parameters** ``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ``const u8 *src`` The source data ``size_t len`` Number of bytes to decrypt. On non-final calls it must be a nonzero multiple of AES_BLOCK_SIZE. On the final call it can be any value >= AES_BLOCK_SIZE, i.e. ciphertext stealing is supported. ``u8 tweak[static AES_BLOCK_SIZE]`` The tweak. It is updated with the next value, unless **len** isn't a multiple of AES_BLOCK_SIZE in which case the value is unspecified. ``const struct aes_xts_key *key`` The key, already prepared using aes_xts_preparekey() ``bool cont`` ``false`` to begin decrypting a new message (do the tweak encryption); ``true`` to continue decrypting a message (skip tweak encryption) **Description** This supports both one-shot and incremental decryption. On the first call, pass **cont** = ``false``. On any later calls, pass **cont** = ``true`` and the updated **tweak**; all earlier **len** must have been multiples of AES_BLOCK_SIZE. **Context** Any context.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jJ)�”}”(hj0h]”hŒ Parameters”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KKhj0ubj`)�”}”(hhh]”(je)�”}”(hŒw``u8 *dst`` The destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified. ”h]”(jk)�”}”(hŒ ``u8 *dst``”h]”jq)�”}”(hj;0h]”hŒu8 *dst”…”�”}”(hj=0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj90ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KIhj50ubj‡)�”}”(hhh]”hÞ)�”}”(hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”h]”hŒjThe destination buffer. Can be in-place or out-of-place. For other overlaps the behavior is unspecified.”…”�”}”(hjT0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KHhjQ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj50ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jP0h´KIhj20ubje)�”}”(hŒ"``const u8 *src`` The source data ”h]”(jk)�”}”(hŒ``const u8 *src``”h]”jq)�”}”(hju0h]”hŒ const u8 *src”…”�”}”(hjw0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjs0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KJhjo0ubj‡)�”}”(hhh]”hÞ)�”}”(hŒThe source data”h]”hŒThe source data”…”�”}”(hjŽ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jŠ0h´KJhj‹0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjo0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jŠ0h´KJhj20ubje)�”}”(hŒÑ``size_t len`` Number of bytes to decrypt. On non-final calls it must be a nonzero multiple of AES_BLOCK_SIZE. On the final call it can be any value >= AES_BLOCK_SIZE, i.e. ciphertext stealing is supported. ”h]”(jk)�”}”(hŒ``size_t len``”h]”jq)�”}”(hj®0h]”hŒ size_t len”…”�”}”(hj°0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj¬0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KMhj¨0ubj‡)�”}”(hhh]”hÞ)�”}”(hŒÁNumber of bytes to decrypt. On non-final calls it must be a nonzero multiple of AES_BLOCK_SIZE. On the final call it can be any value >= AES_BLOCK_SIZE, i.e. ciphertext stealing is supported.”h]”hŒÁNumber of bytes to decrypt. On non-final calls it must be a nonzero multiple of AES_BLOCK_SIZE. On the final call it can be any value >= AES_BLOCK_SIZE, i.e. ciphertext stealing is supported.”…”�”}”(hjÇ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KKhjÄ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj¨0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jÃ0h´KMhj20ubje)�”}”(hŒ­``u8 tweak[static AES_BLOCK_SIZE]`` The tweak. It is updated with the next value, unless **len** isn't a multiple of AES_BLOCK_SIZE in which case the value is unspecified. ”h]”(jk)�”}”(hŒ#``u8 tweak[static AES_BLOCK_SIZE]``”h]”jq)�”}”(hjè0h]”hŒu8 tweak[static AES_BLOCK_SIZE]”…”�”}”(hjê0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjæ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KOhjâ0ubj‡)�”}”(hhh]”hÞ)�”}”(hŒˆThe tweak. It is updated with the next value, unless **len** isn't a multiple of AES_BLOCK_SIZE in which case the value is unspecified.”h]”(hŒ6The tweak. It is updated with the next value, unless ”…”�”}”(hj1h²hh³Nh´NubjJ)�”}”(hŒ**len**”h]”hŒlen”…”�”}”(hj 1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhj1ubhŒM isn’t a multiple of AES_BLOCK_SIZE in which case the value is unspecified.”…”�”}”(hj1h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KNhjþ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjâ0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jý0h´KOhj20ubje)�”}”(hŒW``const struct aes_xts_key *key`` The key, already prepared using aes_xts_preparekey() ”h]”(jk)�”}”(hŒ!``const struct aes_xts_key *key``”h]”jq)�”}”(hj41h]”hŒconst struct aes_xts_key *key”…”�”}”(hj61h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj21ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KPhj.1ubj‡)�”}”(hhh]”hÞ)�”}”(hŒ4The key, already prepared using aes_xts_preparekey()”h]”hŒ4The key, already prepared using aes_xts_preparekey()”…”�”}”(hjM1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jI1h´KPhjJ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hj.1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³jI1h´KPhj20ubje)�”}”(hŒ—``bool cont`` ``false`` to begin decrypting a new message (do the tweak encryption); ``true`` to continue decrypting a message (skip tweak encryption) ”h]”(jk)�”}”(hŒ ``bool cont``”h]”jq)�”}”(hjm1h]”hŒ bool cont”…”�”}”(hjo1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjk1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jjh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KRhjg1ubj‡)�”}”(hhh]”hÞ)�”}”(hŒˆ``false`` to begin decrypting a new message (do the tweak encryption); ``true`` to continue decrypting a message (skip tweak encryption)”h]”(jq)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hjŠ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj†1ubhŒ> to begin decrypting a new message (do the tweak encryption); ”…”�”}”(hj†1h²hh³Nh´Nubjq)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hjœ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphj†1ubhŒ9 to continue decrypting a message (skip tweak encryption)”…”�”}”(hj†1h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KQhjƒ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1j†hjg1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jdh³j‚1h´KRhj20ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j_hj0ubhÞ)�”}”(hŒ**Description**”h]”jJ)�”}”(hjÉ1h]”hŒ Description”…”�”}”(hjË1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjÇ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KThj0ubhÞ)�”}”(hŒïThis supports both one-shot and incremental decryption. On the first call, pass **cont** = ``false``. On any later calls, pass **cont** = ``true`` and the updated **tweak**; all earlier **len** must have been multiples of AES_BLOCK_SIZE.”h]”(hŒQThis supports both one-shot and incremental decryption. On the first call, pass ”…”�”}”(hjß1h²hh³Nh´NubjJ)�”}”(hŒ**cont**”h]”hŒcont”…”�”}”(hjç1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjß1ubhŒ = ”…”�”}”(hjß1h²hh³Nh´Nubjq)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hjù1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjß1ubhŒ. On any later calls, pass ”…”�”}”(hjß1h²hh³Nh´NubjJ)�”}”(hŒ**cont**”h]”hŒcont”…”�”}”(hj 2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjß1ubhŒ = ”…”�”}”hjß1sbjq)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jphjß1ubhŒ and the updated ”…”�”}”(hjß1h²hh³Nh´NubjJ)�”}”(hŒ **tweak**”h]”hŒtweak”…”�”}”(hj/2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjß1ubhŒ; all earlier ”…”�”}”(hjß1h²hh³Nh´NubjJ)�”}”(hŒ**len**”h]”hŒlen”…”�”}”(hjA2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjß1ubhŒ, must have been multiples of AES_BLOCK_SIZE.”…”�”}”(hjß1h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KShj0ubhÞ)�”}”(hŒ **Context**”h]”jJ)�”}”(hj\2h]”hŒContext”…”�”}”(hj^2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jIhjZ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KWhj0ubhÞ)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjr2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œk/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-unauth-encryption:49: ./include/crypto/aes-xts.h”h´KXhj0ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j?hj$#h²hh³Nh´Nubeh}”(h]”Œaes-xts”ah ]”h"]”Œaes-xts”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K-ubeh}”(h]”Œunauthenticated-encryption”ah ]”h"]”Œunauthenticated encryption”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»2Œ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•2j’2j�jšj'j$j!#j#j�2jŠ2uŒ nametypes”}”(j•2‰j�‰j'‰j!#‰j�2‰uh}”(j’2hÊjšjjj˜j¡jjj� j” jxj}j$j jËjÐjj"j#j*jUjZj�j¢jŠ2j$#jO#jT#j>$jC$jÑ'jÖ'j3-j8-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.