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/sha3modnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/zh_TW/crypto/sha3modnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/it_IT/crypto/sha3modnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/ja_JP/crypto/sha3modnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/ko_KR/crypto/sha3modnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/pt_BR/crypto/sha3modnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget/translations/sp_SP/crypto/sha3modnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h)SPDX-License-Identifier: GPL-2.0-or-laterh]h)SPDX-License-Identifier: GPL-2.0-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh9/var/lib/git/docbuild/linux/Documentation/crypto/sha3.rsthKubhtarget)}(h .. _sha3:h]h}(h]h ]h"]h$]h&]refidsha3uh1hhKhhhhhhubhsection)}(hhh](htitle)}(hSHA-3 Algorithm Collectionh]hSHA-3 Algorithm Collection}(hhhhhNhNubah}(h]h ]h"]h$]h&]hԌid3uh1hhhhhhhhKubhtopic)}(h Contents h](h)}(hContentsh]hContents}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhK ubh bullet_list)}(hhh]h list_item)}(hhh](h paragraph)}(hhh]h reference)}(hhh]hSHA-3 Algorithm Collection}(hjhhhNhNubah}(h]hah ]h"]h$]h&]refidsha-3-algorithm-collectionuh1jhj ubah}(h]h ]h"]h$]h&]uh1j hjubj)}(hhh](j)}(hhh]j )}(hhh]j)}(hhh]hOverview}(hj/hhhNhNubah}(h]id4ah ]h"]h$]h&]refidoverviewuh1jhj,ubah}(h]h ]h"]h$]h&]uh1j hj)ubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]j )}(hhh]j)}(hhh]hDigests}(hjQhhhNhNubah}(h]id5ah ]h"]h$]h&]refiddigestsuh1jhjNubah}(h]h ]h"]h$]h&]uh1j hjKubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]j )}(hhh]j)}(hhh]hExtendable-Output Functions}(hjshhhNhNubah}(h]id6ah ]h"]h$]h&]refidextendable-output-functionsuh1jhjpubah}(h]h ]h"]h$]h&]uh1j hjmubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]j )}(hhh]j)}(hhh]hTesting}(hjhhhNhNubah}(h]id7ah ]h"]h$]h&]refidtestinguh1jhjubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]j )}(hhh]j)}(hhh]h References}(hjhhhNhNubah}(h]id8ah ]h"]h$]h&]refid referencesuh1jhjubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]j )}(hhh]j)}(hhh]hAPI Function Reference}(hjhhhNhNubah}(h]id9ah ]h"]h$]h&]refidapi-function-referenceuh1jhjubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhhhNhNubeh}(h]contentsah ]contentsah"]contentsah$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(hOverviewh]hOverview}(hjhhhNhNubah}(h]h ]h"]h$]h&]hj8uh1hhjhhhhhK ubj )}(hXThe SHA-3 family of algorithms, as specified in NIST FIPS-202 [1]_, contains six algorithms based on the Keccak sponge function. The differences between them are: the "rate" (how much of the state buffer gets updated with new data between invocations of the Keccak function and analogous to the "block size"), what domain separation suffix gets appended to the input data, and how much output data is extracted at the end. The Keccak sponge function is designed such that arbitrary amounts of output can be obtained for certain algorithms.h](h>The SHA-3 family of algorithms, as specified in NIST FIPS-202 }(hj!hhhNhNubhfootnote_reference)}(h[1]_h]h1}(hj+hhhNhNubah}(h]id1ah ]h"]h$]h&]hԌid2docname crypto/sha3uh1j)hj!resolvedKubhX, contains six algorithms based on the Keccak sponge function. The differences between them are: the “rate” (how much of the state buffer gets updated with new data between invocations of the Keccak function and analogous to the “block size”), what domain separation suffix gets appended to the input data, and how much output data is extracted at the end. The Keccak sponge function is designed such that arbitrary amounts of output can be obtained for certain algorithms.}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hhhKhjhhubj )}(h$Four digest algorithms are provided:h]h$Four digest algorithms are provided:}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhjhhubh block_quote)}(h,- SHA3-224 - SHA3-256 - SHA3-384 - SHA3-512 h]j)}(hhh](j)}(hSHA3-224h]j )}(hjah]hSHA3-224}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhj_ubah}(h]h ]h"]h$]h&]uh1jhj\ubj)}(hSHA3-256h]j )}(hjxh]hSHA3-256}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhjvubah}(h]h ]h"]h$]h&]uh1jhj\ubj)}(hSHA3-384h]j )}(hjh]hSHA3-384}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhjubah}(h]h ]h"]h$]h&]uh1jhj\ubj)}(h SHA3-512 h]j )}(hSHA3-512h]hSHA3-512}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhjubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjXubah}(h]h ]h"]h$]h&]uh1jVhhhKhjhhubj )}(hBAdditionally, two Extendable-Output Functions (XOFs) are provided:h]hBAdditionally, two Extendable-Output Functions (XOFs) are provided:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhjhhubjW)}(h- SHAKE128 - SHAKE256 h]j)}(hhh](j)}(hSHAKE128h]j )}(hjh]hSHAKE128}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h SHAKE256 h]j )}(hSHAKE256h]hSHAKE256}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jjuh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jVhhhKhjhhubj )}(hThe SHA-3 library API supports all six of these algorithms. The four digest algorithms are also supported by the crypto_shash and crypto_ahash APIs.h]hThe SHA-3 library API supports all six of these algorithms. The four digest algorithms are also supported by the crypto_shash and crypto_ahash APIs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK"hjhhubj )}(h.This document describes the SHA-3 library API.h]h.This document describes the SHA-3 library API.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK%hjhhubeh}(h]j>ah ]h"]overviewah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hDigestsh]hDigests}(hj@hhhNhNubah}(h]h ]h"]h$]h&]hjZuh1hhj=hhhhhK)ubj )}(h/The following functions compute SHA-3 digests::h]h.The following functions compute SHA-3 digests:}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK+hj=hhubh literal_block)}(hX'void sha3_224(const u8 *in, size_t in_len, u8 out[SHA3_224_DIGEST_SIZE]); void sha3_256(const u8 *in, size_t in_len, u8 out[SHA3_256_DIGEST_SIZE]); void sha3_384(const u8 *in, size_t in_len, u8 out[SHA3_384_DIGEST_SIZE]); void sha3_512(const u8 *in, size_t in_len, u8 out[SHA3_512_DIGEST_SIZE]);h]hX'void sha3_224(const u8 *in, size_t in_len, u8 out[SHA3_224_DIGEST_SIZE]); void sha3_256(const u8 *in, size_t in_len, u8 out[SHA3_256_DIGEST_SIZE]); void sha3_384(const u8 *in, size_t in_len, u8 out[SHA3_384_DIGEST_SIZE]); void sha3_512(const u8 *in, size_t in_len, u8 out[SHA3_512_DIGEST_SIZE]);}hj^sbah}(h]h ]h"]h$]h&]hhuh1j\hhhK-hj=hhubj )}(hFor users that need to pass in data incrementally, an incremental API is also provided. The incremental API uses the following struct::h]hFor users that need to pass in data incrementally, an incremental API is also provided. The incremental API uses the following struct:}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK2hj=hhubj])}(hstruct sha3_ctx { ... };h]hstruct sha3_ctx { ... };}hjzsbah}(h]h ]h"]h$]h&]hhuh1j\hhhK5hj=hhubj )}(h$Initialization is done with one of::h]h#Initialization is done with one of:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK7hj=hhubj])}(hvoid sha3_224_init(struct sha3_ctx *ctx); void sha3_256_init(struct sha3_ctx *ctx); void sha3_384_init(struct sha3_ctx *ctx); void sha3_512_init(struct sha3_ctx *ctx);h]hvoid sha3_224_init(struct sha3_ctx *ctx); void sha3_256_init(struct sha3_ctx *ctx); void sha3_384_init(struct sha3_ctx *ctx); void sha3_512_init(struct sha3_ctx *ctx);}hjsbah}(h]h ]h"]h$]h&]hhuh1j\hhhK9hj=hhubj )}(h6Input data is then added with any number of calls to::h]h5Input data is then added with any number of calls to:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK>hj=hhubj])}(hDvoid sha3_update(struct sha3_ctx *ctx, const u8 *in, size_t in_len);h]hDvoid sha3_update(struct sha3_ctx *ctx, const u8 *in, size_t in_len);}hjsbah}(h]h ]h"]h$]h&]hhuh1j\hhhK@hj=hhubj )}(h(Finally, the digest is generated using::h]h'Finally, the digest is generated using:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKBhj=hhubj])}(h/void sha3_final(struct sha3_ctx *ctx, u8 *out);h]h/void sha3_final(struct sha3_ctx *ctx, u8 *out);}hjsbah}(h]h ]h"]h$]h&]hhuh1j\hhhKDhj=hhubj )}(hxwhich also zeroizes the context. The length of the digest is determined by the initialization function that was called.h]hxwhich also zeroizes the context. The length of the digest is determined by the initialization function that was called.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKFhj=hhubeh}(h]j`ah ]h"]digestsah$]h&]uh1hhhhhhhhK)ubh)}(hhh](h)}(hExtendable-Output Functionsh]hExtendable-Output Functions}(hjhhhNhNubah}(h]h ]h"]h$]h&]hj|uh1hhjhhhhhKKubj )}(hNThe following functions compute the SHA-3 extendable-output functions (XOFs)::h]hMThe following functions compute the SHA-3 extendable-output functions (XOFs):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKMhjhhubj])}(hvoid shake128(const u8 *in, size_t in_len, u8 *out, size_t out_len); void shake256(const u8 *in, size_t in_len, u8 *out, size_t out_len);h]hvoid shake128(const u8 *in, size_t in_len, u8 *out, size_t out_len); void shake256(const u8 *in, size_t in_len, u8 *out, size_t out_len);}hjsbah}(h]h ]h"]h$]h&]hhuh1j\hhhKOhjhhubj )}(hFor users that need to provide the input data incrementally and/or receive the output data incrementally, an incremental API is also provided. The incremental API uses the following struct::h]hFor users that need to provide the input data incrementally and/or receive the output data incrementally, an incremental API is also provided. The incremental API uses the following struct:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKRhjhhubj])}(hstruct shake_ctx { ... };h]hstruct shake_ctx { ... };}hj,sbah}(h]h ]h"]h$]h&]hhuh1j\hhhKVhjhhubj )}(h$Initialization is done with one of::h]h#Initialization is done with one of:}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKXhjhhubj])}(hUvoid shake128_init(struct shake_ctx *ctx); void shake256_init(struct shake_ctx *ctx);h]hUvoid shake128_init(struct shake_ctx *ctx); void shake256_init(struct shake_ctx *ctx);}hjHsbah}(h]h ]h"]h$]h&]hhuh1j\hhhKZhjhhubj )}(h6Input data is then added with any number of calls to::h]h5Input data is then added with any number of calls to:}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhK]hjhhubj])}(hFvoid shake_update(struct shake_ctx *ctx, const u8 *in, size_t in_len);h]hFvoid shake_update(struct shake_ctx *ctx, const u8 *in, size_t in_len);}hjdsbah}(h]h ]h"]h$]h&]hhuh1j\hhhK_hjhhubj )}(hCFinally, the output data is extracted with any number of calls to::h]hBFinally, the output data is extracted with any number of calls to:}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKahjhhubj])}(hCvoid shake_squeeze(struct shake_ctx *ctx, u8 *out, size_t out_len);h]hCvoid shake_squeeze(struct shake_ctx *ctx, u8 *out, size_t out_len);}hjsbah}(h]h ]h"]h$]h&]hhuh1j\hhhKchjhhubj )}(hand telling it how much data should be extracted. Note that performing multiple squeezes, with the output laid consecutively in a buffer, gets exactly the same output as doing a single squeeze for the combined amount over the same buffer.h]hand telling it how much data should be extracted. Note that performing multiple squeezes, with the output laid consecutively in a buffer, gets exactly the same output as doing a single squeeze for the combined amount over the same buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hhhKehjhhubj )}(hah ](jjeh"]h$]h&]jj)jhuh1juhjXhKVhj@hhubj)}(hhh]j )}(h Context for SHAKE128 or SHAKE256h]h Context for SHAKE128 or SHAKE256}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKZhjhhubah}(h]h ]h"]h$]h&]uh1jhj@hhhjXhKVubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1jphhhjNhNhNubj)}(hh**Definition**:: struct shake_ctx { struct __sha3_ctx ctx; }; **Members** ``ctx`` privateh](j )}(h**Definition**::h](j )}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhK^hjubj])}(h0struct shake_ctx { struct __sha3_ctx ctx; };h]h0struct shake_ctx { struct __sha3_ctx ctx; };}hjsbah}(h]h ]h"]h$]h&]hhuh1j\hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhK`hjubj )}(h **Members**h]j )}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKdhjubjK)}(hhh]jP)}(h``ctx`` privateh](jV)}(h``ctx``h]j\)}(hjh]hctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhK[hjubjr)}(hhh]j )}(hprivateh]hprivate}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhK\hj ubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhj hK[hjubah}(h]h ]h"]h$]h&]uh1jJhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlshake_zeroize_ctx (C function)c.shake_zeroize_ctxhNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(h.void shake_zeroize_ctx (struct shake_ctx *ctx)h]j|)}(h-void shake_zeroize_ctx(struct shake_ctx *ctx)h](j)}(hvoidh]hvoid}(hjT hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKbubj)}(h h]h }(hjc hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP hhhjb hKbubj)}(hshake_zeroize_ctxh]j)}(hshake_zeroize_ctxh]hshake_zeroize_ctx}(hju hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjP hhhjb hKbubj)}(h(struct shake_ctx *ctx)h]j)}(hstruct shake_ctx *ctxh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(h shake_ctxh]h shake_ctx}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj modnameN classnameNj3j6)}j9]j<)}j/jw sbc.shake_zeroize_ctxasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjP)}(hjSh]h*}(hj hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj ubj)}(hctxh]hctx}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhjP hhhjb hKbubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjL hhhjb hKbubah}(h]jG ah ](jjeh"]h$]h&]jj)jhuh1juhjb hKbhjI hhubj)}(hhh]j )}(hZeroize a SHAKE contexth]hZeroize a SHAKE context}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKbhj hhubah}(h]h ]h"]h$]h&]uh1jhjI hhhjb hKbubeh}(h]h ](jfunctioneh"]h$]h&]jjjj, jj, jjjuh1jphhhjNhNhNubj)}(hv**Parameters** ``struct shake_ctx *ctx`` The context to zeroize **Description** Call this after the last squeeze.h](j )}(h**Parameters**h]j )}(hj6 h]h Parameters}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4 ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKfhj0 ubjK)}(hhh]jP)}(h1``struct shake_ctx *ctx`` The context to zeroize h](jV)}(h``struct shake_ctx *ctx``h]j\)}(hjU h]hstruct shake_ctx *ctx}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjS ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKchjO ubjr)}(hhh]j )}(hThe context to zeroizeh]hThe context to zeroize}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjj hKchjk ubah}(h]h ]h"]h$]h&]uh1jqhjO ubeh}(h]h ]h"]h$]h&]uh1jOhjj hKchjL ubah}(h]h ]h"]h$]h&]uh1jJhj0 ubj )}(h**Description**h]j )}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKehj0 ubj )}(h!Call this after the last squeeze.h]h!Call this after the last squeeze.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKdhj0 ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_224_init (C function)c.sha3_224_inithNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(h)void sha3_224_init (struct sha3_ctx *ctx)h]j|)}(h(void sha3_224_init(struct sha3_ctx *ctx)h](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKmubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKmubj)}(h sha3_224_inith]j)}(h sha3_224_inith]h sha3_224_init}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj hKmubj)}(h(struct sha3_ctx *ctx)h]j)}(hstruct sha3_ctx *ctxh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hsha3_ctxh]hsha3_ctx}(hj0 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj- ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj2 modnameN classnameNj3j6)}j9]j<)}j/j sbc.sha3_224_initasbuh1hhj ubj)}(h h]h }(hjP hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjP)}(hjSh]h*}(hj^ hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj ubj)}(hctxh]hctx}(hjk hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhj hhhj hKmubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhj hhhj hKmubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1juhj hKmhj hhubj)}(hhh]j )}(h!Initialize a context for SHA3-224h]h!Initialize a context for SHA3-224}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKmhj hhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hKmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1jphhhjNhNhNubj)}(h**Parameters** ``struct sha3_ctx *ctx`` The context to initialize **Description** This begins a new SHA3-224 message digest computation. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKqhj ubjK)}(hhh]jP)}(h3``struct sha3_ctx *ctx`` The context to initialize h](jV)}(h``struct sha3_ctx *ctx``h]j\)}(hj h]hstruct sha3_ctx *ctx}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKnhj ubjr)}(hhh]j )}(hThe context to initializeh]hThe context to initialize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj hKnhj ubah}(h]h ]h"]h$]h&]uh1jqhj ubeh}(h]h ]h"]h$]h&]uh1jOhj hKnhj ubah}(h]h ]h"]h$]h&]uh1jJhj ubj )}(h**Description**h]j )}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKphj ubj )}(h6This begins a new SHA3-224 message digest computation.h]h6This begins a new SHA3-224 message digest computation.}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKohj ubj )}(h **Context**h]j )}(hj8 h]hContext}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6 ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKqhj ubj )}(h Any context.h]h Any context.}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKrhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_256_init (C function)c.sha3_256_inithNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(h)void sha3_256_init (struct sha3_ctx *ctx)h]j|)}(h(void sha3_256_init(struct sha3_ctx *ctx)h](j)}(hvoidh]hvoid}(hj} hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhK}ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy hhhj hK}ubj)}(h sha3_256_inith]j)}(h sha3_256_inith]h sha3_256_init}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjy hhhj hK}ubj)}(h(struct sha3_ctx *ctx)h]j)}(hstruct sha3_ctx *ctxh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hsha3_ctxh]hsha3_ctx}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj modnameN classnameNj3j6)}j9]j<)}j/j sbc.sha3_256_initasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjP)}(hjSh]h*}(hj hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj ubj)}(hctxh]hctx}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubah}(h]h ]h"]h$]h&]hhuh1jhjy hhhj hK}ubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhju hhhj hK}ubah}(h]jp ah ](jjeh"]h$]h&]jj)jhuh1juhj hK}hjr hhubj)}(hhh]j )}(h!Initialize a context for SHA3-256h]h!Initialize a context for SHA3-256}(hj= hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhK}hj: hhubah}(h]h ]h"]h$]h&]uh1jhjr hhhj hK}ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjU jjU jjjuh1jphhhjNhNhNubj)}(h**Parameters** ``struct sha3_ctx *ctx`` The context to initialize **Description** This begins a new SHA3-256 message digest computation. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj_ h]h Parameters}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj] ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjY ubjK)}(hhh]jP)}(h3``struct sha3_ctx *ctx`` The context to initialize h](jV)}(h``struct sha3_ctx *ctx``h]j\)}(hj~ h]hstruct sha3_ctx *ctx}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj| ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhK~hjx ubjr)}(hhh]j )}(hThe context to initializeh]hThe context to initialize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj hK~hj ubah}(h]h ]h"]h$]h&]uh1jqhjx ubeh}(h]h ]h"]h$]h&]uh1jOhj hK~hju ubah}(h]h ]h"]h$]h&]uh1jJhjY ubj )}(h**Description**h]j )}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjY ubj )}(h6This begins a new SHA3-256 message digest computation.h]h6This begins a new SHA3-256 message digest computation.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjY ubj )}(h **Context**h]j )}(hj h]hContext}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjY ubj )}(h Any context.h]h Any context.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjY ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_384_init (C function)c.sha3_384_inithNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(h)void sha3_384_init (struct sha3_ctx *ctx)h]j|)}(h(void sha3_384_init(struct sha3_ctx *ctx)h](j)}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj3hKubj)}(h sha3_384_inith]j)}(h sha3_384_inith]h sha3_384_init}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]hhuh1jhj!hhhj3hKubj)}(h(struct sha3_ctx *ctx)h]j)}(hstruct sha3_ctx *ctxh](j)}(hjh]hstruct}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubh)}(hhh]j)}(hsha3_ctxh]hsha3_ctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j<)}j/jHsbc.sha3_384_initasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubjP)}(hjSh]h*}(hjhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj^ubj)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjZubah}(h]h ]h"]h$]h&]hhuh1jhj!hhhj3hKubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjhhhj3hKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1juhj3hKhjhhubj)}(hhh]j )}(h!Initialize a context for SHA3-384h]h!Initialize a context for SHA3-384}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhj3hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jphhhjNhNhNubj)}(h**Parameters** ``struct sha3_ctx *ctx`` The context to initialize **Description** This begins a new SHA3-384 message digest computation. **Context** Any context.h](j )}(h**Parameters**h]j )}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjK)}(hhh]jP)}(h3``struct sha3_ctx *ctx`` The context to initialize h](jV)}(h``struct sha3_ctx *ctx``h]j\)}(hj&h]hstruct sha3_ctx *ctx}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj$ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj ubjr)}(hhh]j )}(hThe context to initializeh]hThe context to initialize}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj;hKhj<ubah}(h]h ]h"]h$]h&]uh1jqhj ubeh}(h]h ]h"]h$]h&]uh1jOhj;hKhjubah}(h]h ]h"]h$]h&]uh1jJhjubj )}(h**Description**h]j )}(hjah]h Description}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(h6This begins a new SHA3-384 message digest computation.h]h6This begins a new SHA3-384 message digest computation.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(h **Context**h]j )}(hjh]hContext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(h Any context.h]h Any context.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_512_init (C function)c.sha3_512_inithNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(h)void sha3_512_init (struct sha3_ctx *ctx)h]j|)}(h(void sha3_512_init(struct sha3_ctx *ctx)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h sha3_512_inith]j)}(h sha3_512_inith]h sha3_512_init}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj)}(h(struct sha3_ctx *ctx)h]j)}(hstruct sha3_ctx *ctxh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hsha3_ctxh]hsha3_ctx}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj*modnameN classnameNj3j6)}j9]j<)}j/jsbc.sha3_512_initasbuh1hhjubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hjVhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(hctxh]hctx}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1juhjhKhjhhubj)}(hhh]j )}(h!Initialize a context for SHA3-512h]h!Initialize a context for SHA3-512}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jphhhjNhNhNubj)}(h**Parameters** ``struct sha3_ctx *ctx`` The context to initialize **Description** This begins a new SHA3-512 message digest computation. **Context** Any context.h](j )}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjK)}(hhh]jP)}(h3``struct sha3_ctx *ctx`` The context to initialize h](jV)}(h``struct sha3_ctx *ctx``h]j\)}(hjh]hstruct sha3_ctx *ctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(hThe context to initializeh]hThe context to initialize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjubah}(h]h ]h"]h$]h&]uh1jJhjubj )}(h**Description**h]j )}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(h6This begins a new SHA3-512 message digest computation.h]h6This begins a new SHA3-512 message digest computation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(h **Context**h]j )}(hj0h]hContext}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(h Any context.h]h Any context.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_update (C function) c.sha3_updatehNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hDvoid sha3_update (struct sha3_ctx *ctx, const u8 *in, size_t in_len)h]j|)}(hCvoid sha3_update(struct sha3_ctx *ctx, const u8 *in, size_t in_len)h](j)}(hvoidh]hvoid}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhhjhKubj)}(h sha3_updateh]j)}(h sha3_updateh]h sha3_update}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjqhhhjhKubj)}(h3(struct sha3_ctx *ctx, const u8 *in, size_t in_len)h](j)}(hstruct sha3_ctx *ctxh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hsha3_ctxh]hsha3_ctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j<)}j/jsb c.sha3_updateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hjhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(hctxh]hctx}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h const u8 *inh](j)}(hconsth]hconst}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hu8h]hu8}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjEmodnameN classnameNj3j6)}j9]j c.sha3_updateasbuh1hhj ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjP)}(hjSh]h*}(hjohhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj ubj)}(hinh]hin}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j c.sha3_updateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hin_lenh]hin_len}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjqhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjmhhhjhKubah}(h]jhah ](jjeh"]h$]h&]jj)jhuh1juhjhKhjjhhubj)}(hhh]j )}(h-Update a SHA-3 digest context with input datah]h-Update a SHA-3 digest context with input data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jphhhjNhNhNubj)}(hX{**Parameters** ``struct sha3_ctx *ctx`` The context to update; must have been initialized ``const u8 *in`` The input data ``size_t in_len`` Length of the input data in bytes **Description** This can be called any number of times to add data to a SHA3-224, SHA3-256, SHA3-384, or SHA3-512 digest (depending on which init function was called). **Context** Any context.h](j )}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj ubjK)}(hhh](jP)}(hK``struct sha3_ctx *ctx`` The context to update; must have been initialized h](jV)}(h``struct sha3_ctx *ctx``h]j\)}(hj/h]hstruct sha3_ctx *ctx}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj-ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj)ubjr)}(hhh]j )}(h1The context to update; must have been initializedh]h1The context to update; must have been initialized}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjDhKhjEubah}(h]h ]h"]h$]h&]uh1jqhj)ubeh}(h]h ]h"]h$]h&]uh1jOhjDhKhj&ubjP)}(h ``const u8 *in`` The input data h](jV)}(h``const u8 *in``h]j\)}(hjhh]h const u8 *in}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjfubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjbubjr)}(hhh]j )}(hThe input datah]hThe input data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hj}hKhj~ubah}(h]h ]h"]h$]h&]uh1jqhjbubeh}(h]h ]h"]h$]h&]uh1jOhj}hKhj&ubjP)}(h4``size_t in_len`` Length of the input data in bytes h](jV)}(h``size_t in_len``h]j\)}(hjh]h size_t in_len}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(h!Length of the input data in bytesh]h!Length of the input data in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhj&ubeh}(h]h ]h"]h$]h&]uh1jJhj ubj )}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj ubj )}(hThis can be called any number of times to add data to a SHA3-224, SHA3-256, SHA3-384, or SHA3-512 digest (depending on which init function was called).h]hThis can be called any number of times to add data to a SHA3-224, SHA3-256, SHA3-384, or SHA3-512 digest (depending on which init function was called).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj ubj )}(h **Context**h]j )}(hjh]hContext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj ubj )}(h Any context.h]h Any context.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_final (C function) c.sha3_finalhNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(h/void sha3_final (struct sha3_ctx *ctx, u8 *out)h]j|)}(h.void sha3_final(struct sha3_ctx *ctx, u8 *out)h](j)}(hvoidh]hvoid}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhjVhKubj)}(h sha3_finalh]j)}(h sha3_finalh]h sha3_final}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubah}(h]h ](jjeh"]h$]h&]hhuh1jhjDhhhjVhKubj)}(h(struct sha3_ctx *ctx, u8 *out)h](j)}(hstruct sha3_ctx *ctxh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hsha3_ctxh]hsha3_ctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j<)}j/jksb c.sha3_finalasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hjhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}ubj)}(hu8 *outh](h)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j c.sha3_finalasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hj&hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(houth]hout}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}ubeh}(h]h ]h"]h$]h&]hhuh1jhjDhhhjVhKubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhj@hhhjVhKubah}(h]j;ah ](jjeh"]h$]h&]jj)jhuh1juhjVhKhj=hhubj)}(hhh]j )}(h'Finish computing a SHA-3 message digesth]h'Finish computing a SHA-3 message digest}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjZhhubah}(h]h ]h"]h$]h&]uh1jhj=hhhjVhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1jphhhjNhNhNubj)}(hX**Parameters** ``struct sha3_ctx *ctx`` The context to finalize; must have been initialized ``u8 *out`` (output) The resulting SHA3-224, SHA3-256, SHA3-384, or SHA3-512 message digest, matching the init function that was called. Note that the size differs for each one; see SHA3_*_DIGEST_SIZE. **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.h](j )}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjyubjK)}(hhh](jP)}(hM``struct sha3_ctx *ctx`` The context to finalize; must have been initialized h](jV)}(h``struct sha3_ctx *ctx``h]j\)}(hjh]hstruct sha3_ctx *ctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(h3The context to finalize; must have been initializedh]h3The context to finalize; must have been initialized}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjubjP)}(h``u8 *out`` (output) The resulting SHA3-224, SHA3-256, SHA3-384, or SHA3-512 message digest, matching the init function that was called. Note that the size differs for each one; see SHA3_*_DIGEST_SIZE. h](jV)}(h ``u8 *out``h]j\)}(hjh]hu8 *out}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(h(output) The resulting SHA3-224, SHA3-256, SHA3-384, or SHA3-512 message digest, matching the init function that was called. Note that the size differs for each one; see SHA3_*_DIGEST_SIZE.h]h(output) The resulting SHA3-224, SHA3-256, SHA3-384, or SHA3-512 message digest, matching the init function that was called. Note that the size differs for each one; see SHA3_*_DIGEST_SIZE.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjubeh}(h]h ]h"]h$]h&]uh1jJhjyubj )}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjyubj )}(hNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.h](hAfter finishing, this zeroizes }(hj)hhhNhNubj )}(h**ctx**h]hctx}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubh(. So the caller does not need to do it.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjyubj )}(h **Context**h]j )}(hjLh]hContext}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjyubj )}(h Any context.h]h Any context.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlshake128_init (C function)c.shake128_inithNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(h*void shake128_init (struct shake_ctx *ctx)h]j|)}(h)void shake128_init(struct shake_ctx *ctx)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h shake128_inith]j)}(h shake128_inith]h shake128_init}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj)}(h(struct shake_ctx *ctx)h]j)}(hstruct shake_ctx *ctxh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h shake_ctxh]h shake_ctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j<)}j/jsbc.shake128_initasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hjhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(hctxh]hctx}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1juhjhKhjhhubj)}(hhh]j )}(h!Initialize a context for SHAKE128h]h!Initialize a context for SHAKE128}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjNhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1jphhhjNhNhNubj)}(h**Parameters** ``struct shake_ctx *ctx`` The context to initialize **Description** This begins a new SHAKE128 extendable-output function (XOF) computation. **Context** Any context.h](j )}(h**Parameters**h]j )}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjmubjK)}(hhh]jP)}(h4``struct shake_ctx *ctx`` The context to initialize h](jV)}(h``struct shake_ctx *ctx``h]j\)}(hjh]hstruct shake_ctx *ctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(hThe context to initializeh]hThe context to initialize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjubah}(h]h ]h"]h$]h&]uh1jJhjmubj )}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjmubj )}(hHThis begins a new SHAKE128 extendable-output function (XOF) computation.h]hHThis begins a new SHAKE128 extendable-output function (XOF) computation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjmubj )}(h **Context**h]j )}(hjh]hContext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjmubj )}(h Any context.h]h Any context.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlshake256_init (C function)c.shake256_inithNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(h*void shake256_init (struct shake_ctx *ctx)h]j|)}(h)void shake256_init(struct shake_ctx *ctx)h](j)}(hvoidh]hvoid}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhjGhKubj)}(h shake256_inith]j)}(h shake256_inith]h shake256_init}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubah}(h]h ](jjeh"]h$]h&]hhuh1jhj5hhhjGhKubj)}(h(struct shake_ctx *ctx)h]j)}(hstruct shake_ctx *ctxh](j)}(hjh]hstruct}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubh)}(hhh]j)}(h shake_ctxh]h shake_ctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j<)}j/j\sbc.shake256_initasbuh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubjP)}(hjSh]h*}(hjhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjrubj)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjnubah}(h]h ]h"]h$]h&]hhuh1jhj5hhhjGhKubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhj1hhhjGhKubah}(h]j,ah ](jjeh"]h$]h&]jj)jhuh1juhjGhKhj.hhubj)}(hhh]j )}(h!Initialize a context for SHAKE256h]h!Initialize a context for SHAKE256}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhj.hhhjGhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jphhhjNhNhNubj)}(h**Parameters** ``struct shake_ctx *ctx`` The context to initialize **Description** This begins a new SHAKE256 extendable-output function (XOF) computation. **Context** Any context.h](j )}(h**Parameters**h]j )}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjK)}(hhh]jP)}(h4``struct shake_ctx *ctx`` The context to initialize h](jV)}(h``struct shake_ctx *ctx``h]j\)}(hj:h]hstruct shake_ctx *ctx}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj8ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj4ubjr)}(hhh]j )}(hThe context to initializeh]hThe context to initialize}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j hjOhKhjPubah}(h]h ]h"]h$]h&]uh1jqhj4ubeh}(h]h ]h"]h$]h&]uh1jOhjOhKhj1ubah}(h]h ]h"]h$]h&]uh1jJhjubj )}(h**Description**h]j )}(hjuh]h Description}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(hHThis begins a new SHAKE256 extendable-output function (XOF) computation.h]hHThis begins a new SHAKE256 extendable-output function (XOF) computation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(h **Context**h]j )}(hjh]hContext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubj )}(h Any context.h]h Any context.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlshake_update (C function)c.shake_updatehNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hFvoid shake_update (struct shake_ctx *ctx, const u8 *in, size_t in_len)h]j|)}(hEvoid shake_update(struct shake_ctx *ctx, const u8 *in, size_t in_len)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h shake_updateh]j)}(h shake_updateh]h shake_update}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj)}(h4(struct shake_ctx *ctx, const u8 *in, size_t in_len)h](j)}(hstruct shake_ctx *ctxh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h shake_ctxh]h shake_ctx}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj>modnameN classnameNj3j6)}j9]j<)}j/jsbc.shake_updateasbuh1hhjubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hjjhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(hctxh]hctx}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h const u8 *inh](j)}(hj&h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]jXc.shake_updateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hjhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(hinh]hin}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]jXc.shake_updateasbuh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hin_lenh]hin_len}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1juhjhKhjhhubj)}(hhh]j )}(h&Update a SHAKE context with input datah]h&Update a SHAKE context with input data}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjVhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1jphhhjNhNhNubj)}(hXm**Parameters** ``struct shake_ctx *ctx`` The context to update; must have been initialized ``const u8 *in`` The input data ``size_t in_len`` Length of the input data in bytes **Description** This can be called any number of times to add more input data to SHAKE128 or SHAKE256. This cannot be called after squeezing has begun. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjuubjK)}(hhh](jP)}(hL``struct shake_ctx *ctx`` The context to update; must have been initialized h](jV)}(h``struct shake_ctx *ctx``h]j\)}(hjh]hstruct shake_ctx *ctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(h1The context to update; must have been initializedh]h1The context to update; must have been initialized}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjubjP)}(h ``const u8 *in`` The input data h](jV)}(h``const u8 *in``h]j\)}(hjh]h const u8 *in}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(hThe input datah]hThe input data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjubjP)}(h4``size_t in_len`` Length of the input data in bytes h](jV)}(h``size_t in_len``h]j\)}(hj h]h size_t in_len}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(h!Length of the input data in bytesh]h!Length of the input data in bytes}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj!hKhj"ubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhj!hKhjubeh}(h]h ]h"]h$]h&]uh1jJhjuubj )}(h**Description**h]j )}(hjGh]h Description}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjuubj )}(hThis can be called any number of times to add more input data to SHAKE128 or SHAKE256. This cannot be called after squeezing has begun.h]hThis can be called any number of times to add more input data to SHAKE128 or SHAKE256. This cannot be called after squeezing has begun.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjuubj )}(h **Context**h]j )}(hjnh]hContext}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjuubj )}(h Any context.h]h Any context.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlshake_squeeze (C function)c.shake_squeezehNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hCvoid shake_squeeze (struct shake_ctx *ctx, u8 *out, size_t out_len)h]j|)}(hBvoid shake_squeeze(struct shake_ctx *ctx, u8 *out, size_t out_len)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h shake_squeezeh]j)}(h shake_squeezeh]h shake_squeeze}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj)}(h0(struct shake_ctx *ctx, u8 *out, size_t out_len)h](j)}(hstruct shake_ctx *ctxh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h shake_ctxh]h shake_ctx}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j<)}j/jsbc.shake_squeezeasbuh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hj<hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(hctxh]hctx}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu8 *outh](h)}(hhh]j)}(hu8h]hu8}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjgmodnameN classnameNj3j6)}j9]j*c.shake_squeezeasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubjP)}(hjSh]h*}(hjhhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj^ubj)}(houth]hout}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hsize_t out_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j*c.shake_squeezeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hout_lenh]hout_len}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjhhhjhKubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1juhjhKhjhhubj)}(hhh]j )}(h)Generate output from SHAKE128 or SHAKE256h]h)Generate output from SHAKE128 or SHAKE256}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1jphhhjNhNhNubj)}(hX'**Parameters** ``struct shake_ctx *ctx`` The context to squeeze; must have been initialized ``u8 *out`` Where to write the resulting output data ``size_t out_len`` The amount of data to extract to **out** in bytes **Description** This may be called multiple times. A number of consecutive squeezes laid end-to-end will yield the same output as one big squeeze generating the same total amount of output. More input cannot be provided after squeezing has begun. After the last squeeze, call shake_zeroize_ctx(). **Context** Any context.h](j )}(h**Parameters**h]j )}(hj2h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj,ubjK)}(hhh](jP)}(hM``struct shake_ctx *ctx`` The context to squeeze; must have been initialized h](jV)}(h``struct shake_ctx *ctx``h]j\)}(hjQh]hstruct shake_ctx *ctx}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjOubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjKubjr)}(hhh]j )}(h2The context to squeeze; must have been initializedh]h2The context to squeeze; must have been initialized}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjfhKhjgubah}(h]h ]h"]h$]h&]uh1jqhjKubeh}(h]h ]h"]h$]h&]uh1jOhjfhKhjHubjP)}(h5``u8 *out`` Where to write the resulting output data h](jV)}(h ``u8 *out``h]j\)}(hjh]hu8 *out}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(h(Where to write the resulting output datah]h(Where to write the resulting output data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjHubjP)}(hE``size_t out_len`` The amount of data to extract to **out** in bytes h](jV)}(h``size_t out_len``h]j\)}(hjh]hsize_t out_len}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhjubjr)}(hhh]j )}(h1The amount of data to extract to **out** in bytesh](h!The amount of data to extract to }(hjhhhNhNubj )}(h**out**h]hout}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh in bytes}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1j hjhKhjubah}(h]h ]h"]h$]h&]uh1jqhjubeh}(h]h ]h"]h$]h&]uh1jOhjhKhjHubeh}(h]h ]h"]h$]h&]uh1jJhj,ubj )}(h**Description**h]j )}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj,ubj )}(hXThis may be called multiple times. A number of consecutive squeezes laid end-to-end will yield the same output as one big squeeze generating the same total amount of output. More input cannot be provided after squeezing has begun. After the last squeeze, call shake_zeroize_ctx().h]hXThis may be called multiple times. A number of consecutive squeezes laid end-to-end will yield the same output as one big squeeze generating the same total amount of output. More input cannot be provided after squeezing has begun. After the last squeeze, call shake_zeroize_ctx().}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhKhj,ubj )}(h **Context**h]j )}(hj7h]hContext}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj,ubj )}(h Any context.h]h Any context.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_224 (C function) c.sha3_224hNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hIvoid sha3_224 (const u8 *in, size_t in_len, u8 out[SHA3_224_DIGEST_SIZE])h]j|)}(hHvoid sha3_224(const u8 *in, size_t in_len, u8 out[SHA3_224_DIGEST_SIZE])h](j)}(hvoidh]hvoid}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxhhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxhhhjhM ubj)}(hsha3_224h]j)}(hsha3_224h]hsha3_224}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjxhhhjhM ubj)}(h;(const u8 *in, size_t in_len, u8 out[SHA3_224_DIGEST_SIZE])h](j)}(h const u8 *inh](j)}(hj&h]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hu8h]hu8}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjmodnameN classnameNj3j6)}j9]j<)}j/jsb c.sha3_224asbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjP)}(hjSh]h*}(hj hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjubj)}(hinh]hin}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hj. hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj0 modnameN classnameNj3j6)}j9]j c.sha3_224asbuh1hhj' ubj)}(h h]h }(hjL hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj' ubj)}(hin_lenh]hin_len}(hjZ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj' ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hu8 out[SHA3_224_DIGEST_SIZE]h](h)}(hhh]j)}(hu8h]hu8}(hjv hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjx modnameN classnameNj3j6)}j9]j c.sha3_224asbuh1hhjo ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo ubj)}(houth]hout}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo ubjP)}(h[h]h[}(hj hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjo ubh)}(hhh]j)}(hSHA3_224_DIGEST_SIZEh]hSHA3_224_DIGEST_SIZE}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj modnameN classnameNj3j6)}j9]j c.sha3_224asbuh1hhjo ubjP)}(h]h]h]}(hj hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjo ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjxhhhjhM ubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjthhhjhM ubah}(h]joah ](jjeh"]h$]h&]jj)jhuh1juhjhM hjqhhubj)}(hhh]j )}(h#Compute SHA3-224 digest in one shoth]h#Compute SHA3-224 digest in one shot}(hj !hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM hj!hhubah}(h]h ]h"]h$]h&]uh1jhjqhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!!jj!!jjjuh1jphhhjNhNhNubj)}(hX**Parameters** ``const u8 *in`` The input data to be digested ``size_t in_len`` Length of the input data in bytes ``u8 out[SHA3_224_DIGEST_SIZE]`` The buffer into which the digest will be stored **Description** Convenience function that computes a SHA3-224 digest. Use this instead of the incremental API if you're able to provide all the input at once. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj+!h]h Parameters}(hj-!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)!ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM hj%!ubjK)}(hhh](jP)}(h/``const u8 *in`` The input data to be digested h](jV)}(h``const u8 *in``h]j\)}(hjJ!h]h const u8 *in}(hjL!hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjH!ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM hjD!ubjr)}(hhh]j )}(hThe input data to be digestedh]hThe input data to be digested}(hjc!hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj_!hM hj`!ubah}(h]h ]h"]h$]h&]uh1jqhjD!ubeh}(h]h ]h"]h$]h&]uh1jOhj_!hM hjA!ubjP)}(h4``size_t in_len`` Length of the input data in bytes h](jV)}(h``size_t in_len``h]j\)}(hj!h]h size_t in_len}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj!ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM hj}!ubjr)}(hhh]j )}(h!Length of the input data in bytesh]h!Length of the input data in bytes}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj!hM hj!ubah}(h]h ]h"]h$]h&]uh1jqhj}!ubeh}(h]h ]h"]h$]h&]uh1jOhj!hM hjA!ubjP)}(hQ``u8 out[SHA3_224_DIGEST_SIZE]`` The buffer into which the digest will be stored h](jV)}(h ``u8 out[SHA3_224_DIGEST_SIZE]``h]j\)}(hj!h]hu8 out[SHA3_224_DIGEST_SIZE]}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj!ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM hj!ubjr)}(hhh]j )}(h/The buffer into which the digest will be storedh]h/The buffer into which the digest will be stored}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj!hM hj!ubah}(h]h ]h"]h$]h&]uh1jqhj!ubeh}(h]h ]h"]h$]h&]uh1jOhj!hM hjA!ubeh}(h]h ]h"]h$]h&]uh1jJhj%!ubj )}(h**Description**h]j )}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj%!ubj )}(hConvenience function that computes a SHA3-224 digest. Use this instead of the incremental API if you're able to provide all the input at once.h]hConvenience function that computes a SHA3-224 digest. Use this instead of the incremental API if you’re able to provide all the input at once.}(hj "hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM hj%!ubj )}(h **Context**h]j )}(hj"h]hContext}(hj "hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj%!ubj )}(h Any context.h]h Any context.}(hj4"hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj%!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_256 (C function) c.sha3_256hNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hIvoid sha3_256 (const u8 *in, size_t in_len, u8 out[SHA3_256_DIGEST_SIZE])h]j|)}(hHvoid sha3_256(const u8 *in, size_t in_len, u8 out[SHA3_256_DIGEST_SIZE])h](j)}(hvoidh]hvoid}(hjc"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_"hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMubj)}(h h]h }(hjr"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_"hhhjq"hMubj)}(hsha3_256h]j)}(hsha3_256h]hsha3_256}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj_"hhhjq"hMubj)}(h;(const u8 *in, size_t in_len, u8 out[SHA3_256_DIGEST_SIZE])h](j)}(h const u8 *inh](j)}(hj&h]hconst}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubh)}(hhh]j)}(hu8h]hu8}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj"modnameN classnameNj3j6)}j9]j<)}j/j"sb c.sha3_256asbuh1hhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubjP)}(hjSh]h*}(hj"hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj"ubj)}(hinh]hin}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj"ubj)}(h size_t in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj#modnameN classnameNj3j6)}j9]j" c.sha3_256asbuh1hhj#ubj)}(h h]h }(hj3#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj)}(hin_lenh]hin_len}(hjA#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj"ubj)}(hu8 out[SHA3_256_DIGEST_SIZE]h](h)}(hhh]j)}(hu8h]hu8}(hj]#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ#ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj_#modnameN classnameNj3j6)}j9]j" c.sha3_256asbuh1hhjV#ubj)}(h h]h }(hj{#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV#ubj)}(houth]hout}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV#ubjP)}(hj h]h[}(hj#hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjV#ubh)}(hhh]j)}(hSHA3_256_DIGEST_SIZEh]hSHA3_256_DIGEST_SIZE}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj#modnameN classnameNj3j6)}j9]j" c.sha3_256asbuh1hhjV#ubjP)}(hj h]h]}(hj#hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjV#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj"ubeh}(h]h ]h"]h$]h&]hhuh1jhj_"hhhjq"hMubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhj["hhhjq"hMubah}(h]jV"ah ](jjeh"]h$]h&]jj)jhuh1juhjq"hMhjX"hhubj)}(hhh]j )}(h#Compute SHA3-256 digest in one shoth]h#Compute SHA3-256 digest in one shot}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj#hhubah}(h]h ]h"]h$]h&]uh1jhjX"hhhjq"hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1jphhhjNhNhNubj)}(hX**Parameters** ``const u8 *in`` The input data to be digested ``size_t in_len`` Length of the input data in bytes ``u8 out[SHA3_256_DIGEST_SIZE]`` The buffer into which the digest will be stored **Description** Convenience function that computes a SHA3-256 digest. Use this instead of the incremental API if you're able to provide all the input at once. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj$h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj $ubjK)}(hhh](jP)}(h/``const u8 *in`` The input data to be digested h](jV)}(h``const u8 *in``h]j\)}(hj/$h]h const u8 *in}(hj1$hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj-$ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj)$ubjr)}(hhh]j )}(hThe input data to be digestedh]hThe input data to be digested}(hjH$hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjD$hMhjE$ubah}(h]h ]h"]h$]h&]uh1jqhj)$ubeh}(h]h ]h"]h$]h&]uh1jOhjD$hMhj&$ubjP)}(h4``size_t in_len`` Length of the input data in bytes h](jV)}(h``size_t in_len``h]j\)}(hjh$h]h size_t in_len}(hjj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjf$ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhjb$ubjr)}(hhh]j )}(h!Length of the input data in bytesh]h!Length of the input data in bytes}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj}$hMhj~$ubah}(h]h ]h"]h$]h&]uh1jqhjb$ubeh}(h]h ]h"]h$]h&]uh1jOhj}$hMhj&$ubjP)}(hQ``u8 out[SHA3_256_DIGEST_SIZE]`` The buffer into which the digest will be stored h](jV)}(h ``u8 out[SHA3_256_DIGEST_SIZE]``h]j\)}(hj$h]hu8 out[SHA3_256_DIGEST_SIZE]}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj$ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj$ubjr)}(hhh]j )}(h/The buffer into which the digest will be storedh]h/The buffer into which the digest will be stored}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj$hMhj$ubah}(h]h ]h"]h$]h&]uh1jqhj$ubeh}(h]h ]h"]h$]h&]uh1jOhj$hMhj&$ubeh}(h]h ]h"]h$]h&]uh1jJhj $ubj )}(h**Description**h]j )}(hj$h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj $ubj )}(hConvenience function that computes a SHA3-256 digest. Use this instead of the incremental API if you're able to provide all the input at once.h]hConvenience function that computes a SHA3-256 digest. Use this instead of the incremental API if you’re able to provide all the input at once.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj $ubj )}(h **Context**h]j )}(hj%h]hContext}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj $ubj )}(h Any context.h]h Any context.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMhj $ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_384 (C function) c.sha3_384hNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hIvoid sha3_384 (const u8 *in, size_t in_len, u8 out[SHA3_384_DIGEST_SIZE])h]j|)}(hHvoid sha3_384(const u8 *in, size_t in_len, u8 out[SHA3_384_DIGEST_SIZE])h](j)}(hvoidh]hvoid}(hjH%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD%hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM#ubj)}(h h]h }(hjW%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD%hhhjV%hM#ubj)}(hsha3_384h]j)}(hsha3_384h]hsha3_384}(hji%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje%ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjD%hhhjV%hM#ubj)}(h;(const u8 *in, size_t in_len, u8 out[SHA3_384_DIGEST_SIZE])h](j)}(h const u8 *inh](j)}(hj&h]hconst}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubh)}(hhh]j)}(hu8h]hu8}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj%modnameN classnameNj3j6)}j9]j<)}j/jk%sb c.sha3_384asbuh1hhj%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubjP)}(hjSh]h*}(hj%hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj%ubj)}(hinh]hin}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}%ubj)}(h size_t in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj%modnameN classnameNj3j6)}j9]j% c.sha3_384asbuh1hhj%ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(hin_lenh]hin_len}(hj&&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}%ubj)}(hu8 out[SHA3_384_DIGEST_SIZE]h](h)}(hhh]j)}(hu8h]hu8}(hjB&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?&ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjD&modnameN classnameNj3j6)}j9]j% c.sha3_384asbuh1hhj;&ubj)}(h h]h }(hj`&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;&ubj)}(houth]hout}(hjn&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;&ubjP)}(hj h]h[}(hj|&hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj;&ubh)}(hhh]j)}(hSHA3_384_DIGEST_SIZEh]hSHA3_384_DIGEST_SIZE}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj&modnameN classnameNj3j6)}j9]j% c.sha3_384asbuh1hhj;&ubjP)}(hj h]h]}(hj&hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj;&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj}%ubeh}(h]h ]h"]h$]h&]hhuh1jhjD%hhhjV%hM#ubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhj@%hhhjV%hM#ubah}(h]j;%ah ](jjeh"]h$]h&]jj)jhuh1juhjV%hM#hj=%hhubj)}(hhh]j )}(h#Compute SHA3-384 digest in one shoth]h#Compute SHA3-384 digest in one shot}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM#hj&hhubah}(h]h ]h"]h$]h&]uh1jhj=%hhhjV%hM#ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1jphhhjNhNhNubj)}(hX**Parameters** ``const u8 *in`` The input data to be digested ``size_t in_len`` Length of the input data in bytes ``u8 out[SHA3_384_DIGEST_SIZE]`` The buffer into which the digest will be stored **Description** Convenience function that computes a SHA3-384 digest. Use this instead of the incremental API if you're able to provide all the input at once. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM'hj&ubjK)}(hhh](jP)}(h/``const u8 *in`` The input data to be digested h](jV)}(h``const u8 *in``h]j\)}(hj'h]h const u8 *in}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj'ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM$hj'ubjr)}(hhh]j )}(hThe input data to be digestedh]hThe input data to be digested}(hj-'hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj)'hM$hj*'ubah}(h]h ]h"]h$]h&]uh1jqhj'ubeh}(h]h ]h"]h$]h&]uh1jOhj)'hM$hj 'ubjP)}(h4``size_t in_len`` Length of the input data in bytes h](jV)}(h``size_t in_len``h]j\)}(hjM'h]h size_t in_len}(hjO'hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjK'ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM%hjG'ubjr)}(hhh]j )}(h!Length of the input data in bytesh]h!Length of the input data in bytes}(hjf'hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjb'hM%hjc'ubah}(h]h ]h"]h$]h&]uh1jqhjG'ubeh}(h]h ]h"]h$]h&]uh1jOhjb'hM%hj 'ubjP)}(hQ``u8 out[SHA3_384_DIGEST_SIZE]`` The buffer into which the digest will be stored h](jV)}(h ``u8 out[SHA3_384_DIGEST_SIZE]``h]j\)}(hj'h]hu8 out[SHA3_384_DIGEST_SIZE]}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj'ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM&hj'ubjr)}(hhh]j )}(h/The buffer into which the digest will be storedh]h/The buffer into which the digest will be stored}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj'hM&hj'ubah}(h]h ]h"]h$]h&]uh1jqhj'ubeh}(h]h ]h"]h$]h&]uh1jOhj'hM&hj 'ubeh}(h]h ]h"]h$]h&]uh1jJhj&ubj )}(h**Description**h]j )}(hj'h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM(hj&ubj )}(hConvenience function that computes a SHA3-384 digest. Use this instead of the incremental API if you're able to provide all the input at once.h]hConvenience function that computes a SHA3-384 digest. Use this instead of the incremental API if you’re able to provide all the input at once.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM'hj&ubj )}(h **Context**h]j )}(hj'h]hContext}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM*hj&ubj )}(h Any context.h]h Any context.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM+hj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlsha3_512 (C function) c.sha3_512hNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hIvoid sha3_512 (const u8 *in, size_t in_len, u8 out[SHA3_512_DIGEST_SIZE])h]j|)}(hHvoid sha3_512(const u8 *in, size_t in_len, u8 out[SHA3_512_DIGEST_SIZE])h](j)}(hvoidh]hvoid}(hj-(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)(hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM0ubj)}(h h]h }(hj<(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)(hhhj;(hM0ubj)}(hsha3_512h]j)}(hsha3_512h]hsha3_512}(hjN(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ(ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj)(hhhj;(hM0ubj)}(h;(const u8 *in, size_t in_len, u8 out[SHA3_512_DIGEST_SIZE])h](j)}(h const u8 *inh](j)}(hj&h]hconst}(hjj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf(ubj)}(h h]h }(hjw(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf(ubh)}(hhh]j)}(hu8h]hu8}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj(modnameN classnameNj3j6)}j9]j<)}j/jP(sb c.sha3_512asbuh1hhjf(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf(ubjP)}(hjSh]h*}(hj(hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjf(ubj)}(hinh]hin}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjb(ubj)}(h size_t in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj(modnameN classnameNj3j6)}j9]j( c.sha3_512asbuh1hhj(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj)}(hin_lenh]hin_len}(hj )hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjb(ubj)}(hu8 out[SHA3_512_DIGEST_SIZE]h](h)}(hhh]j)}(hu8h]hu8}(hj')hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$)ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj))modnameN classnameNj3j6)}j9]j( c.sha3_512asbuh1hhj )ubj)}(h h]h }(hjE)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj )ubj)}(houth]hout}(hjS)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj )ubjP)}(hj h]h[}(hja)hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj )ubh)}(hhh]j)}(hSHA3_512_DIGEST_SIZEh]hSHA3_512_DIGEST_SIZE}(hjq)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn)ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjs)modnameN classnameNj3j6)}j9]j( c.sha3_512asbuh1hhj )ubjP)}(hj h]h]}(hj)hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj )ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjb(ubeh}(h]h ]h"]h$]h&]hhuh1jhj)(hhhj;(hM0ubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhj%(hhhj;(hM0ubah}(h]j (ah ](jjeh"]h$]h&]jj)jhuh1juhj;(hM0hj"(hhubj)}(hhh]j )}(h#Compute SHA3-512 digest in one shoth]h#Compute SHA3-512 digest in one shot}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM0hj)hhubah}(h]h ]h"]h$]h&]uh1jhj"(hhhj;(hM0ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1jphhhjNhNhNubj)}(hX**Parameters** ``const u8 *in`` The input data to be digested ``size_t in_len`` Length of the input data in bytes ``u8 out[SHA3_512_DIGEST_SIZE]`` The buffer into which the digest will be stored **Description** Convenience function that computes a SHA3-512 digest. Use this instead of the incremental API if you're able to provide all the input at once. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM4hj)ubjK)}(hhh](jP)}(h/``const u8 *in`` The input data to be digested h](jV)}(h``const u8 *in``h]j\)}(hj)h]h const u8 *in}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj)ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM1hj)ubjr)}(hhh]j )}(hThe input data to be digestedh]hThe input data to be digested}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*hM1hj*ubah}(h]h ]h"]h$]h&]uh1jqhj)ubeh}(h]h ]h"]h$]h&]uh1jOhj*hM1hj)ubjP)}(h4``size_t in_len`` Length of the input data in bytes h](jV)}(h``size_t in_len``h]j\)}(hj2*h]h size_t in_len}(hj4*hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj0*ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM2hj,*ubjr)}(hhh]j )}(h!Length of the input data in bytesh]h!Length of the input data in bytes}(hjK*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjG*hM2hjH*ubah}(h]h ]h"]h$]h&]uh1jqhj,*ubeh}(h]h ]h"]h$]h&]uh1jOhjG*hM2hj)ubjP)}(hQ``u8 out[SHA3_512_DIGEST_SIZE]`` The buffer into which the digest will be stored h](jV)}(h ``u8 out[SHA3_512_DIGEST_SIZE]``h]j\)}(hjk*h]hu8 out[SHA3_512_DIGEST_SIZE]}(hjm*hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hji*ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM3hje*ubjr)}(hhh]j )}(h/The buffer into which the digest will be storedh]h/The buffer into which the digest will be stored}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj*hM3hj*ubah}(h]h ]h"]h$]h&]uh1jqhje*ubeh}(h]h ]h"]h$]h&]uh1jOhj*hM3hj)ubeh}(h]h ]h"]h$]h&]uh1jJhj)ubj )}(h**Description**h]j )}(hj*h]h Description}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM5hj)ubj )}(hConvenience function that computes a SHA3-512 digest. Use this instead of the incremental API if you're able to provide all the input at once.h]hConvenience function that computes a SHA3-512 digest. Use this instead of the incremental API if you’re able to provide all the input at once.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM4hj)ubj )}(h **Context**h]j )}(hj*h]hContext}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM7hj)ubj )}(h Any context.h]h Any context.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM8hj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlshake128 (C function) c.shake128hNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hDvoid shake128 (const u8 *in, size_t in_len, u8 *out, size_t out_len)h]j|)}(hCvoid shake128(const u8 *in, size_t in_len, u8 *out, size_t out_len)h](j)}(hvoidh]hvoid}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM=ubj)}(h h]h }(hj!+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj +hM=ubj)}(hshake128h]j)}(hshake128h]hshake128}(hj3+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/+ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj+hhhj +hM=ubj)}(h6(const u8 *in, size_t in_len, u8 *out, size_t out_len)h](j)}(h const u8 *inh](j)}(hj&h]hconst}(hjO+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK+ubj)}(h h]h }(hj\+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK+ubh)}(hhh]j)}(hu8h]hu8}(hjm+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjo+modnameN classnameNj3j6)}j9]j<)}j/j5+sb c.shake128asbuh1hhjK+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK+ubjP)}(hjSh]h*}(hj+hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhjK+ubj)}(hinh]hin}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjG+ubj)}(h size_t in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj+modnameN classnameNj3j6)}j9]j+ c.shake128asbuh1hhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(hin_lenh]hin_len}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjG+ubj)}(hu8 *outh](h)}(hhh]j)}(hu8h]hu8}(hj ,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ,ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj,modnameN classnameNj3j6)}j9]j+ c.shake128asbuh1hhj,ubj)}(h h]h }(hj*,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubjP)}(hjSh]h*}(hj8,hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj,ubj)}(houth]hout}(hjE,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjG+ubj)}(hsize_t out_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hja,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^,ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjc,modnameN classnameNj3j6)}j9]j+ c.shake128asbuh1hhjZ,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ,ubj)}(hout_lenh]hout_len}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjG+ubeh}(h]h ]h"]h$]h&]hhuh1jhj+hhhj +EhM=ubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhj +hhhj +hM=ubah}(h]j+ah ](jjeh"]h$]h&]jj)jhuh1juhj +hM=hj+hhubj)}(hhh]j )}(hCompute SHAKE128 in one shoth]hCompute SHAKE128 in one shot}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM=hj,hhubah}(h]h ]h"]h$]h&]uh1jhj+hhhj +hM=ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1jphhhjNhNhNubj)}(hX**Parameters** ``const u8 *in`` The input data to be used ``size_t in_len`` Length of the input data in bytes ``u8 *out`` The buffer into which the output will be stored ``size_t out_len`` Length of the output to produce in bytes **Description** Convenience function that computes SHAKE128 in one shot. Use this instead of the incremental API if you're able to provide all the input at once as well as receive all the output at once. All output lengths are supported. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj,h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMAhj,ubjK)}(hhh](jP)}(h+``const u8 *in`` The input data to be used h](jV)}(h``const u8 *in``h]j\)}(hj,h]h const u8 *in}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj,ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM>hj,ubjr)}(hhh]j )}(hThe input data to be usedh]hThe input data to be used}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj -hM>hj-ubah}(h]h ]h"]h$]h&]uh1jqhj,ubeh}(h]h ]h"]h$]h&]uh1jOhj -hM>hj,ubjP)}(h4``size_t in_len`` Length of the input data in bytes h](jV)}(h``size_t in_len``h]j\)}(hj1-h]h size_t in_len}(hj3-hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj/-ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM?hj+-ubjr)}(hhh]j )}(h!Length of the input data in bytesh]h!Length of the input data in bytes}(hjJ-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjF-hM?hjG-ubah}(h]h ]h"]h$]h&]uh1jqhj+-ubeh}(h]h ]h"]h$]h&]uh1jOhjF-hM?hj,ubjP)}(h<``u8 *out`` The buffer into which the output will be stored h](jV)}(h ``u8 *out``h]j\)}(hjj-h]hu8 *out}(hjl-hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjh-ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhM@hjd-ubjr)}(hhh]j )}(h/The buffer into which the output will be storedh]h/The buffer into which the output will be stored}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-hM@hj-ubah}(h]h ]h"]h$]h&]uh1jqhjd-ubeh}(h]h ]h"]h$]h&]uh1jOhj-hM@hj,ubjP)}(h<``size_t out_len`` Length of the output to produce in bytes h](jV)}(h``size_t out_len``h]j\)}(hj-h]hsize_t out_len}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj-ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMAhj-ubjr)}(hhh]j )}(h(Length of the output to produce in bytesh]h(Length of the output to produce in bytes}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj-hMAhj-ubah}(h]h ]h"]h$]h&]uh1jqhj-ubeh}(h]h ]h"]h$]h&]uh1jOhj-hMAhj,ubeh}(h]h ]h"]h$]h&]uh1jJhj,ubj )}(h**Description**h]j )}(hj-h]h Description}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMChj,ubj )}(hConvenience function that computes SHAKE128 in one shot. Use this instead of the incremental API if you're able to provide all the input at once as well as receive all the output at once. All output lengths are supported.h]hConvenience function that computes SHAKE128 in one shot. Use this instead of the incremental API if you’re able to provide all the input at once as well as receive all the output at once. All output lengths are supported.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMBhj,ubj )}(h **Context**h]j )}(hj.h]hContext}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMFhj,ubj )}(h Any context.h]h Any context.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMGhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubj`)}(hhh]h}(h]h ]h"]h$]h&]entries](jlshake256 (C function) c.shake256hNtauh1j_hjNhhhNhNubjq)}(hhh](jv)}(hDvoid shake256 (const u8 *in, size_t in_len, u8 *out, size_t out_len)h]j|)}(hCvoid shake256(const u8 *in, size_t in_len, u8 *out, size_t out_len)h](j)}(hvoidh]hvoid}(hjJ.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjF.hhhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMLubj)}(h h]h }(hjY.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjF.hhhjX.hMLubj)}(hshake256h]j)}(hshake256h]hshake256}(hjk.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg.ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjF.hhhjX.hMLubj)}(h6(const u8 *in, size_t in_len, u8 *out, size_t out_len)h](j)}(h const u8 *inh](j)}(hj&h]hconst}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubh)}(hhh]j)}(hu8h]hu8}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj.modnameN classnameNj3j6)}j9]j<)}j/jm.sb c.shake256asbuh1hhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubjP)}(hjSh]h*}(hj.hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj.ubj)}(hinh]hin}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.ubj)}(h size_t in_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj.modnameN classnameNj3j6)}j9]j. c.shake256asbuh1hhj.ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hin_lenh]hin_len}(hj(/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.ubj)}(hu8 *outh](h)}(hhh]j)}(hu8h]hu8}(hjD/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA/ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetjF/modnameN classnameNj3j6)}j9]j. c.shake256asbuh1hhj=/ubj)}(h h]h }(hjb/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=/ubjP)}(hjSh]h*}(hjp/hhhNhNubah}(h]h ]j\ah"]h$]h&]uh1jOhj=/ubj)}(houth]hout}(hj}/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.ubj)}(hsize_t out_lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej/ reftargetj/modnameN classnameNj3j6)}j9]j. c.shake256asbuh1hhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hout_lenh]hout_len}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj.ubeh}(h]h ]h"]h$]h&]hhuh1jhjF.hhhjX.hMLubeh}(h]h ]h"]h$]h&]hhjuh1j{jjhjB.hhhjX.hMLubah}(h]j=.ah ](jjeh"]h$]h&]jj)jhuh1juhjX.hMLhj?.hhubj)}(hhh]j )}(hCompute SHAKE256 in one shoth]hCompute SHAKE256 in one shot}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMLhj/hhubah}(h]h ]h"]h$]h&]uh1jhj?.hhhjX.hMLubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1jphhhjNhNhNubj)}(hX**Parameters** ``const u8 *in`` The input data to be used ``size_t in_len`` Length of the input data in bytes ``u8 *out`` The buffer into which the output will be stored ``size_t out_len`` Length of the output to produce in bytes **Description** Convenience function that computes SHAKE256 in one shot. Use this instead of the incremental API if you're able to provide all the input at once as well as receive all the output at once. All output lengths are supported. **Context** Any context.h](j )}(h**Parameters**h]j )}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMPhj 0ubjK)}(hhh](jP)}(h+``const u8 *in`` The input data to be used h](jV)}(h``const u8 *in``h]j\)}(hj00h]h const u8 *in}(hj20hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj.0ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMMhj*0ubjr)}(hhh]j )}(hThe input data to be usedh]hThe input data to be used}(hjI0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjE0hMMhjF0ubah}(h]h ]h"]h$]h&]uh1jqhj*0ubeh}(h]h ]h"]h$]h&]uh1jOhjE0hMMhj'0ubjP)}(h4``size_t in_len`` Length of the input data in bytes h](jV)}(h``size_t in_len``h]j\)}(hji0h]h size_t in_len}(hjk0hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hjg0ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMNhjc0ubjr)}(hhh]j )}(h!Length of the input data in bytesh]h!Length of the input data in bytes}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj~0hMNhj0ubah}(h]h ]h"]h$]h&]uh1jqhjc0ubeh}(h]h ]h"]h$]h&]uh1jOhj~0hMNhj'0ubjP)}(h<``u8 *out`` The buffer into which the output will be stored h](jV)}(h ``u8 *out``h]j\)}(hj0h]hu8 *out}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj0ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMOhj0ubjr)}(hhh]j )}(h/The buffer into which the output will be storedh]h/The buffer into which the output will be stored}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0hMOhj0ubah}(h]h ]h"]h$]h&]uh1jqhj0ubeh}(h]h ]h"]h$]h&]uh1jOhj0hMOhj'0ubjP)}(h<``size_t out_len`` Length of the output to produce in bytes h](jV)}(h``size_t out_len``h]j\)}(hj0h]hsize_t out_len}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j[hj0ubah}(h]h ]h"]h$]h&]uh1jUhR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMPhj0ubjr)}(hhh]j )}(h(Length of the output to produce in bytesh]h(Length of the output to produce in bytes}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j hj0hMPhj0ubah}(h]h ]h"]h$]h&]uh1jqhj0ubeh}(h]h ]h"]h$]h&]uh1jOhj0hMPhj'0ubeh}(h]h ]h"]h$]h&]uh1jJhj 0ubj )}(h**Description**h]j )}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMRhj 0ubj )}(hConvenience function that computes SHAKE256 in one shot. Use this instead of the incremental API if you're able to provide all the input at once as well as receive all the output at once. All output lengths are supported.h]hConvenience function that computes SHAKE256 in one shot. Use this instead of the incremental API if you’re able to provide all the input at once as well as receive all the output at once. All output lengths are supported.}(hj,1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMQhj 0ubj )}(h **Context**h]j )}(hj=1h]hContext}(hj?1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;1ubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMUhj 0ubj )}(h Any context.h]h Any context.}(hjS1hhhNhNubah}(h]h ]h"]h$]h&]uh1j hR/var/lib/git/docbuild/linux/Documentation/crypto/sha3:132: ./include/crypto/sha3.hhMVhj 0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNhhhNhNubeh}(h]jah ]h"]api function referenceah$]h&]uh1hhhhhhhhKubeh}(h](jheh ]h"](sha-3 algorithm collectionsha3eh$]h&]uh1hhhhhhhhKexpect_referenced_by_name}ju1hsexpect_referenced_by_id}hhsubeh}(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_handlerj1error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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}1]j+asrefids}h]hasnameids}(ju1hjt1jj j j:j>jj`jjjjjKjjDj:jm1ju nametypes}(ju1jt1j j:jjjjKjDjm1uh}(hhjhj hj>jj5j+j`j=jjjjjjj:jjjNjnjwjjj>jCjG jL j j jp ju jjjjjhjmj;j@jjj,j1jjjjjojtjV"j["j;%j@%j (j%(j+j +j=.jB.hjj8j/jZjQj|jsjjjjjju footnote_refs}j1]j+as citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes]ja citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j1K sRparse_messages]transform_messages]hsystem_message)}(hhh]j )}(hhh]h*Hyperlink target "sha3" is not referenced.}hj 2sbah}(h]h ]h"]h$]h&]uh1j hj 2ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehnjlineKuh1j2uba transformerN include_log] decorationNhhub.