sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget'/translations/zh_CN/crypto/api-akciphermodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/crypto/api-akciphermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/it_IT/crypto/api-akciphermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/crypto/api-akciphermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/crypto/api-akciphermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/sp_SP/crypto/api-akciphermodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h'Asymmetric Cipher Algorithm Definitionsh]h'Asymmetric Cipher Algorithm Definitions}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhA/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher.rsthKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singleakcipher_request (C struct)c.akcipher_requesthNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hakcipher_requesth]hdesc_signature_line)}(hstruct akcipher_requesth](hdesc_sig_keyword)}(hstructh]hstruct}(hhhhhNhNubah}(h]h ]kah"]h$]h&]uh1hhhhhh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKubhdesc_sig_space)}(h h]h }(hhhhhNhNubah}(h]h ]wah"]h$]h&]uh1hhhhhhhhKubh desc_name)}(hakcipher_requesth]h desc_sig_name)}(hhh]hakcipher_request}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhhubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]jj add_permalinkuh1hӌsphinx_line_type declaratorhhhhhhhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhhhKhhhhubh desc_content)}(hhh]h paragraph)}(hpublic key cipher requesth]hpublic key cipher request}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhj2hhubah}(h]h ]h"]h$]h&]uh1j0hhhhhhhKubeh}(h]h ](cstructeh"]h$]h&]domainjOobjtypejPdesctypejPnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(hX**Definition**:: struct akcipher_request { struct crypto_async_request base; struct scatterlist *src; struct scatterlist *dst; unsigned int src_len; unsigned int dst_len; void *__ctx[] ; }; **Members** ``base`` Common attributes for async crypto requests ``src`` Source data ``dst`` Destination data ``src_len`` Size of the input buffer ``dst_len`` Size of **dst** buffer It needs to be at least as big as the expected result depending on the operation. After operation it will be updated with the actual size of the result. In case of error where the dst sgl size was insufficient, it will be updated to the size required for the operation. ``__ctx`` Start of private context datah](j6)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhj`ubh:}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhj\ubh literal_block)}(hstruct akcipher_request { struct crypto_async_request base; struct scatterlist *src; struct scatterlist *dst; unsigned int src_len; unsigned int dst_len; void *__ctx[] ; };h]hstruct akcipher_request { struct crypto_async_request base; struct scatterlist *src; struct scatterlist *dst; unsigned int src_len; unsigned int dst_len; void *__ctx[] ; };}hjsbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhj\ubj6)}(h **Members**h]je)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjubah}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhj\ubhdefinition_list)}(hhh](hdefinition_list_item)}(h5``base`` Common attributes for async crypto requests h](hterm)}(h``base``h]hliteral)}(hjh]hbase}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhjubh definition)}(hhh]j6)}(h+Common attributes for async crypto requestsh]h+Common attributes for async crypto requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``src`` Source data h](j)}(h``src``h]j)}(hjh]hsrc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhjubj)}(hhh]j6)}(h Source datah]h Source data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j5hj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(h``dst`` Destination data h](j)}(h``dst``h]j)}(hj-h]hdst}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhj'ubj)}(hhh]j6)}(hDestination datah]hDestination data}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hjBhKhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhKhjubj)}(h%``src_len`` Size of the input buffer h](j)}(h ``src_len``h]j)}(hjfh]hsrc_len}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhj`ubj)}(hhh]j6)}(hSize of the input bufferh]hSize of the input buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hj{hKhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hKhjubj)}(hX1``dst_len`` Size of **dst** buffer It needs to be at least as big as the expected result depending on the operation. After operation it will be updated with the actual size of the result. In case of error where the dst sgl size was insufficient, it will be updated to the size required for the operation. h](j)}(h ``dst_len``h]j)}(hjh]hdst_len}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhjubj)}(hhh]j6)}(hX$Size of **dst** buffer It needs to be at least as big as the expected result depending on the operation. After operation it will be updated with the actual size of the result. In case of error where the dst sgl size was insufficient, it will be updated to the size required for the operation.h](hSize of }(hjhhhNhNubje)}(h**dst**h]hdst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjubhX buffer It needs to be at least as big as the expected result depending on the operation. After operation it will be updated with the actual size of the result. In case of error where the dst sgl size was insufficient, it will be updated to the size required for the operation.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h'``__ctx`` Start of private context datah](j)}(h ``__ctx``h]j)}(hjh]h__ctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhjubj)}(hhh]j6)}(hStart of private context datah]hStart of private context data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jZhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hČakcipher_alg (C struct)c.akcipher_alghNtauh1hhhhhhNhNubh)}(hhh](h)}(h akcipher_algh]h)}(hstruct akcipher_algh](h)}(hhh]hstruct}(hjEhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjAhhh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhK#ubh)}(h h]h }(hjShhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjAhhhjRhK#ubh)}(h akcipher_algh]j)}(hj?h]h akcipher_alg}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ](jjeh"]h$]h&]jjuh1hhjAhhhjRhK#ubeh}(h]h ]h"]h$]h&]jjj"uh1hj#j$hj=hhhjRhK#ubah}(h]j8ah ](j(j)eh"]h$]h&]j-j.)j/huh1hhjRhK#hj:hhubj1)}(hhh]j6)}(h#generic public key cipher algorithmh]h#generic public key cipher algorithm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhK5hjhhubah}(h]h ]h"]h$]h&]uh1j0hj:hhhjRhK#ubeh}(h]h ](jOstructeh"]h$]h&]jTjOjUjjVjjWjXjYuh1hhhhhhNhNubj[)}(hX2**Definition**:: struct akcipher_alg { int (*encrypt)(struct akcipher_request *req); int (*decrypt)(struct akcipher_request *req); int (*set_pub_key)(struct crypto_akcipher *tfm, const void *key, unsigned int keylen); int (*set_priv_key)(struct crypto_akcipher *tfm, const void *key, unsigned int keylen); unsigned int (*max_size)(struct crypto_akcipher *tfm); int (*init)(struct crypto_akcipher *tfm); void (*exit)(struct crypto_akcipher *tfm); struct crypto_alg base; }; **Members** ``encrypt`` Function performs an encrypt operation as defined by public key algorithm. In case of error, where the dst_len was insufficient, the req->dst_len will be updated to the size required for the operation ``decrypt`` Function performs a decrypt operation as defined by public key algorithm. In case of error, where the dst_len was insufficient, the req->dst_len will be updated to the size required for the operation ``set_pub_key`` Function invokes the algorithm specific set public key function, which knows how to decode and interpret the BER encoded public key and parameters ``set_priv_key`` Function invokes the algorithm specific set private key function, which knows how to decode and interpret the BER encoded private key and parameters ``max_size`` Function returns dest buffer size required for a given key. ``init`` Initialize the cryptographic transformation object. This function is used to initialize the cryptographic transformation object. This function is called only once at the instantiation time, right after the transformation context was allocated. In case the cryptographic hardware has some special requirements which need to be handled by software, this function shall check for the precise requirement of the transformation and put any software fallbacks in place. ``exit`` Deinitialize the cryptographic transformation object. This is a counterpart to **init**, used to remove various changes set in **init**. ``base`` Common crypto API algorithm data structureh](j6)}(h**Definition**::h](je)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhK9hjubj)}(hXstruct akcipher_alg { int (*encrypt)(struct akcipher_request *req); int (*decrypt)(struct akcipher_request *req); int (*set_pub_key)(struct crypto_akcipher *tfm, const void *key, unsigned int keylen); int (*set_priv_key)(struct crypto_akcipher *tfm, const void *key, unsigned int keylen); unsigned int (*max_size)(struct crypto_akcipher *tfm); int (*init)(struct crypto_akcipher *tfm); void (*exit)(struct crypto_akcipher *tfm); struct crypto_alg base; };h]hXstruct akcipher_alg { int (*encrypt)(struct akcipher_request *req); int (*decrypt)(struct akcipher_request *req); int (*set_pub_key)(struct crypto_akcipher *tfm, const void *key, unsigned int keylen); int (*set_priv_key)(struct crypto_akcipher *tfm, const void *key, unsigned int keylen); unsigned int (*max_size)(struct crypto_akcipher *tfm); int (*init)(struct crypto_akcipher *tfm); void (*exit)(struct crypto_akcipher *tfm); struct crypto_alg base; };}hjsbah}(h]h ]h"]h$]h&]jjuh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhK;hjubj6)}(h **Members**h]je)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjubah}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKFhjubj)}(hhh](j)}(h``encrypt`` Function performs an encrypt operation as defined by public key algorithm. In case of error, where the dst_len was insufficient, the req->dst_len will be updated to the size required for the operation h](j)}(h ``encrypt``h]j)}(hjh]hencrypt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhK;hjubj)}(hhh]j6)}(hFunction performs an encrypt operation as defined by public key algorithm. In case of error, where the dst_len was insufficient, the req->dst_len will be updated to the size required for the operationh]hFunction performs an encrypt operation as defined by public key algorithm. In case of error, where the dst_len was insufficient, the req->dst_len will be updated to the size required for the operation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhK8hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hK;hjubj)}(h``decrypt`` Function performs a decrypt operation as defined by public key algorithm. In case of error, where the dst_len was insufficient, the req->dst_len will be updated to the size required for the operation h](j)}(h ``decrypt``h]j)}(hj.h]hdecrypt}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhK?hj(ubj)}(hhh]j6)}(hFunction performs a decrypt operation as defined by public key algorithm. In case of error, where the dst_len was insufficient, the req->dst_len will be updated to the size required for the operationh]hFunction performs a decrypt operation as defined by public key algorithm. In case of error, where the dst_len was insufficient, the req->dst_len will be updated to the size required for the operation}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:4: ./include/crypto/akcipher.hhKhKhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubj6)}(h **Return**h]je)}(hjdh]hReturn}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjbubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj6)}(h@allocated handle in case of success or NULL in case of an error.h]h@allocated handle in case of success or NULL in case of an error.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jZhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hČ"akcipher_request_free (C function)c.akcipher_request_freehNtauh1hhjBhhhNhNubh)}(hhh](h)}(h9void akcipher_request_free (struct akcipher_request *req)h]h)}(h8void akcipher_request_free(struct akcipher_request *req)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhjhKubh)}(hakcipher_request_freeh]j)}(hakcipher_request_freeh]hakcipher_request_free}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1hhjhhhjhKubj)}(h(struct akcipher_request *req)h]j)}(hstruct akcipher_request *reqh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(hhh]j)}(hakcipher_requesth]hakcipher_request}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjOreftypejd reftargetjmodnameN classnameNjhjk)}jn]jq)}jdjsbc.akcipher_request_freeasbuh1hhjubh)}(h h]h }(hj$hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hreqh]hreq}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhjubah}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjj"uh1hj#j$hjhhhjhKubah}(h]jah ](j(j)eh"]h$]h&]j-j.)j/huh1hhjhKhjhhubj1)}(hhh]j6)}(h#zeroize and free public key requesth]h#zeroize and free public key request}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjfhhubah}(h]h ]h"]h$]h&]uh1j0hjhhhjhKubeh}(h]h ](jOfunctioneh"]h$]h&]jTjOjUjjVjjWjXjYuh1hhhhjBhNhNubj[)}(hB**Parameters** ``struct akcipher_request *req`` request to freeh](j6)}(h**Parameters**h]je)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj)}(hhh]j)}(h0``struct akcipher_request *req`` request to freeh](j)}(h ``struct akcipher_request *req``h]j)}(hjh]hstruct akcipher_request *req}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj)}(hhh]j6)}(hrequest to freeh]hrequest to free}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jZhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hČ*akcipher_request_set_callback (C function)c.akcipher_request_set_callbackhNtauh1hhjBhhhNhNubh)}(hhh](h)}(hqvoid akcipher_request_set_callback (struct akcipher_request *req, u32 flgs, crypto_completion_t cmpl, void *data)h]h)}(hpvoid akcipher_request_set_callback(struct akcipher_request *req, u32 flgs, crypto_completion_t cmpl, void *data)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhjhKubh)}(hakcipher_request_set_callbackh]j)}(hakcipher_request_set_callbackh]hakcipher_request_set_callback}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ](jjeh"]h$]h&]jjuh1hhjhhhjhKubj)}(hN(struct akcipher_request *req, u32 flgs, crypto_completion_t cmpl, void *data)h](j)}(hstruct akcipher_request *reqh](h)}(hhh]hstruct}(hjAhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj=ubh)}(h h]h }(hjNhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj=ubh)}(hhh]j)}(hakcipher_requesth]hakcipher_request}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&] refdomainjOreftypejd reftargetjamodnameN classnameNjhjk)}jn]jq)}jdj'sbc.akcipher_request_set_callbackasbuh1hhj=ubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj=ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(hreqh]hreq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(hu32 flgsh](h)}(hhh]j)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjOreftypejd reftargetjmodnameN classnameNjhjk)}jn]j{c.akcipher_request_set_callbackasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hflgsh]hflgs}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(hcrypto_completion_t cmplh](h)}(hhh]j)}(hcrypto_completion_th]hcrypto_completion_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjOreftypejd reftargetjmodnameN classnameNjhjk)}jn]j{c.akcipher_request_set_callbackasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hcmplh]hcmpl}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubj)}(h void *datah](j)}(hvoidh]hvoid}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubh)}(h h]h }(hjQhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj?ubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(hdatah]hdata}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj9ubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjj"uh1hj#j$hjhhhjhKubah}(h]jah ](j(j)eh"]h$]h&]j-j.)j/huh1hhjhKhjhhubj1)}(hhh]j6)}(hSets an asynchronous callback.h]hSets an asynchronous callback.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjhhubah}(h]h ]h"]h$]h&]uh1j0hjhhhjhKubeh}(h]h ](jOfunctioneh"]h$]h&]jTjOjUjjVjjWjXjYuh1hhhhjBhNhNubj[)}(hXw**Parameters** ``struct akcipher_request *req`` request that the callback will be set for ``u32 flgs`` specify for instance if the operation may backlog ``crypto_completion_t cmpl`` callback which will be called ``void *data`` private data used by the caller **Description** Callback will be called when an asynchronous operation on a given request is finished.h](j6)}(h**Parameters**h]je)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj)}(hhh](j)}(hK``struct akcipher_request *req`` request that the callback will be set for h](j)}(h ``struct akcipher_request *req``h]j)}(hjh]hstruct akcipher_request *req}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj)}(hhh]j6)}(h)request that the callback will be set forh]h)request that the callback will be set for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h?``u32 flgs`` specify for instance if the operation may backlog h](j)}(h ``u32 flgs``h]j)}(hjh]hu32 flgs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhj ubj)}(hhh]j6)}(h1specify for instance if the operation may backlogh]h1specify for instance if the operation may backlog}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j5hj%hKhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hKhjubj)}(h;``crypto_completion_t cmpl`` callback which will be called h](j)}(h``crypto_completion_t cmpl``h]j)}(hjIh]hcrypto_completion_t cmpl}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjCubj)}(hhh]j6)}(hcallback which will be calledh]hcallback which will be called}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hj^hKhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjubj)}(h/``void *data`` private data used by the caller h](j)}(h``void *data``h]j)}(hjh]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhj|ubj)}(hhh]j6)}(hprivate data used by the callerh]hprivate data used by the caller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hjhKhjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubj6)}(h**Description**h]je)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj6)}(hVCallback will be called when an asynchronous operation on a given request is finished.h]hVCallback will be called when an asynchronous operation on a given request is finished.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jZhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hČ'akcipher_request_set_crypt (C function)c.akcipher_request_set_crypthNtauh1hhjBhhhNhNubh)}(hhh](h)}(hvoid akcipher_request_set_crypt (struct akcipher_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int src_len, unsigned int dst_len)h]h)}(hvoid akcipher_request_set_crypt(struct akcipher_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int src_len, unsigned int dst_len)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhjhKubh)}(hakcipher_request_set_crypth]j)}(hakcipher_request_set_crypth]hakcipher_request_set_crypt}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]jjuh1hhjhhhjhKubj)}(h|(struct akcipher_request *req, struct scatterlist *src, struct scatterlist *dst, unsigned int src_len, unsigned int dst_len)h](j)}(hstruct akcipher_request *reqh](h)}(hhh]hstruct}(hj?hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj;ubh)}(h h]h }(hjLhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj;ubh)}(hhh]j)}(hakcipher_requesth]hakcipher_request}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainjOreftypejd reftargetj_modnameN classnameNjhjk)}jn]jq)}jdj%sbc.akcipher_request_set_cryptasbuh1hhj;ubh)}(h h]h }(hj}hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(hreqh]hreq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(hstruct scatterlist *srch](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(hhh]j)}(h scatterlisth]h scatterlist}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjOreftypejd reftargetjmodnameN classnameNjhjk)}jn]jyc.akcipher_request_set_cryptasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hsrch]hsrc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(hstruct scatterlist *dsth](h)}(hhh]hstruct}(hj!hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hj.hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(hhh]j)}(h scatterlisth]h scatterlist}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&] refdomainjOreftypejd reftargetjAmodnameN classnameNjhjk)}jn]jyc.akcipher_request_set_cryptasbuh1hhjubh)}(h h]h }(hj]hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdsth]hdst}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(hunsigned int src_lenh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hsrc_lenh]hsrc_len}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubj)}(hunsigned int dst_lenh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hdst_lenh]hdst_len}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjjuh1jhj7ubeh}(h]h ]h"]h$]h&]jjuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]jjj"uh1hj#j$hjhhhjhKubah}(h]jah ](j(j)eh"]h$]h&]j-j.)j/huh1hhjhKhjhhubj1)}(hhh]j6)}(hSets request parametersh]hSets request parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjAhhubah}(h]h ]h"]h$]h&]uh1j0hjhhhjhKubeh}(h]h ](jOfunctioneh"]h$]h&]jTjOjUj\jVj\jWjXjYuh1hhhhjBhNhNubj[)}(hX**Parameters** ``struct akcipher_request *req`` public key request ``struct scatterlist *src`` ptr to input scatter list ``struct scatterlist *dst`` ptr to output scatter list ``unsigned int src_len`` size of the src input scatter list to be processed ``unsigned int dst_len`` size of the dst output scatter list **Description** Sets parameters required by crypto operationh](j6)}(h**Parameters**h]je)}(hjfh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjdubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhj`ubj)}(hhh](j)}(h4``struct akcipher_request *req`` public key request h](j)}(h ``struct akcipher_request *req``h]j)}(hjh]hstruct akcipher_request *req}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj)}(hhh]j6)}(hpublic key requesth]hpublic key request}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj|ubj)}(h6``struct scatterlist *src`` ptr to input scatter list h](j)}(h``struct scatterlist *src``h]j)}(hjh]hstruct scatterlist *src}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj)}(hhh]j6)}(hptr to input scatter listh]hptr to input scatter list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj|ubj)}(h7``struct scatterlist *dst`` ptr to output scatter list h](j)}(h``struct scatterlist *dst``h]j)}(hjh]hstruct scatterlist *dst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjubj)}(hhh]j6)}(hptr to output scatter listh]hptr to output scatter list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhj|ubj)}(hL``unsigned int src_len`` size of the src input scatter list to be processed h](j)}(h``unsigned int src_len``h]j)}(hj0h]hunsigned int src_len}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhj*ubj)}(hhh]j6)}(h2size of the src input scatter list to be processedh]h2size of the src input scatter list to be processed}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hjEhKhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhKhj|ubj)}(h=``unsigned int dst_len`` size of the dst output scatter list h](j)}(h``unsigned int dst_len``h]j)}(hjih]hunsigned int dst_len}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhjcubj)}(hhh]j6)}(h#size of the dst output scatter listh]h#size of the dst output scatter list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5hj~hKhjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hKhj|ubeh}(h]h ]h"]h$]h&]uh1jhj`ubj6)}(h**Description**h]je)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jdhjubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhj`ubj6)}(h,Sets parameters required by crypto operationh]h,Sets parameters required by crypto operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j5h]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:19: ./include/crypto/akcipher.hhKhj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jZhjBhhhNhNubeh}(h] asymmetric-cipher-request-handleah ]h"] asymmetric cipher request handleah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjj?j<jju nametypes}(jj?juh}(jhhhj8j=j<jj"j'j4 j9 j j jd ji j jjjj}jjjBj_jdjjjjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.