<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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/pt_BR/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)}(hAsymmetric Cipherh]hAsymmetric Cipher}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhA/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher.rsthKubh)}(hhh](h)}(h'Asymmetric Cipher Algorithm Definitionsh]h'Asymmetric Cipher Algorithm Definitions}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(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}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1hhhhhh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhhhhhjhKubh desc_name)}(hakcipher_requesth]h desc_sig_name)}(hhh]hakcipher_request}(hj)hhhNhNubah}(h]h ]nah"]h$]h&]uh1j'hj#ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j!hhhhhjhKubeh}(h]h ]h"]h$]h&]j?j@ add_permalinkuh1hsphinx_line_type declaratorhhhhhjhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhjhKhhhhubh desc_content)}(hhh]h paragraph)}(hpublic key cipher requesth]hpublic key cipher request}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhKhjWhhubah}(h]h ]h"]h$]h&]uh1jUhhhhhjhKubeh}(h]h ](cstructeh"]h$]h&]domainjtobjtypejudesctypejunoindex 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](j[)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhKhjubh 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&]j?j@uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhKhjubj[)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhKhjubhdefinition_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:7: ./include/crypto/akcipher.hhKhjubh definition)}(hhh]j[)}(h+Common attributes for async crypto requestsh]h+Common attributes for async crypto requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhjubah}(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:7: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(h Source datah]h Source data}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhj.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)}(hjRh]hdst}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhKhjLubj)}(hhh]j[)}(hDestination datah]hDestination data}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjghKhjhubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjghKhjubj)}(h%``src_len`` Size of the input buffer h](j)}(h ``src_len``h]j)}(hjh]hsrc_len}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(hSize of the input bufferh]hSize of the input buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(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:7: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(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 }(hjhhhNhNubj)}(h**dst**h]hdst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhX 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&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./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:7: ./include/crypto/akcipher.hhKhj ubj)}(hhh]j[)}(hStart of private context datah]hStart of private context data}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhKhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hakcipher_alg (C struct)c.akcipher_alghNtauh1hhhhhhNhNubh)}(hhh](h)}(h akcipher_algh]h)}(hstruct akcipher_algh](h)}(hjh]hstruct}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjfhhh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhK#ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfhhhjwhK#ubj")}(h akcipher_algh]j()}(hjdh]h akcipher_alg}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjfhhhjwhK#ubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhjbhhhjwhK#ubah}(h]j]ah ](jMjNeh"]h$]h&]jRjS)jThuh1hhjwhK#hj_hhubjV)}(hhh]j[)}(h#generic public key cipher algorithmh]h#generic public key cipher algorithm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhK5hjhhubah}(h]h ]h"]h$]h&]uh1jUhj_hhhjwhK#ubeh}(h]h ](jtstructeh"]h$]h&]jyjtjzjj{jj|j}j~uh1hhhhhhNhNubj)}(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](j[)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./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&]j?j@uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhK;hjubj[)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./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:7: ./include/crypto/akcipher.hhK;hjubj)}(hhh]j[)}(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}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./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)}(hjSh]hdecrypt}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhK?hjMubj)}(hhh]j[)}(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}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh\/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:7: ./include/crypto/akcipher.hhK hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj: ubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhKhj6 ubj)}(hhh]j[)}(h:AKCIPHER tfm handle allocated with crypto_alloc_akcipher()h]h:AKCIPHER tfm handle allocated with crypto_alloc_akcipher()}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjQ hKhjR ubah}(h]h ]h"]h$]h&]uh1jhj6 ubeh}(h]h ]h"]h$]h&]uh1jhjQ hKhj3 ubah}(h]h ]h"]h$]h&]uh1jhj ubj[)}(h**Description**h]j)}(hjw h]h Description}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhKhj ubj[)}(hBIf **tfm** is a NULL or error pointer, this function does nothing.h](hIf }(hj hhhNhNubj)}(h**tfm**h]htfm}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh8 is a NULL or error pointer, this function does nothing.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$crypto_akcipher_maxsize (C function)c.crypto_akcipher_maxsizehNtauh1hhjhhhNhNubh)}(hhh](h)}(hBunsigned int crypto_akcipher_maxsize (struct crypto_akcipher *tfm)h]h)}(hAunsigned int crypto_akcipher_maxsize(struct crypto_akcipher *tfm)h](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj")}(hcrypto_akcipher_maxsizeh]j()}(hcrypto_akcipher_maxsizeh]hcrypto_akcipher_maxsize}(hj hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj ubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hj hhhj hKubj)}(h(struct crypto_akcipher *tfm)h]j)}(hstruct crypto_akcipher *tfmh](h)}(hjh]hstruct}(hj' hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj# ubj)}(h h]h }(hj4 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj# ubh)}(hhh]j()}(hcrypto_akcipherh]hcrypto_akcipher}(hjE hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjB ubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjG modnameN classnameNjj)}j]j)}jj sbc.crypto_akcipher_maxsizeasbuh1hhj# ubj)}(h h]h }(hje hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj# ubj)}(hjh]h*}(hjs hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj# ubj()}(htfmh]htfm}(hj hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj# ubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj ubah}(h]h ]h"]h$]h&]j?j@uh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhj hhhj hKubah}(h]j ah ](jMjNeh"]h$]h&]jRjS)jThuh1hhj hKhj hhubjV)}(hhh]j[)}(hGet len for output bufferh]hGet len for output buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jUhj hhhj hKubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzj j{j j|j}j~uh1hhhhjhNhNubj)}(hXn**Parameters** ``struct crypto_akcipher *tfm`` AKCIPHER tfm handle allocated with crypto_alloc_akcipher() **Description** Function returns the dest buffer size required for a given key. Function assumes that the key is already set in the transformation. If this function is called without a setkey or with a failed setkey, you will end up in a NULL dereference.h](j[)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhKhj ubj)}(hhh]j)}(h[``struct crypto_akcipher *tfm`` AKCIPHER tfm handle allocated with crypto_alloc_akcipher() h](j)}(h``struct crypto_akcipher *tfm``h]j)}(hj h]hstruct crypto_akcipher *tfm}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhj ubj)}(hhh]j[)}(h:AKCIPHER tfm handle allocated with crypto_alloc_akcipher()h]h:AKCIPHER tfm handle allocated with crypto_alloc_akcipher()}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj[)}(h**Description**h]j)}(hj& h]h Description}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhj ubj[)}(hFunction returns the dest buffer size required for a given key. Function assumes that the key is already set in the transformation. If this function is called without a setkey or with a failed setkey, you will end up in a NULL dereference.h]hFunction returns the dest buffer size required for a given key. Function assumes that the key is already set in the transformation. If this function is called without a setkey or with a failed setkey, you will end up in a NULL dereference.}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$crypto_akcipher_encrypt (C function)c.crypto_akcipher_encrypthNtauh1hhjhhhNhNubh)}(hhh](h)}(h:int crypto_akcipher_encrypt (struct akcipher_request *req)h]h)}(h9int crypto_akcipher_encrypt(struct akcipher_request *req)h](j)}(hinth]hint}(hjk hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg hhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhM ubj)}(h h]h }(hjz hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg hhhjy hM ubj")}(hcrypto_akcipher_encrypth]j()}(hcrypto_akcipher_encrypth]hcrypto_akcipher_encrypt}(hj hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj ubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjg hhhjy hM ubj)}(h(struct akcipher_request *req)h]j)}(hstruct akcipher_request *reqh](h)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j()}(hakcipher_requesth]hakcipher_request}(hj hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj ubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.crypto_akcipher_encryptasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj()}(hreqh]hreq}(hj hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj ubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj ubah}(h]h ]h"]h$]h&]j?j@uh1jhjg hhhjy hM ubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhjc hhhjy hM ubah}(h]j^ ah ](jMjNeh"]h$]h&]jRjS)jThuh1hhjy hM hj` hhubjV)}(hhh]j[)}(h#Invoke public key encrypt operationh]h#Invoke public key encrypt operation}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhM hj( hhubah}(h]h ]h"]h$]h&]uh1jUhj` hhhjy hM ubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzjC j{jC j|j}j~uh1hhhhjhNhNubj)}(h**Parameters** ``struct akcipher_request *req`` asymmetric key request **Description** Function invokes the specific public key encrypt operation for a given public key algorithm **Return** zero on success; error code in case of errorh](j[)}(h**Parameters**h]j)}(hjM h]h Parameters}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjG ubj)}(hhh]j)}(h8``struct akcipher_request *req`` asymmetric key request h](j)}(h ``struct akcipher_request *req``h]j)}(hjl h]hstruct akcipher_request *req}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj ubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjf ubj)}(hhh]j[)}(hasymmetric key requesth]hasymmetric key request}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjf ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjc ubah}(h]h ]h"]h$]h&]uh1jhjG ubj[)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjG ubj[)}(h[Function invokes the specific public key encrypt operation for a given public key algorithmh]h[Function invokes the specific public key encrypt operation for a given public key algorithm}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhM hjG ubj[)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjG ubj[)}(h,zero on success; error code in case of errorh]h,zero on success; error code in case of error}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjG ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$crypto_akcipher_decrypt (C function)c.crypto_akcipher_decrypthNtauh1hhjhhhNhNubh)}(hhh](h)}(h:int crypto_akcipher_decrypt (struct akcipher_request *req)h]h)}(h9int crypto_akcipher_decrypt(struct akcipher_request *req)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj!hMubj")}(hcrypto_akcipher_decrypth]j()}(hcrypto_akcipher_decrypth]hcrypto_akcipher_decrypt}(hj4hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj0ubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjhhhj!hMubj)}(h(struct akcipher_request *req)h]j)}(hstruct akcipher_request *reqh](h)}(hjh]hstruct}(hjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjLubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubh)}(hhh]j()}(hakcipher_requesth]hakcipher_request}(hjnhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjkubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjpmodnameN classnameNjj)}j]j)}jj6sbc.crypto_akcipher_decryptasbuh1hhjLubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj()}(hreqh]hreq}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjLubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjHubah}(h]h ]h"]h$]h&]j?j@uh1jhjhhhj!hMubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhj hhhj!hMubah}(h]jah ](jMjNeh"]h$]h&]jRjS)jThuh1hhj!hMhjhhubjV)}(hhh]j[)}(h#Invoke public key decrypt operationh]h#Invoke public key decrypt operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jUhjhhhj!hMubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzjj{jj|j}j~uh1hhhhjhNhNubj)}(h**Parameters** ``struct akcipher_request *req`` asymmetric key request **Description** Function invokes the specific public key decrypt operation for a given public key algorithm **Return** zero on success; error code in case of errorh](j[)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjubj)}(hhh]j)}(h8``struct akcipher_request *req`` asymmetric 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:16: ./include/crypto/akcipher.hhM hjubj)}(hhh]j[)}(hasymmetric key requesth]hasymmetric key request}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhj)hM hj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hM hj ubah}(h]h ]h"]h$]h&]uh1jhjubj[)}(h**Description**h]j)}(hjOh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhM"hjubj[)}(h[Function invokes the specific public key decrypt operation for a given public key algorithmh]h[Function invokes the specific public key decrypt operation for a given public key algorithm}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjubj[)}(h **Return**h]j)}(hjvh]hReturn}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMhjubj[)}(h,zero on success; error code in case of errorh]h,zero on success; error code in case of error}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhM"hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(crypto_akcipher_set_pub_key (C function)c.crypto_akcipher_set_pub_keyhNtauh1hhjhhhNhNubh)}(hhh](h)}(hcint crypto_akcipher_set_pub_key (struct crypto_akcipher *tfm, const void *key, unsigned int keylen)h]h)}(hbint crypto_akcipher_set_pub_key(struct crypto_akcipher *tfm, const void *key, unsigned int keylen)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMPubj")}(hcrypto_akcipher_set_pub_keyh]j()}(hcrypto_akcipher_set_pub_keyh]hcrypto_akcipher_set_pub_key}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjhhhjhMPubj)}(hC(struct crypto_akcipher *tfm, const void *key, unsigned int keylen)h](j)}(hstruct crypto_akcipher *tfmh](h)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(hcrypto_akcipherh]hcrypto_akcipher}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.crypto_akcipher_set_pub_keyasbuh1hhjubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(htfmh]htfm}(hjQhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubj)}(hconst void *keyh](h)}(hjh]hconst}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjfubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj()}(hkeyh]hkey}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjfubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubj)}(hunsigned int keylenh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hkeylenh]hkeylen}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubeh}(h]h ]h"]h$]h&]j?j@uh1jhjhhhjhMPubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhjhhhjhMPubah}(h]jah ](jMjNeh"]h$]h&]jRjS)jThuh1hhjhMPhjhhubjV)}(hhh]j[)}(hInvoke set public key operationh]hInvoke set public key operation}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMPhj&hhubah}(h]h ]h"]h$]h&]uh1jUhjhhhjhMPubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzjAj{jAj|j}j~uh1hhhhjhNhNubj)}(hX**Parameters** ``struct crypto_akcipher *tfm`` tfm handle ``const void *key`` BER encoded public key, algo OID, paramlen, BER encoded parameters ``unsigned int keylen`` length of the key (not including other data) **Description** Function invokes the algorithm specific set key function, which knows how to decode and interpret the encoded key and parameters **Return** zero on success; error code in case of errorh](j[)}(h**Parameters**h]j)}(hjKh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMThjEubj)}(hhh](j)}(h+``struct crypto_akcipher *tfm`` tfm handle h](j)}(h``struct crypto_akcipher *tfm``h]j)}(hjjh]hstruct crypto_akcipher *tfm}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMUhjdubj)}(hhh]j[)}(h tfm handleh]h tfm handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhMUhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhMUhjaubj)}(hW``const void *key`` BER encoded public key, algo OID, paramlen, BER encoded parameters h](j)}(h``const void *key``h]j)}(hjh]hconst void *key}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMWhjubj)}(hhh]j[)}(hBBER encoded public key, algo OID, paramlen, BER encoded parametersh]hBBER encoded public key, algo OID, paramlen, BER encoded parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMVhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjaubj)}(hE``unsigned int keylen`` length of the key (not including other data) h](j)}(h``unsigned int keylen``h]j)}(hjh]hunsigned int keylen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMXhjubj)}(hhh]j[)}(h,length of the key (not including other data)h]h,length of the key (not including other data)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjaubeh}(h]h ]h"]h$]h&]uh1jhjEubj[)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMZhjEubj[)}(hFunction invokes the algorithm specific set key function, which knows how to decode and interpret the encoded key and parametersh]hFunction invokes the algorithm specific set key function, which knows how to decode and interpret the encoded key and parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMQhjEubj[)}(h **Return**h]j)}(hj?h]hReturn}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMThjEubj[)}(h,zero on success; error code in case of errorh]h,zero on success; error code in case of error}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMZhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)crypto_akcipher_set_priv_key (C function)c.crypto_akcipher_set_priv_keyhNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint crypto_akcipher_set_priv_key (struct crypto_akcipher *tfm, const void *key, unsigned int keylen)h]h)}(hcint crypto_akcipher_set_priv_key(struct crypto_akcipher *tfm, const void *key, unsigned int keylen)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMfubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMfubj")}(hcrypto_akcipher_set_priv_keyh]j()}(hcrypto_akcipher_set_priv_keyh]hcrypto_akcipher_set_priv_key}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjhhhjhMfubj)}(hC(struct crypto_akcipher *tfm, const void *key, unsigned int keylen)Th](j)}(hstruct crypto_akcipher *tfmh](h)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(hcrypto_akcipherh]hcrypto_akcipher}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.crypto_akcipher_set_priv_keyasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(htfmh]htfm}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubj)}(hconst void *keyh](h)}(hjh]hconst}(hj3hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj/ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hvoidh]hvoid}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj()}(hkeyh]hkey}(hjwhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj/ubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubj)}(hunsigned int keylenh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hkeylenh]hkeylen}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubeh}(h]h ]h"]h$]h&]j?j@uh1jhjhhhjhMfubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhj|hhhjhMfubah}(h]jwah ](jMjNeh"]h$]h&]jRjS)jThuh1hhjhMfhjyhhubjV)}(hhh]j[)}(h Invoke set private key operationh]h Invoke set private key operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMfhjhhubah}(h]h ]h"]h$]h&]uh1jUhjyhhhjhMfubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzj j{j j|j}j~uh1hhhhjhNhNubj)}(hX**Parameters** ``struct crypto_akcipher *tfm`` tfm handle ``const void *key`` BER encoded private key, algo OID, paramlen, BER encoded parameters ``unsigned int keylen`` length of the key (not including other data) **Description** Function invokes the algorithm specific set key function, which knows how to decode and interpret the encoded key and parameters **Return** zero on success; error code in case of errorh](j[)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMjhjubj)}(hhh](j)}(h+``struct crypto_akcipher *tfm`` tfm handle h](j)}(h``struct crypto_akcipher *tfm``h]j)}(hj3h]hstruct crypto_akcipher *tfm}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMkhj-ubj)}(hhh]j[)}(h tfm handleh]h tfm handle}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjHhMkhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMkhj*ubj)}(hX``const void *key`` BER encoded private key, algo OID, paramlen, BER encoded parameters h](j)}(h``const void *key``h]j)}(hjlh]hconst void *key}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMmhjfubj)}(hhh]j[)}(hCBER encoded private key, algo OID, paramlen, BER encoded parametersh]hCBER encoded private key, algo OID, paramlen, BER encoded parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMlhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMmhj*ubj)}(hE``unsigned int keylen`` length of the key (not including other data) h](j)}(h``unsigned int keylen``h]j)}(hjh]hunsigned int keylen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMnhjubj)}(hhh]j[)}(h,length of the key (not including other data)h]h,length of the key (not including other data)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhMnhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMnhj*ubeh}(h]h ]h"]h$]h&]uh1jhjubj[)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMphjubj[)}(hFunction invokes the algorithm specific set key function, which knows how to decode and interpret the encoded key and parametersh]hFunction invokes the algorithm specific set key function, which knows how to decode and interpret the encoded key and parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMghjubj[)}(h **Return**h]j)}(hjh]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMjhjubj[)}(h,zero on success; error code in case of errorh]h,zero on success; error code in case of error}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:16: ./include/crypto/akcipher.hhMphjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]asymmetric-cipher-apiah ]h"]asymmetric cipher apiah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h Asymmetric Cipher Request Handleh]h Asymmetric Cipher Request Handle}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#akcipher_request_alloc (C function)c.akcipher_request_allochNtauh1hhj<hhhNhNubh)}(hhh](h)}(hYstruct akcipher_request * akcipher_request_alloc (struct crypto_akcipher *tfm, gfp_t gfp)h]h)}(hWstruct akcipher_request *akcipher_request_alloc(struct crypto_akcipher *tfm, gfp_t gfp)h](h)}(hjh]hstruct}(hjfhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjbhhh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhhhjshKubh)}(hhh]j()}(hakcipher_requesth]hakcipher_request}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjmodnameN classnameNjj)}j]j)}jakcipher_request_allocsbc.akcipher_request_allocasbuh1hhjbhhhjshKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhhhjshKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhhhjshKubj")}(hakcipher_request_alloch]j()}(hjh]hakcipher_request_alloc}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjbhhhjshKubj)}(h((struct crypto_akcipher *tfm, gfp_t gfp)h](j)}(hstruct crypto_akcipher *tfmh](h)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(hcrypto_akcipherh]hcrypto_akcipher}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjmodnameN classnameNjj)}j]jc.akcipher_request_allocasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(htfmh]htfm}(hj7hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubj)}(h gfp_t gfph](h)}(hhh]j()}(hgfp_th]hgfp_t}(hjShhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjPubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjUmodnameN classnameNjj)}j]jc.akcipher_request_allocasbuh1hhjLubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj()}(hgfph]hgfp}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjLubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubeh}(h]h ]h"]h$]h&]j?j@uh1jhjbhhhjshKubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhj^hhhjshKubah}(h]jYah ](jMjNeh"]h$]h&]jRjS)jThuh1hhjshKhj[hhubjV)}(hhh]j[)}(hallocates public key requesth]hallocates public key request}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jUhj[hhhjshKubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzjj{jj|j}j~uh1hhhhj<hNhNubj)}(h**Parameters** ``struct crypto_akcipher *tfm`` AKCIPHER tfm handle allocated with crypto_alloc_akcipher() ``gfp_t gfp`` allocation flags **Return** allocated handle in case of success or NULL in case of an error.h](j[)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjubj)}(hhh](j)}(h[``struct crypto_akcipher *tfm`` AKCIPHER tfm handle allocated with crypto_alloc_akcipher() h](j)}(h``struct crypto_akcipher *tfm``h]j)}(hjh]hstruct crypto_akcipher *tfm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(h:AKCIPHER tfm handle allocated with crypto_alloc_akcipher()h]h:AKCIPHER tfm handle allocated with crypto_alloc_akcipher()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``gfp_t gfp`` allocation flags h](j)}(h ``gfp_t gfp``h]j)}(hj#h]h gfp_t gfp}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(hallocation flagsh]hallocation flags}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhj8hKhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubj[)}(h **Return**h]j)}(hj^h]hReturn}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjubj[)}(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.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"akcipher_request_free (C function)c.akcipher_request_freehNtauh1hhj<hhhNhNubh)}(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:22: ./include/crypto/akcipher.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj")}(hakcipher_request_freeh]j()}(hakcipher_request_freeh]hakcipher_request_free}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjhhhjhKubj)}(h(struct akcipher_request *req)h]j)}(hstruct akcipher_request *reqh](h)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(hakcipher_requesth]hakcipher_request}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.akcipher_request_freeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hreqh]hreq}(hj9hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhjubah}(h]h ]h"]h$]h&]j?j@uh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhjhhhjhKubah}(h]jah ](jMjNeh"]h$]h&]jRjS)jThuh1hhjhKhjhhubjV)}(hhh]j[)}(h#zeroize and free public key requesth]h#zeroize and free public key request}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhj`hhubah}(h]h ]h"]h$]h&]uh1jUhjhhhjhKubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzj{j{j{j|j}j~uh1hhhhj<hNhNubj)}(hB**Parameters** ``struct akcipher_request *req`` request to freeh](j[)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./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:22: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(hrequest to freeh]hrequest to free}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./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&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*akcipher_request_set_callback (C function)c.akcipher_request_set_callbackhNtauh1hhj<hhhNhNubh)}(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:22: ./include/crypto/akcipher.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hKubj")}(hakcipher_request_set_callbackh]j()}(hakcipher_request_set_callbackh]hakcipher_request_set_callback}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjhhhj hKubj)}(hN(struct akcipher_request *req, u32 flgs, crypto_completion_t cmpl, void *data)h](j)}(hstruct akcipher_request *reqh](h)}(hjh]hstruct}(hj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj7ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubh)}(hhh]j()}(hakcipher_requesth]hakcipher_request}(hjYhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjVubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetj[modnameN classnameNjj)}j]j)}jj!sbc.akcipher_request_set_callbackasbuh1hhj7ubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj()}(hreqh]hreq}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj7ubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj3ubj)}(hu32 flgsh](h)}(hhh]j()}(hu32h]hu32}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjmodnameN classnameNjj)}j]juc.akcipher_request_set_callbackasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hflgsh]hflgs}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj3ubj)}(hcrypto_completion_t cmplh](h)}(hhh]j()}(hcrypto_completion_th]hcrypto_completion_t}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjmodnameN classnameNjj)}j]juc.akcipher_request_set_callbackasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hcmplh]hcmpl}(hj$hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj3ubj)}(h void *datah](j)}(hvoidh]hvoid}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj()}(hdatah]hdata}(hjfhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj9ubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj3ubeh}(h]h ]h"]h$]h&]j?j@uh1jhjhhhj hKubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhjhhhj hKubah}(h]jah ](jMjNeh"]h$]h&]jRjS)jThuh1hhj hKhjhhubjV)}(hhh]j[)}(hSets an asynchronous callback.h]hSets an asynchronous callback.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jUhjhhhj hKubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzjj{jj|j}j~uh1hhhhj<hNhNubj)}(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](j[)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./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:22: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(h)request that the callback will be set forh]h)request that the callback will be set for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhjubah}(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)}(hj h]hu32 flgs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(h1specify for instance if the operation may backlogh]h1specify for instance if the operation may backlog}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h;``crypto_completion_t cmpl`` callback which will be called h](j)}(h``crypto_completion_t cmpl``h]j)}(hjCh]hcrypto_completion_t cmpl}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhj=ubj)}(hhh]j[)}(hcallback which will be calledh]hcallback which will be called}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjXhKhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhjXhKhjubj)}(h/``void *data`` private data used by the caller h](j)}(h``void *data``h]j)}(hj|h]h void *data}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjvubj)}(hhh]j[)}(hprivate data used by the callerh]hprivate data used by the caller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubj[)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjubj[)}(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&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'akcipher_request_set_crypt (C function)c.akcipher_request_set_crypthNtauh1hhj<hhhNhNubh)}(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:22: ./include/crypto/akcipher.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hKubj")}(hakcipher_request_set_crypth]j()}(hakcipher_request_set_crypth]hakcipher_request_set_crypt}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ](j:j;eh"]h$]h&]j?j@uh1j!hjhhhj hKubj)}(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)}(hjh]hstruct}(hj9hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj5ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubh)}(hhh]j()}(hakcipher_requesth]hakcipher_request}(hjWhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjTubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjYmodnameN classnameNjj)}j]j)}jjsbc.akcipher_request_set_cryptasbuh1hhj5ubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj()}(hreqh]hreq}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj5ubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj1ubj)}(hstruct scatterlist *srch](h)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(h scatterlisth]h scatterlist}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetjmodnameN classnameNjj)}j]jsc.akcipher_request_set_cryptasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hsrch]hsrc}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj1ubj)}(hstruct scatterlist *dsth](h)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(h scatterlisth]h scatterlist}(hj9hhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hj6ubah}(h]h ]h"]h$]h&] refdomainjtreftypej reftargetj;modnameN classnameNjj)}j]jsc.akcipher_request_set_cryptasbuh1hhjubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hdsth]hdst}(hjrhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj1ubj)}(hunsigned int src_lenh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hsrc_lenh]hsrc_len}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj1ubj)}(hunsigned int dst_lenh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hdst_lenh]hdst_len}(hjhhhNhNubah}(h]h ]j3ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj?j@uh1jhj1ubeh}(h]h ]h"]h$]h&]j?j@uh1jhjhhhj hKubeh}(h]h ]h"]h$]h&]j?j@jGuh1hjHjIhjhhhj hKubah}(h]jah ](jMjNeh"]h$]h&]jRjS)jThuh1hhj hKhjhhubjV)}(hhh]j[)}(hSets request parametersh]hSets request parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhj;hhubah}(h]h ]h"]h$]h&]uh1jUhjhhhj hKubeh}(h]h ](jtfunctioneh"]h$]h&]jyjtjzjVj{jVj|j}j~uh1hhhhj<hNhNubj)}(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](j[)}(h**Parameters**h]j)}(hj`h]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjZubj)}(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&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjyubj)}(hhh]j[)}(hpublic key requesth]hpublic key request}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhKhjvubj)}(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:22: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(hptr to input scatter listh]hptr to input scatter list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjvubj)}(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:22: ./include/crypto/akcipher.hhKhjubj)}(hhh]j[)}(hptr to output scatter listh]hptr to output scatter list}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjvubj)}(hL``unsigned int src_len`` size of the src input scatter list to be processed h](j)}(h``unsigned int src_len``h]j)}(hj*h]hunsigned int src_len}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhj$ubj)}(hhh]j[)}(h2size of the src input scatter list to be processedh]h2size of the src input scatter list to be processed}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jZhj?hKhj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hKhjvubj)}(h=``unsigned int dst_len`` size of the dst output scatter list h](j)}(h``unsigned int dst_len``h]j)}(hjch]hunsigned int dst_len}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhj]ubj)}(hhh]j[)}(h#size of the dst output scatter listh]h#size of the dst output scatter list}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jZhjxhKhjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhKhjvubeh}(h]h ]h"]h$]h&]uh1jhjZubj[)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjZubj[)}(h,Sets parameters required by crypto operationh]h,Sets parameters required by crypto operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jZh]/var/lib/git/docbuild/linux/Documentation/crypto/api-akcipher:22: ./include/crypto/akcipher.hhKhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubeh}(h] asymmetric-cipher-request-handleah ]h"] asymmetric cipher request handleah$]h&]uh1hhhhhhhhKubeh}(h]asymmetric-cipherah ]h"]asymmetric cipherah$]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}(jjjjj9j6jju nametypes}(jjj9juh}(jhjhhhj]jbj6jjGjLj. j3 j j j^ jc jj jjjwj|jj<jYj^jjjjjju 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.