€•PŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ'/translations/zh_CN/crypto/api-skcipher”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/zh_TW/crypto/api-skcipher”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/it_IT/crypto/api-skcipher”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ja_JP/crypto/api-skcipher”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/ko_KR/crypto/api-skcipher”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/pt_BR/crypto/api-skcipher”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ'/translations/sp_SP/crypto/api-skcipher”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒSymmetric Key Cipher”h]”hŒSymmetric Key Cipher”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒA/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher.rst”h´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ"Block Cipher Algorithm Definitions”h]”hŒ"Block Cipher Algorithm Definitions”…”�”}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒ paragraph”“”)�”}”(hŒ…These data structures define modular crypto algorithm implementations, managed via crypto_register_alg() and crypto_unregister_alg().”h]”hŒ…These data structures define modular crypto algorithm implementations, managed via crypto_register_alg() and crypto_unregister_alg().”…”�”}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:7: ./include/linux/crypto.h”h´KÆhhËh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œcipher_alg (C struct)”Œ c.cipher_alg”hNt”auh1híhhËh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ cipher_alg”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct cipher_alg”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jhj h²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j"hj h²hh³j!h´KubhŒ desc_name”“”)�”}”(hŒ cipher_alg”h]”hŒ desc_sig_name”“”)�”}”(hjh]”hŒ cipher_alg”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j9hj5ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j3hj h²hh³j!h´Kubeh}”(h]”h ]”h"]”h$]”h&]”jQjRŒ add_permalink”ˆuh1j Œsphinx_line_type”Œ declarator”hjh²hh³j!h´Kubah}”(h]”hüah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jh³j!h´Khjh²hubhŒ desc_content”“”)�”}”(hhh]”hÝ)�”}”(hŒ)single-block symmetric ciphers definition”h]”hŒ)single-block symmetric ciphers definition”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÍhjih²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjh²hh³j!h´Kubeh}”(h]”h ]”(Œc”Œstruct”eh"]”h$]”h&]”Œdomain”j„Œobjtype”j…Œdesctype”j…Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1hÿh²hhhËh³hþh´NubhŒ container”“”)�”}”(hXž **Definition**:: struct cipher_alg { unsigned int cia_min_keysize; unsigned int cia_max_keysize; int (*cia_setkey)(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen); void (*cia_encrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src); void (*cia_decrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src); }; **Members** ``cia_min_keysize`` Minimum key size supported by the transformation. This is the smallest key length supported by this transformation algorithm. This must be set to one of the pre-defined values as this is not hardware specific. Possible values for this field can be found via git grep "_MIN_KEY_SIZE" include/crypto/ ``cia_max_keysize`` Maximum key size supported by the transformation. This is the largest key length supported by this transformation algorithm. This must be set to one of the pre-defined values as this is not hardware specific. Possible values for this field can be found via git grep "_MAX_KEY_SIZE" include/crypto/ ``cia_setkey`` Set key for the transformation. This function is used to either program a supplied key into the hardware or store the key in the transformation context for programming it later. Note that this function does modify the transformation context. This function can be called multiple times during the existence of the transformation object, so one must make sure the key is properly reprogrammed into the hardware. This function is also responsible for checking the key length for validity. ``cia_encrypt`` Encrypt a single block. This function is used to encrypt a single block of data, which must be **cra_blocksize** big. This always operates on a full **cra_blocksize** and it is not possible to encrypt a block of smaller size. The supplied buffers must therefore also be at least of **cra_blocksize** size. Both the input and output buffers are always aligned to **cra_alignmask**. In case either of the input or output buffer supplied by user of the crypto API is not aligned to **cra_alignmask**, the crypto API will re-align the buffers. The re-alignment means that a new buffer will be allocated, the data will be copied into the new buffer, then the processing will happen on the new buffer, then the data will be copied back into the original buffer and finally the new buffer will be freed. In case a software fallback was put in place in the **cra_init** call, this function might need to use the fallback if the algorithm doesn't support all of the key sizes. In case the key was stored in transformation context, the key might need to be re-programmed into the hardware in this function. This function shall not modify the transformation context, as this function may be called in parallel with the same transformation object. ``cia_decrypt`` Decrypt a single block. This is a reverse counterpart to **cia_encrypt**, and the conditions are exactly the same.”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj•ubhŒ:”…”�”}”(hj•h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÑhj‘ubhŒ literal_block”“”)�”}”(hX?struct cipher_alg { unsigned int cia_min_keysize; unsigned int cia_max_keysize; int (*cia_setkey)(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen); void (*cia_encrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src); void (*cia_decrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src); };”h]”hX?struct cipher_alg { unsigned int cia_min_keysize; unsigned int cia_max_keysize; int (*cia_setkey)(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen); void (*cia_encrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src); void (*cia_decrypt)(struct crypto_tfm *tfm, u8 *dst, const u8 *src); };”…”�”}”hj¶sbah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j´h³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÓhj‘ubhÝ)�”}”(hŒ **Members**”h]”jš)�”}”(hjÇh]”hŒMembers”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÛhj‘ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hX?``cia_min_keysize`` Minimum key size supported by the transformation. This is the smallest key length supported by this transformation algorithm. This must be set to one of the pre-defined values as this is not hardware specific. Possible values for this field can be found via git grep "_MIN_KEY_SIZE" include/crypto/ ”h]”(hŒterm”“”)�”}”(hŒ``cia_min_keysize``”h]”hŒliteral”“”)�”}”(hjìh]”hŒcia_min_keysize”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÔhjäubhŒ definition”“”)�”}”(hhh]”hÝ)�”}”(hX*Minimum key size supported by the transformation. This is the smallest key length supported by this transformation algorithm. This must be set to one of the pre-defined values as this is not hardware specific. Possible values for this field can be found via git grep "_MIN_KEY_SIZE" include/crypto/”h]”hX.Minimum key size supported by the transformation. This is the smallest key length supported by this transformation algorithm. This must be set to one of the pre-defined values as this is not hardware specific. Possible values for this field can be found via git grep “_MIN_KEY_SIZEâ€� include/crypto/”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÏhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jh´KÔhjßubjã)�”}”(hX>``cia_max_keysize`` Maximum key size supported by the transformation. This is the largest key length supported by this transformation algorithm. This must be set to one of the pre-defined values as this is not hardware specific. Possible values for this field can be found via git grep "_MAX_KEY_SIZE" include/crypto/ ”h]”(jé)�”}”(hŒ``cia_max_keysize``”h]”jï)�”}”(hj*h]”hŒcia_max_keysize”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÚhj$ubj)�”}”(hhh]”hÝ)�”}”(hX)Maximum key size supported by the transformation. This is the largest key length supported by this transformation algorithm. This must be set to one of the pre-defined values as this is not hardware specific. Possible values for this field can be found via git grep "_MAX_KEY_SIZE" include/crypto/”h]”hX-Maximum key size supported by the transformation. This is the largest key length supported by this transformation algorithm. This must be set to one of the pre-defined values as this is not hardware specific. Possible values for this field can be found via git grep “_MAX_KEY_SIZEâ€� include/crypto/”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÕhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j?h´KÚhjßubjã)�”}”(hXõ``cia_setkey`` Set key for the transformation. This function is used to either program a supplied key into the hardware or store the key in the transformation context for programming it later. Note that this function does modify the transformation context. This function can be called multiple times during the existence of the transformation object, so one must make sure the key is properly reprogrammed into the hardware. This function is also responsible for checking the key length for validity. ”h]”(jé)�”}”(hŒ``cia_setkey``”h]”jï)�”}”(hjdh]”hŒ cia_setkey”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´Kâhj^ubj)�”}”(hhh]”hÝ)�”}”(hXåSet key for the transformation. This function is used to either program a supplied key into the hardware or store the key in the transformation context for programming it later. Note that this function does modify the transformation context. This function can be called multiple times during the existence of the transformation object, so one must make sure the key is properly reprogrammed into the hardware. This function is also responsible for checking the key length for validity.”h]”hXåSet key for the transformation. This function is used to either program a supplied key into the hardware or store the key in the transformation context for programming it later. Note that this function does modify the transformation context. This function can be called multiple times during the existence of the transformation object, so one must make sure the key is properly reprogrammed into the hardware. This function is also responsible for checking the key length for validity.”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KÛhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jyh´Kâhjßubjã)�”}”(hXä``cia_encrypt`` Encrypt a single block. This function is used to encrypt a single block of data, which must be **cra_blocksize** big. This always operates on a full **cra_blocksize** and it is not possible to encrypt a block of smaller size. The supplied buffers must therefore also be at least of **cra_blocksize** size. Both the input and output buffers are always aligned to **cra_alignmask**. In case either of the input or output buffer supplied by user of the crypto API is not aligned to **cra_alignmask**, the crypto API will re-align the buffers. The re-alignment means that a new buffer will be allocated, the data will be copied into the new buffer, then the processing will happen on the new buffer, then the data will be copied back into the original buffer and finally the new buffer will be freed. In case a software fallback was put in place in the **cra_init** call, this function might need to use the fallback if the algorithm doesn't support all of the key sizes. In case the key was stored in transformation context, the key might need to be re-programmed into the hardware in this function. This function shall not modify the transformation context, as this function may be called in parallel with the same transformation object. ”h]”(jé)�”}”(hŒ``cia_encrypt``”h]”jï)�”}”(hjžh]”hŒ cia_encrypt”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´Köhj˜ubj)�”}”(hhh]”hÝ)�”}”(hXÓEncrypt a single block. This function is used to encrypt a single block of data, which must be **cra_blocksize** big. This always operates on a full **cra_blocksize** and it is not possible to encrypt a block of smaller size. The supplied buffers must therefore also be at least of **cra_blocksize** size. Both the input and output buffers are always aligned to **cra_alignmask**. In case either of the input or output buffer supplied by user of the crypto API is not aligned to **cra_alignmask**, the crypto API will re-align the buffers. The re-alignment means that a new buffer will be allocated, the data will be copied into the new buffer, then the processing will happen on the new buffer, then the data will be copied back into the original buffer and finally the new buffer will be freed. In case a software fallback was put in place in the **cra_init** call, this function might need to use the fallback if the algorithm doesn't support all of the key sizes. In case the key was stored in transformation context, the key might need to be re-programmed into the hardware in this function. This function shall not modify the transformation context, as this function may be called in parallel with the same transformation object.”h]”(hŒ_Encrypt a single block. This function is used to encrypt a single block of data, which must be ”…”�”}”(hj·h²hh³Nh´Nubjš)�”}”(hŒ**cra_blocksize**”h]”hŒ cra_blocksize”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj·ubhŒ% big. This always operates on a full ”…”�”}”(hj·h²hh³Nh´Nubjš)�”}”(hŒ**cra_blocksize**”h]”hŒ cra_blocksize”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj·ubhŒt and it is not possible to encrypt a block of smaller size. The supplied buffers must therefore also be at least of ”…”�”}”(hj·h²hh³Nh´Nubjš)�”}”(hŒ**cra_blocksize**”h]”hŒ cra_blocksize”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj·ubhŒ? size. Both the input and output buffers are always aligned to ”…”�”}”(hj·h²hh³Nh´Nubjš)�”}”(hŒ**cra_alignmask**”h]”hŒ cra_alignmask”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj·ubhŒd. In case either of the input or output buffer supplied by user of the crypto API is not aligned to ”…”�”}”(hj·h²hh³Nh´Nubjš)�”}”(hŒ**cra_alignmask**”h]”hŒ cra_alignmask”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj·ubhXa, the crypto API will re-align the buffers. The re-alignment means that a new buffer will be allocated, the data will be copied into the new buffer, then the processing will happen on the new buffer, then the data will be copied back into the original buffer and finally the new buffer will be freed. In case a software fallback was put in place in the ”…”�”}”(hj·h²hh³Nh´Nubjš)�”}”(hŒ **cra_init**”h]”hŒcra_init”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj·ubhXx call, this function might need to use the fallback if the algorithm doesn’t support all of the key sizes. In case the key was stored in transformation context, the key might need to be re-programmed into the hardware in this function. This function shall not modify the transformation context, as this function may be called in parallel with the same transformation object.”…”�”}”(hj·h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´Kãhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j³h´Köhjßubjã)�”}”(hŒ‚``cia_decrypt`` Decrypt a single block. This is a reverse counterpart to **cia_encrypt**, and the conditions are exactly the same.”h]”(jé)�”}”(hŒ``cia_decrypt``”h]”jï)�”}”(hjDh]”hŒ cia_decrypt”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´K÷hj>ubj)�”}”(hhh]”hÝ)�”}”(hŒrDecrypt a single block. This is a reverse counterpart to **cia_encrypt**, and the conditions are exactly the same.”h]”(hŒ9Decrypt a single block. This is a reverse counterpart to ”…”�”}”(hj]h²hh³Nh´Nubjš)�”}”(hŒ**cia_encrypt**”h]”hŒ cia_encrypt”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj]ubhŒ*, and the conditions are exactly the same.”…”�”}”(hj]h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jYh´K÷hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jYh´K÷hjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj‘ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhËh²hh³hþh´NubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj˜h]”hŒ Description”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KûhhËh²hubhÝ)�”}”(hŒ,All fields are mandatory and must be filled.”h]”hŒ,All fields are mandatory and must be filled.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´KøhhËh²hubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒcrypto_alg (C struct)”Œ c.crypto_alg”hNt”auh1híhhËh²hh³hþh´Nubj)�”}”(hhh]”(j)�”}”(hŒ crypto_alg”h]”j )�”}”(hŒstruct crypto_alg”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÒh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.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ýubj4)�”}”(hŒ crypto_alg”h]”j:)�”}”(hjÐh]”hŒ crypto_alg”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjòubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjÒh²hh³jãh´Kýubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjÎh²hh³jãh´Kýubah}”(h]”jÉah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³jãh´KýhjËh²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ-definition of a cryptograpic cipher algorithm”h]”hŒ-definition of a cryptograpic cipher algorithm”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´Mhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjËh²hh³jãh´Kýubeh}”(h]”h ]”(j„Œstruct”eh"]”h$]”h&]”j‰j„jŠj0j‹j0jŒ‰j�‰jމuh1hÿh²hhhËh³hþh´Nubj�)�”}”(hXU**Definition**:: struct crypto_alg { struct list_head cra_list; struct list_head cra_users; u32 cra_flags; unsigned int cra_blocksize; unsigned int cra_ctxsize; unsigned int cra_alignmask; unsigned int cra_reqsize; int cra_priority; refcount_t cra_refcnt; char cra_name[CRYPTO_MAX_ALG_NAME]; char cra_driver_name[CRYPTO_MAX_ALG_NAME]; const struct crypto_type *cra_type; union { struct cipher_alg cipher; } cra_u; int (*cra_init)(struct crypto_tfm *tfm); void (*cra_exit)(struct crypto_tfm *tfm); void (*cra_destroy)(struct crypto_alg *alg); struct module *cra_module; }; **Members** ``cra_list`` internally used ``cra_users`` internally used ``cra_flags`` Flags describing this transformation. See include/linux/crypto.h CRYPTO_ALG_* flags for the flags which go in here. Those are used for fine-tuning the description of the transformation algorithm. ``cra_blocksize`` Minimum block size of this transformation. The size in bytes of the smallest possible unit which can be transformed with this algorithm. The users must respect this value. In case of HASH transformation, it is possible for a smaller block than **cra_blocksize** to be passed to the crypto API for transformation, in case of any other transformation type, an error will be returned upon any attempt to transform smaller than **cra_blocksize** chunks. ``cra_ctxsize`` Size of the operational context of the transformation. This value informs the kernel crypto API about the memory size needed to be allocated for the transformation context. ``cra_alignmask`` For cipher, skcipher, lskcipher, and aead algorithms this is 1 less than the alignment, in bytes, that the algorithm implementation requires for input and output buffers. When the crypto API is invoked with buffers that are not aligned to this alignment, the crypto API automatically utilizes appropriately aligned temporary buffers to comply with what the algorithm needs. (For scatterlists this happens only if the algorithm uses the skcipher_walk helper functions.) This misalignment handling carries a performance penalty, so it is preferred that algorithms do not set a nonzero alignmask. Also, crypto API users may wish to allocate buffers aligned to the alignmask of the algorithm being used, in order to avoid the API having to realign them. Note: the alignmask is not supported for hash algorithms and is always 0 for them. ``cra_reqsize`` Size of the request context for this algorithm. ``cra_priority`` Priority of this transformation implementation. In case multiple transformations with same **cra_name** are available to the Crypto API, the kernel will use the one with highest **cra_priority**. ``cra_refcnt`` internally used ``cra_name`` Generic name (usable by multiple implementations) of the transformation algorithm. This is the name of the transformation itself. This field is used by the kernel when looking up the providers of particular transformation. ``cra_driver_name`` Unique name of the transformation provider. This is the name of the provider of the transformation. This can be any arbitrary value, but in the usual case, this contains the name of the chip or provider and the name of the transformation algorithm. ``cra_type`` Type of the cryptographic transformation. This is a pointer to struct crypto_type, which implements callbacks common for all transformation types. There are multiple options, such as :c:type:`crypto_skcipher_type`, :c:type:`crypto_ahash_type`, :c:type:`crypto_rng_type`. This field might be empty. In that case, there are no common callbacks. This is the case for: cipher. ``cra_u`` Callbacks implementing the transformation. This is a union of multiple structures. Depending on the type of transformation selected by **cra_type** and **cra_flags** above, the associated structure must be filled with callbacks. This field might be empty. This is the case for ahash, shash. ``cra_u.cipher`` Union member which contains a single-block symmetric cipher definition. See **struct** **cipher_alg**. ``cra_init`` Deprecated, do not use. ``cra_exit`` Deprecated, do not use. ``cra_destroy`` internally used ``cra_module`` Owner of this transformation implementation. Set to THIS_MODULE”h]”(hÝ)�”}”(hŒ**Definition**::”h]”(jš)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj8ubhŒ:”…”�”}”(hj8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M hj4ubjµ)�”}”(hXzstruct crypto_alg { struct list_head cra_list; struct list_head cra_users; u32 cra_flags; unsigned int cra_blocksize; unsigned int cra_ctxsize; unsigned int cra_alignmask; unsigned int cra_reqsize; int cra_priority; refcount_t cra_refcnt; char cra_name[CRYPTO_MAX_ALG_NAME]; char cra_driver_name[CRYPTO_MAX_ALG_NAME]; const struct crypto_type *cra_type; union { struct cipher_alg cipher; } cra_u; int (*cra_init)(struct crypto_tfm *tfm); void (*cra_exit)(struct crypto_tfm *tfm); void (*cra_destroy)(struct crypto_alg *alg); struct module *cra_module; };”h]”hXzstruct crypto_alg { struct list_head cra_list; struct list_head cra_users; u32 cra_flags; unsigned int cra_blocksize; unsigned int cra_ctxsize; unsigned int cra_alignmask; unsigned int cra_reqsize; int cra_priority; refcount_t cra_refcnt; char cra_name[CRYPTO_MAX_ALG_NAME]; char cra_driver_name[CRYPTO_MAX_ALG_NAME]; const struct crypto_type *cra_type; union { struct cipher_alg cipher; } cra_u; int (*cra_init)(struct crypto_tfm *tfm); void (*cra_exit)(struct crypto_tfm *tfm); void (*cra_destroy)(struct crypto_alg *alg); struct module *cra_module; };”…”�”}”hjUsbah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j´h³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M hj4ubhÝ)�”}”(hŒ **Members**”h]”jš)�”}”(hjfh]”hŒMembers”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M#hj4ubjÞ)�”}”(hhh]”(jã)�”}”(hŒ``cra_list`` internally used ”h]”(jé)�”}”(hŒ ``cra_list``”h]”jï)�”}”(hj…h]”hŒcra_list”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MDhjubj)�”}”(hhh]”hÝ)�”}”(hŒinternally used”h]”hŒinternally used”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jšh´MDhj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jšh´MDhj|ubjã)�”}”(hŒ``cra_users`` internally used ”h]”(jé)�”}”(hŒ ``cra_users``”h]”jï)�”}”(hj¾h]”hŒ cra_users”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MEhj¸ubj)�”}”(hhh]”hÝ)�”}”(hŒinternally used”h]”hŒinternally used”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÓh´MEhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jÓh´MEhj|ubjã)�”}”(hŒÒ``cra_flags`` Flags describing this transformation. See include/linux/crypto.h CRYPTO_ALG_* flags for the flags which go in here. Those are used for fine-tuning the description of the transformation algorithm. ”h]”(jé)�”}”(hŒ ``cra_flags``”h]”jï)�”}”(hj÷h]”hŒ cra_flags”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M hjñubj)�”}”(hhh]”hÝ)�”}”(hŒÃFlags describing this transformation. See include/linux/crypto.h CRYPTO_ALG_* flags for the flags which go in here. Those are used for fine-tuning the description of the transformation algorithm.”h]”hŒÃFlags describing this transformation. See include/linux/crypto.h CRYPTO_ALG_* flags for the flags which go in here. Those are used for fine-tuning the description of the transformation algorithm.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j h´M hj|ubjã)�”}”(hXÔ``cra_blocksize`` Minimum block size of this transformation. The size in bytes of the smallest possible unit which can be transformed with this algorithm. The users must respect this value. In case of HASH transformation, it is possible for a smaller block than **cra_blocksize** to be passed to the crypto API for transformation, in case of any other transformation type, an error will be returned upon any attempt to transform smaller than **cra_blocksize** chunks. ”h]”(jé)�”}”(hŒ``cra_blocksize``”h]”jï)�”}”(hj1h]”hŒ cra_blocksize”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´Mhj+ubj)�”}”(hhh]”hÝ)�”}”(hXÁMinimum block size of this transformation. The size in bytes of the smallest possible unit which can be transformed with this algorithm. The users must respect this value. In case of HASH transformation, it is possible for a smaller block than **cra_blocksize** to be passed to the crypto API for transformation, in case of any other transformation type, an error will be returned upon any attempt to transform smaller than **cra_blocksize** chunks.”h]”(hŒôMinimum block size of this transformation. The size in bytes of the smallest possible unit which can be transformed with this algorithm. The users must respect this value. In case of HASH transformation, it is possible for a smaller block than ”…”�”}”(hjJh²hh³Nh´Nubjš)�”}”(hŒ**cra_blocksize**”h]”hŒ cra_blocksize”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjJubhŒ£ to be passed to the crypto API for transformation, in case of any other transformation type, an error will be returned upon any attempt to transform smaller than ”…”�”}”(hjJh²hh³Nh´Nubjš)�”}”(hŒ**cra_blocksize**”h]”hŒ cra_blocksize”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjJubhŒ chunks.”…”�”}”(hjJh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jFh´Mhj|ubjã)�”}”(hŒ½``cra_ctxsize`` Size of the operational context of the transformation. This value informs the kernel crypto API about the memory size needed to be allocated for the transformation context. ”h]”(jé)�”}”(hŒ``cra_ctxsize``”h]”jï)�”}”(hj�h]”hŒ cra_ctxsize”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´Mhj‰ubj)�”}”(hhh]”hÝ)�”}”(hŒ¬Size of the operational context of the transformation. This value informs the kernel crypto API about the memory size needed to be allocated for the transformation context.”h]”hŒ¬Size of the operational context of the transformation. This value informs the kernel crypto API about the memory size needed to be allocated for the transformation context.”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´Mhj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j¤h´Mhj|ubjã)�”}”(hXW``cra_alignmask`` For cipher, skcipher, lskcipher, and aead algorithms this is 1 less than the alignment, in bytes, that the algorithm implementation requires for input and output buffers. When the crypto API is invoked with buffers that are not aligned to this alignment, the crypto API automatically utilizes appropriately aligned temporary buffers to comply with what the algorithm needs. (For scatterlists this happens only if the algorithm uses the skcipher_walk helper functions.) This misalignment handling carries a performance penalty, so it is preferred that algorithms do not set a nonzero alignmask. Also, crypto API users may wish to allocate buffers aligned to the alignmask of the algorithm being used, in order to avoid the API having to realign them. Note: the alignmask is not supported for hash algorithms and is always 0 for them. ”h]”(jé)�”}”(hŒ``cra_alignmask``”h]”jï)�”}”(hjÉh]”hŒ cra_alignmask”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M%hjÃubj)�”}”(hhh]”hÝ)�”}”(hXDFor cipher, skcipher, lskcipher, and aead algorithms this is 1 less than the alignment, in bytes, that the algorithm implementation requires for input and output buffers. When the crypto API is invoked with buffers that are not aligned to this alignment, the crypto API automatically utilizes appropriately aligned temporary buffers to comply with what the algorithm needs. (For scatterlists this happens only if the algorithm uses the skcipher_walk helper functions.) This misalignment handling carries a performance penalty, so it is preferred that algorithms do not set a nonzero alignmask. Also, crypto API users may wish to allocate buffers aligned to the alignmask of the algorithm being used, in order to avoid the API having to realign them. Note: the alignmask is not supported for hash algorithms and is always 0 for them.”h]”hXDFor cipher, skcipher, lskcipher, and aead algorithms this is 1 less than the alignment, in bytes, that the algorithm implementation requires for input and output buffers. When the crypto API is invoked with buffers that are not aligned to this alignment, the crypto API automatically utilizes appropriately aligned temporary buffers to comply with what the algorithm needs. (For scatterlists this happens only if the algorithm uses the skcipher_walk helper functions.) This misalignment handling carries a performance penalty, so it is preferred that algorithms do not set a nonzero alignmask. Also, crypto API users may wish to allocate buffers aligned to the alignmask of the algorithm being used, in order to avoid the API having to realign them. Note: the alignmask is not supported for hash algorithms and is always 0 for them.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´Mhjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jÞh´M%hj|ubjã)�”}”(hŒ@``cra_reqsize`` Size of the request context for this algorithm. ”h]”(jé)�”}”(hŒ``cra_reqsize``”h]”jï)�”}”(hjh]”hŒ cra_reqsize”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M&hjýubj)�”}”(hhh]”hÝ)�”}”(hŒ/Size of the request context for this algorithm.”h]”hŒ/Size of the request context for this algorithm.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´M&hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jh´M&hj|ubjã)�”}”(hŒÕ``cra_priority`` Priority of this transformation implementation. In case multiple transformations with same **cra_name** are available to the Crypto API, the kernel will use the one with highest **cra_priority**. ”h]”(jé)�”}”(hŒ``cra_priority``”h]”jï)�”}”(hj<h]”hŒ cra_priority”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M*hj6ubj)�”}”(hhh]”hÝ)�”}”(hŒÃPriority of this transformation implementation. In case multiple transformations with same **cra_name** are available to the Crypto API, the kernel will use the one with highest **cra_priority**.”h]”(hŒ[Priority of this transformation implementation. In case multiple transformations with same ”…”�”}”(hjUh²hh³Nh´Nubjš)�”}”(hŒ **cra_name**”h]”hŒcra_name”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjUubhŒK are available to the Crypto API, the kernel will use the one with highest ”…”�”}”(hjUh²hh³Nh´Nubjš)�”}”(hŒ**cra_priority**”h]”hŒ cra_priority”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjUubhŒ.”…”�”}”(hjUh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M'hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jQh´M*hj|ubjã)�”}”(hŒ``cra_refcnt`` internally used ”h]”(jé)�”}”(hŒ``cra_refcnt``”h]”jï)�”}”(hjšh]”hŒ cra_refcnt”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MFhj”ubj)�”}”(hhh]”hÝ)�”}”(hŒinternally used”h]”hŒinternally used”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¯h´MFhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j¯h´MFhj|ubjã)�”}”(hŒì``cra_name`` Generic name (usable by multiple implementations) of the transformation algorithm. This is the name of the transformation itself. This field is used by the kernel when looking up the providers of particular transformation. ”h]”(jé)�”}”(hŒ ``cra_name``”h]”jï)�”}”(hjÓh]”hŒcra_name”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M.hjÍubj)�”}”(hhh]”hÝ)�”}”(hŒÞGeneric name (usable by multiple implementations) of the transformation algorithm. This is the name of the transformation itself. This field is used by the kernel when looking up the providers of particular transformation.”h]”hŒÞGeneric name (usable by multiple implementations) of the transformation algorithm. This is the name of the transformation itself. This field is used by the kernel when looking up the providers of particular transformation.”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M+hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jèh´M.hj|ubjã)�”}”(hX ``cra_driver_name`` Unique name of the transformation provider. This is the name of the provider of the transformation. This can be any arbitrary value, but in the usual case, this contains the name of the chip or provider and the name of the transformation algorithm. ”h]”(jé)�”}”(hŒ``cra_driver_name``”h]”jï)�”}”(hj h]”hŒcra_driver_name”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M3hjubj)�”}”(hhh]”hÝ)�”}”(hŒøUnique name of the transformation provider. This is the name of the provider of the transformation. This can be any arbitrary value, but in the usual case, this contains the name of the chip or provider and the name of the transformation algorithm.”h]”hŒøUnique name of the transformation provider. This is the name of the provider of the transformation. This can be any arbitrary value, but in the usual case, this contains the name of the chip or provider and the name of the transformation algorithm.”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M/hj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j"h´M3hj|ubjã)�”}”(hX‚``cra_type`` Type of the cryptographic transformation. This is a pointer to struct crypto_type, which implements callbacks common for all transformation types. There are multiple options, such as :c:type:`crypto_skcipher_type`, :c:type:`crypto_ahash_type`, :c:type:`crypto_rng_type`. This field might be empty. In that case, there are no common callbacks. This is the case for: cipher. ”h]”(jé)�”}”(hŒ ``cra_type``”h]”jï)�”}”(hjGh]”hŒcra_type”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M9hjAubj)�”}”(hhh]”hÝ)�”}”(hXtType of the cryptographic transformation. This is a pointer to struct crypto_type, which implements callbacks common for all transformation types. There are multiple options, such as :c:type:`crypto_skcipher_type`, :c:type:`crypto_ahash_type`, :c:type:`crypto_rng_type`. This field might be empty. In that case, there are no common callbacks. This is the case for: cipher.”h]”(hŒ·Type of the cryptographic transformation. This is a pointer to struct crypto_type, which implements callbacks common for all transformation types. There are multiple options, such as ”…”�”}”(hj`h²hh³Nh´Nubh)�”}”(hŒ:c:type:`crypto_skcipher_type`”h]”jï)�”}”(hjjh]”hŒcrypto_skcipher_type”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”(Œxref”j„Œc-type”eh"]”h$]”h&]”uh1jîhjhubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œcrypto/api-skcipher”Œ refdomain”j„Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”sbŒ reftarget”Œcrypto_skcipher_type”uh1hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M4hj`ubhŒ, ”…”�”}”(hj`h²hh³Nh´Nubh)�”}”(hŒ:c:type:`crypto_ahash_type`”h]”jï)�”}”(hj™h]”hŒcrypto_ahash_type”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”(jvj„Œc-type”eh"]”h$]”h&]”uh1jîhj—ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j‚Œ refdomain”j„Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jˆjŒj�Œcrypto_ahash_type”uh1hh³j’h´M4hj`ubhŒ, ”…”�”}”hj`sbh)�”}”(hŒ:c:type:`crypto_rng_type`”h]”jï)�”}”(hj¼h]”hŒcrypto_rng_type”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”(jvj„Œc-type”eh"]”h$]”h&]”uh1jîhjºubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j‚Œ refdomain”j„Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jˆjŒj�Œcrypto_rng_type”uh1hh³j’h´M4hj`ubhŒg. This field might be empty. In that case, there are no common callbacks. This is the case for: cipher.”…”�”}”(hj`h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j’h´M4hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j\h´M9hj|ubjã)�”}”(hX-``cra_u`` Callbacks implementing the transformation. This is a union of multiple structures. Depending on the type of transformation selected by **cra_type** and **cra_flags** above, the associated structure must be filled with callbacks. This field might be empty. This is the case for ahash, shash. ”h]”(jé)�”}”(hŒ ``cra_u``”h]”jï)�”}”(hjõh]”hŒcra_u”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjóubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M>hjïubj)�”}”(hhh]”hÝ)�”}”(hX"Callbacks implementing the transformation. This is a union of multiple structures. Depending on the type of transformation selected by **cra_type** and **cra_flags** above, the associated structure must be filled with callbacks. This field might be empty. This is the case for ahash, shash.”h]”(hŒ‡Callbacks implementing the transformation. This is a union of multiple structures. Depending on the type of transformation selected by ”…”�”}”(hjh²hh³Nh´Nubjš)�”}”(hŒ **cra_type**”h]”hŒcra_type”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjubhŒ and ”…”�”}”(hjh²hh³Nh´Nubjš)�”}”(hŒ **cra_flags**”h]”hŒ cra_flags”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjubhŒ} above, the associated structure must be filled with callbacks. This field might be empty. This is the case for ahash, shash.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M:hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j h´M>hj|ubjã)�”}”(hŒx``cra_u.cipher`` Union member which contains a single-block symmetric cipher definition. See **struct** **cipher_alg**. ”h]”(jé)�”}”(hŒ``cra_u.cipher``”h]”jï)�”}”(hjSh]”hŒ cra_u.cipher”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MBhjMubj)�”}”(hhh]”hÝ)�”}”(hŒfUnion member which contains a single-block symmetric cipher definition. See **struct** **cipher_alg**.”h]”(hŒLUnion member which contains a single-block symmetric cipher definition. See ”…”�”}”(hjlh²hh³Nh´Nubjš)�”}”(hŒ **struct**”h]”hŒstruct”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjlubhŒ ”…”�”}”(hjlh²hh³Nh´Nubjš)�”}”(hŒ**cipher_alg**”h]”hŒ cipher_alg”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjlubhŒ.”…”�”}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MAhjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jhh´MBhj|ubjã)�”}”(hŒ%``cra_init`` Deprecated, do not use. ”h]”(jé)�”}”(hŒ ``cra_init``”h]”jï)�”}”(hj±h]”hŒcra_init”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M?hj«ubj)�”}”(hhh]”hÝ)�”}”(hŒDeprecated, do not use.”h]”hŒDeprecated, do not use.”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÆh´M?hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jÆh´M?hj|ubjã)�”}”(hŒ%``cra_exit`` Deprecated, do not use. ”h]”(jé)�”}”(hŒ ``cra_exit``”h]”jï)�”}”(hjêh]”hŒcra_exit”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´M@hjäubj)�”}”(hhh]”hÝ)�”}”(hŒDeprecated, do not use.”h]”hŒDeprecated, do not use.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÿh´M@hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jÿh´M@hj|ubjã)�”}”(hŒ ``cra_destroy`` internally used ”h]”(jé)�”}”(hŒ``cra_destroy``”h]”jï)�”}”(hj# h]”hŒ cra_destroy”…”�”}”(hj% h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj! ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MGhj ubj)�”}”(hhh]”hÝ)�”}”(hŒinternally used”h]”hŒinternally used”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j8 h´MGhj9 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j8 h´MGhj|ubjã)�”}”(hŒN``cra_module`` Owner of this transformation implementation. Set to THIS_MODULE”h]”(jé)�”}”(hŒ``cra_module``”h]”jï)�”}”(hj\ h]”hŒ cra_module”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjZ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MBhjV ubj)�”}”(hhh]”hÝ)�”}”(hŒ?Owner of this transformation implementation. Set to THIS_MODULE”h]”hŒ?Owner of this transformation implementation. Set to THIS_MODULE”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MChjr ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjV ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jq h´MBhj|ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhËh²hh³hþh´NubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hjŸ h]”hŒ Description”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MFhhËh²hubhÝ)�”}”(hŒßThe struct crypto_alg describes a generic Crypto API algorithm and is common for all of the transformations. Any variable not documented here shall not be used by a cipher implementation as it is internal to the Crypto API.”h]”hŒßThe struct crypto_alg describes a generic Crypto API algorithm and is common for all of the transformations. Any variable not documented here shall not be used by a cipher implementation as it is internal to the Crypto API.”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:10: ./include/linux/crypto.h”h´MGhhËh²hubeh}”(h]”Œ"block-cipher-algorithm-definitions”ah ]”h"]”Œ"block cipher algorithm definitions”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒSymmetric Key Cipher API”h]”hŒSymmetric Key Cipher API”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÌ h²hh³hÊh´KubhÝ)�”}”(hŒSymmetric key cipher API is used with the ciphers of type CRYPTO_ALG_TYPE_SKCIPHER (listed as type "skcipher" in /proc/crypto).”h]”hŒƒSymmetric key cipher API is used with the ciphers of type CRYPTO_ALG_TYPE_SKCIPHER (listed as type “skcipherâ€� in /proc/crypto).”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:16: ./include/crypto/skcipher.h”h´KçhjÌ h²hubhÝ)�”}”(hXòAsynchronous cipher operations imply that the function invocation for a cipher request returns immediately before the completion of the operation. The cipher request is scheduled as a separate kernel thread and therefore load-balanced on the different CPUs via the process scheduler. To allow the kernel crypto API to inform the caller about the completion of a cipher request, the caller must provide a callback function. That function is invoked with the cipher handle when the request completes.”h]”hXòAsynchronous cipher operations imply that the function invocation for a cipher request returns immediately before the completion of the operation. The cipher request is scheduled as a separate kernel thread and therefore load-balanced on the different CPUs via the process scheduler. To allow the kernel crypto API to inform the caller about the completion of a cipher request, the caller must provide a callback function. That function is invoked with the cipher handle when the request completes.”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:16: ./include/crypto/skcipher.h”h´KêhjÌ h²hubhÝ)�”}”(hŒÜTo support the asynchronous operation, additional information than just the cipher handle must be supplied to the kernel crypto API. That additional information is given by filling in the skcipher_request data structure.”h]”hŒÜTo support the asynchronous operation, additional information than just the cipher handle must be supplied to the kernel crypto API. That additional information is given by filling in the skcipher_request data structure.”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:16: ./include/crypto/skcipher.h”h´KòhjÌ h²hubhÝ)�”}”(hXºFor the symmetric key cipher API, the state is maintained with the tfm cipher handle. A single tfm can be used across multiple calls and in parallel. For asynchronous block cipher calls, context data supplied and only used by the caller can be referenced the request data structure in addition to the IV used for the cipher request. The maintenance of such state information would be important for a crypto driver implementer to have, because when calling the callback function upon completion of the cipher operation, that callback function may need some information about which operation just finished if it invoked multiple in parallel. This state information is unused by the kernel crypto API.”h]”hXºFor the symmetric key cipher API, the state is maintained with the tfm cipher handle. A single tfm can be used across multiple calls and in parallel. For asynchronous block cipher calls, context data supplied and only used by the caller can be referenced the request data structure in addition to the IV used for the cipher request. The maintenance of such state information would be important for a crypto driver implementer to have, because when calling the callback function upon completion of the cipher operation, that callback function may need some information about which operation just finished if it invoked multiple in parallel. This state information is unused by the kernel crypto API.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:16: ./include/crypto/skcipher.h”h´KöhjÌ h²hubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ"crypto_alloc_skcipher (C function)”Œc.crypto_alloc_skcipher”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒYstruct crypto_skcipher * crypto_alloc_skcipher (const char *alg_name, u32 type, u32 mask)”h]”j )�”}”(hŒWstruct crypto_skcipher *crypto_alloc_skcipher(const char *alg_name, u32 type, u32 mask)”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj. h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj. h²hh³j? h´M ubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjN ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”Œ identifier”Œ reftarget”jS Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j‰Œ ASTIdentifier”“”)�”}”jg Œcrypto_alloc_skcipher”sbŒc.crypto_alloc_skcipher”†”asbuh1hhj. h²hh³j? h´M ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj. h²hh³j? h´M ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jƒ hj. h²hh³j? h´M ubj4)�”}”(hŒcrypto_alloc_skcipher”h]”j:)�”}”(hjr h]”hŒcrypto_alloc_skcipher”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj” ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj. h²hh³j? h´M ubhŒdesc_parameterlist”“”)�”}”(hŒ*(const char *alg_name, u32 type, u32 mask)”h]”(hŒdesc_parameter”“”)�”}”(hŒconst char *alg_name”h]”(j)�”}”(hŒconst”h]”hŒconst”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj³ ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj³ ubhŒdesc_sig_keyword_type”“”)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jÓ hj³ ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj³ ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj³ ubj:)�”}”(hŒalg_name”h]”hŒalg_name”…”�”}”(hjÿ h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj³ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj­ ubj² )�”}”(hŒu32 type”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jp Œc.crypto_alloc_skcipher”†”asbuh1hhj ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj ubj:)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj­ ubj² )�”}”(hŒu32 mask”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj` ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”je Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jp Œc.crypto_alloc_skcipher”†”asbuh1hhj\ ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj\ ubj:)�”}”(hŒmask”h]”hŒmask”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj\ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj­ ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj. h²hh³j? h´M ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj* h²hh³j? h´M ubah}”(h]”j% ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j? h´M hj' h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ$allocate symmetric key cipher handle”h]”hŒ$allocate symmetric key cipher handle”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M hj¶ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj' h²hh³j? h´M ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjÑ j‹jÑ jŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hX**Parameters** ``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the skcipher cipher ``u32 type`` specifies the type of the cipher ``u32 mask`` specifies the mask for the cipher **Description** Allocate a cipher handle for an skcipher. The returned struct crypto_skcipher is the cipher handle that is required for any subsequent API invocation for that skcipher. **Return** allocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjÛ h]”hŒ Parameters”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÙ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MhjÕ ubjÞ)�”}”(hhh]”(jã)�”}”(hŒh``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the skcipher cipher ”h]”(jé)�”}”(hŒ``const char *alg_name``”h]”jï)�”}”(hjú h]”hŒconst char *alg_name”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M hjô ubj)�”}”(hhh]”hÝ)�”}”(hŒNis the cra_name / name or cra_driver_name / driver name of the skcipher cipher”h]”hŒNis the cra_name / name or cra_driver_name / driver name of the skcipher cipher”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjô ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j h´M hjñ ubjã)�”}”(hŒ.``u32 type`` specifies the type of the cipher ”h]”(jé)�”}”(hŒ ``u32 type``”h]”jï)�”}”(hj4 h]”hŒu32 type”…”�”}”(hj6 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj2 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mhj. ubj)�”}”(hhh]”hÝ)�”}”(hŒ specifies the type of the cipher”h]”hŒ specifies the type of the cipher”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jI h´MhjJ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj. ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jI h´Mhjñ ubjã)�”}”(hŒ/``u32 mask`` specifies the mask for the cipher ”h]”(jé)�”}”(hŒ ``u32 mask``”h]”jï)�”}”(hjm h]”hŒu32 mask”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjk ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mhjg ubj)�”}”(hhh]”hÝ)�”}”(hŒ!specifies the mask for the cipher”h]”hŒ!specifies the mask for the cipher”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j‚ h´Mhjƒ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjg ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j‚ h´Mhjñ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÕ ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj¨ h]”hŒ Description”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj¦ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MhjÕ ubhÝ)�”}”(hŒ¨Allocate a cipher handle for an skcipher. The returned struct crypto_skcipher is the cipher handle that is required for any subsequent API invocation for that skcipher.”h]”hŒ¨Allocate a cipher handle for an skcipher. The returned struct crypto_skcipher is the cipher handle that is required for any subsequent API invocation for that skcipher.”…”�”}”(hj¾ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MhjÕ ubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjÏ h]”hŒReturn”…”�”}”(hjÑ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÍ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MhjÕ ubhÝ)�”}”(hŒsallocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”h]”hŒsallocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”…”�”•}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MhjÕ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ!crypto_free_skcipher (C function)”Œc.crypto_free_skcipher”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ7void crypto_free_skcipher (struct crypto_skcipher *tfm)”h]”j )�”}”(hŒ6void crypto_free_skcipher(struct crypto_skcipher *tfm)”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MCubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj h²hh³j" h´MCubj4)�”}”(hŒcrypto_free_skcipher”h]”j:)�”}”(hŒcrypto_free_skcipher”h]”hŒcrypto_free_skcipher”…”�”}”(hj5 h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj1 ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj h²hh³j" h´MCubj¬ )�”}”(hŒ(struct crypto_skcipher *tfm)”h]”j² )�”}”(hŒstruct crypto_skcipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjM ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjM ubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjl ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jq Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j7 sbŒc.crypto_free_skcipher”†”asbuh1hhjM ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjM ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjM ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjM ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjI ubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj h²hh³j" h´MCubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj h²hh³j" h´MCubah}”(h]”j ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j" h´MChj h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒzeroize and free cipher handle”h]”hŒzeroize and free cipher handle”…”�”}”(hjÔ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MChjÑ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj h²hh³j" h´MCubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjì j‹jì jŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hŒ **Parameters** ``struct crypto_skcipher *tfm`` cipher handle to be freed **Description** If **tfm** is a NULL or error pointer, this function does nothing.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjö h]”hŒ Parameters”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjô ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MGhjð ubjÞ)�”}”(hhh]”jã)�”}”(hŒ:``struct crypto_skcipher *tfm`` cipher handle to be freed ”h]”(jé)�”}”(hŒ``struct crypto_skcipher *tfm``”h]”jï)�”}”(hjh]”hŒstruct crypto_skcipher *tfm”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MDhjubj)�”}”(hhh]”hÝ)�”}”(hŒcipher handle to be freed”h]”hŒcipher handle to be freed”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j*h´MDhj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j*h´MDhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjð ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hjPh]”hŒ Description”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MFhjð ubhÝ)�”}”(hŒBIf **tfm** is a NULL or error pointer, this function does nothing.”h]”(hŒIf ”…”�”}”(hjfh²hh³Nh´Nubjš)�”}”(hŒ**tfm**”h]”hŒtfm”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjfubhŒ8 is a NULL or error pointer, this function does nothing.”…”�”}”(hjfh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MEhjð ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ crypto_has_skcipher (C function)”Œc.crypto_has_skcipher”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒBint crypto_has_skcipher (const char *alg_name, u32 type, u32 mask)”h]”j )�”}”(hŒAint crypto_has_skcipher(const char *alg_name, u32 type, u32 mask)”h]”(jÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj£h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M^ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj£h²hh³jµh´M^ubj4)�”}”(hŒcrypto_has_skcipher”h]”j:)�”}”(hŒcrypto_has_skcipher”h]”hŒcrypto_has_skcipher”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÄubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj£h²hh³jµh´M^ubj¬ )�”}”(hŒ*(const char *alg_name, u32 type, u32 mask)”h]”(j² )�”}”(hŒconst char *alg_name”h]”(j)�”}”(hj¹ h]”hŒconst”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjàubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjàubjÔ )�”}”(hŒchar”h]”hŒchar”…”�”}”(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„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjàubj:)�”}”(hŒalg_name”h]”hŒalg_name”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjàubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÜubj² )�”}”(hŒu32 type”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jFŒmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg jÊsbŒc.crypto_has_skcipher”†”asbuh1hhj=ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj=ubj:)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÜubj² )�”}”(hŒu32 mask”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj‹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j�Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j`Œc.crypto_has_skcipher”†”asbuh1hhj‡ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj‡ubj:)�”}”(hŒmask”h]”hŒmask”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj‡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÜubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj£h²hh³jµh´M^ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjŸh²hh³jµh´M^ubah}”(h]”jšah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³jµh´M^hjœh²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ+Search for the availability of an skcipher.”h]”hŒ+Search for the availability of an skcipher.”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M^hjáh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjœh²hh³jµh´M^ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjüj‹jüjŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hX2**Parameters** ``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the skcipher ``u32 type`` specifies the type of the skcipher ``u32 mask`` specifies the mask for the skcipher **Return** true when the skcipher is known to the kernel crypto API; false otherwise”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MbhjubjÞ)�”}”(hhh]”(jã)�”}”(hŒa``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the skcipher ”h]”(jé)�”}”(hŒ``const char *alg_name``”h]”jï)�”}”(hj%h]”hŒconst char *alg_name”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M`hjubj)�”}”(hhh]”hÝ)�”}”(hŒGis the cra_name / name or cra_driver_name / driver name of the skcipher”h]”hŒGis the cra_name / name or cra_driver_name / driver name of the skcipher”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M_hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j:h´M`hjubjã)�”}”(hŒ0``u32 type`` specifies the type of the skcipher ”h]”(jé)�”}”(hŒ ``u32 type``”h]”jï)�”}”(hj_h]”hŒu32 type”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MahjYubj)�”}”(hhh]”hÝ)�”}”(hŒ"specifies the type of the skcipher”h]”hŒ"specifies the type of the skcipher”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jth´Mahjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jth´Mahjubjã)�”}”(hŒ1``u32 mask`` specifies the mask for the skcipher ”h]”(jé)�”}”(hŒ ``u32 mask``”h]”jï)�”}”(hj˜h]”hŒu32 mask”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mbhj’ubj)�”}”(hhh]”hÝ)�”}”(hŒ#specifies the mask for the skcipher”h]”hŒ#specifies the mask for the skcipher”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j­h´Mbhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j­h´Mbhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjÓh]”hŒReturn”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MdhjubhÝ)�”}”(hŒItrue when the skcipher is known to the kernel crypto API; false otherwise”h]”hŒItrue when the skcipher is known to the kernel crypto API; false otherwise”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mdhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ#crypto_skcipher_ivsize (C function)”Œc.crypto_skcipher_ivsize”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒAunsigned int crypto_skcipher_ivsize (struct crypto_skcipher *tfm)”h]”j )�”}”(hŒ@unsigned int crypto_skcipher_ivsize(struct crypto_skcipher *tfm)”h]”(jÔ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjh²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M‹ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjh²hh³j&h´M‹ubjÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjh²hh³j&h´M‹ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjh²hh³j&h´M‹ubj4)�”}”(hŒcrypto_skcipher_ivsize”h]”j:)�”}”(hŒcrypto_skcipher_ivsize”h]”hŒcrypto_skcipher_ivsize”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjQubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjh²hh³j&h´M‹ubj¬ )�”}”(hŒ(struct crypto_skcipher *tfm)”h]”j² )�”}”(hŒstruct crypto_skcipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjmubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjmubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjŒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j‘Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg jWsbŒc.crypto_skcipher_ivsize”†”asbuh1hhjmubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjmubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjmubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjmubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjiubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjh²hh³j&h´M‹ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjh²hh³j&h´M‹ubah}”(h]”j ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j&h´M‹hj h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒobtain IV size”h]”hŒobtain IV size”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M‹hjñh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj h²hh³j&h´M‹ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠj j‹j jŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hŒü**Parameters** ``struct crypto_skcipher *tfm`` cipher handle **Description** The size of the IV for the skcipher referenced by the cipher handle is returned. This IV size may be zero if the cipher does not need an IV. **Return** IV size in bytes”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M�hjubjÞ)�”}”(hhh]”jã)�”}”(hŒ.``struct crypto_skcipher *tfm`` cipher handle ”h]”(jé)�”}”(hŒ``struct crypto_skcipher *tfm``”h]”jï)�”}”(hj5h]”hŒstruct crypto_skcipher *tfm”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MŒhj/ubj)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jJh´MŒhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jJh´MŒhj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hjph]”hŒ Description”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MŽhjubhÝ)�”}”(hŒŒThe size of the IV for the skcipher referenced by the cipher handle is returned. This IV size may be zero if the cipher does not need an IV.”h]”hŒŒThe size of the IV for the skcipher referenced by the cipher handle is returned. This IV size may be zero if the cipher does not need an IV.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M�hjubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hj—h]”hŒReturn”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M�hjubhÝ)�”}”(hŒIV size in bytes”h]”hŒIV size in bytes”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M‘hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ&crypto_skcipher_blocksize (C function)”Œc.crypto_skcipher_blocksize”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒDunsigned int crypto_skcipher_blocksize (struct crypto_skcipher *tfm)”h]”j )�”}”(hŒCunsigned int crypto_skcipher_blocksize(struct crypto_skcipher *tfm)”h]”(jÔ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjØh²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M®ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjØh²hh³jêh´M®ubjÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjØh²hh³jêh´M®ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjØh²hh³jêh´M®ubj4)�”}”(hŒcrypto_skcipher_blocksize”h]”j:)�”}”(hŒcrypto_skcipher_blocksize”h]”hŒcrypto_skcipher_blocksize”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjØh²hh³jêh´M®ubj¬ )�”}”(hŒ(struct crypto_skcipher *tfm)”h]”j² )�”}”(hŒstruct crypto_skcipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj1ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj1ubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjPubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jUŒmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg jsbŒc.crypto_skcipher_blocksize”†”asbuh1hhj1ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj1ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj1ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj-ubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjØh²hh³jêh´M®ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjÔh²hh³jêh´M®ubah}”(h]”jÏah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³jêh´M®hjÑh²hubjh)�”}”(hhh]”hÝ)�”}”(hŒobtain block size of cipher”h]”hŒobtain block size of cipher”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M®hjµh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÑh²hh³jêh´M®ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjÐj‹jÐjŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hXE**Parameters** ``struct crypto_skcipher *tfm`` cipher handle **Description** The block size for the skcipher referenced with the cipher handle is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation **Return** block size of cipher”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjÚh]”hŒ Parameters”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M²hjÔubjÞ)�”}”(hhh]”jã)�”}”(hŒ.``struct crypto_skcipher *tfm`` cipher handle ”h]”(jé)�”}”(hŒ``struct crypto_skcipher *tfm``”h]”jï)�”}”(hjùh]”hŒstruct crypto_skcipher *tfm”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M¯hjóubj)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´M¯hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjóubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jh´M¯hjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÔubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj4h]”hŒ Description”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M±hjÔubhÝ)�”}”(hŒÑThe block size for the skcipher referenced with the cipher handle is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation”h]”hŒÑThe block size for the skcipher referenced with the cipher handle is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M°hjÔubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hj[h]”hŒReturn”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M´hjÔubhÝ)�”}”(hŒblock size of cipher”h]”hŒblock size of cipher”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MµhjÔubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ#crypto_skcipher_setkey (C function)”Œc.crypto_skcipher_setkey”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ\int crypto_skcipher_setkey (struct crypto_skcipher *tfm, const u8 *key, unsigned int keylen)”h]”j )�”}”(hŒ[int crypto_skcipher_setkey(struct crypto_skcipher *tfm, const u8 *key, unsigned int keylen)”h]”(jÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjœh²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MXubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjœh²hh³j®h´MXubj4)�”}”(hŒcrypto_skcipher_setkey”h]”j:)�”}”(hŒcrypto_skcipher_setkey”h]”hŒcrypto_skcipher_setkey”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj½ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjœh²hh³j®h´MXubj¬ )�”}”(hŒA(struct crypto_skcipher *tfm, const u8 *key, unsigned int keylen)”h]”(j² )�”}”(hŒstruct crypto_skcipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÙubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÙubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjøubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jýŒmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg jÃsbŒc.crypto_skcipher_setkey”†”asbuh1hhjÙubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÙubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjÙubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÙubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÕubj² )�”}”(hŒ const u8 *key”h]”(j)�”}”(hj¹ h]”hŒconst”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjKubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjKubh)�”}”(hhh]”j:)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”joŒmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jŒc.crypto_skcipher_setkey”†”asbuh1hhjKubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjKubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjKubj:)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjKubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÕubj² )�”}”(hŒunsigned int keylen”h]”(jÔ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj»ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj»ubjÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj»ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj»ubj:)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj»ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÕubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjœh²hh³j®h´MXubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj˜h²hh³j®h´MXubah}”(h]”j“ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j®h´MXhj•h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒset key for cipher”h]”hŒset key for cipher”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MXhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj•h²hh³j®h´MXubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠj9j‹j9jŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hXL**Parameters** ``struct crypto_skcipher *tfm`` cipher handle ``const u8 *key`` buffer holding the key ``unsigned int keylen`` length of the key in bytes **Description** The caller provided key is set for the skcipher referenced by the cipher handle. Note, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed. **Return** 0 if the setting of the key was successful; < 0 if an error occurred”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjCh]”hŒ Parameters”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M\hj=ubjÞ)�”}”(hhh]”(jã)�”}”(hŒ.``struct crypto_skcipher *tfm`` cipher handle ”h]”(jé)�”}”(hŒ``struct crypto_skcipher *tfm``”h]”jï)�”}”(hjbh]”hŒstruct crypto_skcipher *tfm”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MYhj\ubj)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jwh´MYhjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jwh´MYhjYubjã)�”}”(hŒ)``const u8 *key`` buffer holding the key ”h]”(jé)�”}”(hŒ``const u8 *key``”h]”jï)�”}”(hj›h]”hŒ const u8 *key”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MZhj•ubj)�”}”(hhh]”hÝ)�”}”(hŒbuffer holding the key”h]”hŒbuffer holding the key”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j°h´MZhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j°h´MZhjYubjã)�”}”(hŒ3``unsigned int keylen`` length of the key in bytes ”h]”(jé)�”}”(hŒ``unsigned int keylen``”h]”jï)�”}”(hjÔh]”hŒunsigned int keylen”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M[hjÎubj)�”}”(hhh]”hÝ)�”}”(hŒlength of the key in bytes”h]”hŒlength of the key in bytes”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jéh´M[hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jéh´M[hjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj=ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M]hj=ubhÝ)�”}”(hŒPThe caller provided key is set for the skcipher referenced by the cipher handle.”h]”hŒPThe caller provided key is set for the skcipher referenced by the cipher handle.”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M\hj=ubhÝ)�”}”(hŒôNote, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed.”h]”hŒôNote, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed.”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M_hj=ubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjEh]”hŒReturn”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mdhj=ubhÝ)�”}”(hŒD0 if the setting of the key was successful; < 0 if an error occurred”h]”hŒD0 if the setting of the key was successful; < 0 if an error occurred”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mehj=ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ#crypto_skcipher_reqtfm (C function)”Œc.crypto_skcipher_reqtfm”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒNstruct crypto_skcipher * crypto_skcipher_reqtfm (struct skcipher_request *req)”h]”j )�”}”(hŒLstruct crypto_skcipher *crypto_skcipher_reqtfm(struct skcipher_request *req)”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj†h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mœubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj†h²hh³j—h´Mœubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj¦ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j«Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg Œcrypto_skcipher_reqtfm”sbŒc.crypto_skcipher_reqtfm”†”asbuh1hhj†h²hh³j—h´Mœubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj†h²hh³j—h´Mœubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj†h²hh³j—h´Mœubj4)�”}”(hŒcrypto_skcipher_reqtfm”h]”j:)�”}”(hjÇh]”hŒcrypto_skcipher_reqtfm”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjåubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj†h²hh³j—h´Mœubj¬ )�”}”(hŒ(struct skcipher_request *req)”h]”j² )�”}”(hŒstruct skcipher_request *req”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjubh)�”}”(hhh]”j:)�”}”(hŒskcipher_request”h]”hŒskcipher_request”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j$Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jÅŒc.crypto_skcipher_reqtfm”†”asbuh1hhjubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjubj:)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjüubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj†h²hh³j—h´Mœubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj‚h²hh³j—h´Mœubah}”(h]”j}ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j—h´Mœhjh²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ!obtain cipher handle from request”h]”hŒ!obtain cipher handle from request”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mœhj‚h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjh²hh³j—h´Mœubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠj�j‹j�jŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hX**Parameters** ``struct skcipher_request *req`` skcipher_request out of which the cipher handle is to be obtained **Description** Return the crypto_skcipher handle when furnishing an skcipher_request data structure. **Return** crypto_skcipher handle”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hj§h]”hŒ Parameters”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M hj¡ubjÞ)�”}”(hhh]”jã)�”}”(hŒc``struct skcipher_request *req`` skcipher_request out of which the cipher handle is to be obtained ”h]”(jé)�”}”(hŒ ``struct skcipher_request *req``”h]”jï)�”}”(hjÆh]”hŒstruct skcipher_request *req”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M�hjÀubj)�”}”(hhh]”hÝ)�”}”(hŒAskcipher_request out of which the cipher handle is to be obtained”h]”hŒAskcipher_request out of which the cipher handle is to be obtained”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÛh´M�hjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jÛh´M�hj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj¡ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MŸhj¡ubhÝ)�”}”(hŒUReturn the crypto_skcipher handle when furnishing an skcipher_request data structure.”h]”hŒUReturn the crypto_skcipher handle when furnishing an skcipher_request data structure.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mžhj¡ubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hj(h]”hŒReturn”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M¡hj¡ubhÝ)�”}”(hŒcrypto_skcipher handle”h]”hŒcrypto_skcipher handle”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M¢hj¡ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ$crypto_skcipher_encrypt (C function)”Œc.crypto_skcipher_encrypt”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:int crypto_skcipher_encrypt (struct skcipher_request *req)”h]”j )�”}”(hŒ9int crypto_skcipher_encrypt(struct skcipher_request *req)”h]”(jÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjih²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M³ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjih²hh³j{h´M³ubj4)�”}”(hŒcrypto_skcipher_encrypt”h]”j:)�”}”(hŒcrypto_skcipher_encrypt”h]”hŒcrypto_skcipher_encrypt”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjŠubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjih²hh³j{h´M³ubj¬ )�”}”(hŒ(struct skcipher_request *req)”h]”j² )�”}”(hŒstruct skcipher_request *req”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¦ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj¦ubh)�”}”(hhh]”j:)�”}”(hŒskcipher_request”h]”hŒskcipher_request”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÅubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jÊŒmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j�sbŒc.crypto_skcipher_encrypt”†”asbuh1hhj¦ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj¦ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj¦ubj:)�”}”(hŒreq”h]”hŒreq”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj¦ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj¢ubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjih²hh³j{h´M³ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjeh²hh³j{h´M³ubah}”(h]”j`ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j{h´M³hjbh²hubjh)�”}”(hhh]”hÝ)�”}”(hŒencrypt plaintext”h]”hŒencrypt plaintext”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M³hj*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjbh²hh³j{h´M³ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjEj‹jEjŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hX¢**Parameters** ``struct skcipher_request *req`` reference to the skcipher_request handle that holds all information needed to perform the cipher operation **Description** Encrypt plaintext data using the skcipher_request handle. That data structure and how it is filled with data is discussed with the skcipher_request_* functions. **Return** 0 if the cipher operation was successful; < 0 if an error occurred”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjOh]”hŒ Parameters”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M·hjIubjÞ)�”}”(hhh]”jã)�”}”(hŒŒ``struct skcipher_request *req`` reference to the skcipher_request handle that holds all information needed to perform the cipher operation ”h]”(jé)�”}”(hŒ ``struct skcipher_request *req``”h]”jï)�”}”(hjnh]”hŒstruct skcipher_request *req”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´Mµhjhubj)�”}”(hhh]”hÝ)�”}”(hŒjreference to the skcipher_request handle that holds all information needed to perform the cipher operation”h]”hŒjreference to the skcipher_request handle that holds all information needed to perform the cipher operation”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M´hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jƒh´Mµhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjIubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hjªh]”hŒ Description”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M·hjIubhÝ)�”}”(hŒ Encrypt plaintext data using the skcipher_request handle. That data structure and how it is filled with data is discussed with the skcipher_request_* functions.”h]”hŒ Encrypt plaintext data using the skcipher_request handle. That data structure and how it is filled with data is discussed with the skcipher_request_* functions.”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M¶hjIubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjÑh]”hŒReturn”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MºhjIubhÝ)�”}”(hŒB0 if the cipher operation was successful; < 0 if an error occurred”h]”hŒB0 if the cipher operation was successful; < 0 if an error occurred”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´M»hjIubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ$crypto_skcipher_decrypt (C function)”Œc.crypto_skcipher_decrypt”hNt”auh1híhjÌ h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:int crypto_skcipher_decrypt (struct skcipher_request *req)”h]”j )�”}”(hŒ9int crypto_skcipher_decrypt(struct skcipher_request *req)”h]”(jÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjh²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÀubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjh²hh³j$h´MÀubj4)�”}”(hŒcrypto_skcipher_decrypt”h]”j:)�”}”(hŒcrypto_skcipher_decrypt”h]”hŒcrypto_skcipher_decrypt”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj3ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjh²hh³j$h´MÀubj¬ )�”}”(hŒ(struct skcipher_request *req)”h]”j² )�”}”(hŒstruct skcipher_request *req”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjOubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjOubh)�”}”(hhh]”j:)�”}”(hŒskcipher_request”h]”hŒskcipher_request”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjnubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jsŒmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j9sbŒc.crypto_skcipher_decrypt”†”asbuh1hhjOubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjOubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjOubj:)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjKubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjh²hh³j$h´MÀubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjh²hh³j$h´MÀubah}”(h]”j ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j$h´MÀhj h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒdecrypt ciphertext”h]”hŒdecrypt ciphertext”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÀhjÓh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj h²hh³j$h´MÀubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjîj‹jîjŒ‰j�‰jމuh1hÿh²hhjÌ h³Nh´Nubj�)�”}”(hX£**Parameters** ``struct skcipher_request *req`` reference to the skcipher_request handle that holds all information needed to perform the cipher operation **Description** Decrypt ciphertext data using the skcipher_request handle. That data structure and how it is filled with data is discussed with the skcipher_request_* functions. **Return** 0 if the cipher operation was successful; < 0 if an error occurred”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjøh]”hŒ Parameters”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjöubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÄhjòubjÞ)�”}”(hhh]”jã)�”}”(hŒŒ``struct skcipher_request *req`` reference to the skcipher_request handle that holds all information needed to perform the cipher operation ”h]”(jé)�”}”(hŒ ``struct skcipher_request *req``”h]”jï)�”}”(hjh]”hŒstruct skcipher_request *req”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÂhjubj)�”}”(hhh]”hÝ)�”}”(hŒjreference to the skcipher_request handle that holds all information needed to perform the cipher operation”h]”hŒjreference to the skcipher_request handle that holds all information needed to perform the cipher operation”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÁhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j,h´MÂhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjòubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hjSh]”hŒ Description”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÄhjòubhÝ)�”}”(hŒ¡Decrypt ciphertext data using the skcipher_request handle. That data structure and how it is filled with data is discussed with the skcipher_request_* functions.”h]”hŒ¡Decrypt ciphertext data using the skcipher_request handle. That data structure and how it is filled with data is discussed with the skcipher_request_* functions.”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÃhjòubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjzh]”hŒReturn”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÇhjòubhÝ)�”}”(hŒB0 if the cipher operation was successful; < 0 if an error occurred”h]”hŒB0 if the cipher operation was successful; < 0 if an error occurred”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:19: ./include/crypto/skcipher.h”h´MÈhjòubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÌ h²hh³Nh´Nubeh}”(h]”Œsymmetric-key-cipher-api”ah ]”h"]”Œsymmetric key cipher api”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ#Symmetric Key Cipher Request Handle”h]”hŒ#Symmetric Key Cipher Request Handle”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj®h²hh³hÊh´KubhÝ)�”}”(hX˜The skcipher_request data structure contains all pointers to data required for the symmetric key cipher operation. This includes the cipher handle (which can be used by multiple skcipher_request instances), pointer to plaintext and ciphertext, asynchronous callback function, etc. It acts as a handle to the skcipher_request_* API calls in a similar way as skcipher handle to the crypto_skcipher_* API calls.”h]”hX˜The skcipher_request data structure contains all pointers to data required for the symmetric key cipher operation. This includes the cipher handle (which can be used by multiple skcipher_request instances), pointer to plaintext and ciphertext, asynchronous callback function, etc. It acts as a handle to the skcipher_request_* API calls in a similar way as skcipher handle to the crypto_skcipher_* API calls.”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:25: ./include/crypto/skcipher.h”h´Mhj®h²hubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ$crypto_skcipher_reqsize (C function)”Œc.crypto_skcipher_reqsize”hNt”auh1híhj®h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒBunsigned int crypto_skcipher_reqsize (struct crypto_skcipher *tfm)”h]”j )�”}”(hŒAunsigned int crypto_skcipher_reqsize(struct crypto_skcipher *tfm)”h]”(jÔ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjãh²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjãh²hh³jõh´M ubjÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjãh²hh³jõh´M ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjãh²hh³jõh´M ubj4)�”}”(hŒcrypto_skcipher_reqsize”h]”j:)�”}”(hŒcrypto_skcipher_reqsize”h]”hŒcrypto_skcipher_reqsize”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjãh²hh³jõh´M ubj¬ )�”}”(hŒ(struct crypto_skcipher *tfm)”h]”j² )�”}”(hŒstruct crypto_skcipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj<ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj<ubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj[ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j`Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j&sbŒc.crypto_skcipher_reqsize”†”asbuh1hhj<ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj<ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj<ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj<ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj8ubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjãh²hh³jõh´M ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjßh²hh³jõh´M ubah}”(h]”jÚah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³jõh´M hjÜh²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ)obtain size of the request data structure”h]”hŒ)obtain size of the request data structure”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M hjÀh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÜh²hh³jõh´M ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjÛj‹jÛjŒ‰j�‰jމuh1hÿh²hhj®h³Nh´Nubj�)�”}”(hŒ\**Parameters** ``struct crypto_skcipher *tfm`` cipher handle **Return** number of bytes”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjåh]”hŒ Parameters”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjãubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M$hjßubjÞ)�”}”(hhh]”jã)�”}”(hŒ.``struct crypto_skcipher *tfm`` cipher handle ”h]”(jé)�”}”(hŒ``struct crypto_skcipher *tfm``”h]”jï)�”}”(hjh]”hŒstruct crypto_skcipher *tfm”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M!hjþubj)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jh´M!hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jh´M!hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjßubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hj?h]”hŒReturn”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M#hjßubhÝ)�”}”(hŒnumber of bytes”h]”hŒnumber of bytes”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M#hjßubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj®h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ%skcipher_request_set_tfm (C function)”Œc.skcipher_request_set_tfm”hNt”auh1híhj®h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒYvoid skcipher_request_set_tfm (struct skcipher_request *req, struct crypto_skcipher *tfm)”h]”j )�”}”(hŒXvoid skcipher_request_set_tfm(struct skcipher_request *req, struct crypto_skcipher *tfm)”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj€h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M+ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj€h²hh³j’h´M+ubj4)�”}”(hŒskcipher_request_set_tfm”h]”j:)�”}”(hŒskcipher_request_set_tfm”h]”hŒskcipher_request_set_tfm”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj¡ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj€h²hh³j’h´M+ubj¬ )�”}”(hŒ;(struct skcipher_request *req, struct crypto_skcipher *tfm)”h]”(j² )�”}”(hŒstruct skcipher_request *req”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj½ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj½ubh)�”}”(hhh]”j:)�”}”(hŒskcipher_request”h]”hŒskcipher_request”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jáŒmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j§sbŒc.skcipher_request_set_tfm”†”asbuh1hhj½ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj½ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj½ubj:)�”}”(hŒreq”h]”hŒreq”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj½ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj¹ubj² )�”}”(hŒstruct crypto_skcipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj/ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj/ubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jSŒmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jûŒc.skcipher_request_set_tfm”†”asbuh1hhj/ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj/ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj/ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj/ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj¹ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj€h²hh³j’h´M+ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj|h²hh³j’h´M+ubah}”(h]”jwah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j’h´M+hjyh²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ)update cipher handle reference in request”h]”hŒ)update cipher handle reference in request”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M+hj±h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjyh²hh³j’h´M+ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjÌj‹jÌjŒ‰j�‰jމuh1hÿh²hhj®h³Nh´Nubj�)�”}”(hX***Parameters** ``struct skcipher_request *req`` request handle to be modified ``struct crypto_skcipher *tfm`` cipher handle that shall be added to the request handle **Description** Allow the caller to replace the existing skcipher handle in the request data structure with a different one.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjÖh]”hŒ Parameters”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M/hjÐubjÞ)�”}”(hhh]”(jã)�”}”(hŒ?``struct skcipher_request *req`` request handle to be modified ”h]”(jé)�”}”(hŒ ``struct skcipher_request *req``”h]”jï)�”}”(hjõh]”hŒstruct skcipher_request *req”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjóubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M,hjïubj)�”}”(hhh]”hÝ)�”}”(hŒrequest handle to be modified”h]”hŒrequest handle to be modified”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j h´M,hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j h´M,hjìubjã)�”}”(hŒX``struct crypto_skcipher *tfm`` cipher handle that shall be added to the request handle ”h]”(jé)�”}”(hŒ``struct crypto_skcipher *tfm``”h]”jï)�”}”(hj. h]”hŒstruct crypto_skcipher *tfm”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj, ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M-hj( ubj)�”}”(hhh]”hÝ)�”}”(hŒ7cipher handle that shall be added to the request handle”h]”hŒ7cipher handle that shall be added to the request handle”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jC h´M-hjD ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj( ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jC h´M-hjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÐubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hji h]”hŒ Description”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjg ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M/hjÐubhÝ)�”}”(hŒlAllow the caller to replace the existing skcipher handle in the request data structure with a different one.”h]”hŒlAllow the caller to replace the existing skcipher handle in the request data structure with a different one.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M.hjÐubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj®h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ#skcipher_request_alloc (C function)”Œc.skcipher_request_alloc”hNt”auh1híhj®h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒYstruct skcipher_request * skcipher_request_alloc (struct crypto_skcipher *tfm, gfp_t gfp)”h]”j )�”}”(hŒWstruct skcipher_request *skcipher_request_alloc(struct crypto_skcipher *tfm, gfp_t gfp)”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj® h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjª h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MEubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼ h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjª h²hh³j» h´MEubh)�”}”(hhh]”j:)�”}”(hŒskcipher_request”h]”hŒskcipher_request”…”�”}”(hjÍ h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÊ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jÏ Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg Œskcipher_request_alloc”sbŒc.skcipher_request_alloc”†”asbuh1hhjª h²hh³j» h´MEubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjª h²hh³j» h´MEubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjª h²hh³j» h´MEubj4)�”}”(hŒskcipher_request_alloc”h]”j:)�”}”(hjë h]”hŒskcipher_request_alloc”…”�”}”(hj !h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj !ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjª h²hh³j» h´MEubj¬ )�”}”(hŒ((struct crypto_skcipher *tfm, gfp_t gfp)”h]”(j² )�”}”(hŒstruct crypto_skcipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj(!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj$!ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5!h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj$!ubh)�”}”(hhh]”j:)�”}”(hŒcrypto_skcipher”h]”hŒcrypto_skcipher”…”�”}”(hjF!h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjC!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jH!Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jé Œc.skcipher_request_alloc”†”asbuh1hhj$!ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd!h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj$!ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjr!h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj$!ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj$!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj !ubj² )�”}”(hŒ gfp_t gfp”h]”(h)�”}”(hhh]”j:)�”}”(hŒgfp_t”h]”hŒgfp_t”…”�”}”(hj›!h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj˜!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j�!Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jé Œc.skcipher_request_alloc”†”asbuh1hhj”!ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹!h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj”!ubj:)�”}”(hŒgfp”h]”hŒgfp”…”�”}”(hjÇ!h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj”!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj !ube•h}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjª h²hh³j» h´MEubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj¦ h²hh³j» h´MEubah}”(h]”j¡ ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j» h´MEhj£ h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒallocate request data structure”h]”hŒallocate request data structure”…”�”}”(hjñ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MEhjî!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj£ h²hh³j» h´MEubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠj "j‹j "jŒ‰j�‰jމuh1hÿh²hhj®h³Nh´Nubj�)�”}”(hXá**Parameters** ``struct crypto_skcipher *tfm`` cipher handle to be registered with the request ``gfp_t gfp`` memory allocation flag that is handed to kmalloc by the API call. **Description** Allocate the request data structure that must be used with the skcipher encrypt and decrypt API calls. During the allocation, the provided skcipher handle is registered in the request data structure. **Return** allocated request handle in case of success, or NULL if out of memory”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hj"h]”hŒ Parameters”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MIhj "ubjÞ)�”}”(hhh]”(jã)�”}”(hŒP``struct crypto_skcipher *tfm`` cipher handle to be registered with the request ”h]”(jé)�”}”(hŒ``struct crypto_skcipher *tfm``”h]”jï)�”}”(hj2"h]”hŒstruct crypto_skcipher *tfm”…”�”}”(hj4"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj0"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MFhj,"ubj)�”}”(hhh]”hÝ)�”}”(hŒ/cipher handle to be registered with the request”h]”hŒ/cipher handle to be registered with the request”…”�”}”(hjK"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jG"h´MFhjH"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj,"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jG"h´MFhj)"ubjã)�”}”(hŒP``gfp_t gfp`` memory allocation flag that is handed to kmalloc by the API call. ”h]”(jé)�”}”(hŒ ``gfp_t gfp``”h]”jï)�”}”(hjk"h]”hŒ gfp_t gfp”…”�”}”(hjm"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhji"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MGhje"ubj)�”}”(hhh]”hÝ)�”}”(hŒAmemory allocation flag that is handed to kmalloc by the API call.”h]”hŒAmemory allocation flag that is handed to kmalloc by the API call.”…”�”}”(hj„"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j€"h´MGhj�"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhje"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j€"h´MGhj)"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj "ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj¦"h]”hŒ Description”…”�”}”(hj¨"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj¤"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MIhj "ubhÝ)�”}”(hŒÇAllocate the request data structure that must be used with the skcipher encrypt and decrypt API calls. During the allocation, the provided skcipher handle is registered in the request data structure.”h]”hŒÇAllocate the request data structure that must be used with the skcipher encrypt and decrypt API calls. During the allocation, the provided skcipher handle is registered in the request data structure.”…”�”}”(hj¼"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MHhj "ubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjÍ"h]”hŒReturn”…”�”}”(hjÏ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjË"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MLhj "ubhÝ)�”}”(hŒEallocated request handle in case of success, or NULL if out of memory”h]”hŒEallocated request handle in case of success, or NULL if out of memory”…”�”}”(hjã"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MMhj "ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj®h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ"skcipher_request_free (C function)”Œc.skcipher_request_free”hNt”auh1híhj®h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ9void skcipher_request_free (struct skcipher_request *req)”h]”j )�”}”(hŒ8void skcipher_request_free(struct skcipher_request *req)”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj#h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M_ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!#h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj#h²hh³j #h´M_ubj4)�”}”(hŒskcipher_request_free”h]”j:)�”}”(hŒskcipher_request_free”h]”hŒskcipher_request_free”…”�”}”(hj3#h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj/#ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj#h²hh³j #h´M_ubj¬ )�”}”(hŒ(struct skcipher_request *req)”h]”j² )�”}”(hŒstruct skcipher_request *req”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjO#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjK#ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\#h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjK#ubh)�”}”(hhh]”j:)�”}”(hŒskcipher_request”h]”hŒskcipher_request”…”�”}”(hjm#h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjj#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jo#Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j5#sbŒc.skcipher_request_free”†”asbuh1hhjK#ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�#h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjK#ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj›#h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjK#ubj:)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj¨#h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjK#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjG#ubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj#h²hh³j #h´M_ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj #h²hh³j #h´M_ubah}”(h]”j#ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j #h´M_hj#h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ'zeroize and free request data structure”h]”hŒ'zeroize and free request data structure”…”�”}”(hjÒ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M_hjÏ#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj#h²hh³j #h´M_ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjê#j‹jê#jŒ‰j�‰jމuh1hÿh²hhj®h³Nh´Nubj�)�”}”(hŒc**Parameters** ``struct skcipher_request *req`` request data structure cipher handle to be freed”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjô#h]”hŒ Parameters”…”�”}”(hjö#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjò#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mchjî#ubjÞ)�”}”(hhh]”jã)�”}”(hŒQ``struct skcipher_request *req`` request data structure cipher handle to be freed”h]”(jé)�”}”(hŒ ``struct skcipher_request *req``”h]”jï)�”}”(hj$h]”hŒstruct skcipher_request *req”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mehj $ubj)�”}”(hhh]”hÝ)�”}”(hŒ0request data structure cipher handle to be freed”h]”hŒ0request data structure cipher handle to be freed”…”�”}”(hj,$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M`hj)$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj $ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j($h´Mehj $ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjî#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj®h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ*skcipher_request_set_callback (C function)”Œc.skcipher_request_set_callback”hNt”auh1híhj®h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒsvoid skcipher_request_set_callback (struct skcipher_request *req, u32 flags, crypto_completion_t compl, void *data)”h]”j )�”}”(hŒrvoid skcipher_request_set_callback(struct skcipher_request *req, u32 flags, crypto_completion_t compl, void *data)”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjm$h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hji$h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Moubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|$h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hji$h²hh³j{$h´Moubj4)�”}”(hŒskcipher_request_set_callback”h]”j:)�”}”(hŒskcipher_request_set_callback”h]”hŒskcipher_request_set_callback”…”�”}”(hjŽ$h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjŠ$ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hji$h²hh³j{$h´Moubj¬ )�”}”(hŒP(struct skcipher_request *req, u32 flags, crypto_completion_t compl, void *data)”h]”(j² )�”}”(hŒstruct skcipher_request *req”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjª$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¦$ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·$h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj¦$ubh)�”}”(hhh]”j:)�”}”(hŒskcipher_request”h]”hŒskcipher_request”…”�”}”(hjÈ$h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÅ$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jÊ$Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j�$sbŒc.skcipher_request_set_callback”†”asbuh1hhj¦$ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjè$h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj¦$ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjö$h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj¦$ubj:)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj¦$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj¢$ubj² )�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j!%Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jä$Œc.skcipher_request_set_callback”†”asbuh1hhj%ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=%h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj%ubj:)�”}”(hŒflags”h]”hŒflags”…”�”}”(hjK%h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj¢$ubj² )�”}”(hŒcrypto_completion_t compl”h]”(h)�”}”(hhh]”j:)�”}”(hŒcrypto_completion_t”h]”hŒcrypto_completion_t”…”�”}”(hjg%h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjd%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”ji%Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jä$Œc.skcipher_request_set_callback”†”asbuh1hhj`%ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…%h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj`%ubj:)�”}”(hŒcompl”h]”hŒcompl”…”�”}”(hj“%h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj`%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj¢$ubj² )�”}”(hŒ void *data”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¬%h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj¨%ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº%h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj¨%ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjÈ%h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj¨%ubj:)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÕ%h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj¨%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj¢$ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hji$h²hh³j{$h´Moubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hje$h²hh³j{$h´Moubah}”(h]”j`$ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j{$h´Mohjb$h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ"set asynchronous callback function”h]”hŒ"set asynchronous callback function”…”�”}”(hjÿ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mohjü%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjb$h²hh³j{$h´Moubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠj&j‹j&jŒ‰j�‰jމuh1hÿh²hhj®h³Nh´Nubj�)�”}”(hX**Parameters** ``struct skcipher_request *req`` request handle ``u32 flags`` specify zero or an ORing of the flags CRYPTO_TFM_REQ_MAY_BACKLOG the request queue may back log and increase the wait queue beyond the initial maximum size; CRYPTO_TFM_REQ_MAY_SLEEP the request processing may sleep ``crypto_completion_t compl`` callback function pointer to be registered with the request handle ``void *data`` The data pointer refers to memory that is not used by the kernel crypto API, but provided to the callback function for it to use. Here, the caller can provide a reference to memory the callback function can operate on. As the callback function is invoked asynchronously to the related functionality, it may need to access data structures of the related functionality which can be referenced using this pointer. The callback function can access the memory via the "data" field in the crypto_async_request data structure provided to the callback function. **Description** This function allows setting the callback function that is triggered once the cipher operation completes. The callback function is registered with the skcipher_request handle and must comply with the following template:: void callback_function(struct crypto_async_request *req, int error)”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hj!&h]”hŒ Parameters”…”�”}”(hj#&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mshj&ubjÞ)�”}”(hhh]”(jã)�”}”(hŒ0``struct skcipher_request *req`` request handle ”h]”(jé)�”}”(hŒ ``struct skcipher_request *req``”h]”jï)�”}”(hj@&h]”hŒstruct skcipher_request *req”…”�”}”(hjB&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj>&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mphj:&ubj)�”}”(hhh]”hÝ)�”}”(hŒrequest handle”h]”hŒrequest handle”…”�”}”(hjY&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jU&h´MphjV&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj:&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jU&h´Mphj7&ubjã)�”}”(hŒå``u32 flags`` specify zero or an ORing of the flags CRYPTO_TFM_REQ_MAY_BACKLOG the request queue may back log and increase the wait queue beyond the initial maximum size; CRYPTO_TFM_REQ_MAY_SLEEP the request processing may sleep ”h]”(jé)�”}”(hŒ ``u32 flags``”h]”jï)�”}”(hjy&h]”hŒ u32 flags”…”�”}”(hj{&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjw&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mthjs&ubj)�”}”(hhh]”hÝ)�”}”(hŒÖspecify zero or an ORing of the flags CRYPTO_TFM_REQ_MAY_BACKLOG the request queue may back log and increase the wait queue beyond the initial maximum size; CRYPTO_TFM_REQ_MAY_SLEEP the request processing may sleep”h]”hŒÖspecify zero or an ORing of the flags CRYPTO_TFM_REQ_MAY_BACKLOG the request queue may back log and increase the wait queue beyond the initial maximum size; CRYPTO_TFM_REQ_MAY_SLEEP the request processing may sleep”…”�”}”(hj’&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mqhj�&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjs&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jŽ&h´Mthj7&ubjã)�”}”(hŒa``crypto_completion_t compl`` callback function pointer to be registered with the request handle ”h]”(jé)�”}”(hŒ``crypto_completion_t compl``”h]”jï)�”}”(hj³&h]”hŒcrypto_completion_t compl”…”�”}”(hjµ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj±&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Muhj­&ubj)�”}”(hhh]”hÝ)�”}”(hŒBcallback function pointer to be registered with the request handle”h]”hŒBcallback function pointer to be registered with the request handle”…”�”}”(hjÌ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÈ&h´MuhjÉ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj­&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jÈ&h´Muhj7&ubjã)�”}”(hX9``void *data`` The data pointer refers to memory that is not used by the kernel crypto API, but provided to the callback function for it to use. Here, the caller can provide a reference to memory the callback function can operate on. As the callback function is invoked asynchronously to the related functionality, it may need to access data structures of the related functionality which can be referenced using this pointer. The callback function can access the memory via the "data" field in the crypto_async_request data structure provided to the callback function. ”h]”(jé)�”}”(hŒ``void *data``”h]”jï)�”}”(hjì&h]”hŒ void *data”…”�”}”(hjî&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjê&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M}hjæ&ubj)�”}”(hhh]”hÝ)�”}”(hX)The data pointer refers to memory that is not used by the kernel crypto API, but provided to the callback function for it to use. Here, the caller can provide a reference to memory the callback function can operate on. As the callback function is invoked asynchronously to the related functionality, it may need to access data structures of the related functionality which can be referenced using this pointer. The callback function can access the memory via the "data" field in the crypto_async_request data structure provided to the callback function.”h]”hX-The data pointer refers to memory that is not used by the kernel crypto API, but provided to the callback function for it to use. Here, the caller can provide a reference to memory the callback function can operate on. As the callback function is invoked asynchronously to the related functionality, it may need to access data structures of the related functionality which can be referenced using this pointer. The callback function can access the memory via the “dataâ€� field in the crypto_async_request data structure provided to the callback function.”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mvhj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j'h´M}hj7&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj&ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj('h]”hŒ Description”…”�”}”(hj*'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj&'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´Mhj&ubhÝ)�”}”(hŒiThis function allows setting the callback function that is triggered once the cipher operation completes.”h]”hŒiThis function allows setting the callback function that is triggered once the cipher operation completes.”…”�”}”(hj>'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M~hj&ubhÝ)�”}”(hŒrThe callback function is registered with the skcipher_request handle and must comply with the following template::”h]”hŒqThe callback function is registered with the skcipher_request handle and must comply with the following template:”…”�”}”(hjM'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M�hj&ubjµ)�”}”(hŒCvoid callback_function(struct crypto_async_request *req, int error)”h]”hŒCvoid callback_function(struct crypto_async_request *req, int error)”…”�”}”hj\'sbah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j´h³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M„hj&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj®h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ'skcipher_request_set_crypt (C function)”Œc.skcipher_request_set_crypt”hNt”auh1híhj®h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ‘void skcipher_request_set_crypt (struct skcipher_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int cryptlen, void *iv)”h]”j )�”}”(hŒ�void skcipher_request_set_crypt(struct skcipher_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int cryptlen, void *iv)”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‹'h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj‡'h²hh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M’ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš'h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj‡'h²hh³j™'h´M’ubj4)�”}”(hŒskcipher_request_set_crypt”h]”j:)�”}”(hŒskcipher_request_set_crypt”h]”hŒskcipher_request_set_crypt”…”�”}”(hj¬'h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj¨'ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj‡'h²hh³j™'h´M’ubj¬ )�”}”(hŒq(struct skcipher_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int cryptlen, void *iv)”h]”(j² )�”}”(hŒstruct skcipher_request *req”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÈ'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÄ'ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕ'h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÄ'ubh)�”}”(hhh]”j:)�”}”(hŒskcipher_request”h]”hŒskcipher_request”…”�”}”(hjæ'h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjã'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jè'Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j®'sbŒc.skcipher_request_set_crypt”†”asbuh1hhjÄ'ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÄ'ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjÄ'ubj:)�”}”(hŒreq”h]”hŒreq”…”�”}”(hj!(h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÄ'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÀ'ubj² )�”}”(hŒstruct scatterlist *src”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj:(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj6(ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG(h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj6(ubh)�”}”(hhh]”j:)�”}”(hŒ scatterlist”h]”hŒ scatterlist”…”�”}”(hjX(h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjU(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jZ(Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j(Œc.skcipher_request_set_crypt”†”asbuh1hhj6(ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv(h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj6(ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj„(h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj6(ubj:)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hj‘(h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj6(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÀ'ubj² )�”}”(hŒstruct scatterlist *dst”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjª(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¦(ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·(h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj¦(ubh)�”}”(hhh]”j:)�”}”(hŒ scatterlist”h]”hŒ scatterlist”…”�”}”(hjÈ(h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÅ(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jÊ(Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j(Œc.skcipher_request_set_crypt”†”asbuh1hhj¦(ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ(h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj¦(ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjô(h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj¦(ubj:)�”}”(hŒdst”h]”hŒdst”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj¦(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÀ'ubj² )�”}”(hŒunsigned int cryptlen”h]”(jÔ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj)ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj()h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj)ubjÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hj6)h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj)ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjD)h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj)ubj:)�”}”(hŒcryptlen”h]”hŒcryptlen”…”�”}”(hjR)h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÀ'ubj² )�”}”(hŒvoid *iv”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjk)h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjg)ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjy)h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjg)ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj‡)h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjg)ubj:)�”}”(hŒiv”h]”hŒiv”…”�”}”(hj”)h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjg)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÀ'ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj‡'h²hh³j™'h´M’ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjƒ'h²hh³j™'h´M’ubah}”(h]”j~'ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j™'h´M’hj€'h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒset data buffers”h]”hŒset data buffers”…”�”}”(hj¾)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M’hj»)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj€'h²hh³j™'h´M’ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjÖ)j‹jÖ)jŒ‰j�‰jމuh1hÿh²hhj®h³Nh´Nubj�)�”}”(hX¹**Parameters** ``struct skcipher_request *req`` request handle ``struct scatterlist *src`` source scatter / gather list ``struct scatterlist *dst`` destination scatter / gather list ``unsigned int cryptlen`` number of bytes to process from **src** ``void *iv`` IV for the cipher operation which must comply with the IV size defined by crypto_skcipher_ivsize **Description** This function allows setting of the source data and destination data scatter / gather lists. For encryption, the source is treated as the plaintext and the destination is the ciphertext. For a decryption operation, the use is reversed - the source is the ciphertext and the destination is the plaintext.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjà)h]”hŒ Parameters”…”�”}”(hjâ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÞ)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M–hjÚ)ubjÞ)�”}”(hhh]”(jã)�”}”(hŒ0``struct skcipher_request *req`` request handle ”h]”(jé)�”}”(hŒ ``struct skcipher_request *req``”h]”jï)�”}”(hjÿ)h]”hŒstruct skcipher_request *req”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjý)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M“hjù)ubj)�”}”(hhh]”hÝ)�”}”(hŒrequest handle”h]”hŒrequest handle”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j*h´M“hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjù)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j*h´M“hjö)ubjã)�”}”(hŒ9``struct scatterlist *src`` source scatter / gather list ”h]”(jé)�”}”(hŒ``struct scatterlist *src``”h]”jï)�”}”(hj8*h]”hŒstruct scatterlist *src”…”�”}”(hj:*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj6*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M”hj2*ubj)�”}”(hhh]”hÝ)�”}”(hŒsource scatter / gather list”h]”hŒsource scatter / gather list”…”�”}”(hjQ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jM*h´M”hjN*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj2*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jM*h´M”hjö)ubjã)�”}”(hŒ>``struct scatterlist *dst`` destination scatter / gather list ”h]”(jé)�”}”(hŒ``struct scatterlist *dst``”h]”jï)�”}”(hjq*h]”hŒstruct scatterlist *dst”…”�”}”(hjs*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjo*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M•hjk*ubj)�”}”(hhh]”hÝ)�”}”(hŒ!destination scatter / gather list”h]”hŒ!destination scatter / gather list”…”�”}”(hjŠ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j†*h´M•hj‡*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjk*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j†*h´M•hjö)ubjã)�”}”(hŒB``unsigned int cryptlen`` number of bytes to process from **src** ”h]”(jé)�”}”(hŒ``unsigned int cryptlen``”h]”jï)�”}”(hjª*h]”hŒunsigned int cryptlen”…”�”}”(hj¬*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¨*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M–hj¤*ubj)�”}”(hhh]”hÝ)�”}”(hŒ'number of bytes to process from **src**”h]”(hŒ number of bytes to process from ”…”�”}”(hjÃ*h²hh³Nh´Nubjš)�”}”(hŒ**src**”h]”hŒsrc”…”�”}”(hjË*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÃ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j¿*h´M–hjÀ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j¿*h´M–hjö)ubjã)�”}”(hŒn``void *iv`` IV for the cipher operation which must comply with the IV size defined by crypto_skcipher_ivsize ”h]”(jé)�”}”(hŒ ``void *iv``”h]”jï)�”}”(hjñ*h]”hŒvoid *iv”…”�”}”(hjó*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjï*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M˜hjë*ubj)�”}”(hhh]”hÝ)�”}”(hŒ`IV for the cipher operation which must comply with the IV size defined by crypto_skcipher_ivsize”h]”hŒ`IV for the cipher operation which must comply with the IV size defined by crypto_skcipher_ivsize”…”�”}”(hj +h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M—hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjë*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j+h´M˜hjö)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÚ)ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj-+h]”hŒ Description”…”�”}”(hj/+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj++ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MšhjÚ)ubhÝ)�”}”(hŒ\This function allows setting of the source data and destination data scatter / gather lists.”h]”hŒ\This function allows setting of the source data and destination data scatter / gather lists.”…”�”}”(hjC+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´M™hjÚ)ubhÝ)�”}”(hŒÒFor encryption, the source is treated as the plaintext and the destination is the ciphertext. For a decryption operation, the use is reversed - the source is the ciphertext and the destination is the plaintext.”h]”hŒÒFor encryption, the source is treated as the plaintext and the destination is the ciphertext. For a decryption operation, the use is reversed - the source is the ciphertext and the destination is the plaintext.”…”�”}”(hjR+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œ]/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:28: ./include/crypto/skcipher.h”h´MœhjÚ)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj®h²hh³Nh´Nubeh}”(h]”Œ#symmetric-key-cipher-request-handle”ah ]”h"]”Œ#symmetric key cipher request handle”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒSingle Block Cipher API”h]”hŒSingle Block Cipher API”…”�”}”(hjs+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjp+h²hh³hÊh´K ubhÝ)�”}”(hŒ~The single block cipher API is used with the ciphers of type CRYPTO_ALG_TYPE_CIPHER (listed as type "cipher" in /proc/crypto).”h]”hŒ‚The single block cipher API is used with the ciphers of type CRYPTO_ALG_TYPE_CIPHER (listed as type “cipherâ€� in /proc/crypto).”…”�”}”(hj�+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:34: ./include/crypto/internal/cipher.h”h´Khjp+h²hubhÝ)�”}”(hŒ¼Using the single block cipher API calls, operations with the basic cipher primitive can be implemented. These cipher primitives exclude any block chaining operations including IV handling.”h]”hŒ¼Using the single block cipher API calls, operations with the basic cipher primitive can be implemented. These cipher primitives exclude any block chaining operations including IV handling.”…”�”}”(hj�+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:34: ./include/crypto/internal/cipher.h”h´Khjp+h²hubhÝ)�”}”(hX:The purpose of this single block cipher API is to support the implementation of templates or other concepts that only need to perform the cipher operation on one block at a time. Templates invoke the underlying cipher primitive block-wise and process either the input or the output data of these cipher operations.”h]”hX:The purpose of this single block cipher API is to support the implementation of templates or other concepts that only need to perform the cipher operation on one block at a time. Templates invoke the underlying cipher primitive block-wise and process either the input or the output data of these cipher operations.”…”�”}”(hjŸ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:34: ./include/crypto/internal/cipher.h”h´Khjp+h²hubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ crypto_alloc_cipher (C function)”Œc.crypto_alloc_cipher”hNt”auh1híhjp+h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒUstruct crypto_cipher * crypto_alloc_cipher (const char *alg_name, u32 type, u32 mask)”h]”j )�”}”(hŒSstruct crypto_cipher *crypto_alloc_cipher(const char *alg_name, u32 type, u32 mask)”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÇ+h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÃ+h²hh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.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+ubh)�”}”(hhh]”j:)�”}”(hŒ crypto_cipher”h]”hŒ crypto_cipher”…”�”}”(hjæ+h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjã+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jè+Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg Œcrypto_alloc_cipher”sbŒc.crypto_alloc_cipher”†”asbuh1hhjÃ+h²hh³jÔ+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„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjÃ+h²hh³jÔ+h´K+ubj4)�”}”(hŒcrypto_alloc_cipher”h]”j:)�”}”(hj,h]”hŒcrypto_alloc_cipher”…”�”}”(hj&,h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj",ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjÃ+h²hh³jÔ+h´K+ubj¬ )�”}”(hŒ*(const char *alg_name, u32 type, u32 mask)”h]”(j² )�”}”(hŒconst char *alg_name”h]”(j)�”}”(hj¹ h]”hŒconst”…”�”}”(hjA,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj=,ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN,h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj=,ubjÔ )�”}”(hŒchar”h]”hŒchar”…”�”}”(hj\,h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj=,ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj,h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj=,ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjx,h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj=,ubj:)�”}”(hŒalg_name”h]”hŒalg_name”…”�”}”(hj…,h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj=,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj9,ubj² )�”}”(hŒu32 type”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj¡,h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjž,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j£,Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j,Œc.crypto_alloc_cipher”†”asbuh1hhjš,ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿,h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjš,ubj:)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjÍ,h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjš,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj9,ubj² )�”}”(hŒu32 mask”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjé,h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjæ,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jë,Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j,Œc.crypto_alloc_cipher”†”asbuh1hhjâ,ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjâ,ubj:)�”}”(hŒmask”h]”hŒmask”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjâ,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj9,ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjÃ+h²hh³jÔ+h´K+ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj¿+h²hh³jÔ+h´K+ubah}”(h]”jº+ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³jÔ+h´K+hj¼+h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ#allocate single block cipher handle”h]”hŒ#allocate single block cipher handle”…”�”}”(hj?-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K+hj<-h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj¼+h²hh³jÔ+h´K+ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjW-j‹jW-jŒ‰j�‰jމuh1hÿh²hhjp+h³Nh´Nubj�)�”}”(hX1**Parameters** ``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the single block cipher ``u32 type`` specifies the type of the cipher ``u32 mask`` specifies the mask for the cipher **Description** Allocate a cipher handle for a single block cipher. The returned struct crypto_cipher is the cipher handle that is required for any subsequent API invocation for that single block cipher. **Return** allocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hja-h]”hŒ Parameters”…”�”}”(hjc-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj_-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K/hj[-ubjÞ)�”}”(hhh]”(jã)�”}”(hŒl``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the single block cipher ”h]”(jé)�”}”(hŒ``const char *alg_name``”h]”jï)�”}”(hj€-h]”hŒconst char *alg_name”…”�”}”(hj‚-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj~-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K-hjz-ubj)�”}”(hhh]”hÝ)�”}”(hŒRis the cra_name / name or cra_driver_name / driver name of the single block cipher”h]”hŒRis the cra_name / name or cra_driver_name / driver name of the single block cipher”…”�”}”(hj™-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K,hj–-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjz-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j•-h´K-hjw-ubjã)�”}”(hŒ.``u32 type`` specifies the type of the cipher ”h]”(jé)�”}”(hŒ ``u32 type``”h]”jï)�”}”(hjº-h]”hŒu32 type”…”�”}”(hj¼-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj¸-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K.hj´-ubj)�”}”(hhh]”hÝ)�”}”(hŒ specifies the type of the cipher”h]”hŒ specifies the type of the cipher”…”�”}”(hjÓ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÏ-h´K.hjÐ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj´-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jÏ-h´K.hjw-ubjã)�”}”(hŒ/``u32 mask`` specifies the mask for the cipher ”h]”(jé)�”}”(hŒ ``u32 mask``”h]”jï)�”}”(hjó-h]”hŒu32 mask”…”�”}”(hjõ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjñ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K/hjí-ubj)�”}”(hhh]”hÝ)�”}”(hŒ!specifies the mask for the cipher”h]”hŒ!specifies the mask for the cipher”…”�”}”(hj .h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j.h´K/hj .ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjí-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j.h´K/hjw-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj[-ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj..h]”hŒ Description”…”�”}”(hj0.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj,.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K1hj[-ubhÝ)�”}”(hŒ»Allocate a cipher handle for a single block cipher. The returned struct crypto_cipher is the cipher handle that is required for any subsequent API invocation for that single block cipher.”h]”hŒ»Allocate a cipher handle for a single block cipher. The returned struct crypto_cipher is the cipher handle that is required for any subsequent API invocation for that single block cipher.”…”�”}”(hjD.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K0hj[-ubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjU.h]”hŒReturn”…”�”}”(hjW.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjS.ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K4hj[-ubhÝ)�”}”(hŒsallocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”h]”hŒsallocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.”…”�”}”(hjk.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K5hj[-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjp+h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒcrypto_free_cipher (C function)”Œc.crypto_free_cipher”hNt”auh1híhjp+h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ3void crypto_free_cipher (struct crypto_cipher *tfm)”h]”j )�”}”(hŒ2void crypto_free_cipher(struct crypto_cipher *tfm)”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjš.h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj–.h²hh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KHubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©.h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj–.h²hh³j¨.h´KHubj4)�”}”(hŒcrypto_free_cipher”h]”j:)�”}”(hŒcrypto_free_cipher”h]”hŒcrypto_free_cipher”…”�”}”(hj».h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj·.ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj–.h²hh³j¨.h´KHubj¬ )�”}”(hŒ(struct crypto_cipher *tfm)”h]”j² )�”}”(hŒstruct crypto_cipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj×.h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÓ.ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä.h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÓ.ubh)�”}”(hhh]”j:)�”}”(hŒ crypto_cipher”h]”hŒ crypto_cipher”…”�”}”(hjõ.h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjò.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j÷.Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j½.sbŒc.crypto_free_cipher”†”asbuh1hhjÓ.ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÓ.ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj#/h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjÓ.ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hj0/h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÓ.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjÏ.ubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj–.h²hh³j¨.h´KHubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj’.h²hh³j¨.h´KHubah}”(h]”j�.ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j¨.h´KHhj�.h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ/zeroize and free the single block cipher handle”h]”hŒ/zeroize and free the single block cipher handle”…”�”}”(hjZ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KHhjW/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj�.h²hh³j¨.h´KHubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjr/j‹jr/jŒ‰j�‰jމuh1hÿh²hhjp+h³Nh´Nubj�)�”}”(hŒI**Parameters** ``struct crypto_cipher *tfm`` cipher handle to be freed”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hj|/h]”hŒ Parameters”…”�”}”(hj~/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjz/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KLhjv/ubjÞ)�”}”(hhh]”jã)�”}”(hŒ7``struct crypto_cipher *tfm`` cipher handle to be freed”h]”(jé)�”}”(hŒ``struct crypto_cipher *tfm``”h]”jï)�”}”(hj›/h]”hŒstruct crypto_cipher *tfm”…”�”}”(hj�/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj™/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KNhj•/ubj)�”}”(hhh]”hÝ)�”}”(hŒcipher handle to be freed”h]”hŒcipher handle to be freed”…”�”}”(hj´/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KIhj±/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj•/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j°/h´KNhj’/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjv/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjp+h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒcrypto_has_cipher (C function)”Œc.crypto_has_cipher”hNt”auh1híhjp+h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ@int crypto_has_cipher (const char *alg_name, u32 type, u32 mask)”h]”j )�”}”(hŒ?int crypto_has_cipher(const char *alg_name, u32 type, u32 mask)”h]”(jÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hjõ/h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjñ/h²hh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KQubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjñ/h²hh³j0h´KQubj4)�”}”(hŒcrypto_has_cipher”h]”j:)�”}”(hŒcrypto_has_cipher”h]”hŒcrypto_has_cipher”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj0ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjñ/h²hh³j0h´KQubj¬ )�”}”(hŒ*(const char *alg_name, u32 type, u32 mask)”h]”(j² )�”}”(hŒconst char *alg_name”h]”(j)�”}”(hj¹ h]”hŒconst”…”�”}”(hj20h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj.0ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?0h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj.0ubjÔ )�”}”(hŒchar”h]”hŒchar”…”�”}”(hjM0h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj.0ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[0h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj.0ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hji0h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj.0ubj:)�”}”(hŒalg_name”h]”hŒalg_name”…”�”}”(hjv0h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj.0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj*0ubj² )�”}”(hŒu32 type”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj’0h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj�0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j”0Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j0sbŒc.crypto_has_cipher”†”asbuh1hhj‹0ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²0h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj‹0ubj:)�”}”(hŒtype”h]”hŒtype”…”�”}”(hjÀ0h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj‹0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj*0ubj² )�”}”(hŒu32 mask”h]”(h)�”}”(hhh]”j:)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÜ0h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÙ0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jÞ0Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j®0Œc.crypto_has_cipher”†”asbuh1hhjÕ0ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú0h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÕ0ubj:)�”}”(hŒmask”h]”hŒmask”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÕ0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj*0ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjñ/h²hh³j0h´KQubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hjí/h²hh³j0h´KQubah}”(h]”jè/ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j0h´KQhjê/h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒ4Search for the availability of a single block cipher”h]”hŒ4Search for the availability of a single block cipher”…”�”}”(hj21h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KQhj/1h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjê/h²hh³j0h´KQubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjJ1j‹jJ1jŒ‰j�‰jމuh1hÿh²hhjp+h³Nh´Nubj�)�”}”(hXD**Parameters** ``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the single block cipher ``u32 type`` specifies the type of the cipher ``u32 mask`` specifies the mask for the cipher **Return** true when the single block cipher is known to the kernel crypto API; false otherwise”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjT1h]”hŒ Parameters”…”�”}”(hjV1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjR1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KUhjN1ubjÞ)�”}”(hhh]”(jã)�”}”(hŒl``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the single block cipher ”h]”(jé)�”}”(hŒ``const char *alg_name``”h]”jï)�”}”(hjs1h]”hŒconst char *alg_name”…”�”}”(hju1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjq1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KShjm1ubj)�”}”(hhh]”hÝ)�”}”(hŒRis the cra_name / name or cra_driver_name / driver name of the single block cipher”h]”hŒRis the cra_name / name or cra_driver_name / driver name of the single block cipher”…”�”}”(hjŒ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KRhj‰1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjm1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jˆ1h´KShjj1ubjã)�”}”(hŒ.``u32 type`` specifies the type of the cipher ”h]”(jé)�”}”(hŒ ``u32 type``”h]”jï)�”}”(hj­1h]”hŒu32 type”…”�”}”(hj¯1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj«1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KThj§1ubj)�”}”(hhh]”hÝ)�”}”(hŒ specifies the type of the cipher”h]”hŒ specifies the type of the cipher”…”�”}”(hjÆ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jÂ1h´KThjÃ1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jÂ1h´KThjj1ubjã)�”}”(hŒ/``u32 mask`` specifies the mask for the cipher ”h]”(jé)�”}”(hŒ ``u32 mask``”h]”jï)�”}”(hjæ1h]”hŒu32 mask”…”�”}”(hjè1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjä1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KUhjà1ubj)�”}”(hhh]”hÝ)�”}”(hŒ!specifies the mask for the cipher”h]”hŒ!specifies the mask for the cipher”…”�”}”(hjÿ1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jû1h´KUhjü1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjà1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jû1h´KUhjj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjN1ubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hj!2h]”hŒReturn”…”�”}”(hj#2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KWhjN1ubhÝ)�”}”(hŒTtrue when the single block cipher is known to the kernel crypto API; false otherwise”h]”hŒTtrue when the single block cipher is known to the kernel crypto API; false otherwise”…”�”}”(hj72h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KWhjN1ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjp+h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ$crypto_cipher_blocksize (C function)”Œc.crypto_cipher_blocksize”hNt”auh1híhjp+h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ@unsigned int crypto_cipher_blocksize (struct crypto_cipher *tfm)”h]”j )�”}”(hŒ?unsigned int crypto_cipher_blocksize(struct crypto_cipher *tfm)”h]”(jÔ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjf2h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjb2h²hh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kdubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju2h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjb2h²hh³jt2h´KdubjÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hjƒ2h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjb2h²hh³jt2h´Kdubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘2h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjb2h²hh³jt2h´Kdubj4)�”}”(hŒcrypto_cipher_blocksize”h]”j:)�”}”(hŒcrypto_cipher_blocksize”h]”hŒcrypto_cipher_blocksize”…”�”}”(hj£2h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjŸ2ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hjb2h²hh³jt2h´Kdubj¬ )�”}”(hŒ(struct crypto_cipher *tfm)”h]”j² )�”}”(hŒstruct crypto_cipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj¿2h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj»2ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌ2h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj»2ubh)�”}”(hhh]”j:)�”}”(hŒ crypto_cipher”h]”hŒ crypto_cipher”…”�”}”(hjÝ2h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÚ2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jß2Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j¥2sbŒc.crypto_cipher_blocksize”†”asbuh1hhj»2ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý2h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj»2ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj 3h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj»2ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj»2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj·2ubah}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hjb2h²hh³jt2h´Kdubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj^2h²hh³jt2h´Kdubah}”(h]”jY2ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³jt2h´Kdhj[2h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒobtain block size for cipher”h]”hŒobtain block size for cipher”…”�”}”(hjB3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kdhj?3h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj[2h²hh³jt2h´Kdubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjZ3j‹jZ3jŒ‰j�‰jމuh1hÿh²hhjp+h³Nh´Nubj�)�”}”(hXR**Parameters** ``struct crypto_cipher *tfm`` cipher handle **Description** The block size for the single block cipher referenced with the cipher handle tfm is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation **Return** block size of cipher”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjd3h]”hŒ Parameters”…”�”}”(hjf3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjb3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Khhj^3ubjÞ)�”}”(hhh]”jã)�”}”(hŒ,``struct crypto_cipher *tfm`` cipher handle ”h]”(jé)�”}”(hŒ``struct crypto_cipher *tfm``”h]”jï)�”}”(hjƒ3h]”hŒstruct crypto_cipher *tfm”…”�”}”(hj…3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj�3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kehj}3ubj)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hjœ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j˜3h´Kehj™3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j˜3h´Kehjz3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÝhj^3ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj¾3h]”hŒ Description”…”�”}”(hjÀ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj¼3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kghj^3ubhÝ)�”}”(hŒàThe block size for the single block cipher referenced with the cipher handle tfm is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation”h]”hŒàThe block size for the single block cipher referenced with the cipher handle tfm is returned. The caller may use that information to allocate appropriate memory for the data returned by the encryption or decryption operation”…”�”}”(hjÔ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kfhj^3ubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjå3h]”hŒReturn”…”�”}”(hjç3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjã3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kjhj^3ubhÝ)�”}”(hŒblock size of cipher”h]”hŒblock size of cipher”…”�”}”(hjû3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kkhj^3ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjp+h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ!crypto_cipher_setkey (C function)”Œc.crypto_cipher_setkey”hNt”auh1híhjp+h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒXint crypto_cipher_setkey (struct crypto_cipher *tfm, const u8 *key, unsigned int keylen)”h]”j )�”}”(hŒWint crypto_cipher_setkey(struct crypto_cipher *tfm, const u8 *key, unsigned int keylen)”h]”(jÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hj*4h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj&4h²hh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K‰ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj94h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj&4h²hh³j84h´K‰ubj4)�”}”(hŒcrypto_cipher_setkey”h]”j:)�”}”(hŒcrypto_cipher_setkey”h]”hŒcrypto_cipher_setkey”…”�”}”(hjK4h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjG4ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj&4h²hh³j84h´K‰ubj¬ )�”}”(hŒ?(struct crypto_cipher *tfm, const u8 *key, unsigned int keylen)”h]”(j² )�”}”(hŒstruct crypto_cipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjg4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjc4ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt4h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjc4ubh)�”}”(hhh]”j:)�”}”(hŒ crypto_cipher”h]”hŒ crypto_cipher”…”�”}”(hj…4h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj‚4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j‡4Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg jM4sbŒc.crypto_cipher_setkey”†”asbuh1hhjc4ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥4h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjc4ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj³4h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjc4ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjÀ4h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjc4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj_4ubj² )�”}”(hŒ const u8 *key”h]”(j)�”}”(hj¹ h]”hŒconst”…”�”}”(hjÙ4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÕ4ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ4h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÕ4ubh)�”}”(hhh]”j:)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj÷4h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjô4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jù4Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j¡4Œc.crypto_cipher_setkey”†”asbuh1hhjÕ4ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjÕ4ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj#5h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjÕ4ubj:)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj05h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÕ4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj_4ubj² )�”}”(hŒunsigned int keylen”h]”(jÔ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjI5h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjE5ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjW5h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjE5ubjÔ )�”}”(hŒint”h]”hŒint”…”�”}”(hje5h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hjE5ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs5h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjE5ubj:)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hj�5h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjE5ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hj_4ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj&4h²hh³j84h´K‰ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj"4h²hh³j84h´K‰ubah}”(h]”j4ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j84h´K‰hj4h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒset key for cipher”h]”hŒset key for cipher”…”�”}”(hj«5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K‰h•»[j¨5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj4h²hh³j84h´K‰ubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠjÃ5j‹jÃ5jŒ‰j�‰jމuh1hÿh²hhjp+h³Nh´Nubj�)�”}”(hXU**Parameters** ``struct crypto_cipher *tfm`` cipher handle ``const u8 *key`` buffer holding the key ``unsigned int keylen`` length of the key in bytes **Description** The caller provided key is set for the single block cipher referenced by the cipher handle. Note, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed. **Return** 0 if the setting of the key was successful; < 0 if an error occurred”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hjÍ5h]”hŒ Parameters”…”�”}”(hjÏ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjË5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K�hjÇ5ubjÞ)�”}”(hhh]”(jã)�”}”(hŒ,``struct crypto_cipher *tfm`` cipher handle ”h]”(jé)�”}”(hŒ``struct crypto_cipher *tfm``”h]”jï)�”}”(hjì5h]”hŒstruct crypto_cipher *tfm”…”�”}”(hjî5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjê5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KŠhjæ5ubj)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j6h´KŠhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j6h´KŠhjã5ubjã)�”}”(hŒ)``const u8 *key`` buffer holding the key ”h]”(jé)�”}”(hŒ``const u8 *key``”h]”jï)�”}”(hj%6h]”hŒ const u8 *key”…”�”}”(hj'6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj#6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K‹hj6ubj)�”}”(hhh]”hÝ)�”}”(hŒbuffer holding the key”h]”hŒbuffer holding the key”…”�”}”(hj>6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³j:6h´K‹hj;6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³j:6h´K‹hjã5ubjã)�”}”(hŒ3``unsigned int keylen`` length of the key in bytes ”h]”(jé)�”}”(hŒ``unsigned int keylen``”h]”jï)�”}”(hj^6h]”hŒunsigned int keylen”…”�”}”(hj`6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj\6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KŒhjX6ubj)�”}”(hhh]”hÝ)�”}”(hŒlength of the key in bytes”h]”hŒlength of the key in bytes”…”�”}”(hjw6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³js6h´KŒhjt6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjX6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³js6h´KŒhjã5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÇ5ubhÝ)�”}”(hŒ**Description**”h]”jš)�”}”(hj™6h]”hŒ Description”…”�”}”(hj›6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj—6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´KŽhjÇ5ubhÝ)�”}”(hŒ[The caller provided key is set for the single block cipher referenced by the cipher handle.”h]”hŒ[The caller provided key is set for the single block cipher referenced by the cipher handle.”…”�”}”(hj¯6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K�hjÇ5ubhÝ)�”}”(hŒôNote, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed.”h]”hŒôNote, the key length determines the cipher type. Many block ciphers implement different cipher modes depending on the key size, such as AES-128 vs AES-192 vs. AES-256. When providing a 16 byte key for an AES cipher handle, AES-128 is performed.”…”�”}”(hj¾6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K�hjÇ5ubhÝ)�”}”(hŒ **Return**”h]”jš)�”}”(hjÏ6h]”hŒReturn”…”�”}”(hjÑ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hjÍ6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K•hjÇ5ubhÝ)�”}”(hŒD0 if the setting of the key was successful; < 0 if an error occurred”h]”hŒD0 if the setting of the key was successful; < 0 if an error occurred”…”�”}”(hjå6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K–hjÇ5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjp+h²hh³Nh´Nubhî)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(húŒ&crypto_cipher_encrypt_one (C function)”Œc.crypto_cipher_encrypt_one”hNt”auh1híhjp+h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒRvoid crypto_cipher_encrypt_one (struct crypto_cipher *tfm, u8 *dst, const u8 *src)”h]”j )�”}”(hŒQvoid crypto_cipher_encrypt_one(struct crypto_cipher *tfm, u8 *dst, const u8 *src)”h]”(jÔ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jà ah"]”h$]”h&]”uh1jÓ hj7h²hh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kœubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#7h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj7h²hh³j"7h´Kœubj4)�”}”(hŒcrypto_cipher_encrypt_one”h]”j:)�”}”(hŒcrypto_cipher_encrypt_one”h]”hŒcrypto_cipher_encrypt_one”…”�”}”(hj57h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj17ubah}”(h]”h ]”(jLjMeh"]”h$]”h&]”jQjRuh1j3hj7h²hh³j"7h´Kœubj¬ )�”}”(hŒ3(struct crypto_cipher *tfm, u8 *dst, const u8 *src)”h]”(j² )�”}”(hŒstruct crypto_cipher *tfm”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjQ7h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjM7ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^7h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjM7ubh)�”}”(hhh]”j:)�”}”(hŒ crypto_cipher”h]”hŒ crypto_cipher”…”�”}”(hjo7h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjl7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jq7Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”jo )�”}”jg j77sbŒc.crypto_cipher_encrypt_one”†”asbuh1hhjM7ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�7h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hjM7ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hj�7h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hjM7ubj:)�”}”(hŒtfm”h]”hŒtfm”…”�”}”(hjª7h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjM7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjI7ubj² )�”}”(hŒu8 *dst”h]”(h)�”}”(hhh]”j:)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÆ7h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hjÃ7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”jÈ7Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j‹7Œc.crypto_cipher_encrypt_one”†”asbuh1hhj¿7ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä7h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj¿7ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjò7h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj¿7ubj:)�”}”(hŒdst”h]”hŒdst”…”�”}”(hjÿ7h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj¿7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjI7ubj² )�”}”(hŒ const u8 *src”h]”(j)�”}”(hj¹ h]”hŒconst”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj8ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%8h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj8ubh)�”}”(hhh]”j:)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj68h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj38ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j„Œreftype”jg Œ reftarget”j88Œmodname”NŒ classname”Njˆj‹)�”}”jŽ]”j‹7Œc.crypto_cipher_encrypt_one”†”asbuh1hhj8ubj#)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjT8h²hh³Nh´Nubah}”(h]”h ]”j/ah"]”h$]”h&]”uh1j"hj8ubj„ )�”}”(hj‡ h]”hŒ*”…”�”}”(hjb8h²hh³Nh´Nubah}”(h]”h ]”j� ah"]”h$]”h&]”uh1jƒ hj8ubj:)�”}”(hŒsrc”h]”hŒsrc”…”�”}”(hjo8h²hh³Nh´Nubah}”(h]”h ]”jEah"]”h$]”h&]”uh1j9hj8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjQjRuh1j± hjI7ubeh}”(h]”h ]”h"]”h$]”h&]”jQjRuh1j« hj7h²hh³j"7h´Kœubeh}”(h]”h ]”h"]”h$]”h&]”jQjRjYˆuh1j jZj[hj 7h²hh³j"7h´Kœubah}”(h]”j7ah ]”(j_j`eh"]”h$]”h&]”jdˆje)jfhuh1jh³j"7h´Kœhj 7h²hubjh)�”}”(hhh]”hÝ)�”}”(hŒencrypt one block of plaintext”h]”hŒencrypt one block of plaintext”…”�”}”(hj™8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kœhj–8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj 7h²hh³j"7h´Kœubeh}”(h]”h ]”(j„Œfunction”eh"]”h$]”h&]”j‰j„jŠj±8j‹j±8jŒ‰j�‰jމuh1hÿh²hhjp+h³Nh´Nubj�)�”}”(hXl**Parameters** ``struct crypto_cipher *tfm`` cipher handle ``u8 *dst`` points to the buffer that will be filled with the ciphertext ``const u8 *src`` buffer holding the plaintext to be encrypted **Description** Invoke the encryption operation of one block. The caller must ensure that the plaintext and ciphertext buffers are at least one block in size.”h]”(hÝ)�”}”(hŒ**Parameters**”h]”jš)�”}”(hj»8h]”hŒ Parameters”…”�”}”(hj½8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j™hj¹8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K hjµ8ubjÞ)�”}”(hhh]”(jã)�”}”(hŒ,``struct crypto_cipher *tfm`` cipher handle ”h]”(jé)�”}”(hŒ``struct crypto_cipher *tfm``”h]”jï)�”}”(hjÚ8h]”hŒstruct crypto_cipher *tfm”…”�”}”(hjÜ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhjØ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´K�hjÔ8ubj)�”}”(hhh]”hÝ)�”}”(hŒ cipher handle”h]”hŒ cipher handle”…”�”}”(hjó8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³jï8h´K�hjð8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÔ8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jâh³jï8h´K�hjÑ8ubjã)�”}”(hŒI``u8 *dst`` points to the buffer that will be filled with the ciphertext ”h]”(jé)�”}”(hŒ ``u8 *dst``”h]”jï)�”}”(hj9h]”hŒu8 *dst”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jîhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèh³Œd/var/lib/git/docbuild/linux/Documentation/crypto/api-skcipher:37: ./include/crypto/internal/cipher.h”h´Kžhj 9ubj)�”}”(hhh]”hÝ)�”}”(hŒ