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-sigmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/zh_TW/crypto/api-sigmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/it_IT/crypto/api-sigmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ja_JP/crypto/api-sigmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ko_KR/crypto/api-sigmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/sp_SP/crypto/api-sigmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hAsymmetric Signatureh]hAsymmetric Signature}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK!hj:ubj)}(hhh]jG)}(hFunction invokes the algorithm specific set public key function, which knows how to decode and interpret the BER encoded public key and parameters. Mandatory.h]hFunction invokes the algorithm specific set public key function, which knows how to decode and interpret the BER encoded public key and parameters. Mandatory.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhKhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhK!hjubj)}(h``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. Optional. h](j)}(h``set_priv_key``h]j)}(hjzh]h set_priv_key}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK$hjtubj)}(hhh]jG)}(hFunction invokes the algorithm specific set private key function, which knows how to decode and interpret the BER encoded private key and parameters. Optional.h]hFunction invokes the algorithm specific set private key function, which knows how to decode and interpret the BER encoded private key and parameters. Optional.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK"hjubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhK$hjubj)}(h3``key_size`` Function returns key size. Mandatory. h](j)}(h ``key_size``h]j)}(hjh]hkey_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK%hjubj)}(hhh]jG)}(h%Function returns key size. Mandatory.h]h%Function returns key size. Mandatory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhK%hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK%hjubj)}(h@``digest_size`` Function returns maximum digest size. Optional. h](j)}(h``digest_size``h]j)}(hjh]h digest_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK&hjubj)}(hhh]jG)}(h/Function returns maximum digest size. Optional.h]h/Function returns maximum digest size. Optional.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhK&hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK&hjubj)}(h@``max_size`` Function returns maximum signature size. Optional. h](j)}(h ``max_size``h]j)}(hj&h]hmax_size}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK'hj ubj)}(hhh]jG)}(h2Function returns maximum signature size. Optional.h]h2Function returns maximum signature size. Optional.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj;hK'hj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj;hK'hjubj)}(hX``init`` Initialize the cryptographic transformation object. This function is used to initialize the cryptographic transformation object. This function is called only once at the instantiation time, right after the transformation context was allocated. In case the cryptographic hardware has some special requirements which need to be handled by software, this function shall check for the precise requirement of the transformation and put any software fallbacks in place. h](j)}(h``init``h]j)}(hj_h]hinit}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK/hjYubj)}(hhh]jG)}(hXInitialize the cryptographic transformation object. This function is used to initialize the cryptographic transformation object. This function is called only once at the instantiation time, right after the transformation context was allocated. In case the cryptographic hardware has some special requirements which need to be handled by software, this function shall check for the precise requirement of the transformation and put any software fallbacks in place.h]hXInitialize 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.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK(hjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthK/hjubj)}(h``exit`` Deinitialize the cryptographic transformation object. This is a counterpart to **init**, used to remove various changes set in **init**. h](j)}(h``exit``h]j)}(hjh]hexit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK2hjubj)}(hhh]jG)}(hDeinitialize the cryptographic transformation object. This is a counterpart to **init**, used to remove various changes set in **init**.h](hODeinitialize the cryptographic transformation object. This is a counterpart to }(hjhhhNhNubjv)}(h**init**h]hinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubh(, used to remove various changes set in }(hjhhhNhNubjv)}(h**init**h]hinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jFhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubj)}(h3``base`` Common crypto API algorithm data structureh](j)}(h``base``h]j)}(hjh]hbase}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK3hjubj)}(hhh]jG)}(h*Common crypto API algorithm data structureh]h*Common crypto API algorithm data structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhR/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:7: ./include/crypto/sig.hhK4hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hK3hjubeh}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhhhhhNhNubeh}(h]*asymmetric-signature-algorithm-definitionsah ]h"]*asymmetric signature algorithm definitionsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hAsymmetric Signature APIh]hAsymmetric Signature API}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hhhhhK ubjG)}(h{The Public Key Signature API is used with the algorithms of type CRYPTO_ALG_TYPE_SIG (listed as type "sig" in /proc/crypto)h]hThe Public Key Signature API is used with the algorithms of type CRYPTO_ALG_TYPE_SIG (listed as type “sig” in /proc/crypto)}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:13: ./include/crypto/sig.hhKJhj@hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌcrypto_alloc_sig (C function)c.crypto_alloc_sighNtauh1hhj@hhhNhNubh)}(hhh](h)}(hOstruct crypto_sig * crypto_alloc_sig (const char *alg_name, u32 type, u32 mask)h]h)}(hMstruct crypto_sig *crypto_alloc_sig(const char *alg_name, u32 type, u32 mask)h](h)}(hhh]hstruct}(hjyhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjuhhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKQubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjuhhhjhKQubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jcrypto_alloc_sigsbc.crypto_alloc_sigasbuh1hhjuhhhjhKQubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjuhhhjhKQubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjuhhhjhKQubj)}(hcrypto_alloc_sigh]j)}(hjh]hcrypto_alloc_sig}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hjuhhhjhKQubhdesc_parameterlist)}(h*(const char *alg_name, u32 type, u32 mask)h](hdesc_parameter)}(hconst char *alg_nameh](h)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubhdesc_sig_keyword_type)}(hcharh]hchar}(hj!hhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjubh)}(h h]h }(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(halg_nameh]halg_name}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hu32 typeh](h)}(hhh]j)}(hu32h]hu32}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetjimodnameN classnameNjj)}j]jc.crypto_alloc_sigasbuh1hhj`ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj`ubj)}(htypeh]htype}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hu32 maskh](h)}(hhh]j)}(hu32h]hu32}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetjmodnameN classnameNjj)}j]jc.crypto_alloc_sigasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubeh}(h]h ]h"]h$]h&]j+j,uh1jhjuhhhjhKQubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hjqhhhjhKQubah}(h]jlah ](j9j:eh"]h$]h&]j>j?)j@huh1hhjhKQhjnhhubjB)}(hhh]jG)}(hallocate signature tfm handleh]hallocate signature tfm handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKQhjhhubah}(h]h ]h"]h$]h&]uh1jAhjnhhhjhKQubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhj@hNhNubjl)}(hX/**Parameters** ``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the signing algorithm e.g. "ecdsa" ``u32 type`` specifies the type of the algorithm ``u32 mask`` specifies the mask for the algorithm **Description** Allocate a handle for public key signature algorithm. The returned struct crypto_sig is the handle that is required for any subsequent API invocation for signature operations. **Return** allocated handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.h](jG)}(h**Parameters**h]jv)}(hj'h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj%ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKUhj!ubj)}(hhh](j)}(hw``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the signing algorithm e.g. "ecdsa" h](j)}(h``const char *alg_name``h]j)}(hjFh]hconst char *alg_name}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKShj@ubj)}(hhh]jG)}(h]is the cra_name / name or cra_driver_name / driver name of the signing algorithm e.g. "ecdsa"h]hais the cra_name / name or cra_driver_name / driver name of the signing algorithm e.g. “ecdsa”}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKRhj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hKShj=ubj)}(h1``u32 type`` specifies the type of the algorithm h](j)}(h ``u32 type``h]j)}(hjh]hu32 type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKThjzubj)}(hhh]jG)}(h#specifies the type of the algorithmh]h#specifies the type of the algorithm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKThjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhKThj=ubj)}(h2``u32 mask`` specifies the mask for the algorithm h](j)}(h ``u32 mask``h]j)}(hjh]hu32 mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKUhjubj)}(hhh]jG)}(h$specifies the mask for the algorithmh]h$specifies the mask for the algorithm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKUhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKUhj=ubeh}(h]h ]h"]h$]h&]uh1jhj!ubjG)}(h**Description**h]jv)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKWhj!ubjG)}(hAllocate a handle for public key signature algorithm. The returned struct crypto_sig is the handle that is required for any subsequent API invocation for signature operations.h]hAllocate a handle for public key signature algorithm. The returned struct crypto_sig is the handle that is required for any subsequent API invocation for signature operations.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKVhj!ubjG)}(h **Return**h]jv)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKZhj!ubjG)}(hlallocated handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.h]hlallocated handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhK[hj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌcrypto_free_sig (C function)c.crypto_free_sighNtauh1hhj@hhhNhNubh)}(hhh](h)}(h-void crypto_free_sig (struct crypto_sig *tfm)h]h)}(h,void crypto_free_sig(struct crypto_sig *tfm)h](j )}(hvoidh]hvoid}(hj`hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj\hhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKuubh)}(h h]h }(hjohhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj\hhhjnhKuubj)}(hcrypto_free_sigh]j)}(hcrypto_free_sigh]hcrypto_free_sig}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hj\hhhjnhKuubj)}(h(struct crypto_sig *tfm)h]j)}(hstruct crypto_sig *tfmh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.crypto_free_sigasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htfmh]htfm}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubah}(h]h ]h"]h$]h&]j+j,uh1jhj\hhhjnhKuubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hjXhhhjnhKuubah}(h]jSah ](j9j:eh"]h$]h&]j>j?)j@huh1hhjnhKuhjUhhubjB)}(hhh]jG)}(hfree signature tfm handleh]hfree signature tfm handle}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKuhjhhubah}(h]h ]h"]h$]h&]uh1jAhjUhhhjnhKuubeh}(h]h ](j`functioneh"]h$]h&]jej`jfj8jgj8jhjijjuh1hhhhj@hNhNubjl)}(h**Parameters** ``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() **Description** If **tfm** is a NULL or error pointer, this function does nothing.h](jG)}(h**Parameters**h]jv)}(hjBh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1juhj@ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKyhj<ubj)}(hhh]j)}(hR``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() h](j)}(h``struct crypto_sig *tfm``h]j)}(hjah]hstruct crypto_sig *tfm}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKwhj[ubj)}(hhh]jG)}(h6signature tfm handle allocated with crypto_alloc_sig()h]h6signature tfm handle allocated with crypto_alloc_sig()}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjvhKwhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhKwhjXubah}(h]h ]h"]h$]h&]uh1jhj<ubjG)}(h**Description**h]jv)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKyhj<ubjG)}(hBIf **tfm** is a NULL or error pointer, this function does nothing.h](hIf }(hjhhhNhNubjv)}(h**tfm**h]htfm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubh8 is a NULL or error pointer, this function does nothing.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKxhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌcrypto_sig_keysize (C function)c.crypto_sig_keysizehNtauh1hhj@hhhNhNubh)}(hhh](h)}(h8unsigned int crypto_sig_keysize (struct crypto_sig *tfm)h]h)}(h7unsigned int crypto_sig_keysize(struct crypto_sig *tfm)h](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhj hKubj )}(hinth]hint}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhj hKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhj hKubj)}(hcrypto_sig_keysizeh]j)}(hcrypto_sig_keysizeh]hcrypto_sig_keysize}(hj0 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj, ubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hjhhhj hKubj)}(h(struct crypto_sig *tfm)h]j)}(hstruct crypto_sig *tfmh](h)}(hhh]hstruct}(hjL hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjH ubh)}(h h]h }(hjY hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjH ubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hjj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg ubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetjl modnameN classnameNjj)}j]j)}jj2 sbc.crypto_sig_keysizeasbuh1hhjH ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjH ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH ubj)}(htfmh]htfm}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjD ubah}(h]h ]h"]h$]h&]j+j,uh1jhjhhhj hKubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hjhhhj hKubah}(h]jah ](j9j:eh"]h$]h&]j>j?)j@huh1hhj hKhjhhubjB)}(hhh]jG)}(h Get key sizeh]h Get key size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jAhjhhhj hKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfj jgj jhjijjuh1hhhhj@hNhNubjl)}(hXK**Parameters** ``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() **Description** Function returns the key size in bits. 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 may end up in a NULL dereference.h](jG)}(h**Parameters**h]jv)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubj)}(hhh]j)}(hR``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() h](j)}(h``struct crypto_sig *tfm``h]j)}(hj h]hstruct crypto_sig *tfm}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubj)}(hhh]jG)}(h6signature tfm handle allocated with crypto_alloc_sig()h]h6signature tfm handle allocated with crypto_alloc_sig()}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj% hKhj& ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj% hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubjG)}(h**Description**h]jv)}(hjK h]h Description}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1juhjI ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubjG)}(hFunction returns the key size in bits. 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 may end up in a NULL dereference.h]hFunction returns the key size in bits. 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 may end up in a NULL dereference.}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ"crypto_sig_digestsize (C function)c.crypto_sig_digestsizehNtauh1hhj@hhhNhNubh)}(hhh](h)}(h;unsigned int crypto_sig_digestsize (struct crypto_sig *tfm)h]h)}(h:unsigned int crypto_sig_digestsize(struct crypto_sig *tfm)h](j )}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj hhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj )}(hinth]hint}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj hhhj hKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj)}(hcrypto_sig_digestsizeh]j)}(hcrypto_sig_digestsizeh]hcrypto_sig_digestsize}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hj hhhj hKubj)}(h(struct crypto_sig *tfm)h]j)}(hstruct crypto_sig *tfmh](h)}(hhh]hstruct}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.crypto_sig_digestsizeasbuh1hhj ubh)}(h h]h }(hj' hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj5 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(htfmh]htfm}(hjB hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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,j3uh1hj4j5hj hhhj hKubah}(h]j ah ](j9j:eh"]h$]h&]j>j?)j@huh1hhj hKhj hhubjB)}(hhh]jG)}(hGet maximum digest sizeh]hGet maximum digest size}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhji hhubah}(h]h ]h"]h$]h&]uh1jAhj hhhj hKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfj jgj jhjijjuh1hhhhj@hNhNubjl)}(hXW**Parameters** ``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() **Description** Function returns the maximum digest size in bytes. 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 may end up in a NULL dereference.h](jG)}(h**Parameters**h]jv)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubj)}(hhh]j)}(hR``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() h](j)}(h``struct crypto_sig *tfm``h]j)}(hj h]hstruct crypto_sig *tfm}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubj)}(hhh]jG)}(h6signature tfm handle allocated with crypto_alloc_sig()h]h6signature tfm handle allocated with crypto_alloc_sig()}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubjG)}(h**Description**h]jv)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubjG)}(hFunction returns the maximum digest size in bytes. 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 may end up in a NULL dereference.h]hFunction returns the maximum digest size in bytes. 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 may end up in a NULL dereference.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌcrypto_sig_maxsize (C function)c.crypto_sig_maxsizehNtauh1hhj@hhhNhNubh)}(hhh](h)}(h8unsigned int crypto_sig_maxsize (struct crypto_sig *tfm)h]h)}(h7unsigned int crypto_sig_maxsize(struct crypto_sig *tfm)h](j )}(hunsignedh]hunsigned}(hj- hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj) hhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKubh)}(h h]h }(hj< hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj) hhhj; hKubj )}(hinth]hint}(hjJ hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj) hhhj; hKubh)}(h h]h }(hjX hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj) hhhj; hKubj)}(hcrypto_sig_maxsizeh]j)}(hcrypto_sig_maxsizeh]hcrypto_sig_maxsize}(hjj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf ubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hj) hhhj; hKubj)}(h(struct crypto_sig *tfm)h]j)}(hstruct crypto_sig *tfmh](h)}(hhh]hstruct}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetj modnameN classnameNjj)}j]j)}jjl sbc.crypto_sig_maxsizeasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(htfmh]htfm}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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,j3uh1hj4j5hj% hhhj; hKubah}(h]j ah ](j9j:eh"]h$]h&]j>j?)j@huh1hhj; hKhj" hhubjB)}(hhh]jG)}(hGet maximum signature sizeh]hGet maximum signature size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jAhj" hhhj; hKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfj! jgj! jhjijjuh1hhhhj@hNhNubjl)}(hXZ**Parameters** ``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() **Description** Function returns the maximum signature size in bytes. 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 may end up in a NULL dereference.h](jG)}(h**Parameters**h]jv)}(hj+ h]h Parameters}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj) ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj% ubj)}(hhh]j)}(hR``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() h](j)}(h``struct crypto_sig *tfm``h]j)}(hjJ h]hstruct crypto_sig *tfm}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjD ubj)}(hhh]jG)}(h6signature tfm handle allocated with crypto_alloc_sig()h]h6signature tfm handle allocated with crypto_alloc_sig()}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj_ hKhj` ubah}(h]h ]h"]h$]h&]uh1jhjD ubeh}(h]h ]h"]h$]h&]uh1jhj_ hKhjA ubah}(h]h ]h"]h$]h&]uh1jhj% ubjG)}(h**Description**h]jv)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj% ubjG)}(hFunction returns the maximum signature size in bytes. 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 may end up in a NULL dereference.h]hFunction returns the maximum signature size in bytes. 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 may end up in a NULL dereference.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj% ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌcrypto_sig_sign (C function)c.crypto_sig_signhNtauh1hhj@hhhNhNubh)}(hhh](h)}(hnint crypto_sig_sign (struct crypto_sig *tfm, const void *src, unsigned int slen, void *dst, unsigned int dlen)h]h)}(hmint crypto_sig_sign(struct crypto_sig *tfm, const void *src, unsigned int slen, void *dst, unsigned int dlen)h](j )}(hinth]hint}(hj hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj hhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj)}(hcrypto_sig_signh]j)}(hcrypto_sig_signh]hcrypto_sig_sign}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hj hhhj hKubj)}(hZ(struct crypto_sig *tfm, const void *src, unsigned int slen, void *dst, unsigned int dlen)h](j)}(hstruct crypto_sig *tfmh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetj'modnameN classnameNjj)}j]j)}jj sbc.crypto_sig_signasbuh1hhjubh)}(h h]h }(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htfmh]htfm}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(hconst void *srch](h)}(hjh]hconst}(hjyhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjuubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjuubj )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjuubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjuubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj)}(hsrch]hsrc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(hunsigned int slenh](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hslenh]hslen}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(h void *dsth](j )}(hvoidh]hvoid}(hj'hhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj#ubh)}(h h]h }(hj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj#ubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj)}(hdsth]hdst}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(hunsigned int dlenh](j )}(hunsignedh]hunsigned}(hjihhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjeubh)}(h h]h }(hjwhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjeubj )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjeubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjeubj)}(hdlenh]hdlen}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubeh}(h]h ]h"]h$]h&]j+j,uh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hj hhhj hKubah}(h]j ah ](j9j:eh"]h$]h&]j>j?)j@huh1hhj hKhj hhubjB)}(hhh]jG)}(hInvoke signing operationh]hInvoke signing operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jAhj hhhj hKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhj@hNhNubjl)}(hX**Parameters** ``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() ``const void *src`` source buffer ``unsigned int slen`` source length ``void *dst`` destination obuffer ``unsigned int dlen`` destination length **Description** Function invokes the specific signing operation for a given algorithm **Return** signature size on success; error code in case of errorh](jG)}(h**Parameters**h]jv)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh](j)}(hR``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() h](j)}(h``struct crypto_sig *tfm``h]j)}(hj h]hstruct crypto_sig *tfm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh]jG)}(h6signature tfm handle allocated with crypto_alloc_sig()h]h6signature tfm handle allocated with crypto_alloc_sig()}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj!hKhj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hKhjubj)}(h"``const void *src`` source buffer h](j)}(h``const void *src``h]j)}(hjEh]hconst void *src}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj?ubj)}(hhh]jG)}(h source bufferh]h source buffer}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjZhKhj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjubj)}(h$``unsigned int slen`` source length h](j)}(h``unsigned int slen``h]j)}(hj~h]hunsigned int slen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjxubj)}(hhh]jG)}(h source lengthh]h source length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h"``void *dst`` destination obuffer h](j)}(h ``void *dst``h]j)}(hjh]h void *dst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh]jG)}(hdestination obufferh]hdestination obuffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h)``unsigned int dlen`` destination length h](j)}(h``unsigned int dlen``h]j)}(hjh]hunsigned int dlen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh]jG)}(hdestination lengthh]hdestination length}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubjG)}(h**Description**h]jv)}(hj+h]h Description}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj)ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubjG)}(hEFunction invokes the specific signing operation for a given algorithmh]hEFunction invokes the specific signing operation for a given algorithm}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubjG)}(h **Return**h]jv)}(hjRh]hReturn}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1juhjPubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubjG)}(h6signature size on success; error code in case of errorh]h6signature size on success; error code in case of error}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌcrypto_sig_verify (C function)c.crypto_sig_verifyhNtauh1hhj@hhhNhNubh)}(hhh](h)}(hyint crypto_sig_verify (struct crypto_sig *tfm, const void *src, unsigned int slen, const void *digest, unsigned int dlen)h]h)}(hxint crypto_sig_verify(struct crypto_sig *tfm, const void *src, unsigned int slen, const void *digest, unsigned int dlen)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjhhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKubj)}(hcrypto_sig_verifyh]j)}(hcrypto_sig_verifyh]hcrypto_sig_verify}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hjhhhjhKubj)}(hc(struct crypto_sig *tfm, const void *src, unsigned int slen, const void *digest, unsigned int dlen)h](j)}(hstruct crypto_sig *tfmh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.crypto_sig_verifyasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htfmh]htfm}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hconst void *srch](h)}(hjh]hconst}(hjFhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjBubh)}(h h]h }(hjShhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjBubj )}(hvoidh]hvoid}(hjahhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjBubh)}(h h]h }(hjohhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjBubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(hsrch]hsrc}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hunsigned int slenh](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hslenh]hslen}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hconst void *digesth](h)}(hjh]hconst}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdigesth]hdigest}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hunsigned int dlenh](j )}(hunsignedh]hunsigned}(hjQhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjMubh)}(h h]h }(hj_hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjMubj )}(hinth]hint}(hjmhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjMubh)}(h h]h }(hj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjMubj)}(hdlenh]hdlen}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubeh}(h]h ]h"]h$]h&]j+j,uh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hjhhhjhKubah}(h]jah ](j9j:eh"]h$]h&]j>j?)j@huh1hhjhKhjhhubjB)}(hhh]jG)}(hInvoke signature verificationh]hInvoke signature verification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jAhjhhhjhKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhj@hNhNubjl)}(hX**Parameters** ``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() ``const void *src`` source buffer ``unsigned int slen`` source length ``const void *digest`` digest ``unsigned int dlen`` digest length **Description** Function invokes the specific signature verification operation for a given algorithm. **Return** zero on verification success; error code in case of error.h](jG)}(h**Parameters**h]jv)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh](j)}(hR``struct crypto_sig *tfm`` signature tfm handle allocated with crypto_alloc_sig() h](j)}(h``struct crypto_sig *tfm``h]j)}(hjh]hstruct crypto_sig *tfm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh]jG)}(h6signature tfm handle allocated with crypto_alloc_sig()h]h6signature tfm handle allocated with crypto_alloc_sig()}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(h"``const void *src`` source buffer h](j)}(h``const void *src``h]j)}(hj-h]hconst void *src}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj'ubj)}(hhh]jG)}(h source bufferh]h source buffer}(hjFhhhNhNubah}(h]h ]h"]h$U]h&]uh1jFhjBhKhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhKhjubj)}(h$``unsigned int slen`` source length h](j)}(h``unsigned int slen``h]j)}(hjfh]hunsigned int slen}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj`ubj)}(hhh]jG)}(h source lengthh]h source length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj{hKhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hKhjubj)}(h``const void *digest`` digest h](j)}(h``const void *digest``h]j)}(hjh]hconst void *digest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh]jG)}(hdigesth]hdigest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h$``unsigned int dlen`` digest length h](j)}(h``unsigned int dlen``h]j)}(hjh]hunsigned int dlen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh]jG)}(h digest lengthh]h digest length}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubjG)}(h**Description**h]jv)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubjG)}(hUFunction invokes the specific signature verification operation for a given algorithm.h]hUFunction invokes the specific signature verification operation for a given algorithm.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubjG)}(h **Return**h]jv)}(hj:h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj8ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubjG)}(h:zero on verification success; error code in case of error.h]h:zero on verification success; error code in case of error.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ"crypto_sig_set_pubkey (C function)c.crypto_sig_set_pubkeyhNtauh1hhj@hhhNhNubh)}(hhh](h)}(hXint crypto_sig_set_pubkey (struct crypto_sig *tfm, const void *key, unsigned int keylen)h]h)}(hWint crypto_sig_set_pubkey(struct crypto_sig *tfm, const void *key, unsigned int keylen)h](j )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj{hhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj{hhhjhKubj)}(hcrypto_sig_set_pubkeyh]j)}(hcrypto_sig_set_pubkeyh]hcrypto_sig_set_pubkey}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hj{hhhjhKubj)}(h>(struct crypto_sig *tfm, const void *key, unsigned int keylen)h](j)}(hstruct crypto_sig *tfmh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.crypto_sig_set_pubkeyasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htfmh]htfm}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hconst void *keyh](h)}(hjh]hconst}(hj.hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj*ubh)}(h h]h }(hj;hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj*ubj )}(hvoidh]hvoid}(hjIhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhj*ubh)}(h h]h }(hjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj*ubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj)}(hkeyh]hkey}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hunsigned int keylenh](j )}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj )}(hinth]hint}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hkeylenh]hkeylen}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubeh}(h]h ]h"]h$]h&]j+j,uh1jhj{hhhjhKubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hjwhhhjhKubah}(h]jrah ](j9j:eh"]h$]h&]j>j?)j@huh1hhjhKhjthhubjB)}(hhh]jG)}(hInvoke set public key operationh]hInvoke set public key operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jAhjthhhjhKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhj@hNhNubjl)}(hX**Parameters** ``struct crypto_sig *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](jG)}(h**Parameters**h]jv)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhj ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubj)}(hhh](j)}(h&``struct crypto_sig *tfm`` tfm handle h](j)}(h``struct crypto_sig *tfm``h]j)}(hj.h]hstruct crypto_sig *tfm}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj(ubj)}(hhh]jG)}(h tfm handleh]h tfm handle}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjChKhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChKhj%ubj)}(hW``const void *key`` BER encoded public key, algo OID, paramlen, BER encoded parameters h](j)}(h``const void *key``h]j)}(hjgh]hconst void *key}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjaubj)}(hhh]jG)}(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&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hKhj%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&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh]jG)}(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&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj%ubeh}(h]h ]h"]h$]h&]uh1jhj ubjG)}(h**Description**h]jv)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubjG)}(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&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubjG)}(h **Return**h]jv)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubjG)}(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&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ#crypto_sig_set_privkey (C function)c.crypto_sig_set_privkeyhNtauh1hhj@hhhNhNubh)}(hhh](h)}(hYint crypto_sig_set_privkey (struct crypto_sig *tfm, const void *key, unsigned int keylen)h]h)}(hXint crypto_sig_set_privkey(struct crypto_sig *tfm, const void *key, unsigned int keylen)h](j )}(hinth]hint}(hjHhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjDhhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKubh)}(h h]h }(hjWhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjDhhhjVhKubj)}(hcrypto_sig_set_privkeyh]j)}(hcrypto_sig_set_privkeyh]hcrypto_sig_set_privkey}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hjDhhhjVhKubj)}(h>(struct crypto_sig *tfm, const void *key, unsigned int keylen)h](j)}(hstruct crypto_sig *tfmh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h crypto_sigh]h crypto_sig}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej reftargetjmodnameN classnameNjj)}j]j)}jjksbc.crypto_sig_set_privkeyasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htfmh]htfm}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj}ubj)}(hconst void *keyh](h)}(hjh]hconst}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj )}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hkeyh]hkey}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj}ubj)}(hunsigned int keylenh](j )}(hunsignedh]hunsigned}(hjThhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjPubh)}(h h]h }(hjbhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjPubj )}(hinth]hint}(hjphhhNhNubah}(h]h ]j,ah"]h$]h&]uh1jhjPubh)}(h h]h }(hj~hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjPubj)}(hkeylenh]hkeylen}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj}ubeh}(h]h ]h"]h$]h&]j+j,uh1jhjDhhhjVhKubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hj@hhhjVhKubah}(h]j;ah ](j9j:eh"]h$]h&]j>j?)j@huh1hhjVhKhj=hhubjB)}(hhh]jG)}(h Invoke set private key operationh]h Invoke set private key operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jAhj=hhhjVhKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhj@hNhNubjl)}(hX**Parameters** ``struct crypto_sig *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](jG)}(h**Parameters**h]jv)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh](j)}(h&``struct crypto_sig *tfm`` tfm handle h](j)}(h``struct crypto_sig *tfm``h]j)}(hjh]hstruct crypto_sig *tfm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubj)}(hhh]jG)}(h tfm handleh]h tfm handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hX``const void *key`` BER encoded private key, algo OID, paramlen, BER encoded parameters h](j)}(h``const void *key``h]j)}(hj0h]hconst void *key}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhj*ubj)}(hhh]jG)}(hCBER encoded private key, algo OID, paramlen, BER encoded parametersh]hCBER encoded private key, algo OID, paramlen, BER encoded parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhKhjubj)}(hE``unsigned int keylen`` length of the key (not including other data) h](j)}(h``unsigned int keylen``h]j)}(hjjh]hunsigned int keylen}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjdubj)}(hhh]jG)}(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&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubjG)}(h**Description**h]jv)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhMhjubjG)}(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&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubjG)}(h **Return**h]jv)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhKhjubjG)}(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&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-sig:16: ./include/crypto/sig.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhj@hhhNhNubeh}(h]asymmetric-signature-apiah ]h"]asymmetric signature apiah$]h&]uh1hhhhhhhhK ubeh}(h]asymmetric-signatureah ]h"]asymmetric signatureah$]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_handlerj+error_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}(jhj:hhhjj@jljqjSjXjjj j j j% j j jjjrjwj;j@u 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.