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-rngmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/zh_TW/crypto/api-rngmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/it_IT/crypto/api-rngmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ja_JP/crypto/api-rngmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/ko_KR/crypto/api-rngmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget"/translations/sp_SP/crypto/api-rngmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hRandom Number Generator (RNG)h]hRandom Number Generator (RNG)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhj?)j@huh1hhjUhKIhj=hhubjB)}(hhh]h bullet_list)}(hhh]h list_item)}(hallocate RNG handleh]jG)}(hjh]hallocate RNG handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKIhjubah}(h]h ]h"]h$]h&]uh1jhjhhhjhNubah}(h]h ]h"]h$]h&]bullet-uh1jhjhKIhjhhubah}(h]h ]h"]h$]h&]uh1jAhj=hhhjUhKIubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhjhNhNubjl)}(hXo**Parameters** ``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the message digest cipher ``u32 type`` specifies the type of the cipher ``u32 mask`` specifies the mask for the cipher **Description** Allocate a cipher handle for a random number generator. The returned struct crypto_rng is the cipher handle that is required for any subsequent API invocation for that random number generator. For all random number generators, this call creates a new private copy of the random number generator that does not share a state with other instances. The only exception is the "krng" random number generator which is a kernel crypto API use case for the get_random_bytes() function of the /dev/random driver. **Return** allocated cipher 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)}(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-rng:16: ./include/crypto/rng.hhKMhjubj)}(hhh](j)}(hn``const char *alg_name`` is the cra_name / name or cra_driver_name / driver name of the message digest cipher h](j)}(h``const char *alg_name``h]j)}(hj-h]hconst char *alg_name}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKKhj'ubj)}(hhh]jG)}(hTis the cra_name / name or cra_driver_name / driver name of the message digest cipherh]hTis the cra_name / name or cra_driver_name / driver name of the message digest cipher}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKJhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhKKhj$ubj)}(h.``u32 type`` specifies the type of the cipher h](j)}(h ``u32 type``h]j)}(hjgh]hu32 type}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKLhjaubj)}(hhh]jG)}(h specifies the type of the cipherh]h specifies the type of the cipher}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj|hKLhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hKLhj$ubj)}(h/``u32 mask`` specifies the mask for the cipher 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-rng:16: ./include/crypto/rng.hhKMhjubj)}(hhh]jG)}(h!specifies the mask for the cipherh]h!specifies the mask for the cipher}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKMhj$ubeh}(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-rng:16: ./include/crypto/rng.hhKOhjubjG)}(hAllocate a cipher handle for a random number generator. The returned struct crypto_rng is the cipher handle that is required for any subsequent API invocation for that random number generator.h]hAllocate a cipher handle for a random number generator. The returned struct crypto_rng is the cipher handle that is required for any subsequent API invocation for that random number generator.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKNhjubjG)}(hX5For all random number generators, this call creates a new private copy of the random number generator that does not share a state with other instances. The only exception is the "krng" random number generator which is a kernel crypto API use case for the get_random_bytes() function of the /dev/random driver.h]hX9For all random number generators, this call creates a new private copy of the random number generator that does not share a state with other instances. The only exception is the “krng” random number generator which is a kernel crypto API use case for the get_random_bytes() function of the /dev/random driver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKRhjubjG)}(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-rng:16: ./include/crypto/rng.hhKXhjubjG)}(hsallocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.h]hsallocated cipher handle in case of success; IS_ERR() is true in case of an error, PTR_ERR() returns the error code.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKYhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌcrypto_rng_alg (C function)c.crypto_rng_alghNtauh1hhjhhhNhNubh)}(hhh](h)}(h8struct rng_alg * crypto_rng_alg (struct crypto_rng *tfm)h]h)}(h6struct rng_alg *crypto_rng_alg(struct crypto_rng *tfm)h](h)}(hhh]hstruct}(hjVhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjRhhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKiubh)}(h h]h }(hjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjRhhhjchKiubh)}(hhh]j)}(hrng_algh]hrng_alg}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetjwmodnameN classnameNjj)}j]j)}j}crypto_rng_algsbc.crypto_rng_algasbuh1hhjRhhhjchKiubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjRhhhjchKiubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRhhhjchKiubj)}(hcrypto_rng_algh]j)}(hjh]hcrypto_rng_alg}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hjRhhhjchKiubj)}(h(struct crypto_rng *tfm)h]j)}(hstruct crypto_rng *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_rngh]h crypto_rng}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetjmodnameN classnameNjj)}j]jc.crypto_rng_algasbuh1hhjubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(htfmh]htfm}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubah}(h]h ]h"]h$]h&]j+j,uh1jhjRhhhjchKiubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hjNhhhjchKiubah}(h]jIah ](j9j:eh"]h$]h&]j>j?)j@huh1hhjchKihjKhhubjB)}(hhh]jG)}(h/obtain 'struct rng_alg' pointer from RNG handleh]h3obtain ‘struct rng_alg’ pointer from RNG handle}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKihjNhhubah}(h]h ]h"]h$]h&]uh1jAhjKhhhjchKiubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjijgjijhjijjuh1hhhhjhNhNubjl)}(h**Parameters** ``struct crypto_rng *tfm`` RNG handle **Return** Pointer to 'struct rng_alg', derived from **tfm** RNG handleh](jG)}(h**Parameters**h]jv)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjqubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKmhjmubj)}(hhh]j)}(h&``struct crypto_rng *tfm`` RNG handle h](j)}(h``struct crypto_rng *tfm``h]j)}(hjh]hstruct crypto_rng *tfm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKjhjubj)}(hhh]jG)}(h RNG handleh]h RNG handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKjhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKjhjubah}(h]h ]h"]h$]h&]uh1jhjmubjG)}(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-rng:16: ./include/crypto/rng.hhKlhjmubjG)}(hj?)j@huh1hhj2hKthjhhubjB)}(hhh]jG)}(hzeroize and free RNG handleh]hzeroize and free RNG handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKthjhhubah}(h]h ]h"]h$]h&]uh1jAhjhhhj2hKtubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhjhNhNubjl)}(h**Parameters** ``struct crypto_rng *tfm`` cipher handle to be freed **Description** If **tfm** is a NULL or error pointer, this function does nothing.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-rng:16: ./include/crypto/rng.hhKxhj ubj)}(hhh]j)}(h5``struct crypto_rng *tfm`` cipher handle to be freed h](j)}(h``struct crypto_rng *tfm``h]j)}(hj% h]hstruct crypto_rng *tfm}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj# ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKuhj ubj)}(hhh]jG)}(hcipher handle to be freedh]hcipher handle to be freed}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj: hKuhj; ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj: hKuhj ubah}(h]h ]h"]h$]h&]uh1jhj ubjG)}(h**Description**h]jv)}(hj` h]h Description}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj^ ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKwhj ubjG)}(hBIf **tfm** is a NULL or error pointer, this function does nothing.h](hIf }(hjv hhhNhNubjv)}(h**tfm**h]htfm}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1juhjv ubh8 is a NULL or error pointer, this function does nothing.}(hjv hhhNhNubeh}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKvhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ crypto_rng_generate (C function)c.crypto_rng_generatehNtauh1hhjhhhNhNubh)}(hhh](h)}(hnint crypto_rng_generate (struct crypto_rng *tfm, const u8 *src, unsigned int slen, u8 *dst, unsigned int dlen)h]h)}(hmint crypto_rng_generate(struct crypto_rng *tfm, const u8 *src, unsigned int slen, u8 *dst, unsigned int dlen)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj)}(hcrypto_rng_generateh]j)}(hcrypto_rng_generateh]hcrypto_rng_generate}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hj hhhj hKubj)}(hV(struct crypto_rng *tfm, const u8 *src, unsigned int slen, u8 *dst, unsigned int dlen)h](j)}(hstruct crypto_rng *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_rngh]h crypto_rng}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetj modnameN classnameNjj)}j]j)}j}j sbc.crypto_rng_generateasbuh1hhj ubh)}(h h]h }(hj2 hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj@ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(htfmh]htfm}(hjM hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(h const u8 *srch](h)}(hjh]hconst}(hjf hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjb ubh)}(h h]h }(hjs hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjb ubh)}(hhh]j)}(hu8h]hu8}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetj modnameN classnameNjj)}j]j. c.crypto_rng_generateasbuh1hhjb ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjb ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb ubj)}(hsrch]hsrc}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(hunsigned int slenh](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hslenh]hslen}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(hu8 *dsth](h)}(hhh]j)}(hu8h]hu8}(hj* hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj' ubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetj, modnameN classnameNjj)}j]j. c.crypto_rng_generateasbuh1hhj# ubh)}(h h]h }(hjH hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj# ubj)}(hjh]h*}(hjV hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj# ubj)}(hdsth]hdst}(hjc hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj# ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(hunsigned int dlenh](j)}(hunsignedh]hunsigned}(hj| hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjx ubj)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjx ubj)}(hdlenh]hdlen}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx ubeh}(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)}(hget random numberh]hget random number}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jAhj hhhj hKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfj jgj jhjijjuh1hhhhjhNhNubjl)}(hX**Parameters** ``struct crypto_rng *tfm`` cipher handle ``const u8 *src`` Input buffer holding additional data, may be NULL ``unsigned int slen`` Length of additional data ``u8 *dst`` output buffer holding the random numbers ``unsigned int dlen`` length of the output buffer **Description** This function fills the caller-allocated buffer with random numbers using the random number generator referenced by the cipher handle. **Return** 0 function was successful; < 0 if an error occurredh](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-rng:16: ./include/crypto/rng.hhKhj ubj)}(hhh](j)}(h)``struct crypto_rng *tfm`` cipher handle h](j)}(h``struct crypto_rng *tfm``h]j)}(hj h]hstruct crypto_rng *tfm}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj ubj)}(hhh]jG)}(h cipher handleh]h cipher handle}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj4 hKhj5 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj4 hKhj ubj)}(hD``const u8 *src`` Input buffer holding additional data, may be NULL h](j)}(h``const u8 *src``h]j)}(hjX h]h const u8 *src}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhjR ubj)}(hhh]jG)}(h1Input buffer holding additional data, may be NULLh]h1Input buffer holding additional data, may be NULL}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjm hKhjn ubah}(h]h ]h"]h$]h&]uh1jhjR ubeh}(h]h ]h"]h$]h&]uh1jhjm hKhj ubj)}(h0``unsigned int slen`` Length of additional data h](j)}(h``unsigned int slen``h]j)}(hj h]hunsigned int slen}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj ubj)}(hhh]jG)}(hLength of additional datah]hLength of additional data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h5``u8 *dst`` output buffer holding the random numbers h](j)}(h ``u8 *dst``h]j)}(hj h]hu8 *dst}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj ubj)}(hhh]jG)}(h(output buffer holding the random numbersh]h(output buffer holding the random numbers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h2``unsigned int dlen`` length of the output buffer h](j)}(h``unsigned int dlen``h]j)}(hj h]hunsigned int dlen}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj ubj)}(hhh]jG)}(hlength of the output bufferh]hlength of the output buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(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-rng:16: ./include/crypto/rng.hhKhj ubjG)}(hThis function fills the caller-allocated buffer with random numbers using the random number generator referenced by the cipher handle.h]hThis function fills the caller-allocated buffer with random numbers using the random number generator referenced by the cipher handle.}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj ubjG)}(h **Return**h]jv)}(hje h]hReturn}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1juhjc ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj ubjG)}(h30 function was successful; < 0 if an error occurredh]h30 function was successful; < 0 if an error occurred}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ!crypto_rng_get_bytes (C function)c.crypto_rng_get_byteshNtauh1hhjhhhNhNubh)}(hhh](h)}(hOint crypto_rng_get_bytes (struct crypto_rng *tfm, u8 *rdata, unsigned int dlen)h]h)}(hNint crypto_rng_get_bytes(struct crypto_rng *tfm, u8 *rdata, unsigned int dlen)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj)}(hcrypto_rng_get_bytesh]j)}(hcrypto_rng_get_bytesh]hcrypto_rng_get_bytes}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hj hhhj hKubj)}(h6(struct crypto_rng *tfm, u8 *rdata, unsigned int dlen)h](j)}(hstruct crypto_rng *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_rngh]h crypto_rng}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetjmodnameN classnameNjj)}j]j)}j}j sbc.crypto_rng_get_bytesasbuh1hhj ubh)}(h h]h }(hj%hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj3hhhNhNubah}(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 ubj)}(h u8 *rdatah](h)}(hhh]j)}(hu8h]hu8}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetj^modnameN classnameNjj)}j]j!c.crypto_rng_get_bytesasbuh1hhjUubh)}(h h]h }(hjzhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj)}(hrdatah]hrdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhj ubj)}(hunsigned int dlenh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hdlenh]hdlen}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(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)}(hget random numberh]hget random number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jAhj hhhj hKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfj(jgj(jhjijjuh1hhhhjhNhNubjl)}(hX**Parameters** ``struct crypto_rng *tfm`` cipher handle ``u8 *rdata`` output buffer holding the random numbers ``unsigned int dlen`` length of the output buffer **Description** This function fills the caller-allocated buffer with random numbers using the random number generator referenced by the cipher handle. **Return** 0 function was successful; < 0 if an error occurredh](jG)}(h**Parameters**h]jv)}(hj2h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj0ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj,ubj)}(hhh](j)}(h)``struct crypto_rng *tfm`` cipher handle h](j)}(h``struct crypto_rng *tfm``h]j)}(hjQh]hstruct crypto_rng *tfm}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhjKubj)}(hhh]jG)}(h cipher handleh]h cipher handle}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjfhKhjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjHubj)}(h7``u8 *rdata`` output buffer holding the random numbers h](j)}(h ``u8 *rdata``h]j)}(hjh]h u8 *rdata}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhjubj)}(hhh]jG)}(h(output buffer holding the random numbersh]h(output buffer holding the random numbers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjHubj)}(h2``unsigned int dlen`` length of the output buffer 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-rng:16: ./include/crypto/rng.hhKhjubj)}(hhh]jG)}(hlength of the output bufferh]hlength of the output buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjHubeh}(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-rng:16: ./include/crypto/rng.hhKhj,ubjG)}(hThis function fills the caller-allocated buffer with random numbers using the random number generator referenced by the cipher handle.h]hThis function fills the caller-allocated buffer with random numbers using the random number generator referenced by the cipher handle.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj,ubjG)}(h **Return**h]jv)}(hj%h]hReturn}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1juhj#ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj,ubjG)}(h30 function was successful; < 0 if an error occurredh]h30 function was successful; < 0 if an error occurred}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌcrypto_rng_reset (C function)c.crypto_rng_resethNtauh1hhjhhhNhNubh)}(hhh](h)}(hPint crypto_rng_reset (struct crypto_rng *tfm, const u8 *seed, unsigned int slen)h]h)}(hOint crypto_rng_reset(struct crypto_rng *tfm, const u8 *seed, unsigned int slen)h](j)}(hinth]hint}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfhhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKubh)}(h h]h }(hjyhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjfhhhjxhKubj)}(hcrypto_rng_reseth]j)}(hcrypto_rng_reseth]hcrypto_rng_reset}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hjfhhhjxhKubj)}(h;(struct crypto_rng *tfm, const u8 *seed, unsigned int slen)h](j)}(hstruct crypto_rng *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_rngh]h crypto_rng}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetjmodnameN classnameNjj)}j]j)}j}jsbc.crypto_rng_resetasbuh1hhjubh)}(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 u8 *seedh](h)}(hjh]hconst}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hu8h]hu8}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetj9modnameN classnameNjj)}j]jc.crypto_rng_resetasbuh1hhjubh)}(h h]h }(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hseedh]hseed}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjubj)}(hunsigned int slenh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]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,uh1jhjubeh}(h]h ]h"]h$]h&]j+j,uh1jhjfhhhjxhKubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hjbhhhjxhKubah}(h]j]ah ](j9j:eh"]h$]h&]j>j?)j@huh1hhjxhKhj_hhubjB)}(hhh]jG)}(hre-initialize the RNGh]hre-initialize the RNG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jAhj_hhhjxhKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhjhNhNubjl)}(hX$**Parameters** ``struct crypto_rng *tfm`` cipher handle ``const u8 *seed`` seed input data ``unsigned int slen`` length of the seed input data **Description** The reset function completely re-initializes the random number generator referenced by the cipher handle by clearing the current state. The new state is initialized with the caller provided seed or automatically, depending on the random number generator type (the ANSI X9.31 RNG requires caller-provided seed, the SP800-90A DRBGs perform an automatic seeding). The seed is provided as a parameter to this function call. The provided seed should have the length of the seed size defined for the random number generator as defined by crypto_rng_seedsize. **Return** 0 if the setting of the key was successful; < 0 if an error occurredh](jG)}(h**Parameters**h]jv)}(hj h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhj ubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhjubj)}(hhh](j)}(h)``struct crypto_rng *tfm`` cipher handle h](j)}(h``struct crypto_rng *tfm``h]j)}(hj,h]hstruct crypto_rng *tfm}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj&ubj)}(hhh]jG)}(h cipher handleh]h cipher handle}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjAhKhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhKhj#ubj)}(h#``const u8 *seed`` seed input data h](j)}(h``const u8 *seed``h]j)}(hjeh]hconst u8 *seed}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj_ubj)}(hhh]jG)}(hseed input datah]hseed input data}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jFhjzhKhj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhKhj#ubj)}(h4``unsigned int slen`` length of the seed input data h](j)}(h``unsigned int slen``h]j)}(hjh]hunsigned int slen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhjubj)}(hhh]jG)}(hlength of the seed input datah]hlength of the seed input 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&]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-rng:16: ./include/crypto/rng.hhKhjubjG)}(hX(The reset function completely re-initializes the random number generator referenced by the cipher handle by clearing the current state. The new state is initialized with the caller provided seed or automatically, depending on the random number generator type (the ANSI X9.31 RNG requires caller-provided seed, the SP800-90A DRBGs perform an automatic seeding). The seed is provided as a parameter to this function call. The provided seed should have the length of the seed size defined for the random number generator as defined by crypto_rng_seedsize.h]hX(The reset function completely re-initializes the random number generator referenced by the cipher handle by clearing the current state. The new state is initialized with the caller provided seed or automatically, depending on the random number generator type (the ANSI X9.31 RNG requires caller-provided seed, the SP800-90A DRBGs perform an automatic seeding). The seed is provided as a parameter to this function call. The provided seed should have the length of the seed size defined for the random number generator as defined by crypto_rng_seedsize.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.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-rng:16: ./include/crypto/rng.hhKhjubjG)}(hD0 if the setting of the key was successful; < 0 if an error occurredh]hD0 if the setting of the key was successful; < 0 if an error occurred}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ crypto_rng_seedsize (C function)c.crypto_rng_seedsizehNtauh1hhjhhhNhNubh)}(hhh](h)}(h0int crypto_rng_seedsize (struct crypto_rng *tfm)h]h)}(h/int crypto_rng_seedsize(struct crypto_rng *tfm)h](j)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAhhhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKubh)}(h h]h }(hjThhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjAhhhjShKubj)}(hcrypto_rng_seedsizeh]j)}(hcrypto_rng_seedsizeh]hcrypto_rng_seedsize}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ](j&j'eh"]h$]h&]j+j,uh1j hjAhhhjShKubj)}(h(struct crypto_rng *tfm)h]j)}(hstruct crypto_rng *tfmh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj~ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj~ubh)}(hhh]j)}(h crypto_rngh]h crypto_rng}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj`reftypej} reftargetjmodnameN classnameNjj)}j]j)}j}jhsbc.crypto_rng_seedsizeasbuh1hhj~ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj)}(htfmh]htfm}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]noemphj+j,uh1jhjzubah}(h]h ]h"]h$]h&]j+j,uh1jhjAhhhjShKubeh}(h]h ]h"]h$]h&]j+j,j3uh1hj4j5hj=hhhjShKubah}(h]j8ah ](j9j:eh"]h$]h&]j>j?)j@huh1hhjShKhj:hhubjB)}(hhh]jG)}(hobtain seed size of RNGh]hobtain seed size of RNG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jAhj:hhhjShKubeh}(h]h ](j`functioneh"]h$]h&]jej`jfjjgjjhjijjuh1hhhhjhNhNubjl)}(hX**Parameters** ``struct crypto_rng *tfm`` cipher handle **Description** The function returns the seed size for the random number generator referenced by the cipher handle. This value may be zero if the random number generator does not implement or require a reseeding. For example, the SP800-90A DRBGs implement an automated reseeding after reaching a pre-defined threshold. **Return** seed size for the random number generatorh](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-rng:16: ./include/crypto/rng.hhKhj!ubj)}(hhh]j)}(h)``struct crypto_rng *tfm`` cipher handle h](j)}(h``struct crypto_rng *tfm``h]j)}(hjFh]hstruct crypto_rng *tfm}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj@ubj)}(hhh]jG)}(h cipher handleh]h cipher handle}(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)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1juhjubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj!ubjG)}(hX.The function returns the seed size for the random number generator referenced by the cipher handle. This value may be zero if the random number generator does not implement or require a reseeding. For example, the SP800-90A DRBGs implement an automated reseeding after reaching a pre-defined threshold.J h]hX.The function returns the seed size for the random number generator referenced by the cipher handle. This value may be zero if the random number generator does not implement or require a reseeding. For example, the SP800-90A DRBGs implement an automated reseeding after reaching a pre-defined threshold.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.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-rng:16: ./include/crypto/rng.hhKhj!ubjG)}(h)seed size for the random number generatorh]h)seed size for the random number generator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jFhS/var/lib/git/docbuild/linux/Documentation/crypto/api-rng:16: ./include/crypto/rng.hhKhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jkhjhhhNhNubeh}(h]crypto-api-random-number-apiah ]h"]crypto api random number apiah$]h&]uh1hhhhhhhhK ubeh}(h]random-number-generator-rngah ]h"]random number generator (rng)ah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjj j jju nametypes}(jj juh}(jhj hhhjjj;j@jIjNjjj j j j j]jbj8j=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.