€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ)/translations/zh_CN/crypto/libcrypto-hash”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/zh_TW/crypto/libcrypto-hash”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/it_IT/crypto/libcrypto-hash”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ja_JP/crypto/libcrypto-hash”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/ko_KR/crypto/libcrypto-hash”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/pt_BR/crypto/libcrypto-hash”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ)/translations/sp_SP/crypto/libcrypto-hash”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ)SPDX-License-Identifier: GPL-2.0-or-later”h]”hŒ)SPDX-License-Identifier: GPL-2.0-or-later”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒC/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒHash functions, MACs, and XOFs”h]”hŒHash functions, MACs, and XOFs”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAES-CMAC and AES-XCBC-MAC”h]”hŒAES-CMAC and AES-XCBC-MAC”…”�”}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒYThis API provides support for the AES-CMAC and AES-XCBC-MAC message authentication codes.”h]”hŒYThis API provides support for the AES-CMAC and AES-XCBC-MAC message authentication codes.”…”�”}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œaes_cmac_key (C struct)”Œc.aes_cmac_key”hNt”auh1hþhhÝh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ aes_cmac_key”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct aes_cmac_key”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j hjh²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j2hjh²hh³j1h´KubhŒ desc_name”“”)�”}”(hŒ aes_cmac_key”h]”hŒ desc_sig_name”“”)�”}”(hjh]”hŒ aes_cmac_key”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jIhjEubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jChjh²hh³j1h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jŒsphinx_line_type”Œ declarator”hjh²hh³j1h´Kubah}”(h]”j ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jh³j1h´Khjh²hubhŒ desc_content”“”)�”}”(hhh]”hï)�”}”(hŒ)Prepared key for AES-CMAC or AES-XCBC-MAC”h]”hŒ)Prepared key for AES-CMAC or AES-XCBC-MAC”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Khjwh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjh²hh³j1h´Kubeh}”(h]”h ]”(Œc”Œstruct”eh"]”h$]”h&]”Œdomain”j’Œobjtype”j“Œdesctype”j“Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jh²hhhÝh³Nh´NubhŒ container”“”)�”}”(hX¢**Definition**:: struct aes_cmac_key { struct aes_enckey aes; union { u8 b[AES_BLOCK_SIZE]; __be64 w[2]; } k_final[2]; }; **Members** ``aes`` The AES key for cipher block chaining ``k_final`` Finalization subkeys for the final block. k_final[0] (CMAC K1, XCBC-MAC K2) is used if it's a full block. k_final[1] (CMAC K2, XCBC-MAC K3) is used if it's a partial block.”h]”(hï)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj£ubhŒ:”…”�”}”(hj£h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KhjŸubhŒ literal_block”“”)�”}”(hŒ„struct aes_cmac_key { struct aes_enckey aes; union { u8 b[AES_BLOCK_SIZE]; __be64 w[2]; } k_final[2]; };”h]”hŒ„struct aes_cmac_key { struct aes_enckey aes; union { u8 b[AES_BLOCK_SIZE]; __be64 w[2]; } k_final[2]; };”…”�”}”hjÄsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KhjŸubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjÕh]”hŒMembers”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KhjŸubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ.``aes`` The AES key for cipher block chaining ”h]”(hŒterm”“”)�”}”(hŒ``aes``”h]”hŒliteral”“”)�”}”(hjúh]”hŒaes”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KhjòubhŒ definition”“”)�”}”(hhh]”hï)�”}”(hŒ%The AES key for cipher block chaining”h]”hŒ%The AES key for cipher block chaining”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´Khjíubjñ)�”}”(hŒ¸``k_final`` Finalization subkeys for the final block. k_final[0] (CMAC K1, XCBC-MAC K2) is used if it's a full block. k_final[1] (CMAC K2, XCBC-MAC K3) is used if it's a partial block.”h]”(j÷)�”}”(hŒ ``k_final``”h]”jý)�”}”(hj7h]”hŒk_final”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Khj1ubj)�”}”(hhh]”hï)�”}”(hŒ¬Finalization subkeys for the final block. k_final[0] (CMAC K1, XCBC-MAC K2) is used if it's a full block. k_final[1] (CMAC K2, XCBC-MAC K3) is used if it's a partial block.”h]”hŒ°Finalization subkeys for the final block. k_final[0] (CMAC K1, XCBC-MAC K2) is used if it’s a full block. k_final[1] (CMAC K2, XCBC-MAC K3) is used if it’s a partial block.”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jLh´Khjíubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjŸubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ!aes_cmac_zeroize_key (C function)”Œc.aes_cmac_zeroize_key”hNt”auh1hþhhÝh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ4void aes_cmac_zeroize_key (struct aes_cmac_key *key)”h]”j)�”}”(hŒ3void aes_cmac_zeroize_key(struct aes_cmac_key *key)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j‘hj�h²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�h²hh³j¢h´KubjD)�”}”(hŒaes_cmac_zeroize_key”h]”jJ)�”}”(hŒaes_cmac_zeroize_key”h]”hŒaes_cmac_zeroize_key”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj±ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj�h²hh³j¢h´KubhŒdesc_parameterlist”“”)�”}”(hŒ(struct aes_cmac_key *key)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct aes_cmac_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÑubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÑubh)�”}”(hhh]”jJ)�”}”(hŒ aes_cmac_key”h]”hŒ aes_cmac_key”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”Œ identifier”Œ reftarget”jõŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jŒ ASTIdentifier”“”)�”}”j j·sbŒc.aes_cmac_zeroize_key”†”asbuh1hhjÑubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÑubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j)hjÑubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÑubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjËubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj�h²hh³j¢h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj‰h²hh³j¢h´Kubah}”(h]”j„ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¢h´Khj†h²hubjv)�”}”(hhh]”hï)�”}”(hŒ!Zeroize an aes_cmac_key structure”h]”hŒ!Zeroize an aes_cmac_key structure”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Khjah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj†h²hh³j¢h´Kubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j|j™j|jš‰j›‰jœ‰uh1jh²hhhÝh³Nh´Nubjž)�”}”(hX?**Parameters** ``struct aes_cmac_key *key`` The location of the key structure that should be zeroized **Description** Explicitly fills the aes_cmac_key with zeroes. This should be done once the key is not required anymore to avoid that its contents are leaked on the stack or heap (if not using kfree_sensitive()).”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj†h]”hŒ Parameters”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K!hj€ubjì)�”}”(hhh]”jñ)�”}”(hŒW``struct aes_cmac_key *key`` The location of the key structure that should be zeroized ”h]”(j÷)�”}”(hŒ``struct aes_cmac_key *key``”h]”jý)�”}”(hj¥h]”hŒstruct aes_cmac_key *key”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KhjŸubj)�”}”(hhh]”hï)�”}”(hŒ9The location of the key structure that should be zeroized”h]”hŒ9The location of the key structure that should be zeroized”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jºh´Khj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jºh´Khjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj€ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjàh]”hŒ Description”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K hj€ubhï)�”}”(hŒÄExplicitly fills the aes_cmac_key with zeroes. This should be done once the key is not required anymore to avoid that its contents are leaked on the stack or heap (if not using kfree_sensitive()).”h]”hŒÄExplicitly fills the aes_cmac_key with zeroes. This should be done once the key is not required anymore to avoid that its contents are leaked on the stack or heap (if not using kfree_sensitive()).”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Khj€ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œaes_cmac_ctx (C struct)”Œc.aes_cmac_ctx”hNt”auh1hþhhÝh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ aes_cmac_ctx”h]”j)�”}”(hŒstruct aes_cmac_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj!h²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K&ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj!h²hh³j2h´K&ubjD)�”}”(hŒ aes_cmac_ctx”h]”jJ)�”}”(hjh]”hŒ aes_cmac_ctx”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjAubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj!h²hh³j2h´K&ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjh²hh³j2h´K&ubah}”(h]”jah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j2h´K&hjh²hubjv)�”}”(hhh]”hï)�”}”(hŒ7Context for computing an AES-CMAC or AES-XCBC-MAC value”h]”hŒ7Context for computing an AES-CMAC or AES-XCBC-MAC value”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K*hjdh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjh²hh³j2h´K&ubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jj™jjš‰j›‰jœ‰uh1jh²hhhÝh³Nh´Nubjž)�”}”(hXO**Definition**:: struct aes_cmac_ctx { const struct aes_cmac_key *key; size_t partial_len; u8 h[AES_BLOCK_SIZE]; }; **Members** ``key`` Pointer to the key struct. A pointer is used rather than a copy of the struct, since the key struct size may be large. It is assumed that the key lives at least as long as the context. ``partial_len`` Number of bytes that have been XOR'ed into **h** since the last AES encryption. This is 0 if no data has been processed yet, or between 1 and AES_BLOCK_SIZE inclusive otherwise. ``h`` The current chaining value”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‡ubhŒ:”…”�”}”(hj‡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K.hjƒubjÃ)�”}”(hŒnstruct aes_cmac_ctx { const struct aes_cmac_key *key; size_t partial_len; u8 h[AES_BLOCK_SIZE]; };”h]”hŒnstruct aes_cmac_ctx { const struct aes_cmac_key *key; size_t partial_len; u8 h[AES_BLOCK_SIZE]; };”…”�”}”hj¤sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K0hjƒubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjµh]”hŒMembers”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K6hjƒubjì)�”}”(hhh]”(jñ)�”}”(hŒÃ``key`` Pointer to the key struct. A pointer is used rather than a copy of the struct, since the key struct size may be large. It is assumed that the key lives at least as long as the context. ”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hjÔh]”hŒkey”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K.hjÎubj)�”}”(hhh]”hï)�”}”(hŒºPointer to the key struct. A pointer is used rather than a copy of the struct, since the key struct size may be large. It is assumed that the key lives at least as long as the context.”h]”hŒºPointer to the key struct. A pointer is used rather than a copy of the struct, since the key struct size may be large. It is assumed that the key lives at least as long as the context.”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K,hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jéh´K.hjËubjñ)�”}”(hŒÃ``partial_len`` Number of bytes that have been XOR'ed into **h** since the last AES encryption. This is 0 if no data has been processed yet, or between 1 and AES_BLOCK_SIZE inclusive otherwise. ”h]”(j÷)�”}”(hŒ``partial_len``”h]”jý)�”}”(hjh]”hŒ partial_len”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K1hjubj)�”}”(hhh]”hï)�”}”(hŒ²Number of bytes that have been XOR'ed into **h** since the last AES encryption. This is 0 if no data has been processed yet, or between 1 and AES_BLOCK_SIZE inclusive otherwise.”h]”(hŒ-Number of bytes that have been XOR’ed into ”…”�”}”(hj'h²hh³Nh´Nubj¨)�”}”(hŒ**h**”h]”hŒh”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj'ubhŒ‚ since the last AES encryption. This is 0 if no data has been processed yet, or between 1 and AES_BLOCK_SIZE inclusive otherwise.”…”�”}”(hj'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K/hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j#h´K1hjËubjñ)�”}”(hŒ ``h`` The current chaining value”h]”(j÷)�”}”(hŒ``h``”h]”jý)�”}”(hjZh]”hŒh”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K1hjTubj)�”}”(hhh]”hï)�”}”(hŒThe current chaining value”h]”hŒThe current chaining value”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K2hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³joh´K1hjËubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjƒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ!aes_cmac_zeroize_ctx (C function)”Œc.aes_cmac_zeroize_ctx”hNt”auh1hþhhÝh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ4void aes_cmac_zeroize_ctx (struct aes_cmac_ctx *ctx)”h]”j)�”}”(hŒ3void aes_cmac_zeroize_ctx(struct aes_cmac_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj°h²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K:ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj°h²hh³jÂh´K:ubjD)�”}”(hŒaes_cmac_zeroize_ctx”h]”jJ)�”}”(hŒaes_cmac_zeroize_ctx”h]”hŒaes_cmac_zeroize_ctx”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÑubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj°h²hh³jÂh´K:ubjÊ)�”}”(hŒ(struct aes_cmac_ctx *ctx)”h]”jÐ)�”}”(hŒstruct aes_cmac_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjíubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjíubh)�”}”(hhh]”jJ)�”}”(hŒ aes_cmac_ctx”h]”hŒ aes_cmac_ctx”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j×sbŒc.aes_cmac_zeroize_ctx”†”asbuh1hhjíubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjíubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjíubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjíubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjéubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj°h²hh³jÂh´K:ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¬h²hh³jÂh´K:ubah}”(h]”j§ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÂh´K:hj©h²hubjv)�”}”(hhh]”hï)�”}”(hŒ!Zeroize an aes_cmac_ctx structure”h]”hŒ!Zeroize an aes_cmac_ctx structure”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K:hjqh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj©h²hh³jÂh´K:ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jŒj™jŒjš‰j›‰jœ‰uh1jh²hhhÝh³Nh´Nubjž)�”}”(hXI**Parameters** ``struct aes_cmac_ctx *ctx`` The location of the context that should be zeroized **Description** Explicitly fills the aes_cmac_ctx with zeroes. This should be done once the context is not required anymore to avoid that its contents are leaked on the stack or heap. Only required if not using aes_cmac_final().”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj–h]”hŒ Parameters”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K>hj�ubjì)�”}”(hhh]”jñ)�”}”(hŒQ``struct aes_cmac_ctx *ctx`` The location of the context that should be zeroized ”h]”(j÷)�”}”(hŒ``struct aes_cmac_ctx *ctx``”h]”jý)�”}”(hjµh]”hŒstruct aes_cmac_ctx *ctx”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K;hj¯ubj)�”}”(hhh]”hï)�”}”(hŒ3The location of the context that should be zeroized”h]”hŒ3The location of the context that should be zeroized”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÊh´K;hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÊh´K;hj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj�ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjðh]”hŒ Description”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K=hj�ubhï)�”}”(hŒÔExplicitly fills the aes_cmac_ctx with zeroes. This should be done once the context is not required anymore to avoid that its contents are leaked on the stack or heap. Only required if not using aes_cmac_final().”h]”hŒÔExplicitly fills the aes_cmac_ctx with zeroes. This should be done once the context is not required anymore to avoid that its contents are leaked on the stack or heap. Only required if not using aes_cmac_final().”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj" ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j= h´KIhjæubjñ)�”}”(hŒ„``size_t key_len`` Length of the raw key in bytes. The supported values are AES_KEYSIZE_128, AES_KEYSIZE_192, and AES_KEYSIZE_256. ”h]”(j÷)�”}”(hŒ``size_t key_len``”h]”jý)�”}”(hja h]”hŒsize_t key_len”…”�”}”(hjc h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj_ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KKhj[ ubj)�”}”(hhh]”hï)�”}”(hŒpLength of the raw key in bytes. The supported values are AES_KEYSIZE_128, AES_KEYSIZE_192, and AES_KEYSIZE_256.”h]”hŒpLength of the raw key in bytes. The supported values are AES_KEYSIZE_128, AES_KEYSIZE_192, and AES_KEYSIZE_256.”…”�”}”(hjz h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KJhjw ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj[ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jv h´KKhjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÊubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj� h]”hŒ Description”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj› ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KMhjÊubhï)�”}”(hŒŸOn success, the caller should ensure that the prepared key is zeroized at the end of its lifetime, e.g. by calling aes_cmac_zeroize_key() or kfree_sensitive().”h]”hŒŸOn success, the caller should ensure that the prepared key is zeroized at the end of its lifetime, e.g. by calling aes_cmac_zeroize_key() or kfree_sensitive().”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KLhjÊubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÄ h]”hŒContext”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KPhjÊubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KQhjÊubhï)�”}”(hŒ **Return**”h]”j¨)�”}”(hjë h]”hŒReturn”…”�”}”(hjí h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjé ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KShjÊubhï)�”}”(hŒ©0 on success or -EINVAL if the given key length is invalid. No other errors are possible, so callers that always pass a valid key length don't need to check for errors.”h]”hŒ«0 on success or -EINVAL if the given key length is invalid. No other errors are possible, so callers that always pass a valid key length don’t need to check for errors.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KRhjÊubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ#aes_xcbcmac_preparekey (C function)”Œc.aes_xcbcmac_preparekey”hNt”auh1hþhhÝh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ_void aes_xcbcmac_preparekey (struct aes_cmac_key *key, const u8 in_key[static AES_KEYSIZE_128])”h]”j)�”}”(hŒ^void aes_xcbcmac_preparekey(struct aes_cmac_key *key, const u8 in_key[static AES_KEYSIZE_128])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj0 h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj, h²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KZubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj, h²hh³j> h´KZubjD)�”}”(hŒaes_xcbcmac_preparekey”h]”jJ)�”}”(hŒaes_xcbcmac_preparekey”h]”hŒaes_xcbcmac_preparekey”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjM ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj, h²hh³j> h´KZubjÊ)�”}”(hŒC(struct aes_cmac_key *key, const u8 in_key[static AES_KEYSIZE_128])”h]”(jÐ)�”}”(hŒstruct aes_cmac_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hji ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hji ubh)�”}”(hhh]”jJ)�”}”(hŒ aes_cmac_key”h]”hŒ aes_cmac_key”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjˆ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j� Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jS sbŒc.aes_xcbcmac_preparekey”†”asbuh1hhji ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hji ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hji ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhji ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhje ubjÐ)�”}”(hŒ'const u8 in_key[static AES_KEYSIZE_128]”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÛ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛ ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjú ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÿ Œmodname”NŒ classname”Nj j)�”}”j]”j§ Œc.aes_xcbcmac_preparekey”†”asbuh1hhjÛ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛ ubjJ)�”}”(hŒin_key”h]”hŒin_key”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÛ ubj*)�”}”(hŒ[”h]”hŒ[”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÛ ubj!)�”}”(hŒstatic”h]”hŒstatic”…”�”}”(hjE h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÛ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛ ubh)�”}”(hhh]”jJ)�”}”(hŒAES_KEYSIZE_128”h]”hŒAES_KEYSIZE_128”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhja ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jf Œmodname”NŒ classname”Nj j)�”}”j]”j§ Œc.aes_xcbcmac_preparekey”†”asbuh1hhjÛ ubj*)�”}”(hŒ]”h]”hŒ]”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÛ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhje ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj, h²hh³j> h´KZubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj( h²hh³j> h´KZubah}”(h]”j# ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j> h´KZhj% h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a key for AES-XCBC-MAC”h]”hŒPrepare a key for AES-XCBC-MAC”…”�”}”(hj¬ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KZhj© h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj% h²hh³j> h´KZubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÄ j™jÄ jš‰j›‰jœ‰uh1jh²hhhÝh³Nh´Nubjž)�”}”(hXó**Parameters** ``struct aes_cmac_key *key`` (output) The key struct to initialize ``const u8 in_key[static AES_KEYSIZE_128]`` The raw key. As per the AES-XCBC-MAC specification (RFC 3566), this is 128 bits, matching the internal use of AES-128. **Description** AES-XCBC-MAC and AES-CMAC are the same except for the key preparation. After that step, AES-XCBC-MAC is supported via the aes_cmac_* functions. New users should use AES-CMAC instead of AES-XCBC-MAC. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÎ h]”hŒ Parameters”…”�”}”(hjÐ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÌ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K^hjÈ ubjì)�”}”(hhh]”(jñ)�”}”(hŒC``struct aes_cmac_key *key`` (output) The key struct to initialize ”h]”(j÷)�”}”(hŒ``struct aes_cmac_key *key``”h]”jý)�”}”(hjí h]”hŒstruct aes_cmac_key *key”…”�”}”(hjï h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjë ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K[hjç ubj)�”}”(hhh]”hï)�”}”(hŒ%(output) The key struct to initialize”h]”hŒ%(output) The key struct to initialize”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´K[hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjç ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j h´K[hjä ubjñ)�”}”(hŒ¤``const u8 in_key[static AES_KEYSIZE_128]`` The raw key. As per the AES-XCBC-MAC specification (RFC 3566), this is 128 bits, matching the internal use of AES-128. ”h]”(j÷)�”}”(hŒ+``const u8 in_key[static AES_KEYSIZE_128]``”h]”jý)�”}”(hj& h]”hŒ'const u8 in_key[static AES_KEYSIZE_128]”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj$ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K]hj ubj)�”}”(hhh]”hï)�”}”(hŒwThe raw key. As per the AES-XCBC-MAC specification (RFC 3566), this is 128 bits, matching the internal use of AES-128.”h]”hŒwThe raw key. As per the AES-XCBC-MAC specification (RFC 3566), this is 128 bits, matching the internal use of AES-128.”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K\hj< ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j; h´K]hjä ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÈ ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjb h]”hŒ Description”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj` ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K_hjÈ ubhï)�”}”(hŒ�AES-XCBC-MAC and AES-CMAC are the same except for the key preparation. After that step, AES-XCBC-MAC is supported via the aes_cmac_* functions.”h]”hŒ�AES-XCBC-MAC and AES-CMAC are the same except for the key preparation. After that step, AES-XCBC-MAC is supported via the aes_cmac_* functions.”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K^hjÈ ubhï)�”}”(hŒ6New users should use AES-CMAC instead of AES-XCBC-MAC.”h]”hŒ6New users should use AES-CMAC instead of AES-XCBC-MAC.”…”�”}”(hj‡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KahjÈ ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj˜ h]”hŒContext”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KchjÈ ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj® h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KdhjÈ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œaes_cmac_init (C function)”Œc.aes_cmac_init”hNt”auh1hþhhÝh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒMvoid aes_cmac_init (struct aes_cmac_ctx *ctx, const struct aes_cmac_key *key)”h]”j)�”}”(hŒLvoid aes_cmac_init(struct aes_cmac_ctx *ctx, const struct aes_cmac_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÙ h²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Kjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÙ h²hh³jë h´KjubjD)�”}”(hŒ aes_cmac_init”h]”jJ)�”}”(hŒ aes_cmac_init”h]”hŒ aes_cmac_init”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjú ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÙ h²hh³jë h´KjubjÊ)�”}”(hŒ:(struct aes_cmac_ctx *ctx, const struct aes_cmac_key *key)”h]”(jÐ)�”}”(hŒstruct aes_cmac_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ubh)�”}”(hhh]”jJ)�”}”(hŒ aes_cmac_ctx”h]”hŒ aes_cmac_ctx”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj5 ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j: Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j sbŒc.aes_cmac_init”†”asbuh1hhj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj ubjÐ)�”}”(hŒconst struct aes_cmac_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjˆ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjˆ ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj§ h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjˆ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjˆ ubh)�”}”(hhh]”jJ)�”}”(hŒ aes_cmac_key”h]”hŒ aes_cmac_key”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÇ Œmodname”NŒ classname”Nj j)�”}”j]”jT Œc.aes_cmac_init”†”asbuh1hhjˆ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjã h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjˆ ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjñ h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjˆ ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjˆ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÙ h²hh³jë h´Kjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÕ h²hh³jë h´Kjubah}”(h]”jÐ ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jë h´KjhjÒ h²hubjv)�”}”(hhh]”hï)�”}”(hŒ1Start computing an AES-CMAC or AES-XCBC-MAC value”h]”hŒ1Start computing an AES-CMAC or AES-XCBC-MAC value”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Kjhj%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÒ h²hh³jë h´Kjubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j@j™j@jš‰j›‰jœ‰uh1jh²hhhÝh³Nh´Nubjž)�”}”(hX+**Parameters** ``struct aes_cmac_ctx *ctx`` (output) The context to initialize ``const struct aes_cmac_key *key`` The key to use. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context. **Description** This supports both AES-CMAC and AES-XCBC-MAC. Which one is done depends on whether aes_cmac_preparekey() or aes_xcbcmac_preparekey() was called. The caller should ensure that the context is zeroized at the end of its lifetime, e.g. by calling aes_cmac_final() or aes_cmac_zeroize_ctx().”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjJh]”hŒ Parameters”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KnhjDubjì)�”}”(hhh]”(jñ)�”}”(hŒ@``struct aes_cmac_ctx *ctx`` (output) The context to initialize ”h]”(j÷)�”}”(hŒ``struct aes_cmac_ctx *ctx``”h]”jý)�”}”(hjih]”hŒstruct aes_cmac_ctx *ctx”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Kkhjcubj)�”}”(hhh]”hï)�”}”(hŒ"(output) The context to initialize”h]”hŒ"(output) The context to initialize”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j~h´Kkhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j~h´Kkhj`ubjñ)�”}”(hŒ¢``const struct aes_cmac_key *key`` The key to use. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context. ”h]”(j÷)�”}”(hŒ"``const struct aes_cmac_key *key``”h]”jý)�”}”(hj¢h]”hŒconst struct aes_cmac_key *key”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Kmhjœubj)�”}”(hhh]”hï)�”}”(hŒ~The key to use. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context.”h]”hŒ~The key to use. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context.”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Klhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j·h´Kmhj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjDubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÞh]”hŒ Description”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KohjDubhï)�”}”(hŒ‘This supports both AES-CMAC and AES-XCBC-MAC. Which one is done depends on whether aes_cmac_preparekey() or aes_xcbcmac_preparekey() was called.”h]”hŒ‘This supports both AES-CMAC and AES-XCBC-MAC. Which one is done depends on whether aes_cmac_preparekey() or aes_xcbcmac_preparekey() was called.”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KnhjDubhï)�”}”(hŒ�The caller should ensure that the context is zeroized at the end of its lifetime, e.g. by calling aes_cmac_final() or aes_cmac_zeroize_ctx().”h]”hŒ�The caller should ensure that the context is zeroized at the end of its lifetime, e.g. by calling aes_cmac_final() or aes_cmac_zeroize_ctx().”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KqhjDubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œaes_cmac_update (C function)”Œc.aes_cmac_update”hNt”auh1hþhhÝh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒPvoid aes_cmac_update (struct aes_cmac_ctx *ctx, const u8 *data, size_t data_len)”h]”j)�”}”(hŒOvoid aes_cmac_update(struct aes_cmac_ctx *ctx, const u8 *data, size_t data_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj.h²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K|ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj.h²hh³j@h´K|ubjD)�”}”(hŒaes_cmac_update”h]”jJ)�”}”(hŒaes_cmac_update”h]”hŒaes_cmac_update”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjOubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj.h²hh³j@h´K|ubjÊ)�”}”(hŒ;(struct aes_cmac_ctx *ctx, const u8 *data, size_t data_len)”h]”(jÐ)�”}”(hŒstruct aes_cmac_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjkubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjkubh)�”}”(hhh]”jJ)�”}”(hŒ aes_cmac_ctx”h]”hŒ aes_cmac_ctx”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŠubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jUsbŒc.aes_cmac_update”†”asbuh1hhjkubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjkubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjkubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjkubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjgubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÝubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÝubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjüubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j©Œc.aes_cmac_update”†”asbuh1hhjÝubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÝubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÝubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÝubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjgubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjQubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jVŒmodname”NŒ classname”Nj j)�”}”j]”j©Œc.aes_cmac_update”†”asbuh1hhjMubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjMubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjMubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjgubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj.h²hh³j@h´K|ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj*h²hh³j@h´K|ubah}”(h]”j%ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j@h´K|hj'h²hubjv)�”}”(hhh]”hï)�”}”(hŒ9Update an AES-CMAC or AES-XCBC-MAC context with more data”h]”hŒ9Update an AES-CMAC or AES-XCBC-MAC context with more data”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K|hj§h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj'h²hh³j@h´K|ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÂj™jÂjš‰j›‰jœ‰uh1jh²hhhÝh³Nh´Nubjž)�”}”(hX0**Parameters** ``struct aes_cmac_ctx *ctx`` The context to update; must have been initialized ``const u8 *data`` The message data ``size_t data_len`` The data length in bytes. Doesn't need to be block-aligned. **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÌh]”hŒ Parameters”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K€hjÆubjì)�”}”(hhh]”(jñ)�”}”(hŒO``struct aes_cmac_ctx *ctx`` The context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct aes_cmac_ctx *ctx``”h]”jý)�”}”(hjëh]”hŒstruct aes_cmac_ctx *ctx”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K}hjåubj)�”}”(hhh]”hï)�”}”(hŒ1The context to update; must have been initialized”h]”hŒ1The context to update; must have been initialized”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´K}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´K}hjâubjñ)�”}”(hŒ$``const u8 *data`` The message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj$h]”hŒconst u8 *data”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K~hjubj)�”}”(hhh]”hï)�”}”(hŒThe message data”h]”hŒThe message data”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j9h´K~hj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j9h´K~hjâubjñ)�”}”(hŒQ``size_t data_len`` The data length in bytes. Doesn't need to be block-aligned. ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj]h]”hŒsize_t data_len”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KhjWubj)�”}”(hhh]”hï)�”}”(hŒThe data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jrh´Khjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jrh´Khjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÆubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj˜h]”hŒ Description”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K�hjÆubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K€hjÆubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj¿h]”hŒContext”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K‚hjÆubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KƒhjÆubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œaes_cmac_final (C function)”Œc.aes_cmac_final”hNt”auh1hþhhÝh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒMvoid aes_cmac_final (struct aes_cmac_ctx *ctx, u8 out[static AES_BLOCK_SIZE])”h]”j)�”}”(hŒLvoid aes_cmac_final(struct aes_cmac_ctx *ctx, u8 out[static AES_BLOCK_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjh²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Kˆubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjh²hh³jh´KˆubjD)�”}”(hŒaes_cmac_final”h]”jJ)�”}”(hŒaes_cmac_final”h]”hŒaes_cmac_final”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj!ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjh²hh³jh´KˆubjÊ)�”}”(hŒ9(struct aes_cmac_ctx *ctx, u8 out[static AES_BLOCK_SIZE])”h]”(jÐ)�”}”(hŒstruct aes_cmac_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj=ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj=ubh)�”}”(hhh]”jJ)�”}”(hŒ aes_cmac_ctx”h]”hŒ aes_cmac_ctx”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj\ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jaŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j'sbŒc.aes_cmac_final”†”asbuh1hhj=ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj=ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj=ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj9ubjÐ)�”}”(hŒu8 out[static AES_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj³ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¸Œmodname”NŒ classname”Nj j)�”}”j]”j{Œc.aes_cmac_final”†”asbuh1hhj¯ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¯ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¯ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¯ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¯ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¯ubh)�”}”(hhh]”jJ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j{Œc.aes_cmac_final”†”asbuh1hhj¯ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¯ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjh²hh³jh´Kˆubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjüh²hh³jh´Kˆubah}”(h]”j÷ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jh´Kˆhjùh²hubjv)�”}”(hhh]”hï)�”}”(hŒ2Finish computing an AES-CMAC or AES-XCBC-MAC value”h]”hŒ2Finish computing an AES-CMAC or AES-XCBC-MAC value”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Kˆhj_h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjùh²hh³jh´Kˆubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jzj™jzjš‰j›‰jœ‰uh1jh²hhhÝh³Nh´Nubjž)�”}”(hX**Parameters** ``struct aes_cmac_ctx *ctx`` The context to finalize; must have been initialized ``u8 out[static AES_BLOCK_SIZE]`` (output) The resulting MAC **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj„h]”hŒ Parameters”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KŒhj~ubjì)�”}”(hhh]”(jñ)�”}”(hŒQ``struct aes_cmac_ctx *ctx`` The context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct aes_cmac_ctx *ctx``”h]”jý)�”}”(hj£h]”hŒstruct aes_cmac_ctx *ctx”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K‰hj�ubj)�”}”(hhh]”hï)�”}”(hŒ3The context to finalize; must have been initialized”h]”hŒ3The context to finalize; must have been initialized”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¸h´K‰hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¸h´K‰hjšubjñ)�”}”(hŒ=``u8 out[static AES_BLOCK_SIZE]`` (output) The resulting MAC ”h]”(j÷)�”}”(hŒ!``u8 out[static AES_BLOCK_SIZE]``”h]”jý)�”}”(hjÜh]”hŒu8 out[static AES_BLOCK_SIZE]”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KŠhjÖubj)�”}”(hhh]”hï)�”}”(hŒ(output) The resulting MAC”h]”hŒ(output) The resulting MAC”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jñh´KŠhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jñh´KŠhjšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj~ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KŒhj~ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj-h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj-ubhŒ(. So the caller does not need to do it.”…”�”}”(hj-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K‹hj~ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjPh]”hŒContext”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1hî•h³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K�hj~ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´KŽhj~ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œaes_cmac (C function)”Œ c.aes_cmac”hNt”auh1hþhhÝh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒnvoid aes_cmac (const struct aes_cmac_key *key, const u8 *data, size_t data_len, u8 out[static AES_BLOCK_SIZE])”h]”j)�”}”(hŒmvoid aes_cmac(const struct aes_cmac_key *key, const u8 *data, size_t data_len, u8 out[static AES_BLOCK_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj‘h²hh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K“ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‘h²hh³j£h´K“ubjD)�”}”(hŒaes_cmac”h]”jJ)�”}”(hŒaes_cmac”h]”hŒaes_cmac”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj²ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj‘h²hh³j£h´K“ubjÊ)�”}”(hŒ`(const struct aes_cmac_key *key, const u8 *data, size_t data_len, u8 out[static AES_BLOCK_SIZE])”h]”(jÐ)�”}”(hŒconst struct aes_cmac_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÎubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÎubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÎubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÎubh)�”}”(hhh]”jJ)�”}”(hŒ aes_cmac_key”h]”hŒ aes_cmac_key”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j¸sbŒ c.aes_cmac”†”asbuh1hhjÎubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÎubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÎubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÎubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj[ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj[ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j'Œ c.aes_cmac”†”asbuh1hhj[ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj[ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj[ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj[ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÏubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÔŒmodname”NŒ classname”Nj j)�”}”j]”j'Œ c.aes_cmac”†”asbuh1hhjËubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjËubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjËubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊubjÐ)�”}”(hŒu8 out[static AES_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j'Œ c.aes_cmac”†”asbuh1hhjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubh)�”}”(hhh]”jJ)�”}”(hŒAES_BLOCK_SIZE”h]”hŒAES_BLOCK_SIZE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�Œmodname”NŒ classname”Nj j)�”}”j]”j'Œ c.aes_cmac”†”asbuh1hhjubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj‘h²hh³j£h´K“ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj�h²hh³j£h´K“ubah}”(h]”jˆah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j£h´K“hjŠh²hubjv)�”}”(hhh]”hï)�”}”(hŒ,Compute AES-CMAC or AES-XCBC-MAC in one shot”h]”hŒ,Compute AES-CMAC or AES-XCBC-MAC in one shot”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K“hjÃh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjŠh²hh³j£h´K“ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÞj™jÞjš‰j›‰jœ‰uh1jh²hhhÝh³Nh´Nubjž)�”}”(hX´**Parameters** ``const struct aes_cmac_key *key`` The key to use ``const u8 *data`` The message data ``size_t data_len`` The data length in bytes ``u8 out[static AES_BLOCK_SIZE]`` (output) The resulting AES-CMAC or AES-XCBC-MAC value **Description** This supports both AES-CMAC and AES-XCBC-MAC. Which one is done depends on whether aes_cmac_preparekey() or aes_xcbcmac_preparekey() was called. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjèh]”hŒ Parameters”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjæubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K—hjâubjì)�”}”(hhh]”(jñ)�”}”(hŒ2``const struct aes_cmac_key *key`` The key to use ”h]”(j÷)�”}”(hŒ"``const struct aes_cmac_key *key``”h]”jý)�”}”(hjh]”hŒconst struct aes_cmac_key *key”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K”hjubj)�”}”(hhh]”hï)�”}”(hŒThe key to use”h]”hŒThe key to use”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´K”hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´K”hjþubjñ)�”}”(hŒ$``const u8 *data`` The message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj@h]”hŒconst u8 *data”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K•hj:ubj)�”}”(hhh]”hï)�”}”(hŒThe message data”h]”hŒThe message data”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jUh´K•hjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jUh´K•hjþubjñ)�”}”(hŒ-``size_t data_len`` The data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjyh]”hŒsize_t data_len”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K–hjsubj)�”}”(hhh]”hï)�”}”(hŒThe data length in bytes”h]”hŒThe data length in bytes”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŽh´K–hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŽh´K–hjþubjñ)�”}”(hŒX``u8 out[static AES_BLOCK_SIZE]`` (output) The resulting AES-CMAC or AES-XCBC-MAC value ”h]”(j÷)�”}”(hŒ!``u8 out[static AES_BLOCK_SIZE]``”h]”jý)�”}”(hj²h]”hŒu8 out[static AES_BLOCK_SIZE]”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K—hj¬ubj)�”}”(hhh]”hï)�”}”(hŒ5(output) The resulting AES-CMAC or AES-XCBC-MAC value”h]”hŒ5(output) The resulting AES-CMAC or AES-XCBC-MAC value”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÇh´K—hjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÇh´K—hjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjâubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjíh]”hŒ Description”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K™hjâubhï)�”}”(hŒ‘This supports both AES-CMAC and AES-XCBC-MAC. Which one is done depends on whether aes_cmac_preparekey() or aes_xcbcmac_preparekey() was called.”h]”hŒ‘This supports both AES-CMAC and AES-XCBC-MAC. Which one is done depends on whether aes_cmac_preparekey() or aes_xcbcmac_preparekey() was called.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K˜hjâubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjh]”hŒContext”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´K›hjâubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œc/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:12: ./include/crypto/aes-cbc-macs.h”h´Kœhjâubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hhÝh²hh³Nh´Nubeh}”(h]”Œaes-cmac-and-aes-xcbc-mac”ah ]”h"]”Œaes-cmac and aes-xcbc-mac”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒBLAKE2b”h]”hŒBLAKE2b”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjHh²hh³hÇh´Kubhï)�”}”(hŒFThis API provides support for the BLAKE2b cryptographic hash function.”h]”hŒFThis API provides support for the BLAKE2b cryptographic hash function.”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhjHh²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2b_ctx (C struct)”Œ c.blake2b_ctx”hNt”auh1hþhjHh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ blake2b_ctx”h]”j)�”}”(hŒstruct blake2b_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj|h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj|h²hh³j�h´KubjD)�”}”(hŒ blake2b_ctx”h]”jJ)�”}”(hjzh]”hŒ blake2b_ctx”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjœubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj|h²hh³j�h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjxh²hh³j�h´Kubah}”(h]”jsah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j�h´Khjuh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Context for hashing a message with BLAKE2b”h]”hŒ*Context for hashing a message with BLAKE2b”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Khj¿h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjuh²hh³j�h´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jÚj™jÚjš‰j›‰jœ‰uh1jh²hhjHh³Nh´Nubjž)�”}”(hX×**Definition**:: struct blake2b_ctx { u64 h[8]; u64 t[2]; u64 f[2]; u8 buf[BLAKE2B_BLOCK_SIZE]; unsigned int buflen; unsigned int outlen; }; **Members** ``h`` compression function state ``t`` block counter ``f`` finalization indicator ``buf`` partial block buffer; 'buflen' bytes are valid ``buflen`` number of bytes buffered in **buf** ``outlen`` length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjâubhŒ:”…”�”}”(hjâh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KhjÞubjÃ)�”}”(hŒ“struct blake2b_ctx { u64 h[8]; u64 t[2]; u64 f[2]; u8 buf[BLAKE2B_BLOCK_SIZE]; unsigned int buflen; unsigned int outlen; };”h]”hŒ“struct blake2b_ctx { u64 h[8]; u64 t[2]; u64 f[2]; u8 buf[BLAKE2B_BLOCK_SIZE]; unsigned int buflen; unsigned int outlen; };”…”�”}”hjÿsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KhjÞubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjh]”hŒMembers”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K%hjÞubjì)�”}”(hhh]”(jñ)�”}”(hŒ!``h`` compression function state ”h]”(j÷)�”}”(hŒ``h``”h]”jý)�”}”(hj/h]”hŒh”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Khj)ubj)�”}”(hhh]”hï)�”}”(hŒcompression function state”h]”hŒcompression function state”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jDh´KhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jDh´Khj&ubjñ)�”}”(hŒ``t`` block counter ”h]”(j÷)�”}”(hŒ``t``”h]”jý)�”}”(hjhh]”hŒt”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Khjbubj)�”}”(hhh]”hï)�”}”(hŒ block counter”h]”hŒ block counter”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j}h´Khj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjbubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j}h´Khj&ubjñ)�”}”(hŒ``f`` finalization indicator ”h]”(j÷)�”}”(hŒ``f``”h]”jý)�”}”(hj¡h]”hŒf”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Khj›ubj)�”}”(hhh]”hï)�”}”(hŒfinalization indicator”h]”hŒfinalization indicator”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¶h´Khj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj›ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¶h´Khj&ubjñ)�”}”(hŒ7``buf`` partial block buffer; 'buflen' bytes are valid ”h]”(j÷)�”}”(hŒ``buf``”h]”jý)�”}”(hjÚh]”hŒbuf”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KhjÔubj)�”}”(hhh]”hï)�”}”(hŒ.partial block buffer; 'buflen' bytes are valid”h]”hŒ2partial block buffer; ‘buflen’ bytes are valid”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jïh´Khjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jïh´Khj&ubjñ)�”}”(hŒ/``buflen`` number of bytes buffered in **buf** ”h]”(j÷)�”}”(hŒ ``buflen``”h]”jý)�”}”(hjh]”hŒbuflen”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Khj ubj)�”}”(hhh]”hï)�”}”(hŒ#number of bytes buffered in **buf**”h]”(hŒnumber of bytes buffered in ”…”�”}”(hj,h²hh³Nh´Nubj¨)�”}”(hŒ**buf**”h]”hŒbuf”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j(h´Khj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j(h´Khj&ubjñ)�”}”(hŒJ``outlen`` length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”h]”(j÷)�”}”(hŒ ``outlen``”h]”jý)�”}”(hjZh]”hŒoutlen”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KhjTubj)�”}”(hhh]”hï)�”}”(hŒ?length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”h]”hŒ?length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Khjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³joh´Khj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÞubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjHh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2b_init (C function)”Œc.blake2b_init”hNt”auh1hþhjHh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void blake2b_init (struct blake2b_ctx *ctx, size_t outlen)”h]”j)�”}”(hŒ9void blake2b_init(struct blake2b_ctx *ctx, size_t outlen)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj°h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KLubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj°h²hh³jÂh´KLubjD)�”}”(hŒ blake2b_init”h]”jJ)�”}”(hŒ blake2b_init”h]”hŒ blake2b_init”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÑubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj°h²hh³jÂh´KLubjÊ)�”}”(hŒ((struct blake2b_ctx *ctx, size_t outlen)”h]”(jÐ)�”}”(hŒstruct blake2b_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjíubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjíubh)�”}”(hhh]”jJ)�”}”(hŒ blake2b_ctx”h]”hŒ blake2b_ctx”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j×sbŒc.blake2b_init”†”asbuh1hhjíubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjíubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjíubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjíubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjéubjÐ)�”}”(hŒ size_t outlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjcubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jhŒmodname”NŒ classname”Nj j)�”}”j]”j+Œc.blake2b_init”†”asbuh1hhj_ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj_ubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjéubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj°h²hh³jÂh´KLubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¬h²hh³jÂh´KLubah}”(h]”j§ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÂh´KLhj©h²hubjv)�”}”(hhh]”hï)�”}”(hŒ8Initialize a BLAKE2b context for a new message (unkeyed)”h]”hŒ8Initialize a BLAKE2b context for a new message (unkeyed)”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KLhj¹h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj©h²hh³jÂh´KLubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÔj™jÔjš‰j›‰jœ‰uh1jh²hhjHh³Nh´Nubjž)�”}”(hŒ·**Parameters** ``struct blake2b_ctx *ctx`` the context to initialize ``size_t outlen`` length of output hash value in bytes, at most BLAKE2B_HASH_SIZE **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÞh]”hŒ Parameters”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KPhjØubjì)�”}”(hhh]”(jñ)�”}”(hŒ6``struct blake2b_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct blake2b_ctx *ctx``”h]”jý)�”}”(hjýh]”hŒstruct blake2b_ctx *ctx”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KMhj÷ubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´KMhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´KMhjôubjñ)�”}”(hŒR``size_t outlen`` length of output hash value in bytes, at most BLAKE2B_HASH_SIZE ”h]”(j÷)�”}”(hŒ``size_t outlen``”h]”jý)�”}”(hj6h]”hŒ size_t outlen”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KNhj0ubj)�”}”(hhh]”hï)�”}”(hŒ?length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”h]”hŒ?length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jKh´KNhjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jKh´KNhjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjØubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjqh]”hŒContext”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KPhjØubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KPhjØubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjHh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2b_init_key (C function)”Œc.blake2b_init_key”hNt”auh1hþhjHh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ^void blake2b_init_key (struct blake2b_ctx *ctx, size_t outlen, const void *key, size_t keylen)”h]”j)�”}”(hŒ]void blake2b_init_key(struct blake2b_ctx *ctx, size_t outlen, const void *key, size_t keylen)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj²h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KXubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj²h²hh³jÄh´KXubjD)�”}”(hŒblake2b_init_key”h]”jJ)�”}”(hŒblake2b_init_key”h]”hŒblake2b_init_key”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÓubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj²h²hh³jÄh´KXubjÊ)�”}”(hŒH(struct blake2b_ctx *ctx, size_t outlen, const void *key, size_t keylen)”h]”(jÐ)�”}”(hŒstruct blake2b_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjïubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjïubh)�”}”(hhh]”jJ)�”}”(hŒ blake2b_ctx”h]”hŒ blake2b_ctx”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÙsbŒc.blake2b_init_key”†”asbuh1hhjïubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjïubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjïubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjëubjÐ)�”}”(hŒ size_t outlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjeubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jjŒmodname”NŒ classname”Nj j)�”}”j]”j-Œc.blake2b_init_key”†”asbuh1hhjaubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjaubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjëubjÐ)�”}”(hŒconst void *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj©ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj©ubj’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj©ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj©ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj©ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj©ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjëubjÐ)�”}”(hŒ size_t keylen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j-Œc.blake2b_init_key”†”asbuh1hhjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubjJ)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjëubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj²h²hh³jÄh´KXubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj®h²hh³jÄh´KXubah}”(h]”j©ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÄh´KXhj«h²hubjv)�”}”(hhh]”hï)�”}”(hŒ6Initialize a BLAKE2b context for a new message (keyed)”h]”hŒ6Initialize a BLAKE2b context for a new message (keyed)”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KXhj`h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj«h²hh³jÄh´KXubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j{j™j{jš‰j›‰jœ‰uh1jh²hhjHh³Nh´Nubjž)�”}”(hX**Parameters** ``struct blake2b_ctx *ctx`` the context to initialize ``size_t outlen`` length of output hash value in bytes, at most BLAKE2B_HASH_SIZE ``const void *key`` the key ``size_t keylen`` the key length in bytes, at most BLAKE2B_KEY_SIZE **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj…h]”hŒ Parameters”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K\hjubjì)�”}”(hhh]”(jñ)�”}”(hŒ6``struct blake2b_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct blake2b_ctx *ctx``”h]”jý)�”}”(hj¤h]”hŒstruct blake2b_ctx *ctx”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KYhjžubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¹h´KYhjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjžubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¹h´KYhj›ubjñ)�”}”(hŒR``size_t outlen`` length of output hash value in bytes, at most BLAKE2B_HASH_SIZE ”h]”(j÷)�”}”(hŒ``size_t outlen``”h]”jý)�”}”(hjÝh]”hŒ size_t outlen”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KZhj×ubj)�”}”(hhh]”hï)�”}”(hŒ?length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”h]”hŒ?length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jòh´KZhjóubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jòh´KZhj›ubjñ)�”}”(hŒ``const void *key`` the key ”h]”(j÷)�”}”(hŒ``const void *key``”h]”jý)�”}”(hjh]”hŒconst void *key”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K[hjubj)�”}”(hhh]”hï)�”}”(hŒthe key”h]”hŒthe key”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j+h´K[hj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j+h´K[hj›ubjñ)�”}”(hŒD``size_t keylen`` the key length in bytes, at most BLAKE2B_KEY_SIZE ”h]”(j÷)�”}”(hŒ``size_t keylen``”h]”jý)�”}”(hjOh]”hŒ size_t keylen”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K\hjIubj)�”}”(hhh]”hï)�”}”(hŒ1the key length in bytes, at most BLAKE2B_KEY_SIZE”h]”hŒ1the key length in bytes, at most BLAKE2B_KEY_SIZE”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jdh´K\hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jdh´K\hj›ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjŠh]”hŒContext”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K^hjubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K^hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjHh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2b_update (C function)”Œc.blake2b_update”hNt”auh1hþhjHh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒIvoid blake2b_update (struct blake2b_ctx *ctx, const u8 *in, size_t inlen)”h]”j)�”}”(hŒHvoid blake2b_update(struct blake2b_ctx *ctx, const u8 *in, size_t inlen)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjËh²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjËh²hh³jÝh´KjubjD)�”}”(hŒblake2b_update”h]”jJ)�”}”(hŒblake2b_update”h]”hŒblake2b_update”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjìubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjËh²hh³jÝh´KjubjÊ)�”}”(hŒ5(struct blake2b_ctx *ctx, const u8 *in, size_t inlen)”h]”(jÐ)�”}”(hŒstruct blake2b_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ubh)�”}”(hhh]”jJ)�”}”(hŒ blake2b_ctx”h]”hŒ blake2b_ctx”…”�”}”(hj* h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj' ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j, Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jòsbŒc.blake2b_update”†”asbuh1hhj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj ubjÐ)�”}”(hŒ const u8 *in”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjz ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjz ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj™ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jž Œmodname”NŒ classname”Nj j)�”}”j]”jF Œc.blake2b_update”†”asbuh1hhjz ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjz ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjz ubjJ)�”}”(hŒin”h]”hŒin”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjz ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj ubjÐ)�”}”(hŒ size_t inlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjñ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjî ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jó Œmodname”NŒ classname”Nj j)�”}”j]”jF Œc.blake2b_update”†”asbuh1hhjê ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjê ubjJ)�”}”(hŒinlen”h]”hŒinlen”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjê ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjËh²hh³jÝh´Kjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÇh²hh³jÝh´Kjubah}”(h]”jÂah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÝh´KjhjÄh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a BLAKE2b context with message data”h]”hŒ*Update a BLAKE2b context with message data”…”�”}”(hjG!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KjhjD!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÄh²hh³jÝh´Kjubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j_!j™j_!jš‰j›‰jœ‰uh1jh²hhjHh³Nh´Nubjž)�”}”(hX**Parameters** ``struct blake2b_ctx *ctx`` the context to update; must have been initialized ``const u8 *in`` the message data ``size_t inlen`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hji!h]”hŒ Parameters”…”�”}”(hjk!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjg!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Knhjc!ubjì)�”}”(hhh]”(jñ)�”}”(hŒN``struct blake2b_ctx *ctx`` the context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct blake2b_ctx *ctx``”h]”jý)�”}”(hjˆ!h]”hŒstruct blake2b_ctx *ctx”…”�”}”(hjŠ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj†!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kkhj‚!ubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hj¡!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�!h´Kkhjž!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‚!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�!h´Kkhj!ubjñ)�”}”(hŒ"``const u8 *in`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *in``”h]”jý)�”}”(hjÁ!h]”hŒ const u8 *in”…”�”}”(hjÃ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¿!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Klhj»!ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjÚ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÖ!h´Klhj×!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj»!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÖ!h´Klhj!ubjñ)�”}”(hŒ*``size_t inlen`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t inlen``”h]”jý)�”}”(hjú!h]”hŒ size_t inlen”…”�”}”(hjü!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjø!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kmhjô!ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j"h´Kmhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjô!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j"h´Kmhj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjc!ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj5"h]”hŒ Description”…”�”}”(hj7"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj3"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kohjc!ubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hjK"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Knhjc!ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj\"h]”hŒContext”…”�”}”(hj^"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjZ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kphjc!ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjr"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kqhjc!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjHh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2b_final (C function)”Œc.blake2b_final”hNt”auh1hþhjHh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ5void blake2b_final (struct blake2b_ctx *ctx, u8 *out)”h]”j)�”}”(hŒ4void blake2b_final(struct blake2b_ctx *ctx, u8 *out)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¡"h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj�"h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kvubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°"h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�"h²hh³j¯"h´KvubjD)�”}”(hŒ blake2b_final”h]”jJ)�”}”(hŒ blake2b_final”h]”hŒ blake2b_final”…”�”}”(hjÂ"h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¾"ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj�"h²hh³j¯"h´KvubjÊ)�”}”(hŒ"(struct blake2b_ctx *ctx, u8 *out)”h]”(jÐ)�”}”(hŒstruct blake2b_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÞ"h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÚ"ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë"h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚ"ubh)�”}”(hhh]”jJ)�”}”(hŒ blake2b_ctx”h]”hŒ blake2b_ctx”…”�”}”(hjü"h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjù"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jþ"Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÄ"sbŒc.blake2b_final”†”asbuh1hhjÚ"ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚ"ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj*#h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÚ"ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj7#h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÚ"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÖ"ubjÐ)�”}”(hŒu8 *out”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjS#h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjP#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jU#Œmodname”NŒ classname”Nj j)�”}”j]”j#Œc.blake2b_final”†”asbuh1hhjL#ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq#h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjL#ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjL#ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjŒ#h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjL#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÖ"ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj�"h²hh³j¯"h´Kvubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj™"h²hh³j¯"h´Kvubah}”(h]”j”"ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¯"h´Kvhj–"h²hubjv)�”}”(hhh]”hï)�”}”(hŒFinish computing a BLAKE2b hash”h]”hŒFinish computing a BLAKE2b hash”…”�”}”(hj¶#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kvhj³#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj–"h²hh³j¯"h´Kvubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÎ#j™jÎ#jš‰j›‰jœ‰uh1jh²hhjHh³Nh´Nubjž)�”}”(hXx**Parameters** ``struct blake2b_ctx *ctx`` the context to finalize; must have been initialized ``u8 *out`` (output) the resulting BLAKE2b hash. Its length will be equal to the **outlen** that was passed to blake2b_init() or blake2b_init_key(). **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjØ#h]”hŒ Parameters”…”�”}”(hjÚ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÖ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KzhjÒ#ubjì)�”}”(hhh]”(jñ)�”}”(hŒP``struct blake2b_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct blake2b_ctx *ctx``”h]”jý)�”}”(hj÷#h]”hŒstruct blake2b_ctx *ctx”…”�”}”(hjù#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjõ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kwhjñ#ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j $h´Kwhj $ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjñ#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j $h´Kwhjî#ubjñ)�”}”(hŒ–``u8 *out`` (output) the resulting BLAKE2b hash. Its length will be equal to the **outlen** that was passed to blake2b_init() or blake2b_init_key(). ”h]”(j÷)�”}”(hŒ ``u8 *out``”h]”jý)�”}”(hj0$h]”hŒu8 *out”…”�”}”(hj2$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj.$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kyhj*$ubj)�”}”(hhh]”hï)�”}”(hŒ‰(output) the resulting BLAKE2b hash. Its length will be equal to the **outlen** that was passed to blake2b_init() or blake2b_init_key().”h]”(hŒF(output) the resulting BLAKE2b hash. Its length will be equal to the ”…”�”}”(hjI$h²hh³Nh´Nubj¨)�”}”(hŒ **outlen**”h]”hŒoutlen”…”�”}”(hjQ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjI$ubhŒ9 that was passed to blake2b_init() or blake2b_init_key().”…”�”}”(hjI$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KxhjF$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jE$h´Kyhjî#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÒ#ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj~$h]”hŒ Description”…”�”}”(hj€$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj|$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K{hjÒ#ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj”$h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjœ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj”$ubhŒ(. So the caller does not need to do it.”…”�”}”(hj”$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KzhjÒ#ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj·$h]”hŒContext”…”�”}”(hj¹$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjµ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K|hjÒ#ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÍ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K}hjÒ#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjHh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2b (C function)”Œ c.blake2b”hNt”auh1hþhjHh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ_void blake2b (const u8 *key, size_t keylen, const u8 *in, size_t inlen, u8 *out, size_t outlen)”h]”j)�”}”(hŒ^void blake2b(const u8 *key, size_t keylen, const u8 *in, size_t inlen, u8 *out, size_t outlen)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjü$h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjø$h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K‚ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjø$h²hh³j %h´K‚ubjD)�”}”(hŒblake2b”h]”jJ)�”}”(hŒblake2b”h]”hŒblake2b”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj%ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjø$h²hh³j %h´K‚ubjÊ)�”}”(hŒR(const u8 *key, size_t keylen, const u8 *in, size_t inlen, u8 *out, size_t outlen)”h]”(jÐ)�”}”(hŒ const u8 *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj9%h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj5%ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjF%h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj5%ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjW%h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjT%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jY%Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j%sbŒ c.blake2b”†”asbuh1hhj5%ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw%h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj5%ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj…%h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj5%ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj’%h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj5%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1%ubjÐ)�”}”(hŒ size_t keylen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj®%h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j°%Œmodname”NŒ classname”Nj j)�”}”j]”js%Œ c.blake2b”†”asbuh1hhj§%ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌ%h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj§%ubjJ)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hjÚ%h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj§%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1%ubjÐ)�”}”(hŒ const u8 *in”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjó%h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjï%ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjï%ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j&Œmodname”NŒ classname”Nj j)�”}”j]”js%Œ c.blake2b”†”asbuh1hhjï%ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/&h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjï%ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj=&h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjï%ubjJ)�”}”(hŒin”h]”hŒin”…”�”}”(hjJ&h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjï%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1%ubjÐ)�”}”(hŒ size_t inlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjf&h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjc&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jh&Œmodname”NŒ classname”Nj j)�”}”j]”js%Œ c.blake2b”†”asbuh1hhj_&ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„&h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj_&ubjJ)�”}”(hŒinlen”h]”hŒinlen”…”�”}”(hj’&h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj_&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1%ubjÐ)�”}”(hŒu8 *out”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj®&h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j°&Œmodname”NŒ classname”Nj j)�”}”j]”js%Œ c.blake2b”†”asbuh1hhj§&ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌ&h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj§&ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÚ&h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj§&ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjç&h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj§&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1%ubjÐ)�”}”(hŒ size_t outlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j'Œmodname”NŒ classname”Nj j)�”}”j]”js%Œ c.blake2b”†”asbuh1hhjü&ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!'h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjü&ubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hj/'h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjü&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1%ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjø$h²hh³j %h´K‚ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjô$h²hh³j %h´K‚ubah}”(h]”jï$ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j %h´K‚hjñ$h²hubjv)�”}”(hhh]”hï)�”}”(hŒ Compute BLAKE2b hash in one shot”h]”hŒ Compute BLAKE2b hash in one shot”…”�”}”(hjY'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K‚hjV'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjñ$h²hh³j %h´K‚ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jq'j™jq'jš‰j›‰jœ‰uh1jh²hhjHh³Nh´Nubjž)�”}”(hX¹**Parameters** ``const u8 *key`` the key, or NULL for an unkeyed hash ``size_t keylen`` the key length in bytes (at most BLAKE2B_KEY_SIZE), or 0 for an unkeyed hash ``const u8 *in`` the message data ``size_t inlen`` the data length in bytes ``u8 *out`` (output) the resulting BLAKE2b hash, with length **outlen** ``size_t outlen`` length of output hash value in bytes, at most BLAKE2B_HASH_SIZE **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj{'h]”hŒ Parameters”…”�”}”(hj}'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjy'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K†hju'ubjì)�”}”(hhh]”(jñ)�”}”(hŒ7``const u8 *key`` the key, or NULL for an unkeyed hash ”h]”(j÷)�”}”(hŒ``const u8 *key``”h]”jý)�”}”(hjš'h]”hŒ const u8 *key”…”�”}”(hjœ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj˜'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kƒhj”'ubj)�”}”(hhh]”hï)�”}”(hŒ$the key, or NULL for an unkeyed hash”h]”hŒ$the key, or NULL for an unkeyed hash”…”�”}”(hj³'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¯'h´Kƒhj°'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¯'h´Kƒhj‘'ubjñ)�”}”(hŒ_``size_t keylen`` the key length in bytes (at most BLAKE2B_KEY_SIZE), or 0 for an unkeyed hash ”h]”(j÷)�”}”(hŒ``size_t keylen``”h]”jý)�”}”(hjÓ'h]”hŒ size_t keylen”…”�”}”(hjÕ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÑ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K…hjÍ'ubj)�”}”(hhh]”hï)�”}”(hŒLthe key length in bytes (at most BLAKE2B_KEY_SIZE), or 0 for an unkeyed hash”h]”hŒLthe key length in bytes (at most BLAKE2B_KEY_SIZE), or 0 for an unkeyed hash”…”�”}”(hjì'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K„hjé'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jè'h´K…hj‘'ubjñ)�”}”(hŒ"``const u8 *in`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *in``”h]”jý)�”}”(hj (h]”hŒ const u8 *in”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj (ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K†hj(ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj&(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j"(h´K†hj#(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j"(h´K†hj‘'ubjñ)�”}”(hŒ*``size_t inlen`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t inlen``”h]”jý)�”}”(hjF(h]”hŒ size_t inlen”…”�”}”(hjH(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjD(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K‡hj@(ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj_(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j[(h´K‡hj\(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j[(h´K‡hj‘'ubjñ)�”}”(hŒH``u8 *out`` (output) the resulting BLAKE2b hash, with length **outlen** ”h]”(j÷)�”}”(hŒ ``u8 *out``”h]”jý)�”}”(hj(h]”hŒu8 *out”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj}(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kˆhjy(ubj)�”}”(hhh]”hï)�”}”(hŒ;(output) the resulting BLAKE2b hash, with length **outlen**”h]”(hŒ1(output) the resulting BLAKE2b hash, with length ”…”�”}”(hj˜(h²hh³Nh´Nubj¨)�”}”(hŒ **outlen**”h]”hŒoutlen”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj˜(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j”(h´Kˆhj•(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjy(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j”(h´Kˆhj‘'ubjñ)�”}”(hŒR``size_t outlen`` length of output hash value in bytes, at most BLAKE2B_HASH_SIZE ”h]”(j÷)�”}”(hŒ``size_t outlen``”h]”jý)�”}”(hjÆ(h]”hŒ size_t outlen”…”�”}”(hjÈ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÄ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K‰hjÀ(ubj)�”}”(hhh]”hï)�”}”(hŒ?length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”h]”hŒ?length of output hash value in bytes, at most BLAKE2B_HASH_SIZE”…”�”}”(hjß(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÛ(h´K‰hjÜ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀ(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÛ(h´K‰hj‘'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhju'ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj)h]”hŒContext”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÿ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K‹hju'ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K‹hju'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjHh²hh³Nh´Nubeh}”(h]”Œblake2b”ah ]”h"]”Œblake2b”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒBLAKE2s”h]”hŒBLAKE2s”…”�”}”(hj8)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj5)h²hh³hÇh´Kubhï)�”}”(hŒFThis API provides support for the BLAKE2s cryptographic hash function.”h]”hŒFThis API provides support for the BLAKE2s cryptographic hash function.”…”�”}”(hjF)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj5)h²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s_ctx (C struct)”Œ c.blake2s_ctx”hNt”auh1hþhj5)h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ blake2s_ctx”h]”j)�”}”(hŒstruct blake2s_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjm)h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hji)h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{)h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hji)h²hh³jz)h´KubjD)�”}”(hŒ blake2s_ctx”h]”jJ)�”}”(hjg)h]”hŒ blake2s_ctx”…”�”}”(hj�)h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‰)ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChji)h²hh³jz)h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihje)h²hh³jz)h´Kubah}”(h]”j`)ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jz)h´Khjb)h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Context for hashing a message with BLAKE2s”h]”hŒ*Context for hashing a message with BLAKE2s”…”�”}”(hj¯)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Khj¬)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjb)h²hh³jz)h´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jÇ)j™jÇ)jš‰j›‰jœ‰uh1jh²hhj5)h³Nh´Nubjž)�”}”(hX×**Definition**:: struct blake2s_ctx { u32 h[8]; u32 t[2]; u32 f[2]; u8 buf[BLAKE2S_BLOCK_SIZE]; unsigned int buflen; unsigned int outlen; }; **Members** ``h`` compression function state ``t`` block counter ``f`` finalization indicator ``buf`` partial block buffer; 'buflen' bytes are valid ``buflen`` number of bytes buffered in **buf** ``outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÓ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÏ)ubhŒ:”…”�”}”(hjÏ)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KhjË)ubjÃ)�”}”(hŒ“struct blake2s_ctx { u32 h[8]; u32 t[2]; u32 f[2]; u8 buf[BLAKE2S_BLOCK_SIZE]; unsigned int buflen; unsigned int outlen; };”h]”hŒ“struct blake2s_ctx { u32 h[8]; u32 t[2]; u32 f[2]; u8 buf[BLAKE2S_BLOCK_SIZE]; unsigned int buflen; unsigned int outlen; };”…”�”}”hjì)sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K hjË)ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjý)h]”hŒMembers”…”�”}”(hjÿ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjû)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K)hjË)ubjì)�”}”(hhh]”(jñ)�”}”(hŒ!``h`` compression function state ”h]”(j÷)�”}”(hŒ``h``”h]”jý)�”}”(hj*h]”hŒh”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Khj*ubj)�”}”(hhh]”hï)�”}”(hŒcompression function state”h]”hŒcompression function state”…”�”}”(hj5*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j1*h´Khj2*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j1*h´Khj*ubjñ)�”}”(hŒ``t`` block counter ”h]”(j÷)�”}”(hŒ``t``”h]”jý)�”}”(hjU*h]”hŒt”…”�”}”(hjW*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjS*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KhjO*ubj)�”}”(hhh]”hï)�”}”(hŒ block counter”h]”hŒ block counter”…”�”}”(hjn*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jj*h´Khjk*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjO*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jj*h´Khj*ubjñ)�”}”(hŒ``f`` finalization indicator ”h]”(j÷)�”}”(hŒ``f``”h]”jý)�”}”(hjŽ*h]”hŒf”…”�”}”(hj�*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjŒ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Khjˆ*ubj)�”}”(hhh]”hï)�”}”(hŒfinalization indicator”h]”hŒfinalization indicator”…”�”}”(hj§*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j£*h´Khj¤*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjˆ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j£*h´Khj*ubjñ)�”}”(hŒ7``buf`` partial block buffer; 'buflen' bytes are valid ”h]”(j÷)�”}”(hŒ``buf``”h]”jý)�”}”(hjÇ*h]”hŒbuf”…”�”}”(hjÉ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÅ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KhjÁ*ubj)�”}”(hhh]”hï)�”}”(hŒ.partial block buffer; 'buflen' bytes are valid”h]”hŒ2partial block buffer; ‘buflen’ bytes are valid”…”�”}”(hjà*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÜ*h´KhjÝ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÁ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÜ*h´Khj*ubjñ)�”}”(hŒ/``buflen`` number of bytes buffered in **buf** ”h]”(j÷)�”}”(hŒ ``buflen``”h]”jý)�”}”(hj+h]”hŒbuflen”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjþ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K hjú*ubj)�”}”(hhh]”hï)�”}”(hŒ#number of bytes buffered in **buf**”h]”(hŒnumber of bytes buffered in ”…”�”}”(hj+h²hh³Nh´Nubj¨•)�”}”(hŒ**buf**”h]”hŒbuf”…”�”}”(hj!+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j+h´K hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjú*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j+h´K hj*ubjñ)�”}”(hŒJ``outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”h]”(j÷)�”}”(hŒ ``outlen``”h]”jý)�”}”(hjG+h]”hŒoutlen”…”�”}”(hjI+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjE+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K hjA+ubj)�”}”(hhh]”hï)�”}”(hŒ?length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”h]”hŒ?length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”…”�”}”(hj`+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K!hj]+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjA+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j\+h´K hj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjË)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj5)h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s_init (C function)”Œc.blake2s_init”hNt”auh1hþhj5)h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void blake2s_init (struct blake2s_ctx *ctx, size_t outlen)”h]”j)�”}”(hŒ9void blake2s_init(struct blake2s_ctx *ctx, size_t outlen)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¡+h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj�+h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KPubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�+h²hh³j¯+h´KPubjD)�”}”(hŒ blake2s_init”h]”jJ)�”}”(hŒ blake2s_init”h]”hŒ blake2s_init”…”�”}”(hjÂ+h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¾+ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj�+h²hh³j¯+h´KPubjÊ)�”}”(hŒ((struct blake2s_ctx *ctx, size_t outlen)”h]”(jÐ)�”}”(hŒstruct blake2s_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÞ+h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÚ+ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚ+ubh)�”}”(hhh]”jJ)�”}”(hŒ blake2s_ctx”h]”hŒ blake2s_ctx”…”�”}”(hjü+h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjù+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jþ+Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÄ+sbŒc.blake2s_init”†”asbuh1hhjÚ+ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚ+ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj*,h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÚ+ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj7,h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÚ+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÖ+ubjÐ)�”}”(hŒ size_t outlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjS,h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjP,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jU,Œmodname”NŒ classname”Nj j)�”}”j]”j,Œc.blake2s_init”†”asbuh1hhjL,ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq,h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjL,ubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjL,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÖ+ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj�+h²hh³j¯+h´KPubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj™+h²hh³j¯+h´KPubah}”(h]”j”+ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¯+h´KPhj–+h²hubjv)�”}”(hhh]”hï)�”}”(hŒ8Initialize a BLAKE2s context for a new message (unkeyed)”h]”hŒ8Initialize a BLAKE2s context for a new message (unkeyed)”…”�”}”(hj©,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KPhj¦,h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj–+h²hh³j¯+h´KPubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÁ,j™jÁ,jš‰j›‰jœ‰uh1jh²hhj5)h³Nh´Nubjž)�”}”(hŒ·**Parameters** ``struct blake2s_ctx *ctx`` the context to initialize ``size_t outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjË,h]”hŒ Parameters”…”�”}”(hjÍ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÉ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KThjÅ,ubjì)�”}”(hhh]”(jñ)�”}”(hŒ6``struct blake2s_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct blake2s_ctx *ctx``”h]”jý)�”}”(hjê,h]”hŒstruct blake2s_ctx *ctx”…”�”}”(hjì,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjè,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KQhjä,ubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÿ,h´KQhj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjä,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÿ,h´KQhjá,ubjñ)�”}”(hŒR``size_t outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE ”h]”(j÷)�”}”(hŒ``size_t outlen``”h]”jý)�”}”(hj#-h]”hŒ size_t outlen”…”�”}”(hj%-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj!-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KRhj-ubj)�”}”(hhh]”hï)�”}”(hŒ?length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”h]”hŒ?length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”…”�”}”(hj<-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j8-h´KRhj9-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j8-h´KRhjá,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÅ,ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj^-h]”hŒContext”…”�”}”(hj`-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj\-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KThjÅ,ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjt-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KThjÅ,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj5)h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s_init_key (C function)”Œc.blake2s_init_key”hNt”auh1hþhj5)h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ^void blake2s_init_key (struct blake2s_ctx *ctx, size_t outlen, const void *key, size_t keylen)”h]”j)�”}”(hŒ]void blake2s_init_key(struct blake2s_ctx *ctx, size_t outlen, const void *key, size_t keylen)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj£-h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjŸ-h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K\ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²-h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŸ-h²hh³j±-h´K\ubjD)�”}”(hŒblake2s_init_key”h]”jJ)�”}”(hŒblake2s_init_key”h]”hŒblake2s_init_key”…”�”}”(hjÄ-h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÀ-ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjŸ-h²hh³j±-h´K\ubjÊ)�”}”(hŒH(struct blake2s_ctx *ctx, size_t outlen, const void *key, size_t keylen)”h]”(jÐ)�”}”(hŒstruct blake2s_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjà-h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÜ-ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí-h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜ-ubh)�”}”(hhh]”jJ)�”}”(hŒ blake2s_ctx”h]”hŒ blake2s_ctx”…”�”}”(hjþ-h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjû-ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j.Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÆ-sbŒc.blake2s_init_key”†”asbuh1hhjÜ-ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜ-ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj,.h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÜ-ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj9.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÜ-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjØ-ubjÐ)�”}”(hŒ size_t outlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjU.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjR.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jW.Œmodname”NŒ classname”Nj j)�”}”j]”j.Œc.blake2s_init_key”†”asbuh1hhjN.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjN.ubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hj�.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjN.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjØ-ubjÐ)�”}”(hŒconst void *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjš.h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj–.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj–.ubj’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjµ.h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj–.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃ.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj–.ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÑ.h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj–.ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÞ.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj–.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjØ-ubjÐ)�”}”(hŒ size_t keylen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjú.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj÷.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jü.Œmodname”NŒ classname”Nj j)�”}”j]”j.Œc.blake2s_init_key”†”asbuh1hhjó.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjó.ubjJ)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hj&/h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjó.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjØ-ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjŸ-h²hh³j±-h´K\ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj›-h²hh³j±-h´K\ubah}”(h]”j–-ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j±-h´K\hj˜-h²hubjv)�”}”(hhh]”hï)�”}”(hŒ6Initialize a BLAKE2s context for a new message (keyed)”h]”hŒ6Initialize a BLAKE2s context for a new message (keyed)”…”�”}”(hjP/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K\hjM/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj˜-h²hh³j±-h´K\ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jh/j™jh/jš‰j›‰jœ‰uh1jh²hhj5)h³Nh´Nubjž)�”}”(hX**Parameters** ``struct blake2s_ctx *ctx`` the context to initialize ``size_t outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE ``const void *key`` the key ``size_t keylen`` the key length in bytes, at most BLAKE2S_KEY_SIZE **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjr/h]”hŒ Parameters”…”�”}”(hjt/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjp/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K`hjl/ubjì)�”}”(hhh]”(jñ)�”}”(hŒ6``struct blake2s_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct blake2s_ctx *ctx``”h]”jý)�”}”(hj‘/h]”hŒstruct blake2s_ctx *ctx”…”�”}”(hj“/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj�/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K]hj‹/ubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hjª/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¦/h´K]hj§/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¦/h´K]hjˆ/ubjñ)�”}”(hŒR``size_t outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE ”h]”(j÷)�”}”(hŒ``size_t outlen``”h]”jý)�”}”(hjÊ/h]”hŒ size_t outlen”…”�”}”(hjÌ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÈ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K^hjÄ/ubj)�”}”(hhh]”hï)�”}”(hŒ?length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”h]”hŒ?length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”…”�”}”(hjã/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jß/h´K^hjà/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÄ/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jß/h´K^hjˆ/ubjñ)�”}”(hŒ``const void *key`` the key ”h]”(j÷)�”}”(hŒ``const void *key``”h]”jý)�”}”(hj0h]”hŒconst void *key”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K_hjý/ubj)�”}”(hhh]”hï)�”}”(hŒthe key”h]”hŒthe key”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j0h´K_hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjý/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j0h´K_hjˆ/ubjñ)�”}”(hŒD``size_t keylen`` the key length in bytes, at most BLAKE2S_KEY_SIZE ”h]”(j÷)�”}”(hŒ``size_t keylen``”h]”jý)�”}”(hj<0h]”hŒ size_t keylen”…”�”}”(hj>0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj:0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K`hj60ubj)�”}”(hhh]”hï)�”}”(hŒ1the key length in bytes, at most BLAKE2S_KEY_SIZE”h]”hŒ1the key length in bytes, at most BLAKE2S_KEY_SIZE”…”�”}”(hjU0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jQ0h´K`hjR0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj60ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jQ0h´K`hjˆ/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjl/ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjw0h]”hŒContext”…”�”}”(hjy0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hju0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kbhjl/ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kbhjl/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj5)h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s_update (C function)”Œc.blake2s_update”hNt”auh1hþhj5)h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒIvoid blake2s_update (struct blake2s_ctx *ctx, const u8 *in, size_t inlen)”h]”j)�”}”(hŒHvoid blake2s_update(struct blake2s_ctx *ctx, const u8 *in, size_t inlen)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¼0h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj¸0h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Knubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjË0h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¸0h²hh³jÊ0h´KnubjD)�”}”(hŒblake2s_update”h]”jJ)�”}”(hŒblake2s_update”h]”hŒblake2s_update”…”�”}”(hjÝ0h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÙ0ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¸0h²hh³jÊ0h´KnubjÊ)�”}”(hŒ5(struct blake2s_ctx *ctx, const u8 *in, size_t inlen)”h]”(jÐ)�”}”(hŒstruct blake2s_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjù0h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjõ0ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjõ0ubh)�”}”(hhh]”jJ)�”}”(hŒ blake2s_ctx”h]”hŒ blake2s_ctx”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j1Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jß0sbŒc.blake2s_update”†”asbuh1hhjõ0ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj71h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjõ0ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjE1h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjõ0ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjR1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjõ0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjñ0ubjÐ)�”}”(hŒ const u8 *in”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjk1h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjg1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjg1ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj‰1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj†1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‹1Œmodname”NŒ classname”Nj j)�”}”j]”j31Œc.blake2s_update”†”asbuh1hhjg1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjg1ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjµ1h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjg1ubjJ)�”}”(hŒin”h]”hŒin”…”�”}”(hjÂ1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjg1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjñ0ubjÐ)�”}”(hŒ size_t inlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÞ1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÛ1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jà1Œmodname”NŒ classname”Nj j)�”}”j]”j31Œc.blake2s_update”†”asbuh1hhj×1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjü1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj×1ubjJ)�”}”(hŒinlen”h]”hŒinlen”…”�”}”(hj 2h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj×1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjñ0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj¸0h²hh³jÊ0h´Knubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj´0h²hh³jÊ0h´Knubah}”(h]”j¯0ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÊ0h´Knhj±0h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a BLAKE2s context with message data”h]”hŒ*Update a BLAKE2s context with message data”…”�”}”(hj42h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Knhj12h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj±0h²hh³jÊ0h´Knubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jL2j™jL2jš‰j›‰jœ‰uh1jh²hhj5)h³Nh´Nubjž)�”}”(hX**Parameters** ``struct blake2s_ctx *ctx`` the context to update; must have been initialized ``const u8 *in`` the message data ``size_t inlen`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjV2h]”hŒ Parameters”…”�”}”(hjX2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjT2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KrhjP2ubjì)�”}”(hhh]”(jñ)�”}”(hŒN``struct blake2s_ctx *ctx`` the context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct blake2s_ctx *ctx``”h]”jý)�”}”(hju2h]”hŒstruct blake2s_ctx *ctx”…”�”}”(hjw2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjs2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kohjo2ubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hjŽ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŠ2h´Kohj‹2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjo2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŠ2h´Kohjl2ubjñ)�”}”(hŒ"``const u8 *in`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *in``”h]”jý)�”}”(hj®2h]”hŒ const u8 *in”…”�”}”(hj°2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¬2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kphj¨2ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjÇ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÃ2h´KphjÄ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÃ2h´Kphjl2ubjñ)�”}”(hŒ*``size_t inlen`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t inlen``”h]”jý)�”}”(hjç2h]”hŒ size_t inlen”…”�”}”(hjé2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjå2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kqhjá2ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jü2h´Kqhjý2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjá2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jü2h´Kqhjl2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjP2ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj"3h]”hŒ Description”…”�”}”(hj$3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj 3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KshjP2ubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj83h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KrhjP2ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjI3h]”hŒContext”…”�”}”(hjK3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjG3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KthjP2ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj_3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KuhjP2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj5)h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s_final (C function)”Œc.blake2s_final”hNt”auh1hþhj5)h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ5void blake2s_final (struct blake2s_ctx *ctx, u8 *out)”h]”j)�”}”(hŒ4void blake2s_final(struct blake2s_ctx *ctx, u8 *out)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŽ3h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjŠ3h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kzubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�3h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŠ3h²hh³jœ3h´KzubjD)�”}”(hŒ blake2s_final”h]”jJ)�”}”(hŒ blake2s_final”h]”hŒ blake2s_final”…”�”}”(hj¯3h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«3ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjŠ3h²hh³jœ3h´KzubjÊ)�”}”(hŒ"(struct blake2s_ctx *ctx, u8 *out)”h]”(jÐ)�”}”(hŒstruct blake2s_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjË3h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÇ3ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ3h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÇ3ubh)�”}”(hhh]”jJ)�”}”(hŒ blake2s_ctx”h]”hŒ blake2s_ctx”…”�”}”(hjé3h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjæ3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jë3Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j±3sbŒc.blake2s_final”†”asbuh1hhjÇ3ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÇ3ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÇ3ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj$4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÇ3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÃ3ubjÐ)�”}”(hŒu8 *out”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj@4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj=4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jB4Œmodname”NŒ classname”Nj j)�”}”j]”j4Œc.blake2s_final”†”asbuh1hhj94ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj94ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjl4h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj94ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjy4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj94ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÃ3ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjŠ3h²hh³jœ3h´Kzubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj†3h²hh³jœ3h´Kzubah}”(h]”j�3ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jœ3h´Kzhjƒ3h²hubjv)�”}”(hhh]”hï)�”}”(hŒFinish computing a BLAKE2s hash”h]”hŒFinish computing a BLAKE2s hash”…”�”}”(hj£4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kzhj 4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjƒ3h²hh³jœ3h´Kzubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j»4j™j»4jš‰j›‰jœ‰uh1jh²hhj5)h³Nh´Nubjž)�”}”(hXx**Parameters** ``struct blake2s_ctx *ctx`` the context to finalize; must have been initialized ``u8 *out`` (output) the resulting BLAKE2s hash. Its length will be equal to the **outlen** that was passed to blake2s_init() or blake2s_init_key(). **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÅ4h]”hŒ Parameters”…”�”}”(hjÇ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÃ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K~hj¿4ubjì)�”}”(hhh]”(jñ)�”}”(hŒP``struct blake2s_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct blake2s_ctx *ctx``”h]”jý)�”}”(hjä4h]”hŒstruct blake2s_ctx *ctx”…”�”}”(hjæ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjâ4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K{hjÞ4ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjý4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jù4h´K{hjú4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÞ4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jù4h´K{hjÛ4ubjñ)�”}”(hŒ–``u8 *out`` (output) the resulting BLAKE2s hash. Its length will be equal to the **outlen** that was passed to blake2s_init() or blake2s_init_key(). ”h]”(j÷)�”}”(hŒ ``u8 *out``”h]”jý)�”}”(hj5h]”hŒu8 *out”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K}hj5ubj)�”}”(hhh]”hï)�”}”(hŒ‰(output) the resulting BLAKE2s hash. Its length will be equal to the **outlen** that was passed to blake2s_init() or blake2s_init_key().”h]”(hŒF(output) the resulting BLAKE2s hash. Its length will be equal to the ”…”�”}”(hj65h²hh³Nh´Nubj¨)�”}”(hŒ **outlen**”h]”hŒoutlen”…”�”}”(hj>5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj65ubhŒ9 that was passed to blake2s_init() or blake2s_init_key().”…”�”}”(hj65h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K|hj35ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j25h´K}hjÛ4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¿4ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjk5h]”hŒ Description”…”�”}”(hjm5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hji5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Khj¿4ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj�5h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj‰5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj�5ubhŒ(. So the caller does not need to do it.”…”�”}”(hj�5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K~hj¿4ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj¤5h]”hŒContext”…”�”}”(hj¦5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¢5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K€hj¿4ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjº5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K�hj¿4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj5)h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s (C function)”Œ c.blake2s”hNt”auh1hþhj5)h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ_void blake2s (const u8 *key, size_t keylen, const u8 *in, size_t inlen, u8 *out, size_t outlen)”h]”j)�”}”(hŒ^void blake2s(const u8 *key, size_t keylen, const u8 *in, size_t inlen, u8 *out, size_t outlen)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjé5h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjå5h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K†ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjø5h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjå5h²hh³j÷5h´K†ubjD)�”}”(hŒblake2s”h]”jJ)�”}”(hŒblake2s”h]”hŒblake2s”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj6ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjå5h²hh³j÷5h´K†ubjÊ)�”}”(hŒR(const u8 *key, size_t keylen, const u8 *in, size_t inlen, u8 *out, size_t outlen)”h]”(jÐ)�”}”(hŒ const u8 *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj&6h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj"6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj36h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj"6ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjD6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjA6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jF6Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j 6sbŒ c.blake2s”†”asbuh1hhj"6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj"6ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjr6h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj"6ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj"6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj6ubjÐ)�”}”(hŒ size_t keylen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj›6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj˜6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�6Œmodname”NŒ classname”Nj j)�”}”j]”j`6Œ c.blake2s”†”asbuh1hhj”6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj”6ubjJ)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hjÇ6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj”6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj6ubjÐ)�”}”(hŒ const u8 *in”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjà6h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÜ6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜ6ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjþ6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjû6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j7Œmodname”NŒ classname”Nj j)�”}”j]”j`6Œ c.blake2s”†”asbuh1hhjÜ6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜ6ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj*7h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÜ6ubjJ)�”}”(hŒin”h]”hŒin”…”�”}”(hj77h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÜ6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj6ubjÐ)�”}”(hŒ size_t inlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjS7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjP7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jU7Œmodname”NŒ classname”Nj j)�”}”j]”j`6Œ c.blake2s”†”asbuh1hhjL7ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq7h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjL7ubjJ)�”}”(hŒinlen”h]”hŒinlen”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjL7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj6ubjÐ)�”}”(hŒu8 *out”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj›7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj˜7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�7Œmodname”NŒ classname”Nj j)�”}”j]”j`6Œ c.blake2s”†”asbuh1hhj”7ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹7h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj”7ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÇ7h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj”7ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjÔ7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj”7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj6ubjÐ)�”}”(hŒ size_t outlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjð7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjí7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jò7Œmodname”NŒ classname”Nj j)�”}”j]”j`6Œ c.blake2s”†”asbuh1hhjé7ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjé7ubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjé7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj6ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjå5h²hh³j÷5h´K†ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjá5h²hh³j÷5h´K†ubah}”(h]”jÜ5ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j÷5h´K†hjÞ5h²hubjv)�”}”(hhh]”hï)�”}”(hŒ Compute BLAKE2s hash in one shot”h]”hŒ Compute BLAKE2s hash in one shot”…”�”}”(hjF8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K†hjC8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÞ5h²hh³j÷5h´K†ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j^8j™j^8jš‰j›‰jœ‰uh1jh²hhj5)h³Nh´Nubjž)�”}”(hX¹**Parameters** ``const u8 *key`` the key, or NULL for an unkeyed hash ``size_t keylen`` the key length in bytes (at most BLAKE2S_KEY_SIZE), or 0 for an unkeyed hash ``const u8 *in`` the message data ``size_t inlen`` the data length in bytes ``u8 *out`` (output) the resulting BLAKE2s hash, with length **outlen** ``size_t outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjh8h]”hŒ Parameters”…”�”}”(hjj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjf8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KŠhjb8ubjì)�”}”(hhh]”(jñ)�”}”(hŒ7``const u8 *key`` the key, or NULL for an unkeyed hash ”h]”(j÷)�”}”(hŒ``const u8 *key``”h]”jý)�”}”(hj‡8h]”hŒ const u8 *key”…”�”}”(hj‰8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj…8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K‡hj�8ubj)�”}”(hhh]”hï)�”}”(hŒ$the key, or NULL for an unkeyed hash”h]”hŒ$the key, or NULL for an unkeyed hash”…”�”}”(hj 8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jœ8h´K‡hj�8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jœ8h´K‡hj~8ubjñ)�”}”(hŒ_``size_t keylen`` the key length in bytes (at most BLAKE2S_KEY_SIZE), or 0 for an unkeyed hash ”h]”(j÷)�”}”(hŒ``size_t keylen``”h]”jý)�”}”(hjÀ8h]”hŒ size_t keylen”…”�”}”(hjÂ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¾8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K‰hjº8ubj)�”}”(hhh]”hï)�”}”(hŒLthe key length in bytes (at most BLAKE2S_KEY_SIZE), or 0 for an unkeyed hash”h]”hŒLthe key length in bytes (at most BLAKE2S_KEY_SIZE), or 0 for an unkeyed hash”…”�”}”(hjÙ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KˆhjÖ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjº8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÕ8h´K‰hj~8ubjñ)�”}”(hŒ"``const u8 *in`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *in``”h]”jý)�”}”(hjú8h]”hŒ const u8 *in”…”�”}”(hjü8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjø8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KŠhjô8ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j9h´KŠhj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjô8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j9h´KŠhj~8ubjñ)�”}”(hŒ*``size_t inlen`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t inlen``”h]”jý)�”}”(hj39h]”hŒ size_t inlen”…”�”}”(hj59h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj19ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K‹hj-9ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjL9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jH9h´K‹hjI9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jH9h´K‹hj~8ubjñ)�”}”(hŒH``u8 *out`` (output) the resulting BLAKE2s hash, with length **outlen** ”h]”(j÷)�”}”(hŒ ``u8 *out``”h]”jý)�”}”(hjl9h]”hŒu8 *out”…”�”}”(hjn9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KŒhjf9ubj)�”}”(hhh]”hï)�”}”(hŒ;(output) the resulting BLAKE2s hash, with length **outlen**”h]”(hŒ1(output) the resulting BLAKE2s hash, with length ”…”�”}”(hj…9h²hh³Nh´Nubj¨)�”}”(hŒ **outlen**”h]”hŒoutlen”…”�”}”(hj�9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj…9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�9h´KŒhj‚9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjf9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�9h´KŒhj~8ubjñ)�”}”(hŒR``size_t outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE ”h]”(j÷)�”}”(hŒ``size_t outlen``”h]”jý)�”}”(hj³9h]”hŒ size_t outlen”…”�”}”(hjµ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj±9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K�hj­9ubj)�”}”(hhh]”hï)�”}”(hŒ?length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”h]”hŒ?length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”…”�”}”(hjÌ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÈ9h´K�hjÉ9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj­9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÈ9h´K�hj~8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjb8ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjî9h]”hŒContext”…”�”}”(hjð9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjì9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K�hjb8ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K�hjb8ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj5)h²hh³Nh´Nubeh}”(h]”Œblake2s”ah ]”h"]”Œblake2s”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒGHASH and POLYVAL”h]”hŒGHASH and POLYVAL”…”�”}”(hj%:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj":h²hh³hÇh´Kubhï)�”}”(hŒ˜This API provides support for the GHASH and POLYVAL universal hash functions. These algorithms are used only as internal components of other algorithms.”h]”hŒ˜This API provides support for the GHASH and POLYVAL universal hash functions. These algorithms are used only as internal components of other algorithms.”…”�”}”(hj3:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj":h²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œpolyval_elem (C struct)”Œc.polyval_elem”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ polyval_elem”h]”j)�”}”(hŒstruct polyval_elem”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjZ:h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjV:h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjV:h²hh³jg:h´KubjD)�”}”(hŒ polyval_elem”h]”jJ)�”}”(hjT:h]”hŒ polyval_elem”…”�”}”(hjz:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjv:ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjV:h²hh³jg:h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjR:h²hh³jg:h´Kubah}”(h]”jM:ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jg:h´KhjO:h²hubjv)�”}”(hhh]”hï)�”}”(hŒ&An element of the POLYVAL finite field”h]”hŒ&An element of the POLYVAL finite field”…”�”}”(hjœ:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj™:h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjO:h²hh³jg:h´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j´:j™j´:jš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hXÐ**Definition**:: struct polyval_elem { union { u8 bytes[POLYVAL_BLOCK_SIZE]; struct { __le64 lo; __le64 hi; }; }; }; **Members** ``{unnamed_union}`` anonymous ``bytes`` View of the element as a byte array (unioned with **lo** and **hi**) ``{unnamed_struct}`` anonymous ``lo`` The low 64 terms of the element's polynomial ``hi`` The high 64 terms of the element's polynomial”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÀ:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¼:ubhŒ:”…”�”}”(hj¼:h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj¸:ubjÃ)�”}”(hŒ›struct polyval_elem { union { u8 bytes[POLYVAL_BLOCK_SIZE]; struct { __le64 lo; __le64 hi; }; }; };”h]”hŒ›struct polyval_elem { union { u8 bytes[POLYVAL_BLOCK_SIZE]; struct { __le64 lo; __le64 hi; }; }; };”…”�”}”hjÙ:sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj¸:ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjê:h]”hŒMembers”…”�”}”(hjì:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjè:ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K#hj¸:ubjì)�”}”(hhh]”(jñ)�”}”(hŒ``{unnamed_union}`` anonymous ”h]”(j÷)�”}”(hŒ``{unnamed_union}``”h]”jý)�”}”(hj ;h]”hŒ{unnamed_union}”…”�”}”(hj ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj;ubj)�”}”(hhh]”hï)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hj";h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j;h´Khj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j;h´Khj;ubjñ)�”}”(hŒO``bytes`` View of the element as a byte array (unioned with **lo** and **hi**) ”h]”(j÷)�”}”(hŒ ``bytes``”h]”jý)�”}”(hjB;h]”hŒbytes”…”�”}”(hjD;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj@;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj<;ubj)�”}”(hhh]”hï)�”}”(hŒDView of the element as a byte array (unioned with **lo** and **hi**)”h]”(hŒ2View of the element as a byte array (unioned with ”…”�”}”(hj[;h²hh³Nh´Nubj¨)�”}”(hŒ**lo**”h]”hŒlo”…”�”}”(hjc;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj[;ubhŒ and ”…”�”}”(hj[;h²hh³Nh´Nubj¨)�”}”(hŒ**hi**”h]”hŒhi”…”�”}”(hju;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj[;ubhŒ)”…”�”}”(hj[;h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jW;h´KhjX;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jW;h´Khj;ubjñ)�”}”(hŒ``{unnamed_struct}`` anonymous ”h]”(j÷)�”}”(hŒ``{unnamed_struct}``”h]”jý)�”}”(hjŸ;h]”hŒ{unnamed_struct}”…”�”}”(hj¡;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj�;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj™;ubj)�”}”(hhh]”hï)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hj¸;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j´;h´Khjµ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j´;h´Khj;ubjñ)�”}”(hŒ4``lo`` The low 64 terms of the element's polynomial ”h]”(j÷)�”}”(hŒ``lo``”h]”jý)�”}”(hjØ;h]”hŒlo”…”�”}”(hjÚ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÖ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KhjÒ;ubj)�”}”(hhh]”hï)�”}”(hŒ,The low 64 terms of the element's polynomial”h]”hŒ.The low 64 terms of the element’s polynomial”…”�”}”(hjñ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jí;h´Khjî;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÒ;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jí;h´Khj;ubjñ)�”}”(hŒ4``hi`` The high 64 terms of the element's polynomial”h]”(j÷)�”}”(hŒ``hi``”h]”jý)�”}”(hj<h]”hŒhi”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj <ubj)�”}”(hhh]”hï)�”}”(hŒ-The high 64 terms of the element's polynomial”h]”hŒ/The high 64 terms of the element’s polynomial”…”�”}”(hj*<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj'<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj <ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j&<h´Khj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¸:ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjT<h]”hŒ Description”…”�”}”(hjV<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjR<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj":h²hubhï)�”}”(hŒ‡This represents an element of the finite field GF(2^128), using the POLYVAL convention: little-endian byte order and natural bit order.”h]”hŒ‡This represents an element of the finite field GF(2^128), using the POLYVAL convention: little-endian byte order and natural bit order.”…”�”}”(hjj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khj":h²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œghash_key (C struct)”Œ c.ghash_key”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ ghash_key”h]”j)�”}”(hŒstruct ghash_key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj’<h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjŽ<h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj <h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŽ<h²hh³jŸ<h´KubjD)�”}”(hŒ ghash_key”h]”jJ)�”}”(hjŒ<h]”hŒ ghash_key”…”�”}”(hj²<h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj®<ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjŽ<h²hh³jŸ<h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjŠ<h²hh³jŸ<h´Kubah}”(h]”j…<ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jŸ<h´Khj‡<h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepared key for GHASH”h]”hŒPrepared key for GHASH”…”�”}”(hjÔ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K&hjÑ<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj‡<h²hh³jŸ<h´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jì<j™jì<jš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hXé**Definition**:: struct ghash_key { #if defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && defined(CONFIG_PPC64); u64 htable[4][2]; #elif defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && (defined(CONFIG_RISCV) || defined(CONFIG_S390)); u8 h_raw[GHASH_BLOCK_SIZE]; #endif; struct polyval_elem h; }; **Members** ``htable`` GHASH key format used by the POWER8 assembly code ``h_raw`` The hash key H, in GHASH format ``h`` The hash key H, in POLYVAL format”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjø<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjô<ubhŒ:”…”�”}”(hjô<h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K*hjð<ubjÃ)�”}”(hX"struct ghash_key { #if defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && defined(CONFIG_PPC64); u64 htable[4][2]; #elif defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && (defined(CONFIG_RISCV) || defined(CONFIG_S390)); u8 h_raw[GHASH_BLOCK_SIZE]; #endif; struct polyval_elem h; };”h]”hX"struct ghash_key { #if defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && defined(CONFIG_PPC64); u64 htable[4][2]; #elif defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && (defined(CONFIG_RISCV) || defined(CONFIG_S390)); u8 h_raw[GHASH_BLOCK_SIZE]; #endif; struct polyval_elem h; };”…”�”}”hj=sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K,hjð<ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj"=h]”hŒMembers”…”�”}”(hj$=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj =ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K5hjð<ubjì)�”}”(hhh]”(jñ)�”}”(hŒ=``htable`` GHASH key format used by the POWER8 assembly code ”h]”(j÷)�”}”(hŒ ``htable``”h]”jý)�”}”(hjA=h]”hŒhtable”…”�”}”(hjC=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj?=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K-hj;=ubj)�”}”(hhh]”hï)�”}”(hŒ1GHASH key format used by the POWER8 assembly code”h]”hŒ1GHASH key format used by the POWER8 assembly code”…”�”}”(hjZ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jV=h´K-hjW=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jV=h´K-hj8=ubjñ)�”}”(hŒ*``h_raw`` The hash key H, in GHASH format ”h]”(j÷)�”}”(hŒ ``h_raw``”h]”jý)�”}”(hjz=h]”hŒh_raw”…”�”}”(hj|=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjx=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K1hjt=ubj)�”}”(hhh]”hï)�”}”(hŒThe hash key H, in GHASH format”h]”hŒThe hash key H, in GHASH format”…”�”}”(hj“=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�=h´K1hj�=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjt=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�=h´K1hj8=ubjñ)�”}”(hŒ'``h`` The hash key H, in POLYVAL format”h]”(j÷)�”}”(hŒ``h``”h]”jý)�”}”(hj³=h]”hŒh”…”�”}”(hjµ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj±=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K3hj­=ubj)�”}”(hhh]”hï)�”}”(hŒ!The hash key H, in POLYVAL format”h]”hŒ!The hash key H, in POLYVAL format”…”�”}”(hjÌ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K4hjÉ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj­=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÈ=h´K3hj8=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjð<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjö=h]”hŒ Description”…”�”}”(hjø=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjô=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K7hj":h²hubhï)�”}”(hŒ*Use ghash_preparekey() to initialize this.”h]”hŒ*Use ghash_preparekey() to initialize this.”…”�”}”(hj >h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K'hj":h²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œpolyval_key (C struct)”Œ c.polyval_key”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ polyval_key”h]”j)�”}”(hŒstruct polyval_key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj4>h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj0>h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K,ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB>h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj0>h²hh³jA>h´K,ubjD)�”}”(hŒ polyval_key”h]”jJ)�”}”(hj.>h]”hŒ polyval_key”…”�”}”(hjT>h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjP>ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj0>h²hh³jA>h´K,ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj,>h²hh³jA>h´K,ubah}”(h]”j'>ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jA>h´K,hj)>h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepared key for POLYVAL”h]”hŒPrepared key for POLYVAL”…”�”}”(hjv>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K8hjs>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj)>h²hh³jA>h´K,ubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jŽ>j™jŽ>jš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hXK**Definition**:: struct polyval_key { #if defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && (defined(CONFIG_ARM64) || defined(CONFIG_X86)); struct polyval_elem h_powers[8]; #else; struct polyval_elem h; #endif; }; **Members** ``h_powers`` Powers of the hash key H^8 through H^1 ``h`` The hash key H”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjš>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj–>ubhŒ:”…”�”}”(hj–>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KubjÃ)�”}”(hŒÏstruct polyval_key { #if defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && (defined(CONFIG_ARM64) || defined(CONFIG_X86)); struct polyval_elem h_powers[8]; #else; struct polyval_elem h; #endif; };”h]”hŒÏstruct polyval_key { #if defined(CONFIG_CRYPTO_LIB_GF128HASH_ARCH) && (defined(CONFIG_ARM64) || defined(CONFIG_X86)); struct polyval_elem h_powers[8]; #else; struct polyval_elem h; #endif; };”…”�”}”hj³>sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K>hj’>ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjÄ>h]”hŒMembers”…”�”}”(hjÆ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÂ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KFhj’>ubjì)�”}”(hhh]”(jñ)�”}”(hŒ4``h_powers`` Powers of the hash key H^8 through H^1 ”h]”(j÷)�”}”(hŒ ``h_powers``”h]”jý)�”}”(hjã>h]”hŒh_powers”…”�”}”(hjå>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjá>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KEhjÝ>ubj)�”}”(hhh]”hï)�”}”(hŒ&Powers of the hash key H^8 through H^1”h]”hŒ&Powers of the hash key H^8 through H^1”…”�”}”(hjü>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jø>h´KEhjù>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jø>h´KEhjÚ>ubjñ)�”}”(hŒ``h`` The hash key H”h]”(j÷)�”}”(hŒ``h``”h]”jý)�”}”(hj?h]”hŒh”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KGhj?ubj)�”}”(hhh]”hï)�”}”(hŒThe hash key H”h]”hŒThe hash key H”…”�”}”(hj5?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KHhj2?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j1?h´KGhjÚ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj’>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj_?h]”hŒ Description”…”�”}”(hja?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj]?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KKhj":h²hubhï)�”}”(hŒ°This may contain just the raw key H, or it may contain precomputed key powers, depending on the platform's POLYVAL implementation. Use polyval_preparekey() to initialize this.”h]”hŒ²This may contain just the raw key H, or it may contain precomputed key powers, depending on the platform’s POLYVAL implementation. Use polyval_preparekey() to initialize this.”…”�”}”(hju?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K9hj":h²hubhï)�”}”(hŒ‘By H^i we mean H^(i-1) * H * x^-128, with base case H^1 = H. I.e. the exponentiation repeats the POLYVAL dot operation, with its "extra" x^-128.”h]”hŒ•By H^i we mean H^(i-1) * H * x^-128, with base case H^1 = H. I.e. the exponentiation repeats the POLYVAL dot operation, with its “extraâ€� x^-128.”…”�”}”(hj„?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K=hj":h²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œghash_ctx (C struct)”Œ c.ghash_ctx”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ ghash_ctx”h]”j)�”}”(hŒstruct ghash_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj¬?h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¨?h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KCubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº?h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¨?h²hh³j¹?h´KCubjD)�”}”(hŒ ghash_ctx”h]”jJ)�”}”(hj¦?h]”hŒ ghash_ctx”…”�”}”(hjÌ?h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÈ?ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¨?h²hh³j¹?h´KCubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¤?h²hh³j¹?h´KCubah}”(h]”jŸ?ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¹?h´KChj¡?h²hubjv)�”}”(hhh]”hï)�”}”(hŒ#Context for computing a GHASH value”h]”hŒ#Context for computing a GHASH value”…”�”}”(hjî?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KMhjë?h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj¡?h²hh³j¹?h´KCubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j@j™j@jš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hX÷**Definition**:: struct ghash_ctx { const struct ghash_key *key; struct polyval_elem acc; size_t partial; }; **Members** ``key`` Pointer to the prepared GHASH key. The user of the API is responsible for ensuring that the key lives as long as the context. ``acc`` The accumulator. It is stored in POLYVAL format rather than GHASH format, since most implementations want it in POLYVAL format. ``partial`` Number of data bytes processed so far modulo GHASH_BLOCK_SIZE”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj@ubhŒ:”…”�”}”(hj@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KQhj @ubjÃ)�”}”(hŒgstruct ghash_ctx { const struct ghash_key *key; struct polyval_elem acc; size_t partial; };”h]”hŒgstruct ghash_ctx { const struct ghash_key *key; struct polyval_elem acc; size_t partial; };”…”�”}”hj+@sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KShj @ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj<@h]”hŒMembers”…”�”}”(hj>@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj:@ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KYhj @ubjì)�”}”(hhh]”(jñ)�”}”(hŒ‡``key`` Pointer to the prepared GHASH key. The user of the API is responsible for ensuring that the key lives as long as the context. ”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hj[@h]”hŒkey”…”�”}”(hj]@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjY@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KPhjU@ubj)�”}”(hhh]”hï)�”}”(hŒ~Pointer to the prepared GHASH key. The user of the API is responsible for ensuring that the key lives as long as the context.”h]”hŒ~Pointer to the prepared GHASH key. The user of the API is responsible for ensuring that the key lives as long as the context.”…”�”}”(hjt@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KOhjq@ubah}”(h]”h ]”•h"]”h$]”h&]”uh1jhjU@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jp@h´KPhjR@ubjñ)�”}”(hŒ‰``acc`` The accumulator. It is stored in POLYVAL format rather than GHASH format, since most implementations want it in POLYVAL format. ”h]”(j÷)�”}”(hŒ``acc``”h]”jý)�”}”(hj•@h]”hŒacc”…”�”}”(hj—@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj“@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KRhj�@ubj)�”}”(hhh]”hï)�”}”(hŒ€The accumulator. It is stored in POLYVAL format rather than GHASH format, since most implementations want it in POLYVAL format.”h]”hŒ€The accumulator. It is stored in POLYVAL format rather than GHASH format, since most implementations want it in POLYVAL format.”…”�”}”(hj®@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KQhj«@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jª@h´KRhjR@ubjñ)�”}”(hŒI``partial`` Number of data bytes processed so far modulo GHASH_BLOCK_SIZE”h]”(j÷)�”}”(hŒ ``partial``”h]”jý)�”}”(hjÏ@h]”hŒpartial”…”�”}”(hjÑ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÍ@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KRhjÉ@ubj)�”}”(hhh]”hï)�”}”(hŒ=Number of data bytes processed so far modulo GHASH_BLOCK_SIZE”h]”hŒ=Number of data bytes processed so far modulo GHASH_BLOCK_SIZE”…”�”}”(hjè@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KShjå@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÉ@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jä@h´KRhjR@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj @ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œpolyval_ctx (C struct)”Œ c.polyval_ctx”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ polyval_ctx”h]”j)�”}”(hŒstruct polyval_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj)Ah²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj%Ah²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KYubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7Ah²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj%Ah²hh³j6Ah´KYubjD)�”}”(hŒ polyval_ctx”h]”jJ)�”}”(hj#Ah]”hŒ polyval_ctx”…”�”}”(hjIAh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjEAubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj%Ah²hh³j6Ah´KYubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj!Ah²hh³j6Ah´KYubah}”(h]”jAah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j6Ah´KYhjAh²hubjv)�”}”(hhh]”hï)�”}”(hŒ%Context for computing a POLYVAL value”h]”hŒ%Context for computing a POLYVAL value”…”�”}”(hjkAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K[hjhAh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjAh²hh³j6Ah´KYubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jƒAj™jƒAjš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hXŒ**Definition**:: struct polyval_ctx { const struct polyval_key *key; struct polyval_elem acc; size_t partial; }; **Members** ``key`` Pointer to the prepared POLYVAL key. The user of the API is responsible for ensuring that the key lives as long as the context. ``acc`` The accumulator ``partial`` Number of data bytes processed so far modulo POLYVAL_BLOCK_SIZE”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj�Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‹AubhŒ:”…”�”}”(hj‹Ah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K_hj‡AubjÃ)�”}”(hŒkstruct polyval_ctx { const struct polyval_key *key; struct polyval_elem acc; size_t partial; };”h]”hŒkstruct polyval_ctx { const struct polyval_key *key; struct polyval_elem acc; size_t partial; };”…”�”}”hj¨Asbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kahj‡Aubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj¹Ah]”hŒMembers”…”�”}”(hj»Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj·Aubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kghj‡Aubjì)�”}”(hhh]”(jñ)�”}”(hŒ‰``key`` Pointer to the prepared POLYVAL key. The user of the API is responsible for ensuring that the key lives as long as the context. ”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hjØAh]”hŒkey”…”�”}”(hjÚAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÖAubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K^hjÒAubj)�”}”(hhh]”hï)�”}”(hŒ€Pointer to the prepared POLYVAL key. The user of the API is responsible for ensuring that the key lives as long as the context.”h]”hŒ€Pointer to the prepared POLYVAL key. The user of the API is responsible for ensuring that the key lives as long as the context.”…”�”}”(hjñAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K]hjîAubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÒAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jíAh´K^hjÏAubjñ)�”}”(hŒ``acc`` The accumulator ”h]”(j÷)�”}”(hŒ``acc``”h]”jý)�”}”(hjBh]”hŒacc”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K_hj Bubj)�”}”(hhh]”hï)�”}”(hŒThe accumulator”h]”hŒThe accumulator”…”�”}”(hj+Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j'Bh´K_hj(Bubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj Bubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j'Bh´K_hjÏAubjñ)�”}”(hŒK``partial`` Number of data bytes processed so far modulo POLYVAL_BLOCK_SIZE”h]”(j÷)�”}”(hŒ ``partial``”h]”jý)�”}”(hjKBh]”hŒpartial”…”�”}”(hjMBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjIBubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K_hjEBubj)�”}”(hhh]”hï)�”}”(hŒ?Number of data bytes processed so far modulo POLYVAL_BLOCK_SIZE”h]”hŒ?Number of data bytes processed so far modulo POLYVAL_BLOCK_SIZE”…”�”}”(hjdBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K`hjaBubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjEBubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j`Bh´K_hjÏAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj‡Aubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œghash_preparekey (C function)”Œc.ghash_preparekey”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒQvoid ghash_preparekey (struct ghash_key *key, const u8 raw_key[GHASH_BLOCK_SIZE])”h]”j)�”}”(hŒPvoid ghash_preparekey(struct ghash_key *key, const u8 raw_key[GHASH_BLOCK_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¥Bh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj¡Bh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´Bh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¡Bh²hh³j³Bh´KhubjD)�”}”(hŒghash_preparekey”h]”jJ)�”}”(hŒghash_preparekey”h]”hŒghash_preparekey”…”�”}”(hjÆBh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÂBubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¡Bh²hh³j³Bh´KhubjÊ)�”}”(hŒ;(struct ghash_key *key, const u8 raw_key[GHASH_BLOCK_SIZE])”h]”(jÐ)�”}”(hŒstruct ghash_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjâBh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÞBubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjïBh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÞBubh)�”}”(hhh]”jJ)�”}”(hŒ ghash_key”h]”hŒ ghash_key”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjýBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jCŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÈBsbŒc.ghash_preparekey”†”asbuh1hhjÞBubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Ch²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÞBubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj.Ch²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÞBubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj;Ch²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÞBubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÚBubjÐ)�”}”(hŒ"const u8 raw_key[GHASH_BLOCK_SIZE]”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjTCh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjPCubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjaCh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjPCubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjrCh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjoCubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jtCŒmodname”NŒ classname”Nj j)�”}”j]”jCŒc.ghash_preparekey”†”asbuh1hhjPCubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Ch²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjPCubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjžCh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjPCubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj¬Ch²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjPCubh)�”}”(hhh]”jJ)�”}”(hŒGHASH_BLOCK_SIZE”h]”hŒGHASH_BLOCK_SIZE”…”�”}”(hj¼Ch²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¹Cubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¾CŒmodname”NŒ classname”Nj j)�”}”j]”jCŒc.ghash_preparekey”†”asbuh1hhjPCubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÚCh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjPCubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÚBubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj¡Bh²hh³j³Bh´Khubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj�Bh²hh³j³Bh´Khubah}”(h]”j˜Bah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j³Bh´KhhjšBh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a GHASH key”h]”hŒPrepare a GHASH key”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KhhjDh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjšBh²hh³j³Bh´Khubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jDj™jDjš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hŒí**Parameters** ``struct ghash_key *key`` (output) The key structure to initialize ``const u8 raw_key[GHASH_BLOCK_SIZE]`` The raw hash key **Description** Initialize a GHASH key structure from a raw key. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj%Dh]”hŒ Parameters”…”�”}”(hj'Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj#Dubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KlhjDubjì)�”}”(hhh]”(jñ)�”}”(hŒC``struct ghash_key *key`` (output) The key structure to initialize ”h]”(j÷)�”}”(hŒ``struct ghash_key *key``”h]”jý)�”}”(hjDDh]”hŒstruct ghash_key *key”…”�”}”(hjFDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjBDubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kihj>Dubj)�”}”(hhh]”hï)�”}”(hŒ((output) The key structure to initialize”h]”hŒ((output) The key structure to initialize”…”�”}”(hj]Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jYDh´KihjZDubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj>Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jYDh´Kihj;Dubjñ)�”}”(hŒ8``const u8 raw_key[GHASH_BLOCK_SIZE]`` The raw hash key ”h]”(j÷)�”}”(hŒ&``const u8 raw_key[GHASH_BLOCK_SIZE]``”h]”jý)�”}”(hj}Dh]”hŒ"const u8 raw_key[GHASH_BLOCK_SIZE]”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj{Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KjhjwDubj)�”}”(hhh]”hï)�”}”(hŒThe raw hash key”h]”hŒThe raw hash key”…”�”}”(hj–Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j’Dh´Kjhj“Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjwDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j’Dh´Kjhj;Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjDubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj¸Dh]”hŒ Description”…”�”}”(hjºDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¶Dubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KlhjDubhï)�”}”(hŒ0Initialize a GHASH key structure from a raw key.”h]”hŒ0Initialize a GHASH key structure from a raw key.”…”�”}”(hjÎDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KkhjDubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjßDh]”hŒContext”…”�”}”(hjáDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÝDubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KmhjDubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjõDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KnhjDubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œpolyval_preparekey (C function)”Œc.polyval_preparekey”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒWvoid polyval_preparekey (struct polyval_key *key, const u8 raw_key[POLYVAL_BLOCK_SIZE])”h]”j)�”}”(hŒVvoid polyval_preparekey(struct polyval_key *key, const u8 raw_key[POLYVAL_BLOCK_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj$Eh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj Eh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Ktubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3Eh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj Eh²hh³j2Eh´KtubjD)�”}”(hŒpolyval_preparekey”h]”jJ)�”}”(hŒpolyval_preparekey”h]”hŒpolyval_preparekey”…”�”}”(hjEEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjAEubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj Eh²hh³j2Eh´KtubjÊ)�”}”(hŒ?(struct polyval_key *key, const u8 raw_key[POLYVAL_BLOCK_SIZE])”h]”(jÐ)�”}”(hŒstruct polyval_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjaEh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj]Eubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnEh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj]Eubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_key”h]”hŒ polyval_key”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj|Eubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�EŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jGEsbŒc.polyval_preparekey”†”asbuh1hhj]Eubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸEh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj]Eubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj­Eh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj]EubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjºEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj]Eubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjYEubjÐ)�”}”(hŒ$const u8 raw_key[POLYVAL_BLOCK_SIZE]”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÓEh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÏEubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjàEh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÏEubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjñEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjîEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jóEŒmodname”NŒ classname”Nj j)�”}”j]”j›EŒc.polyval_preparekey”†”asbuh1hhjÏEubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÏEubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÏEubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj+Fh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÏEubh)�”}”(hhh]”jJ)�”}”(hŒPOLYVAL_BLOCK_SIZE”h]”hŒPOLYVAL_BLOCK_SIZE”…”�”}”(hj;Fh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj8Fubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j=FŒmodname”NŒ classname”Nj j)�”}”j]”j›EŒc.polyval_preparekey”†”asbuh1hhjÏEubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjYFh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÏEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjYEubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj Eh²hh³j2Eh´Ktubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjEh²hh³j2Eh´Ktubah}”(h]”jEah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j2Eh´KthjEh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a POLYVAL key”h]”hŒPrepare a POLYVAL key”…”�”}”(hj‚Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KthjFh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjEh²hh³j2Eh´Ktubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jšFj™jšFjš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hXu**Parameters** ``struct polyval_key *key`` (output) The key structure to initialize ``const u8 raw_key[POLYVAL_BLOCK_SIZE]`` The raw hash key **Description** Initialize a POLYVAL key structure from a raw key. This may be a simple copy, or it may involve precomputing powers of the key, depending on the platform's POLYVAL implementation. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¤Fh]”hŒ Parameters”…”�”}”(hj¦Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¢Fubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KxhjžFubjì)�”}”(hhh]”(jñ)�”}”(hŒE``struct polyval_key *key`` (output) The key structure to initialize ”h]”(j÷)�”}”(hŒ``struct polyval_key *key``”h]”jý)�”}”(hjÃFh]”hŒstruct polyval_key *key”…”�”}”(hjÅFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÁFubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kuhj½Fubj)�”}”(hhh]”hï)�”}”(hŒ((output) The key structure to initialize”h]”hŒ((output) The key structure to initialize”…”�”}”(hjÜFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jØFh´KuhjÙFubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj½Fubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jØFh´KuhjºFubjñ)�”}”(hŒ:``const u8 raw_key[POLYVAL_BLOCK_SIZE]`` The raw hash key ”h]”(j÷)�”}”(hŒ(``const u8 raw_key[POLYVAL_BLOCK_SIZE]``”h]”jý)�”}”(hjüFh]”hŒ$const u8 raw_key[POLYVAL_BLOCK_SIZE]”…”�”}”(hjþFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjúFubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KvhjöFubj)�”}”(hhh]”hï)�”}”(hŒThe raw hash key”h]”hŒThe raw hash key”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jGh´KvhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjöFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jGh´KvhjºFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjžFubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj7Gh]”hŒ Description”…”�”}”(hj9Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj5Gubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KxhjžFubhï)�”}”(hŒ´Initialize a POLYVAL key structure from a raw key. This may be a simple copy, or it may involve precomputing powers of the key, depending on the platform's POLYVAL implementation.”h]”hŒ¶Initialize a POLYVAL key structure from a raw key. This may be a simple copy, or it may involve precomputing powers of the key, depending on the platform’s POLYVAL implementation.”…”�”}”(hjMGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KwhjžFubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj^Gh]”hŒContext”…”�”}”(hj`Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj\Gubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K{hjžFubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjtGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K|hjžFubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œghash_init (C function)”Œ c.ghash_init”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒDvoid ghash_init (struct ghash_ctx *ctx, const struct ghash_key *key)”h]”j)�”}”(hŒCvoid ghash_init(struct ghash_ctx *ctx, const struct ghash_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj£Gh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjŸGh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K‚ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²Gh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŸGh²hh³j±Gh´K‚ubjD)�”}”(hŒ ghash_init”h]”jJ)�”}”(hŒ ghash_init”h]”hŒ ghash_init”…”�”}”(hjÄGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÀGubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjŸGh²hh³j±Gh´K‚ubjÊ)�”}”(hŒ4(struct ghash_ctx *ctx, const struct ghash_key *key)”h]”(jÐ)�”}”(hŒstruct ghash_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjàGh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÜGubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíGh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜGubh)�”}”(hhh]”jJ)�”}”(hŒ ghash_ctx”h]”hŒ ghash_ctx”…”�”}”(hjþGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjûGubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jHŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÆGsbŒ c.ghash_init”†”asbuh1hhjÜGubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜGubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj,Hh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÜGubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj9Hh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÜGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjØGubjÐ)�”}”(hŒconst struct ghash_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjRHh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjNHubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_Hh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjNHubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjmHh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjNHubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzHh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjNHubh)�”}”(hhh]”jJ)�”}”(hŒ ghash_key”h]”hŒ ghash_key”…”�”}”(hj‹Hh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjˆHubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�HŒmodname”NŒ classname”Nj j)�”}”j]”jHŒ c.ghash_init”†”asbuh1hhjNHubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©Hh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjNHubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj·Hh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjNHubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÄHh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjNHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjØGubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjŸGh²hh³j±Gh´K‚ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj›Gh²hh³j±Gh´K‚ubah}”(h]”j–Gah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j±Gh´K‚hj˜Gh²hubjv)�”}”(hhh]”hï)�”}”(hŒ,Initialize a GHASH context for a new message”h]”hŒ,Initialize a GHASH context for a new message”…”�”}”(hjîHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K‚hjëHh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj˜Gh²hh³j±Gh´K‚ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jIj™jIjš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hŒé**Parameters** ``struct ghash_ctx *ctx`` The context to initialize ``const struct ghash_key *key`` The key to use. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjIh]”hŒ Parameters”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K†hj Iubjì)�”}”(hhh]”(jñ)�”}”(hŒ4``struct ghash_ctx *ctx`` The context to initialize ”h]”(j÷)�”}”(hŒ``struct ghash_ctx *ctx``”h]”jý)�”}”(hj/Ih]”hŒstruct ghash_ctx *ctx”…”�”}”(hj1Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj-Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kƒhj)Iubj)�”}”(hhh]”hï)�”}”(hŒThe context to initialize”h]”hŒThe context to initialize”…”�”}”(hjHIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jDIh´KƒhjEIubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj)Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jDIh´Kƒhj&Iubjñ)�”}”(hŒž``const struct ghash_key *key`` The key to use. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context.”h]”(j÷)�”}”(hŒ``const struct ghash_key *key``”h]”jý)�”}”(hjhIh]”hŒconst struct ghash_key *key”…”�”}”(hjjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjfIubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K„hjbIubj)�”}”(hhh]”hï)�”}”(hŒ~The key to use. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context.”h]”hŒ~The key to use. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context.”…”�”}”(hj�Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j}Ih´K„hj~Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjbIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j}Ih´K„hj&Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj Iubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œpolyval_init (C function)”Œc.polyval_init”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒJvoid polyval_init (struct polyval_ctx *ctx, const struct polyval_key *key)”h]”j)�”}”(hŒIvoid polyval_init(struct polyval_ctx *ctx, const struct polyval_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÁIh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj½Ih²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KŽubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐIh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj½Ih²hh³jÏIh´KŽubjD)�”}”(hŒ polyval_init”h]”jJ)�”}”(hŒ polyval_init”h]”hŒ polyval_init”…”�”}”(hjâIh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÞIubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj½Ih²hh³jÏIh´KŽubjÊ)�”}”(hŒ8(struct polyval_ctx *ctx, const struct polyval_key *key)”h]”(jÐ)�”}”(hŒstruct polyval_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjþIh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjúIubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Jh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjúIubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_ctx”h]”hŒ polyval_ctx”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jJŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jäIsbŒc.polyval_init”†”asbuh1hhjúIubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjThe data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(hjrSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jnSh´K½hjoSubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjSSubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jnSh´K½hjÞRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÂRubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj”Sh]”hŒ Description”…”�”}”(hj–Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj’Subah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K¿hjÂRubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hjªSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K¾hjÂRubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj»Sh]”hŒContext”…”�”}”(hj½Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¹Subah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÀhjÂRubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÑSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÁhjÂRubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œpolyval_update (C function)”Œc.polyval_update”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒIvoid polyval_update (struct polyval_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒHvoid polyval_update(struct polyval_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjüSh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÆubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjüSh²hh³jTh´KÆubjD)�”}”(hŒpolyval_update”h]”jJ)�”}”(hŒpolyval_update”h]”hŒpolyval_update”…”�”}”(hj!Th²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjTubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjüSh²hh³jTh´KÆubjÊ)�”}”(hŒ5(struct polyval_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct polyval_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj=Th²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj9Tubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJTh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj9Tubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_ctx”h]”hŒ polyval_ctx”…”�”}”(hj[Th²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjXTubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j]TŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j#TsbŒc.polyval_update”†”asbuh1hhj9Tubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{Th²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj9Tubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj‰Th²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj9TubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj–Th²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj9Tubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj5TubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj¯Th²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj«Tubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼Th²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj«Tubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÍTh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÊTubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÏTŒmodname”NŒ classname”Nj j)�”}”j]”jwTŒc.polyval_update”†”asbuh1hhj«Tubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëTh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj«Tubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjùTh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj«TubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«Tubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj5TubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj"Uh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjUubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j$UŒmodname”NŒ classname”Nj j)�”}”j]”jwTŒc.polyval_update”†”asbuh1hhjUubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@Uh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjUubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjNUh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjUubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj5Tubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjüSh²hh³jTh´KÆubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjøSh²hh³jTh´KÆubah}”(h]”jóSah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jTh´KÆhjõSh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a POLYVAL context with message data”h]”hŒ*Update a POLYVAL context with message data”…”�”}”(hjxUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÆhjuUh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjõSh²hh³jTh´KÆubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j�Uj™j�Ujš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hX***Parameters** ``struct polyval_ctx *ctx`` The context to update; must have been initialized ``const u8 *data`` The message data ``size_t len`` The data length in bytes. Doesn't need to be block-aligned. **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjšUh]”hŒ Parameters”…”�”}”(hjœUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj˜Uubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÊhj”Uubjì)�”}”(hhh]”(jñ)�”}”(hŒN``struct polyval_ctx *ctx`` The context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct polyval_ctx *ctx``”h]”jý)�”}”(hj¹Uh]”hŒstruct polyval_ctx *ctx”…”�”}”(hj»Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj·Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÇhj³Uubj)�”}”(hhh]”hï)�”}”(hŒ1The context to update; must have been initialized”h]”hŒ1The context to update; must have been initialized”…”�”}”(hjÒUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÎUh´KÇhjÏUubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj³Uubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÎUh´KÇhj°Uubjñ)�”}”(hŒ$``const u8 *data`` The message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjòUh]”hŒconst u8 *data”…”�”}”(hjôUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjðUubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÈhjìUubj)�”}”(hhh]”hï)�”}”(hŒThe message data”h]”hŒThe message data”…”�”}”(hj Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jVh´KÈhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjìUubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jVh´KÈhj°Uubjñ)�”}”(hŒL``size_t len`` The data length in bytes. Doesn't need to be block-aligned. ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj+Vh]”hŒ size_t len”…”�”}”(hj-Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj)Vubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÉhj%Vubj)�”}”(hhh]”hï)�”}”(hŒThe data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(hjDVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j@Vh´KÉhjAVubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj%Vubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j@Vh´KÉhj°Uubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj”Uubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjfVh]”hŒ Description”…”�”}”(hjhVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjdVubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KËhj”Uubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj|Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÊhj”Uubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj�Vh]”hŒContext”…”�”}”(hj�Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‹Vubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÌhj”Uub•hï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj£Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÍhj”Uubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œghash_final (C function)”Œ c.ghash_final”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒBvoid ghash_final (struct ghash_ctx *ctx, u8 out[GHASH_BLOCK_SIZE])”h]”j)�”}”(hŒAvoid ghash_final(struct ghash_ctx *ctx, u8 out[GHASH_BLOCK_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÒVh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÎVh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáVh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÎVh²hh³jàVh´KÒubjD)�”}”(hŒ ghash_final”h]”jJ)�”}”(hŒ ghash_final”h]”hŒ ghash_final”…”�”}”(hjóVh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjïVubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÎVh²hh³jàVh´KÒubjÊ)�”}”(hŒ1(struct ghash_ctx *ctx, u8 out[GHASH_BLOCK_SIZE])”h]”(jÐ)�”}”(hŒstruct ghash_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj Wubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj Wubh)�”}”(hhh]”jJ)�”}”(hŒ ghash_ctx”h]”hŒ ghash_ctx”…”�”}”(hj-Wh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj*Wubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j/WŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jõVsbŒ c.ghash_final”†”asbuh1hhj Wubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMWh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj Wubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj[Wh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj WubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjhWh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Wubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjWubjÐ)�”}”(hŒu8 out[GHASH_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj„Wh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�Wubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j†WŒmodname”NŒ classname”Nj j)�”}”j]”jIWŒ c.ghash_final”†”asbuh1hhj}Wubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢Wh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj}WubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj°Wh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj}Wubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj¾Wh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj}Wubh)�”}”(hhh]”jJ)�”}”(hŒGHASH_BLOCK_SIZE”h]”hŒGHASH_BLOCK_SIZE”…”�”}”(hjÎWh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjËWubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÐWŒmodname”NŒ classname”Nj j)�”}”j]”jIWŒ c.ghash_final”†”asbuh1hhj}Wubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjìWh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj}Wubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjWubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÎVh²hh³jàVh´KÒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÊVh²hh³jàVh´KÒubah}”(h]”jÅVah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jàVh´KÒhjÇVh²hubjv)�”}”(hhh]”hï)�”}”(hŒFinish computing a GHASH value”h]”hŒFinish computing a GHASH value”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÒhjXh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÇVh²hh³jàVh´KÒubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j-Xj™j-Xjš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hXc**Parameters** ``struct ghash_ctx *ctx`` The context to finalize ``u8 out[GHASH_BLOCK_SIZE]`` The output value **Description** If the total data length isn't a multiple of GHASH_BLOCK_SIZE, then the final block is automatically zero-padded. After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj7Xh]”hŒ Parameters”…”�”}”(hj9Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj5Xubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÖhj1Xubjì)�”}”(hhh]”(jñ)�”}”(hŒ2``struct ghash_ctx *ctx`` The context to finalize ”h]”(j÷)�”}”(hŒ``struct ghash_ctx *ctx``”h]”jý)�”}”(hjVXh]”hŒstruct ghash_ctx *ctx”…”�”}”(hjXXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjTXubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÓhjPXubj)�”}”(hhh]”hï)�”}”(hŒThe context to finalize”h]”hŒThe context to finalize”…”�”}”(hjoXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jkXh´KÓhjlXubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjPXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jkXh´KÓhjMXubjñ)�”}”(hŒ.``u8 out[GHASH_BLOCK_SIZE]`` The output value ”h]”(j÷)�”}”(hŒ``u8 out[GHASH_BLOCK_SIZE]``”h]”jý)�”}”(hj�Xh]”hŒu8 out[GHASH_BLOCK_SIZE]”…”�”}”(hj‘Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj�Xubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÔhj‰Xubj)�”}”(hhh]”hï)�”}”(hŒThe output value”h]”hŒThe output value”…”�”}”(hj¨Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¤Xh´KÔhj¥Xubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‰Xubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¤Xh´KÔhjMXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj1Xubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÊXh]”hŒ Description”…”�”}”(hjÌXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÈXubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÖhj1Xubhï)�”}”(hŒqIf the total data length isn't a multiple of GHASH_BLOCK_SIZE, then the final block is automatically zero-padded.”h]”hŒsIf the total data length isn’t a multiple of GHASH_BLOCK_SIZE, then the final block is automatically zero-padded.”…”�”}”(hjàXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÕhj1Xubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjïXh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj÷Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjïXubhŒ(. So the caller does not need to do it.”…”�”}”(hjïXh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KØhj1Xubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjYh]”hŒContext”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÚhj1Xubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj(Yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÛhj1Xubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œpolyval_final (C function)”Œc.polyval_final”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒHvoid polyval_final (struct polyval_ctx *ctx, u8 out[POLYVAL_BLOCK_SIZE])”h]”j)�”}”(hŒGvoid polyval_final(struct polyval_ctx *ctx, u8 out[POLYVAL_BLOCK_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjWYh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjSYh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kàubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjfYh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjSYh²hh³jeYh´KàubjD)�”}”(hŒ polyval_final”h]”jJ)�”}”(hŒ polyval_final”h]”hŒ polyval_final”…”�”}”(hjxYh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjtYubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjSYh²hh³jeYh´KàubjÊ)�”}”(hŒ5(struct polyval_ctx *ctx, u8 out[POLYVAL_BLOCK_SIZE])”h]”(jÐ)�”}”(hŒstruct polyval_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj”Yh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj�Yubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡Yh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�Yubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_ctx”h]”hŒ polyval_ctx”…”�”}”(hj²Yh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¯Yubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j´YŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jzYsbŒc.polyval_final”†”asbuh1hhj�Yubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒYh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�Yubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjàYh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj�YubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjíYh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�Yubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŒYubjÐ)�”}”(hŒu8 out[POLYVAL_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj Zh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j ZŒmodname”NŒ classname”Nj j)�”}”j]”jÎYŒc.polyval_final”†”asbuh1hhjZubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'Zh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjZubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj5Zh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjZubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjCZh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjZubh)�”}”(hhh]”jJ)�”}”(hŒPOLYVAL_BLOCK_SIZE”h]”hŒPOLYVAL_BLOCK_SIZE”…”�”}”(hjSZh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjPZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jUZŒmodname”NŒ classname”Nj j)�”}”j]”jÎYŒc.polyval_final”†”asbuh1hhjZubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjqZh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŒYubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjSYh²hh³jeYh´Kàubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjOYh²hh³jeYh´Kàubah}”(h]”jJYah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jeYh´KàhjLYh²hubjv)�”}”(hhh]”hï)�”}”(hŒ Finish computing a POLYVAL value”h]”hŒ Finish computing a POLYVAL value”…”�”}”(hjšZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kàhj—Zh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjLYh²hh³jeYh´Kàubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j²Zj™j²Zjš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hXi**Parameters** ``struct polyval_ctx *ctx`` The context to finalize ``u8 out[POLYVAL_BLOCK_SIZE]`` The output value **Description** If the total data length isn't a multiple of POLYVAL_BLOCK_SIZE, then the final block is automatically zero-padded. After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¼Zh]”hŒ Parameters”…”�”}”(hj¾Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjºZubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kähj¶Zubjì)�”}”(hhh]”(jñ)�”}”(hŒ4``struct polyval_ctx *ctx`` The context to finalize ”h]”(j÷)�”}”(hŒ``struct polyval_ctx *ctx``”h]”jý)�”}”(hjÛZh]”hŒstruct polyval_ctx *ctx”…”�”}”(hjÝZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÙZubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KáhjÕZubj)�”}”(hhh]”hï)�”}”(hŒThe context to finalize”h]”hŒThe context to finalize”…”�”}”(hjôZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jðZh´KáhjñZubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jðZh´KáhjÒZubjñ)�”}”(hŒ0``u8 out[POLYVAL_BLOCK_SIZE]`` The output value ”h]”(j÷)�”}”(hŒ``u8 out[POLYVAL_BLOCK_SIZE]``”h]”jý)�”}”(hj[h]”hŒu8 out[POLYVAL_BLOCK_SIZE]”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kâhj[ubj)�”}”(hhh]”hï)�”}”(hŒThe output value”h]”hŒThe output value”…”�”}”(hj-[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j)[h´Kâhj*[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j)[h´KâhjÒZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¶Zubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjO[h]”hŒ Description”…”�”}”(hjQ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjM[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kähj¶Zubhï)�”}”(hŒsIf the total data length isn't a multiple of POLYVAL_BLOCK_SIZE, then the final block is automatically zero-padded.”h]”hŒuIf the total data length isn’t a multiple of POLYVAL_BLOCK_SIZE, then the final block is automatically zero-padded.”…”�”}”(hje[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kãhj¶Zubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjt[h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj|[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjt[ubhŒ(. So the caller does not need to do it.”…”�”}”(hjt[h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kæhj¶Zubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj—[h]”hŒContext”…”�”}”(hj™[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj•[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kèhj¶Zubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj­[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kéhj¶Zubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œghash (C function)”Œc.ghash”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ^void ghash (const struct ghash_key *key, const u8 *data, size_t len, u8 out[GHASH_BLOCK_SIZE])”h]”j)�”}”(hŒ]void ghash(const struct ghash_key *key, const u8 *data, size_t len, u8 out[GHASH_BLOCK_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÜ[h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjØ[h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kîubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjë[h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØ[h²hh³jê[h´KîubjD)�”}”(hŒghash”h]”jJ)�”}”(hŒghash”h]”hŒghash”…”�”}”(hjý[h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjù[ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjØ[h²hh³jê[h´KîubjÊ)�”}”(hŒS(const struct ghash_key *key, const u8 *data, size_t len, u8 out[GHASH_BLOCK_SIZE])”h]”(jÐ)�”}”(hŒconst struct ghash_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj\ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&\h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj\ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj4\h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj\ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA\h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj\ubh)�”}”(hhh]”jJ)�”}”(hŒ ghash_key”h]”hŒ ghash_key”…”�”}”(hjR\h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjO\ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jT\Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÿ[sbŒc.ghash”†”asbuh1hhj\ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr\h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj\ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj€\h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj\ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj�\h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj\ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj\ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj¦\h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¢\ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³\h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¢\ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÄ\h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÁ\ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÆ\Œmodname”NŒ classname”Nj j)�”}”j]”jn\Œc.ghash”†”asbuh1hhj¢\ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ\h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¢\ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjð\h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¢\ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjý\h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¢\ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj\ubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j]Œmodname”NŒ classname”Nj j)�”}”j]”jn\Œc.ghash”†”asbuh1hhj]ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7]h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj]ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjE]h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj\ubjÐ)�”}”(hŒu8 out[GHASH_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hja]h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj^]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jc]Œmodname”NŒ classname”Nj j)�”}”j]”jn\Œc.ghash”†”asbuh1hhjZ]ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjZ]ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj�]h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjZ]ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj›]h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjZ]ubh)�”}”(hhh]”jJ)�”}”(hŒGHASH_BLOCK_SIZE”h]”hŒGHASH_BLOCK_SIZE”…”�”}”(hj«]h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¨]ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j­]Œmodname”NŒ classname”Nj j)�”}”j]”jn\Œc.ghash”†”asbuh1hhjZ]ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÉ]h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjZ]ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj\ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjØ[h²hh³jê[h´Kîubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÔ[h²hh³jê[h´Kîubah}”(h]”jÏ[ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jê[h´KîhjÑ[h²hubjv)�”}”(hhh]”hï)�”}”(hŒCompute a GHASH value”h]”hŒCompute a GHASH value”…”�”}”(hjò]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kîhjï]h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÑ[h²hh³jê[h´Kîubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j ^j™j ^jš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hX**Parameters** ``const struct ghash_key *key`` The prepared key ``const u8 *data`` The message data ``size_t len`` The data length in bytes. Doesn't need to be block-aligned. ``u8 out[GHASH_BLOCK_SIZE]`` The output value **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj^h]”hŒ Parameters”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kòhj^ubjì)�”}”(hhh]”(jñ)�”}”(hŒ1``const struct ghash_key *key`` The prepared key ”h]”(j÷)�”}”(hŒ``const struct ghash_key *key``”h]”jý)�”}”(hj3^h]”hŒconst struct ghash_key *key”…”�”}”(hj5^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj1^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kïhj-^ubj)�”}”(hhh]”hï)�”}”(hŒThe prepared key”h]”hŒThe prepared key”…”�”}”(hjL^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jH^h´KïhjI^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jH^h´Kïhj*^ubjñ)�”}”(hŒ$``const u8 *data`` The message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjl^h]”hŒconst u8 *data”…”�”}”(hjn^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kðhjf^ubj)�”}”(hhh]”hï)�”}”(hŒThe message data”h]”hŒThe message data”…”�”}”(hj…^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�^h´Kðhj‚^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjf^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�^h´Kðhj*^ubjñ)�”}”(hŒL``size_t len`` The data length in bytes. Doesn't need to be block-aligned. ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj¥^h]”hŒ size_t len”…”�”}”(hj§^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj£^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KñhjŸ^ubj)�”}”(hhh]”hï)�”}”(hŒThe data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(hj¾^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jº^h´Kñhj»^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸ^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jº^h´Kñhj*^ubjñ)�”}”(hŒ.``u8 out[GHASH_BLOCK_SIZE]`` The output value ”h]”(j÷)�”}”(hŒ``u8 out[GHASH_BLOCK_SIZE]``”h]”jý)�”}”(hjÞ^h]”hŒu8 out[GHASH_BLOCK_SIZE]”…”�”}”(hjà^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÜ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KòhjØ^ubj)�”}”(hhh]”hï)�”}”(hŒThe output value”h]”hŒThe output value”…”�”}”(hj÷^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jó^h´Kòhjô^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjØ^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jó^h´Kòhj*^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj^ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj_h]”hŒContext”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kôhj^ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj/_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kôhj^ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj":h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œpolyval (C function)”Œ c.polyval”hNt”auh1hþhj":h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒdvoid polyval (const struct polyval_key *key, const u8 *data, size_t len, u8 out[POLYVAL_BLOCK_SIZE])”h]”j)�”}”(hŒcvoid polyval(const struct polyval_key *key, const u8 *data, size_t len, u8 out[POLYVAL_BLOCK_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj^_h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjZ_h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjm_h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjZ_h²hh³jl_h´MubjD)�”}”(hŒpolyval”h]”jJ)�”}”(hŒpolyval”h]”hŒpolyval”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj{_ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjZ_h²hh³jl_h´MubjÊ)�”}”(hŒW(const struct polyval_key *key, const u8 *data, size_t len, u8 out[POLYVAL_BLOCK_SIZE])”h]”(jÐ)�”}”(hŒconst struct polyval_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj›_h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj—_ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨_h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj—_ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj¶_h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj—_ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃ_h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj—_ubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_key”h]”hŒ polyval_key”…”�”}”(hjÔ_h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÑ_ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÖ_Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j�_sbŒ c.polyval”†”asbuh1hhj—_ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjô_h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj—_ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj—_ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj—_ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj“_ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj(`h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj$`ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5`h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj$`ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjF`h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjC`ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jH`Œmodname”NŒ classname”Nj j)�”}”j]”jð_Œ c.polyval”†”asbuh1hhj$`ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd`h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj$`ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjr`h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj$`ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj$`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj“_ubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj›`h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj˜`ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�`Œmodname”NŒ classname”Nj j)�”}”j]”jð_Œ c.polyval”†”asbuh1hhj”`ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹`h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj”`ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjÇ`h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj”`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj“_ubjÐ)�”}”(hŒu8 out[POLYVAL_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjã`h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjà`ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jå`Œmodname”NŒ classname”Nj j)�”}”j]”jð_Œ c.polyval”†”asbuh1hhjÜ`ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜ`ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÜ`ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÜ`ubh)�”}”(hhh]”jJ)�”}”(hŒPOLYVAL_BLOCK_SIZE”h]”hŒPOLYVAL_BLOCK_SIZE”…”�”}”(hj-ah²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj*aubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j/aŒmodname”NŒ classname”Nj j)�”}”j]”jð_Œ c.polyval”†”asbuh1hhjÜ`ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjKah²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÜ`ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj“_ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjZ_h²hh³jl_h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjV_h²hh³jl_h´Mubah}”(h]”jQ_ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jl_h´MhjS_h²hubjv)�”}”(hhh]”hï)�”}”(hŒCompute a POLYVAL value”h]”hŒCompute a POLYVAL value”…”�”}”(hjtah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mhjqah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjS_h²hh³jl_h´Mubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jŒaj™jŒajš‰j›‰jœ‰uh1jh²hhj":h³Nh´Nubjž)�”}”(hX**Parameters** ``const struct polyval_key *key`` The prepared key ``const u8 *data`` The message data ``size_t len`` The data length in bytes. Doesn't need to be block-aligned. ``u8 out[POLYVAL_BLOCK_SIZE]`` The output value **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj–ah]”hŒ Parameters”…”�”}”(hj˜ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj”aubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mhj�aubjì)�”}”(hhh]”(jñ)�”}”(hŒ3``const struct polyval_key *key`` The prepared key ”h]”(j÷)�”}”(hŒ!``const struct polyval_key *key``”h]”jý)�”}”(hjµah]”hŒconst struct polyval_key *key”…”�”}”(hj·ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj³aubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mhj¯aubj)�”}”(hhh]”hï)�”}”(hŒThe prepared key”h]”hŒThe prepared key”…”�”}”(hjÎah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÊah´MhjËaubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¯aubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÊah´Mhj¬aubjñ)�”}”(hŒ$``const u8 *data`` The message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjîah]”hŒconst u8 *data”…”�”}”(hjðah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjìaubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mhjèaubj)�”}”(hhh]”hï)�”}”(hŒThe message data”h]”hŒThe message data”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jbh´Mhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjèaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jbh´Mhj¬aubjñ)�”}”(hŒL``size_t len`` The data length in bytes. Doesn't need to be block-aligned. ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj'bh]”hŒ size_t len”…”�”}”(hj)bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj%bubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mhj!bubj)�”}”(hhh]”hï)�”}”(hŒThe data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(hj@bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jdubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj"dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j=dh´K(hj­cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjecubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÏbh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œmd5_init (C function)”Œ c.md5_init”hNt”auh1hþhjÏbh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ#void md5_init (struct md5_ctx *ctx)”h]”j)�”}”(hŒ"void md5_init(struct md5_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‚dh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj~dh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘dh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj~dh²hh³j�dh´K1ubjD)�”}”(hŒmd5_init”h]”jJ)�”}”(hŒmd5_init”h]”hŒmd5_init”…”�”}”(hj£dh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŸdubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj~dh²hh³j�dh´K1ubjÊ)�”}”(hŒ(struct md5_ctx *ctx)”h]”jÐ)�”}”(hŒstruct md5_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj¿dh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj»dubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌdh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj»dubh)�”}”(hhh]”jJ)�”}”(hŒmd5_ctx”h]”hŒmd5_ctx”…”�”}”(hjÝdh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÚdubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jßdŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j¥dsbŒ c.md5_init”†”asbuh1hhj»dubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýdh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj»dubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj eh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj»dubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj»dubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj·dubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj~dh²hh³j�dh´K1ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjzdh²hh³j�dh´K1ubah}”(h]”judah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j�dh´K1hjwdh²hubjv)�”}”(hhh]”hï)�”}”(hŒ+Initialize an MD5 context for a new message”h]”hŒ+Initialize an MD5 context for a new message”…”�”}”(hjBeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K1hj?eh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjwdh²hh³j�dh´K1ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jZej™jZejš‰j›‰jœ‰uh1jh²hhjÏbh³Nh´Nubjž)�”}”(hŒ³**Parameters** ``struct md5_ctx *ctx`` the context to initialize **Description** If you don't need incremental computation, consider md5() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjdeh]”hŒ Parameters”…”�”}”(hjfeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjbeubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K5hj^eubjì)�”}”(hhh]”jñ)�”}”(hŒ2``struct md5_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct md5_ctx *ctx``”h]”jý)�”}”(hjƒeh]”hŒstruct md5_ctx *ctx”…”�”}”(hj…eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj�eubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K2hj}eubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hjœeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j˜eh´K2hj™eubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj}eubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j˜eh´K2hjzeubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj^eubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj¾eh]”hŒ Description”…”�”}”(hjÀeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¼eubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K4hj^eubhï)�”}”(hŒBIf you don't need incremental computation, consider md5() instead.”h]”hŒDIf you don’t need incremental computation, consider md5() instead.”…”�”}”(hjÔeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K3hj^eubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjåeh]”hŒContext”…”�”}”(hjçeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjãeubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K5hj^eubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjûeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K6hj^eubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÏbh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œmd5_update (C function)”Œ c.md5_update”hNt”auh1hþhjÏbh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒAvoid md5_update (struct md5_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒ@void md5_update(struct md5_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj*fh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj&fh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K;ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9fh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj&fh²hh³j8fh´K;ubjD)�”}”(hŒ md5_update”h]”jJ)�”}”(hŒ md5_update”h]”hŒ md5_update”…”�”}”(hjKfh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjGfubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj&fh²hh³j8fh´K;ubjÊ)�”}”(hŒ1(struct md5_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct md5_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjgfh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjcfubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtfh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjcfubh)�”}”(hhh]”jJ)�”}”(hŒmd5_ctx”h]”hŒmd5_ctx”…”�”}”(hj…fh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‚fubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‡fŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jMfsbŒ c.md5_update”†”asbuh1hhjcfubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥fh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjcfubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj³fh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjcfubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÀfh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjcfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj_fubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÙfh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÕfubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæfh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÕfubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj÷fh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjôfubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jùfŒmodname”NŒ classname”Nj j)�”}”j]”j¡fŒ c.md5_update”†”asbuh1hhjÕfubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÕfubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj#gh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÕfubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj0gh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÕfubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj_fubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjLgh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjIgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jNgŒmodname”NŒ classname”Nj j)�”}”j]”j¡fŒ c.md5_update”†”asbuh1hhjEgubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjgh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjEgubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjxgh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjEgubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj_fubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj&fh²hh³j8fh´K;ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj"fh²hh³j8fh´K;ubah}”(h]”jfah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j8fh´K;hjfh²hubjv)�”}”(hhh]”hï)�”}”(hŒ'Update an MD5 context with message data”h]”hŒ'Update an MD5 context with message data”…”�”}”(hj¢gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K;hjŸgh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjfh²hh³j8fh´K;ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jºgj™jºgjš‰j›‰jœ‰uh1jh²hhjÏbh³Nh´Nubjž)�”}”(hX**Parameters** ``struct md5_ctx *ctx`` the context to update; must have been initialized ``const u8 *data`` the message data ``size_t len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÄgh]”hŒ Parameters”…”�”}”(hjÆgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÂgubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K?hj¾gubjì)�”}”(hhh]”(jñ)�”}”(hŒJ``struct md5_ctx *ctx`` the context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct md5_ctx *ctx``”h]”jý)�”}”(hjãgh]”hŒstruct md5_ctx *ctx”…”�”}”(hjågh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjágubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KhjOhubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjnhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jjhh´K>hjkhubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjOhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jjhh´K>hjÚgubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¾gubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj�hh]”hŒ Description”…”�”}”(hj’hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjŽhubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K@hj¾gubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj¦hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K?hj¾gubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj·hh]”hŒContext”…”�”}”(hj¹hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjµhubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KAhj¾gubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÍhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KBhj¾gubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÏbh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œmd5_final (C function)”Œ c.md5_final”hNt”auh1hþhjÏbh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒDvoid md5_final (struct md5_ctx *ctx, u8 out[static MD5_DIGEST_SIZE])”h]”j)�”}”(hŒCvoid md5_final(struct md5_ctx *ctx, u8 out[static MD5_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjühh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjøhh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KGubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ih²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjøhh²hh³j ih´KGubjD)�”}”(hŒ md5_final”h]”jJ)�”}”(hŒ md5_final”h]”hŒ md5_final”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjiubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjøhh²hh³j ih´KGubjÊ)�”}”(hŒ5(struct md5_ctx *ctx, u8 out[static MD5_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct md5_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj9ih²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj5iubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFih²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj5iubh)�”}”(hhh]”jJ)�”}”(hŒmd5_ctx”h]”hŒmd5_ctx”…”�”}”(hjWih²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjTiubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jYiŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jisbŒ c.md5_final”†”asbuh1hhj5iubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwih²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj5iubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj…ih²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj5iubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj’ih²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj5iubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1iubjÐ)�”}”(hŒu8 out[static MD5_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj®ih²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«iubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j°iŒmodname”NŒ classname”Nj j)�”}”j]”jsiŒ c.md5_final”†”asbuh1hhj§iubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌih²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj§iubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjÚih²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj§iubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjèih²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj§iubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjõih²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj§iubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj§iubh)�”}”(hhh]”jJ)�”}”(hŒMD5_DIGEST_SIZE”h]”hŒMD5_DIGEST_SIZE”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jjŒmodname”NŒ classname”Nj j)�”}”j]”jsiŒ c.md5_final”†”asbuh1hhj§iubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj1jh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj§iubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1iubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjøhh²hh³j ih´KGubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjôhh²hh³j ih´KGubah}”(h]”jïhah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j ih´KGhjñhh²hubjv)�”}”(hhh]”hï)�”}”(hŒ&Finish computing an MD5 message digest”h]”hŒ&Finish computing an MD5 message digest”…”�”}”(hjZjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KGhjWjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjñhh²hh³j ih´KGubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jrjj™jrjjš‰j›‰jœ‰uh1jh²hhjÏbh³Nh´Nubjž)�”}”(hX)**Parameters** ``struct md5_ctx *ctx`` the context to finalize; must have been initialized ``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting MD5 message digest **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj|jh]”hŒ Parameters”…”�”}”(hj~jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjzjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KKhjvjubjì)�”}”(hhh]”(jñ)�”}”(hŒL``struct md5_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct md5_ctx *ctx``”h]”jý)�”}”(hj›jh]”hŒstruct md5_ctx *ctx”…”�”}”(hj�jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj™jubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KHhj•jubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hj´jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j°jh´KHhj±jubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj•jubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j°jh´KHhj’jubjñ)�”}”(hŒM``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting MD5 message digest ”h]”(j÷)�”}”(hŒ"``u8 out[static MD5_DIGEST_SIZE]``”h]”jý)�”}”(hjÔjh]”hŒu8 out[static MD5_DIGEST_SIZE]”…”�”}”(hjÖjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÒjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KIhjÎjubj)�”}”(hhh]”hï)�”}”(hŒ)(output) the resulting MD5 message digest”h]”hŒ)(output) the resulting MD5 message digest”…”�”}”(hjíjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jéjh´KIhjêjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÎjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jéjh´KIhj’jubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjvjubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjkh]”hŒ Description”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj kubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KKhjvjubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj%kh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj-kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj%kubhŒ(. So the caller does not need to do it.”…”�”}”(hj%kh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KJhjvjubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjHkh]”hŒContext”…”�”}”(hjJkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjFkubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KLhjvjubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj^kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KMhjvjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÏbh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œmd5 (C function)”Œc.md5”hNt”auh1hþhjÏbh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒEvoid md5 (const u8 *data, size_t len, u8 out[static MD5_DIGEST_SIZE])”h]”j)�”}”(hŒDvoid md5(const u8 *data, size_t len, u8 out[static MD5_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�kh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj‰kh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KRubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœkh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‰kh²hh³j›kh´KRubjD)�”}”(hŒmd5”h]”jJ)�”}”(hŒmd5”h]”hŒmd5”…”�”}”(hj®kh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjªkubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj‰kh²hh³j›kh´KRubjÊ)�”}”(hŒ<(const u8 *data, size_t len, u8 out[static MD5_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÊkh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÆkubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×kh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÆkubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjèkh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjåkubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jêkŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j°ksbŒc.md5”†”asbuh1hhjÆkubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÆkubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÆkubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj#lh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÆkubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÂkubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj?lh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j:{h´K›hj;{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j:{h´K›hjªzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjŽzubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj`{h]”hŒ Description”…”�”}”(hjb{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj^{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K�hjŽzubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hjv{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KœhjŽzubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj‡{h]”hŒContext”…”�”}”(hj‰{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj…{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KžhjŽzubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj�{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KŸhjŽzubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÏbh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_md5_final (C function)”Œc.hmac_md5_final”hNt”auh1hþhjÏbh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒNvoid hmac_md5_final (struct hmac_md5_ctx *ctx, u8 out[static MD5_DIGEST_SIZE])”h]”j)�”}”(hŒMvoid hmac_md5_final(struct hmac_md5_ctx *ctx, u8 out[static MD5_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÌ{h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÈ{h²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K¨ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛ{h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÈ{h²hh³jÚ{h´K¨ubjD)�”}”(hŒhmac_md5_final”h]”jJ)�”}”(hŒhmac_md5_final”h]”hŒhmac_md5_final”…”�”}”(hjí{h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjé{ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÈ{h²hh³jÚ{h´K¨ubjÊ)�”}”(hŒ:(struct hmac_md5_ctx *ctx, u8 out[static MD5_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct hmac_md5_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj |h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj|ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj|ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_md5_ctx”h]”hŒ hmac_md5_ctx”…”�”}”(hj'|h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj$|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j)|Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jï{sbŒc.hmac_md5_final”†”asbuh1hhj|ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG|h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj|ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjU|h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj|ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjb|h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj|ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj|ubjÐ)�”}”(hŒu8 out[static MD5_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj~|h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj{|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j€|Œmodname”NŒ classname”Nj j)�”}”j]”jC|Œc.hmac_md5_final”†”asbuh1hhjw|ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ|h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjw|ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjª|h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjw|ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj¸|h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjw|ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjÅ|h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjw|ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒ|h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjw|ubh)�”}”(hhh]”jJ)�”}”(hŒMD5_DIGEST_SIZE”h]”hŒMD5_DIGEST_SIZE”…”�”}”(hjã|h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjà|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jå|Œmodname”NŒ classname”Nj j)�”}”j]”jC|Œc.hmac_md5_final”†”asbuh1hhjw|ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjw|ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj|ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÈ{h²hh³jÚ{h´K¨ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÄ{h²hh³jÚ{h´K¨ubah}”(h]”j¿{ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÚ{h´K¨hjÁ{h²hubjv)�”}”(hhh]”hï)�”}”(hŒ"Finish computing an HMAC-MD5 value”h]”hŒ"Finish computing an HMAC-MD5 value”…”�”}”(hj*}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K¨hj'}h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÁ{h²hh³jÚ{h´K¨ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jB}j™jB}jš‰j›‰jœ‰uh1jh²hhjÏbh³Nh´Nubjž)�”}”(hX/**Parameters** ``struct hmac_md5_ctx *ctx`` the HMAC context to finalize; must have been initialized ``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting HMAC-MD5 value **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjL}h]”hŒ Parameters”…”�”}”(hjN}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjJ}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K¬hjF}ubjì)�”}”(hhh]”(jñ)�”}”(hŒV``struct hmac_md5_ctx *ctx`` the HMAC context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_md5_ctx *ctx``”h]”jý)�”}”(hjk}h]”hŒstruct hmac_md5_ctx *ctx”…”�”}”(hjm}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühji}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K©hje}ubj)�”}”(hhh]”hï)�”}”(hŒ8the HMAC context to finalize; must have been initialized”h]”hŒ8the HMAC context to finalize; must have been initialized”…”�”}”(hj„}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j€}h´K©hj�}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhje}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j€}h´K©hjb}ubjñ)�”}”(hŒI``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting HMAC-MD5 value ”h]”(j÷)�”}”(hŒ"``u8 out[static MD5_DIGEST_SIZE]``”h]”jý)�”}”(hj¤}h]”hŒu8 out[static MD5_DIGEST_SIZE]”…”�”}”(hj¦}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¢}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kªhjž}ubj)�”}”(hhh]”hï)�”}”(hŒ%(output) the resulting HMAC-MD5 value”h]”hŒ%(output) the resulting HMAC-MD5 value”…”�”}”(hj½}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¹}h´Kªhjº}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjž}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¹}h´Kªhjb}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjF}ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjß}h]”hŒ Description”…”�”}”(hjá}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÝ}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K¬hjF}ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjõ}h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjý}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjõ}ubhŒ(. So the caller does not need to do it.”…”�”}”(hjõ}h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K«hjF}ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj~h]”hŒContext”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K­hjF}ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj.~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K®hjF}ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÏbh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_md5 (C function)”Œ c.hmac_md5”hNt”auh1hþhjÏbh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒovoid hmac_md5 (const struct hmac_md5_key *key, const u8 *data, size_t data_len, u8 out[static MD5_DIGEST_SIZE])”h]”j)�”}”(hŒnvoid hmac_md5(const struct hmac_md5_key *key, const u8 *data, size_t data_len, u8 out[static MD5_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj]~h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjY~h²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K³ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl~h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjY~h²hh³jk~h´K³ubjD)�”}”(hŒhmac_md5”h]”jJ)�”}”(hŒhmac_md5”h]”hŒhmac_md5”…”�”}”(hj~~h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjz~ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjY~h²hh³jk~h´K³ubjÊ)�”}”(hŒa(const struct hmac_md5_key *key, const u8 *data, size_t data_len, u8 out[static MD5_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst struct hmac_md5_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjš~h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj–~ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§~h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj–~ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjµ~h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj–~ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂ~h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj–~ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_md5_key”h]”hŒ hmac_md5_key”…”�”}”(hjÓ~h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÐ~ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÕ~Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j€~sbŒ c.hmac_md5”†”asbuh1hhj–~ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjó~h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj–~ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj–~ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj–~ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj’~ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj#ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj#ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jGŒmodname”NŒ classname”Nj j)�”}”j]”jï~Œ c.hmac_md5”†”asbuh1hhj#ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj#ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj#ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj’~ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj—ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jœŒmodname”NŒ classname”Nj j)�”}”j]”jï~Œ c.hmac_md5”†”asbuh1hhj“ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj“ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj’~ubjÐ)�”}”(hŒu8 out[static MD5_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjßubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jäŒmodname”NŒ classname”Nj j)�”}”j]”jï~Œ c.hmac_md5”†”asbuh1hhjÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÛubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÛubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj)€h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6€h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛubh)�”}”(hhh]”jJ)�”}”(hŒMD5_DIGEST_SIZE”h]”hŒMD5_DIGEST_SIZE”…”�”}”(hjG€h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjD€ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jI€Œmodname”NŒ classname”Nj j)�”}”j]”jï~Œ c.hmac_md5”†”asbuh1hhjÛubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hje€h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÛubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj’~ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjY~h²hh³jk~h´K³ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjU~h²hh³jk~h´K³ubah}”(h]”jP~ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jk~h´K³hjR~h²hubjv)�”}”(hhh]”hï)�”}”(hŒ2Compute HMAC-MD5 in one shot, using a prepared key”h]”hŒ2Compute HMAC-MD5 in one shot, using a prepared key”…”�”}”(hjŽ€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K³hj‹€h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjR~h²hh³jk~h´K³ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¦€j™j¦€jš‰j›‰jœ‰uh1jh²hhjÏbh³Nh´Nubjž)�”}”(hXd**Parameters** ``const struct hmac_md5_key *key`` the prepared HMAC key ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting HMAC-MD5 value **Description** If you're using the key only once, consider using hmac_md5_usingrawkey(). **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj°€h]”hŒ Parameters”…”�”}”(hj²€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj®€ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K·hjª€ubjì)�”}”(hhh]”(jñ)�”}”(hŒ9``const struct hmac_md5_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ"``const struct hmac_md5_key *key``”h]”jý)�”}”(hjÏ€h]”hŒconst struct hmac_md5_key *key”…”�”}”(hjÑ€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÍ€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K´hjÉ€ubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjè€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jä€h´K´hjå€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÉ€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jä€h´K´hjÆ€ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj�h]”hŒconst u8 *data”…”�”}”(hj �h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kµhj�ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj!�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�h´Kµhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�h´KµhjÆ€ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjA�h]”hŒsize_t data_len”…”�”}”(hjC�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj?�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K¶hj;�ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjZ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jV�h´K¶hjW�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jV�h´K¶hjÆ€ubjñ)�”}”(hŒI``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting HMAC-MD5 value ”h]”(j÷)�”}”(hŒ"``u8 out[static MD5_DIGEST_SIZE]``”h]”jý)�”}”(hjz�h]”hŒu8 out[static MD5_DIGEST_SIZE]”…”�”}”(hj|�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjx�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K·hjt�ubj)�”}”(hhh]”hï)�”}”(hŒ%(output) the resulting HMAC-MD5 value”h]”hŒ%(output) the resulting HMAC-MD5 value”…”�”}”(hj“�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j��h´K·hj��ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjt�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j��h´K·hjÆ€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjª€ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjµ�h]”hŒ Description”…”�”}”(hj·�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj³�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K¹hjª€ubhï)�”}”(hŒIIf you're using the key only once, consider using hmac_md5_usingrawkey().”h]”hŒKIf you’re using the key only once, consider using hmac_md5_usingrawkey().”…”�”}”(hjË�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K¸hjª€ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÜ�h]”hŒContext”…”�”}”(hjÞ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÚ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kºhjª€ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjò�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K»hjª€ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÏbh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ!hmac_md5_usingrawkey (C function)”Œc.hmac_md5_usingrawkey”hNt”auh1hþhjÏbh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ‚void hmac_md5_usingrawkey (const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static MD5_DIGEST_SIZE])”h]”j)�”}”(hŒ�void hmac_md5_usingrawkey(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static MD5_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj!‚h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj‚h²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÂubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0‚h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‚h²hh³j/‚h´KÂubjD)�”}”(hŒhmac_md5_usingrawkey”h]”jJ)�”}”(hŒhmac_md5_usingrawkey”h]”hŒhmac_md5_usingrawkey”…”�”}”(hjB‚h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj>‚ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj‚h²hh³j/‚h´KÂubjÊ)�”}”(hŒh(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static MD5_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj^‚h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjZ‚ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjk‚h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjZ‚ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj|‚h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjy‚ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j~‚Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jD‚sbŒc.hmac_md5_usingrawkey”†”asbuh1hhjZ‚ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ‚h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjZ‚ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjª‚h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjZ‚ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj·‚h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjZ‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjV‚ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÓ‚h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjЂubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÕ‚Œmodname”NŒ classname”Nj j)�”}”j]”j˜‚Œc.hmac_md5_usingrawkey”†”asbuh1hhjÌ‚ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñ‚h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÌ‚ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjÿ‚h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÌ‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjV‚ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjƒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%ƒh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjƒubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj6ƒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj3ƒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j8ƒŒmodname”NŒ classname”Nj j)�”}”j]”j˜‚Œc.hmac_md5_usingrawkey”†”asbuh1hhjƒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTƒh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjƒubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjbƒh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjƒubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjoƒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjƒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjV‚ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj‹ƒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjˆƒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�ƒŒmodname”NŒ classname”Nj j)�”}”j]”j˜‚Œc.hmac_md5_usingrawkey”†”asbuh1hhj„ƒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©ƒh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj„ƒubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj·ƒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj„ƒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjV‚ubjÐ)�”}”(hŒu8 out[static MD5_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÓƒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjЃubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÕƒŒmodname”NŒ classname”Nj j)�”}”j]”j˜‚Œc.hmac_md5_usingrawkey”†”asbuh1hhj̃ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñƒh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj̃ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjÿƒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj̃ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj „h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj̃ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj̃ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'„h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj̃ubh)�”}”(hhh]”jJ)�”}”(hŒMD5_DIGEST_SIZE”h]”hŒMD5_DIGEST_SIZE”…”�”}”(hj8„h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj5„ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j:„Œmodname”NŒ classname”Nj j)�”}”j]”j˜‚Œc.hmac_md5_usingrawkey”†”asbuh1hhj̃ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjV„h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj̃ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjV‚ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj‚h²hh³j/‚h´KÂubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj‚h²hh³j/‚h´KÂubah}”(h]”j‚ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j/‚h´KÂhj‚h²hubjv)�”}”(hhh]”hï)�”}”(hŒ-Compute HMAC-MD5 in one shot, using a raw key”h]”hŒ-Compute HMAC-MD5 in one shot, using a raw key”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÂhj|„h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj‚h²hh³j/‚h´KÂubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j—„j™j—„jš‰j›‰jœ‰uh1jh²hhjÏbh³Nh´Nubjž)�”}”(hXÝ**Parameters** ``const u8 *raw_key`` the raw HMAC-MD5 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting HMAC-MD5 value **Description** If you're using the key multiple times, prefer to use hmac_md5_preparekey() followed by multiple calls to hmac_md5() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¡„h]”hŒ Parameters”…”�”}”(hj£„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjŸ„ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÆhj›„ubjì)�”}”(hhh]”(jñ)�”}”(hŒ+``const u8 *raw_key`` the raw HMAC-MD5 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjÀ„h]”hŒconst u8 *raw_key”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¾„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÃhjº„ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-MD5 key”h]”hŒthe raw HMAC-MD5 key”…”�”}”(hjÙ„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÕ„h´KÃhjÖ„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjº„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÕ„h´KÃhj·„ubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjù„h]”hŒsize_t raw_key_len”…”�”}”(hjû„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj÷„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÄhjó„ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”•%}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j…h´KÄhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjó„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j…h´KÄhj·„ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj2…h]”hŒconst u8 *data”…”�”}”(hj4…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj0…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÅhj,…ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjK…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jG…h´KÅhjH…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj,…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jG…h´KÅhj·„ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjk…h]”hŒsize_t data_len”…”�”}”(hjm…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühji…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÆhje…ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj„…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j€…h´KÆhj�…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhje…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j€…h´KÆhj·„ubjñ)�”}”(hŒI``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting HMAC-MD5 value ”h]”(j÷)�”}”(hŒ"``u8 out[static MD5_DIGEST_SIZE]``”h]”jý)�”}”(hj¤…h]”hŒu8 out[static MD5_DIGEST_SIZE]”…”�”}”(hj¦…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¢…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÇhjž…ubj)�”}”(hhh]”hï)�”}”(hŒ%(output) the resulting HMAC-MD5 value”h]”hŒ%(output) the resulting HMAC-MD5 value”…”�”}”(hj½…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¹…h´KÇhjº…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjž…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¹…h´KÇhj·„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj›„ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjß…h]”hŒ Description”…”�”}”(hjá…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÝ…ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÉhj›„ubhï)�”}”(hŒ}If you're using the key multiple times, prefer to use hmac_md5_preparekey() followed by multiple calls to hmac_md5() instead.”h]”hŒIf you’re using the key multiple times, prefer to use hmac_md5_preparekey() followed by multiple calls to hmac_md5() instead.”…”�”}”(hjõ…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÈhj›„ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj†h]”hŒContext”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KËhj›„ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KÌhj›„ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjÏbh²hh³Nh´Nubeh}”(h]”Œmd5”ah ]”h"]”Œmd5”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K%ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒNH”h]”hŒNH”…”�”}”(hj=†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj:†h²hh³hÇh´K-ubhï)�”}”(hŒˆThis API provides support for the NH universal hash function. This algorithm is used only as an internal component of other algorithms.”h]”hŒˆThis API provides support for the NH universal hash function. This algorithm is used only as an internal component of other algorithms.”…”�”}”(hjK†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K/hj:†h²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œnh (C function)”Œc.nh”hNt”auh1hþhj:†h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ[void nh (const u32 *key, const u8 *message, size_t message_len, __le64 hash[NH_NUM_PASSES])”h]”j)�”}”(hŒZvoid nh(const u32 *key, const u8 *message, size_t message_len, __le64 hash[NH_NUM_PASSES])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjr†h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjn†h²hh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K!ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�†h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjn†h²hh³j€†h´K!ubjD)�”}”(hŒnh”h]”jJ)�”}”(hŒnh”h]”hŒnh”…”�”}”(hj“†h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�†ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjn†h²hh³j€†h´K!ubjÊ)�”}”(hŒS(const u32 *key, const u8 *message, size_t message_len, __le64 hash[NH_NUM_PASSES])”h]”(jÐ)�”}”(hŒconst u32 *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj¯†h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj«†ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼†h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj«†ubh)�”}”(hhh]”jJ)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj͆h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjʆubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jφŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j•†sbŒc.nh”†”asbuh1hhj«†ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí†h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj«†ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjû†h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj«†ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«†ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj§†ubjÐ)�”}”(hŒconst u8 *message”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj!‡h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj‡ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.‡h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‡ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj?‡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj<‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jA‡Œmodname”NŒ classname”Nj j)�”}”j]”j醌c.nh”†”asbuh1hhj‡ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]‡h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‡ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjk‡h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj‡ubjJ)�”}”(hŒmessage”h]”hŒmessage”…”�”}”(hjx‡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj§†ubjÐ)�”}”(hŒsize_t message_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj”‡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‘‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j–‡Œmodname”NŒ classname”Nj j)�”}”j]”j醌c.nh”†”asbuh1hhj�‡ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²‡h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�‡ubjJ)�”}”(hŒ message_len”h]”hŒ message_len”…”�”}”(hjÀ‡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�‡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj§†ubjÐ)�”}”(hŒ__le64 hash[NH_NUM_PASSES]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒ__le64”h]”hŒ__le64”…”�”}”(hj܇h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÙ‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÞ‡Œmodname”NŒ classname”Nj j)�”}”j]”j醌c.nh”†”asbuh1hhjÕ‡ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú‡h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÕ‡ubjJ)�”}”(hŒhash”h]”hŒhash”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÕ‡ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÕ‡ubh)�”}”(hhh]”jJ)�”}”(hŒ NH_NUM_PASSES”h]”hŒ NH_NUM_PASSES”…”�”}”(hj&ˆh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj#ˆubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j(ˆŒmodname”NŒ classname”Nj j)�”}”j]”j醌c.nh”†”asbuh1hhjÕ‡ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjDˆh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÕ‡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj§†ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjn†h²hh³j€†h´K!ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjj†h²hh³j€†h´K!ubah}”(h]”je†ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j€†h´K!hjg†h²hubjv)�”}”(hhh]”hï)�”}”(hŒNH hash function for Adiantum”h]”hŒNH hash function for Adiantum”…”�”}”(hjmˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K!hjjˆh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjg†h²hh³j€†h´K!ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j…ˆj™j…ˆjš‰j›‰jœ‰uh1jh²hhj:†h³Nh´Nubjž)�”}”(hX3**Parameters** ``const u32 *key`` The key. **message_len** + 48 bytes of it are used. This is NH_KEY_BYTES if **message_len** has its maximum length of NH_MESSAGE_BYTES. ``const u8 *message`` The message ``size_t message_len`` The message length in bytes. Must be a multiple of 16 (NH_MESSAGE_UNIT) and at most 1024 (NH_MESSAGE_BYTES). ``__le64 hash[NH_NUM_PASSES]`` (output) The resulting hash value **Note** the pseudocode for NH in the Adiantum paper iterates over 1024-byte segments of the message, computes a 32-byte hash for each, and returns all the hashes concatenated together. In contrast, this function just hashes one segment and returns one hash. It's the caller's responsibility to call this function for each 1024-byte segment and collect all the hashes. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj�ˆh]”hŒ Parameters”…”�”}”(hj‘ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj�ˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K%hj‰ˆubjì)�”}”(hhh]”(jñ)�”}”(hŒ�``const u32 *key`` The key. **message_len** + 48 bytes of it are used. This is NH_KEY_BYTES if **message_len** has its maximum length of NH_MESSAGE_BYTES. ”h]”(j÷)�”}”(hŒ``const u32 *key``”h]”jý)�”}”(hj®ˆh]”hŒconst u32 *key”…”�”}”(hj°ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¬ˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K#hj¨ˆubj)�”}”(hhh]”hï)�”}”(hŒ‰The key. **message_len** + 48 bytes of it are used. This is NH_KEY_BYTES if **message_len** has its maximum length of NH_MESSAGE_BYTES.”h]”(hŒ The key. ”…”�”}”(hjLjh²hh³Nh´Nubj¨)�”}”(hŒ**message_len**”h]”hŒ message_len”…”�”}”(hjψh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjLjubhŒ5 + 48 bytes of it are used. This is NH_KEY_BYTES if ”…”�”}”(hjLjh²hh³Nh´Nubj¨)�”}”(hŒ**message_len**”h]”hŒ message_len”…”�”}”(hjáˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjLjubhŒ, has its maximum length of NH_MESSAGE_BYTES.”…”�”}”(hjLjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K"hjĈubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨ˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÈh´K#hj¥ˆubjñ)�”}”(hŒ"``const u8 *message`` The message ”h]”(j÷)�”}”(hŒ``const u8 *message``”h]”jý)�”}”(hj ‰h]”hŒconst u8 *message”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj ‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K$hj‰ubj)�”}”(hhh]”hï)�”}”(hŒ The message”h]”hŒ The message”…”�”}”(hj%‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j!‰h´K$hj"‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j!‰h´K$hj¥ˆubjñ)�”}”(hŒ…``size_t message_len`` The message length in bytes. Must be a multiple of 16 (NH_MESSAGE_UNIT) and at most 1024 (NH_MESSAGE_BYTES). ”h]”(j÷)�”}”(hŒ``size_t message_len``”h]”jý)�”}”(hjE‰h]”hŒsize_t message_len”…”�”}”(hjG‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjC‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K&hj?‰ubj)�”}”(hhh]”hï)�”}”(hŒmThe message length in bytes. Must be a multiple of 16 (NH_MESSAGE_UNIT) and at most 1024 (NH_MESSAGE_BYTES).”h]”hŒmThe message length in bytes. Must be a multiple of 16 (NH_MESSAGE_UNIT) and at most 1024 (NH_MESSAGE_BYTES).”…”�”}”(hj^‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K%hj[‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj?‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jZ‰h´K&hj¥ˆubjñ)�”}”(hŒA``__le64 hash[NH_NUM_PASSES]`` (output) The resulting hash value ”h]”(j÷)�”}”(hŒ``__le64 hash[NH_NUM_PASSES]``”h]”jý)�”}”(hj‰h]”hŒ__le64 hash[NH_NUM_PASSES]”…”�”}”(hj�‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj}‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K'hjy‰ubj)�”}”(hhh]”hï)�”}”(hŒ!(output) The resulting hash value”h]”hŒ!(output) The resulting hash value”…”�”}”(hj˜‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j”‰h´K'hj•‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjy‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j”‰h´K'hj¥ˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj‰ˆubhï)�”}”(hŒ**Note**”h]”j¨)�”}”(hjº‰h]”hŒNote”…”�”}”(hj¼‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¸‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K)hj‰ˆubhï)�”}”(hXithe pseudocode for NH in the Adiantum paper iterates over 1024-byte segments of the message, computes a 32-byte hash for each, and returns all the hashes concatenated together. In contrast, this function just hashes one segment and returns one hash. It's the caller's responsibility to call this function for each 1024-byte segment and collect all the hashes.”h]”hXmthe pseudocode for NH in the Adiantum paper iterates over 1024-byte segments of the message, computes a 32-byte hash for each, and returns all the hashes concatenated together. In contrast, this function just hashes one segment and returns one hash. It’s the caller’s responsibility to call this function for each 1024-byte segment and collect all the hashes.”…”�”}”(hjЉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K)hj‰ˆubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjá‰h]”hŒContext”…”�”}”(hjã‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj߉ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K/hj‰ˆubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj÷‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒY/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:50: ./include/crypto/nh.h”h´K/hj‰ˆubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj:†h²hh³Nh´Nubeh}”(h]”Œnh”ah ]”h"]”Œnh”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K-ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒPoly1305”h]”hŒPoly1305”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjŠh²hh³hÇh´K5ubhï)�”}”(hŒŽThis API provides support for the Poly1305 universal hash function. This algorithm is used only as an internal component of other algorithms.”h]”hŒŽThis API provides support for the Poly1305 universal hash function. This algorithm is used only as an internal component of other algorithms.”…”�”}”(hj&Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K7hjŠh²hubeh}”(h]”Œpoly1305”ah ]”h"]”Œpoly1305”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K5ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSHA-1”h]”hŒSHA-1”…”�”}”(hj?Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj<Šh²hh³hÇh´K=ubhï)�”}”(hŒ¡This API provides support for the SHA-1 cryptographic hash function and HMAC-SHA1. This algorithm is obsolete and is supported only for backwards compatibility.”h]”hŒ¡This API provides support for the SHA-1 cryptographic hash function and HMAC-SHA1. This algorithm is obsolete and is supported only for backwards compatibility.”…”�”}”(hjMŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K?hj<Šh²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha1_ctx (C struct)”Œ c.sha1_ctx”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒsha1_ctx”h]”j)�”}”(hŒstruct sha1_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjtŠh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjpŠh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚Šh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjpŠh²hh³j�Šh´KubjD)�”}”(hŒsha1_ctx”h]”jJ)�”}”(hjnŠh]”hŒsha1_ctx”…”�”}”(hj”Šh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�Šubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjpŠh²hh³j�Šh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjlŠh²hh³j�Šh´Kubah}”(h]”jgŠah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j�Šh´KhjiŠh²hubjv)�”}”(hhh]”hï)�”}”(hŒ(Context for hashing a message with SHA-1”h]”hŒ(Context for hashing a message with SHA-1”…”�”}”(hj¶Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K#hj³Šh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjiŠh²hh³j�Šh´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jΊj™jΊjš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hX;**Definition**:: struct sha1_ctx { struct sha1_block_state state; u64 bytecount; u8 buf[SHA1_BLOCK_SIZE]; }; **Members** ``state`` the compression function state ``bytecount`` number of bytes processed so far ``buf`` partial block buffer; bytecount % SHA1_BLOCK_SIZE bytes are valid”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÚŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÖŠubhŒ:”…”�”}”(hjÖŠh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K'hjÒŠubjÃ)�”}”(hŒgstruct sha1_ctx { struct sha1_block_state state; u64 bytecount; u8 buf[SHA1_BLOCK_SIZE]; };”h]”hŒgstruct sha1_ctx { struct sha1_block_state state; u64 bytecount; u8 buf[SHA1_BLOCK_SIZE]; };”…”�”}”hjóŠsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K)hjÒŠubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj‹h]”hŒMembers”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K/hjÒŠubjì)�”}”(hhh]”(jñ)�”}”(hŒ)``state`` the compression function state ”h]”(j÷)�”}”(hŒ ``state``”h]”jý)�”}”(hj#‹h]”hŒstate”…”�”}”(hj%‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj!‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K%hj‹ubj)�”}”(hhh]”hï)�”}”(hŒthe compression function state”h]”hŒthe compression function state”…”�”}”(hj<‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j8‹h´K%hj9‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j8‹h´K%hj‹ubjñ)�”}”(hŒ/``bytecount`` number of bytes processed so far ”h]”(j÷)�”}”(hŒ ``bytecount``”h]”jý)�”}”(hj\‹h]”hŒ bytecount”…”�”}”(hj^‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjZ‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K&hjV‹ubj)�”}”(hhh]”hï)�”}”(hŒ number of bytes processed so far”h]”hŒ number of bytes processed so far”…”�”}”(hju‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jq‹h´K&hjr‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjV‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jq‹h´K&hj‹ubjñ)�”}”(hŒI``buf`` partial block buffer; bytecount % SHA1_BLOCK_SIZE bytes are valid”h]”(j÷)�”}”(hŒ``buf``”h]”jý)�”}”(hj•‹h]”hŒbuf”…”�”}”(hj—‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj“‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K&hj�‹ubj)�”}”(hhh]”hï)�”}”(hŒApartial block buffer; bytecount % SHA1_BLOCK_SIZE bytes are valid”h]”hŒApartial block buffer; bytecount % SHA1_BLOCK_SIZE bytes are valid”…”�”}”(hj®‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K'hj«‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jª‹h´K&hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÒŠubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha1_init (C function)”Œ c.sha1_init”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ%void sha1_init (struct sha1_ctx *ctx)”h]”j)�”}”(hŒ$void sha1_init(struct sha1_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjï‹h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjë‹h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K/ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþ‹h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjë‹h²hh³jý‹h´K/ubjD)�”}”(hŒ sha1_init”h]”jJ)�”}”(hŒ sha1_init”h]”hŒ sha1_init”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Œubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjë‹h²hh³jý‹h´K/ubjÊ)�”}”(hŒ(struct sha1_ctx *ctx)”h]”jÐ)�”}”(hŒstruct sha1_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj,Œh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj(Œubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9Œh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj(Œubh)�”}”(hhh]”jJ)�”}”(hŒsha1_ctx”h]”hŒsha1_ctx”…”�”}”(hjJŒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjGŒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jLŒŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jŒsbŒ c.sha1_init”†”asbuh1hhj(Œubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjŒh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj(Œubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjxŒh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj(ŒubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj…Œh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj(Œubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj$Œubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjë‹h²hh³jý‹h´K/ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjç‹h²hh³jý‹h´K/ubah}”(h]”jâ‹ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jý‹h´K/hjä‹h²hubjv)�”}”(hhh]”hï)�”}”(hŒ,Initialize a SHA-1 context for a new message”h]”hŒ,Initialize a SHA-1 context for a new message”…”�”}”(hj¯Œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K/hj¬Œh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjä‹h²hh³jý‹h´K/ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÇŒj™jÇŒjš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hŒµ**Parameters** ``struct sha1_ctx *ctx`` the context to initialize **Description** If you don't need incremental computation, consider sha1() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÑŒh]”hŒ Parameters”…”�”}”(hjÓŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÏŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K3hjËŒubjì)�”}”(hhh]”jñ)�”}”(hŒ3``struct sha1_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct sha1_ctx *ctx``”h]”jý)�”}”(hjðŒh]”hŒstruct sha1_ctx *ctx”…”�”}”(hjòŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjîŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K0hjêŒubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hj �h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�h´K0hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjêŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�h´K0hjçŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjËŒubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj+�h]”hŒ Description”…”�”}”(hj-�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj)�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K2hjËŒubhï)�”}”(hŒCIf you don't need incremental computation, consider sha1() instead.”h]”hŒEIf you don’t need incremental computation, consider sha1() instead.”…”�”}”(hjA�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K1hjËŒubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjR�h]”hŒContext”…”�”}”(hjT�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjP�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K3hjËŒubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjh�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K4hjËŒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha1_update (C function)”Œ c.sha1_update”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒCvoid sha1_update (struct sha1_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒBvoid sha1_update(struct sha1_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj—�h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj“�h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K9ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj“�h²hh³j¥�h´K9ubjD)�”}”(hŒ sha1_update”h]”jJ)�”}”(hŒ sha1_update”h]”hŒ sha1_update”…”�”}”(hj¸�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj´�ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj“�h²hh³j¥�h´K9ubjÊ)�”}”(hŒ2(struct sha1_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct sha1_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÔ�h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÐ�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjá�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÐ�ubh)�”}”(hhh]”jJ)�”}”(hŒsha1_ctx”h]”hŒsha1_ctx”…”�”}”(hjò�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjï�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jô�Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jº�sbŒ c.sha1_update”†”asbuh1hhjÐ�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÐ�ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj Žh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÐ�ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj-Žh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÐ�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÌ�ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjFŽh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjBŽubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSŽh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjBŽubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjdŽh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjaŽubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jfŽŒmodname”NŒ classname”Nj j)�”}”j]”jŽŒ c.sha1_update”†”asbuh1hhjBŽubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚Žh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjBŽubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj�Žh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjBŽubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj�Žh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjBŽubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÌ�ubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj¹Žh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¶Žubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j»ŽŒmodname”NŒ classname”Nj j)�”}”j]”jŽŒ c.sha1_update”†”asbuh1hhj²Žubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj׎h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj²ŽubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjåŽh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj²Žubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÌ�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj“�h²hh³j¥�h´K9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj��h²hh³j¥�h´K9ubah}”(h]”jŠ�ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¥�h´K9hjŒ�h²hubjv)�”}”(hhh]”hï)�”}”(hŒ(Update a SHA-1 context with message data”h]”hŒ(Update a SHA-1 context with message data”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K9hj �h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjŒ�h²hh³j¥�h´K9ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j'�j™j'�jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hX**Parameters** ``struct sha1_ctx *ctx`` the context to update; must have been initialized ``const u8 *data`` the message data ``size_t len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj1�h]”hŒ Parameters”…”�”}”(hj3�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj/�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K=hj+�ubjì)�”}”(hhh]”(jñ)�”}”(hŒK``struct sha1_ctx *ctx`` the context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha1_ctx *ctx``”h]”jý)�”}”(hjP�h]”hŒstruct sha1_ctx *ctx”…”�”}”(hjR�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjN�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K:hjJ�ubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hji�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³je�h´K:hjf�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjJ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³je�h´K:hjG�ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj‰�h]”hŒconst u8 *data”…”�”}”(hj‹�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj‡�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K;hjƒ�ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj¢�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jž�h´K;hjŸ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jž�h´K;hjG�ubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjÂ�h]”hŒ size_t len”…”�”}”(hjÄ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÀ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Khj+�ubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K=hj+�ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj$�h]”hŒContext”…”�”}”(hj&�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj"�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K?hj+�ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj:�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K@hj+�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha1_final (C function)”Œ c.sha1_final”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒGvoid sha1_final (struct sha1_ctx *ctx, u8 out[static SHA1_DIGEST_SIZE])”h]”j)�”}”(hŒFvoid sha1_final(struct sha1_ctx *ctx, u8 out[static SHA1_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hji�h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hje�h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KEubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hje�h²hh³jw�h´KEubjD)�”}”(hŒ sha1_final”h]”jJ)�”}”(hŒ sha1_final”h]”hŒ sha1_final”…”�”}”(hjŠ�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj†�ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChje�h²hh³jw�h´KEubjÊ)�”}”(hŒ7(struct sha1_ctx *ctx, u8 out[static SHA1_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct sha1_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj¦�h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¢�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¢�ubh)�”}”(hhh]”jJ)�”}”(hŒsha1_ctx”h]”hŒsha1_ctx”…”�”}”(hjÄ�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÁ�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÆ�Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jŒ�sbŒ c.sha1_final”†”asbuh1hhj¢�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¢�ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjò�h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¢�ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÿ�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¢�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjž�ubjÐ)�”}”(hŒu8 out[static SHA1_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‘ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‘Œmodname”NŒ classname”Nj j)�”}”j]”jà�Œ c.sha1_final”†”asbuh1hhj‘ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9‘h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‘ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjG‘h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‘ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjU‘h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj‘ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjb‘h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj‘ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo‘h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‘ubh)�”}”(hhh]”jJ)�”}”(hŒSHA1_DIGEST_SIZE”h]”hŒSHA1_DIGEST_SIZE”…”�”}”(hj€‘h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj}‘ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‚‘Œmodname”NŒ classname”Nj j)�”}”j]”jà�Œ c.sha1_final”†”asbuh1hhj‘ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjž‘h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj‘ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjž�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhje�h²hh³jw�h´KEubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihja�h²hh³jw�h´KEubah}”(h]”j\�ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jw�h´KEhj^�h²hubjv)�”}”(hhh]”hï)�”}”(hŒ'Finish computing a SHA-1 message digest”h]”hŒ'Finish computing a SHA-1 message digest”…”�”}”(hjÇ‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KEhjÄ‘h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj^�h²hh³jw�h´KEubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jß‘j™jß‘jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hX-**Parameters** ``struct sha1_ctx *ctx`` the context to finalize; must have been initialized ``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting SHA-1 message digest **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjé‘h]”hŒ Parameters”…”�”}”(hjë‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjç‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KIhjã‘ubjì)�”}”(hhh]”(jñ)�”}”(hŒM``struct sha1_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha1_ctx *ctx``”h]”jý)�”}”(hj’h]”hŒstruct sha1_ctx *ctx”…”�”}”(hj ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KFhj’ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hj!’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j’h´KFhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j’h´KFhjÿ‘ubjñ)�”}”(hŒP``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting SHA-1 message digest ”h]”(j÷)�”}”(hŒ#``u8 out[static SHA1_DIGEST_SIZE]``”h]”jý)�”}”(hjA’h]”hŒu8 out[static SHA1_DIGEST_SIZE]”…”�”}”(hjC’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj?’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KGhj;’ubj)�”}”(hhh]”hï)�”}”(hŒ+(output) the resulting SHA-1 message digest”h]”hŒ+(output) the resulting SHA-1 message digest”…”�”}”(hjZ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jV’h´KGhjW’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jV’h´KGhjÿ‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjã‘ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj|’h]”hŒ Description”…”�”}”(hj~’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjz’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KIhjã‘ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj’’h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjš’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj’’ubhŒ(. So the caller does not need to do it.”…”�”}”(hj’’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KHhjã‘ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjµ’h]”hŒContext”…”�”}”(hj·’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj³’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KJhjã‘ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjË’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KKhjã‘ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha1 (C function)”Œc.sha1”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒGvoid sha1 (const u8 *data, size_t len, u8 out[static SHA1_DIGEST_SIZE])”h]”j)�”}”(hŒFvoid sha1(const u8 *data, size_t len, u8 out[static SHA1_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjú’h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjö’h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KPubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj “h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjö’h²hh³j“h´KPubjD)�”}”(hŒsha1”h]”jJ)�”}”(hŒsha1”h]”hŒsha1”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj“ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjö’h²hh³j“h´KPubjÊ)�”}”(hŒ=(const u8 *data, size_t len, u8 out[static SHA1_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj7“h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj3“ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjD“h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj3“ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjU“h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjR“ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jW“Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j“sbŒc.sha1”†”asbuh1hhj3“ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju“h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj3“ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjƒ“h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj3“ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj�“h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj3“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj/“ubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj¬“h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj©“ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j®“Œmodname”NŒ classname”Nj j)�”}”j]”jq“Œc.sha1”†”asbuh1hhj¥“ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ“h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¥“ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjØ“h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¥“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj/“ubjÐ)�”}”(hŒu8 out[static SHA1_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjô“h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjñ“ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jö“Œmodname”NŒ classname”Nj j)�”}”j]”jq“Œc.sha1”†”asbuh1hhjí“ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjí“ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj ”h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjí“ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj.”h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjí“ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj;”h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjí“ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjH”h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjí“ubh)�”}”(hhh]”jJ)�”}”(hŒSHA1_DIGEST_SIZE”h]”hŒSHA1_DIGEST_SIZE”…”�”}”(hjY”h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjV”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j[”Œmodname”NŒ classname”Nj j)�”}”j]”jq“Œc.sha1”†”asbuh1hhjí“ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjw”h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjí“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj/“ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjö’h²hh³j“h´KPubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjò’h²hh³j“h´KPubah}”(h]”jí’ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j“h´KPhjï’h²hubjv)�”}”(hhh]”hï)�”}”(hŒ(Compute SHA-1 message digest in one shot”h]”hŒ(Compute SHA-1 message digest in one shot”…”�”}”(hj ”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KPhj�”h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjï’h²hh³j“h´KPubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¸”j™j¸”jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hŒÎ**Parameters** ``const u8 *data`` the message data ``size_t len`` the data length in bytes ``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting SHA-1 message digest **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj”h]”hŒ Parameters”…”�”}”(hjÄ”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÀ”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KThj¼”ubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjá”h]”hŒconst u8 *data”…”�”}”(hjã”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjß”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KQhjÛ”ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjú”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jö”h´KQhj÷”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÛ”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jö”h´KQhjØ”ubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj•h]”hŒ size_t len”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KRhj•ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj3•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j/•h´KRhj0•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j/•h´KRhjØ”ubjñ)�”}”(hŒP``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting SHA-1 message digest ”h]”(j÷)�”}”(hŒ#``u8 out[static SHA1_DIGEST_SIZE]``”h]”jý)�”}”(hjS•h]”hŒu8 out[static SHA1_DIGEST_SIZE]”…”�”}”(hjU•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjQ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KShjM•ubj)�”}”(hhh]”hï)�”}”(hŒ+(output) the resulting SHA-1 message digest”h]”hŒ+(output) the resulting SHA-1 message digest”…”�”}”(hjl•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh•h´KShji•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjM•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh•h´KShjØ”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¼”ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjŽ•h]”hŒContext”…”�”}”(hj�•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjŒ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KUhj¼”ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj¤•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KUhj¼”ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha1_key (C struct)”Œc.hmac_sha1_key”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ hmac_sha1_key”h]”j)�”}”(hŒstruct hmac_sha1_key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÓ•h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÏ•h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KZubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjá•h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÏ•h²hh³jà•h´KZubjD)�”}”(hŒ hmac_sha1_key”h]”jJ)�”}”(hjÍ•h]”hŒ hmac_sha1_key”…”�”}”(hjó•h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjï•ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÏ•h²hh³jà•h´KZubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjË•h²hh³jà•h´KZubah}”(h]”jÆ•ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jà•h´KZhjÈ•h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepared key for HMAC-SHA1”h]”hŒPrepared key for HMAC-SHA1”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KZhj–h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÈ•h²hh³jà•h´KZubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j-–j™j-–jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hŒ´**Definition**:: struct hmac_sha1_key { struct sha1_block_state istate; struct sha1_block_state ostate; }; **Members** ``istate`` private ``ostate`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj9–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj5–ubhŒ:”…”�”}”(hj5–h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K^hj1–ubjÃ)�”}”(hŒastruct hmac_sha1_key { struct sha1_block_state istate; struct sha1_block_state ostate; };”h]”hŒastruct hmac_sha1_key { struct sha1_block_state istate; struct sha1_block_state ostate; };”…”�”}”hjR–sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K`hj1–ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjc–h]”hŒMembers”…”�”}”(hje–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hja–ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kehj1–ubjì)�”}”(hhh]”(jñ)�”}”(hŒ``istate`` private ”h]”(j÷)�”}”(hŒ ``istate``”h]”jý)�”}”(hj‚–h]”hŒistate”…”�”}”(hj„–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj€–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K\hj|–ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj›–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j—–h´K\hj˜–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j—–h´K\hjy–ubjñ)�”}”(hŒ``ostate`` private”h]”(j÷)�”}”(hŒ ``ostate``”h]”jý)�”}”(hj»–h]”hŒostate”…”�”}”(hj½–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¹–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K\hjµ–ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjÔ–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K]hjÑ–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjµ–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jЖh´K\hjy–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj1–ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha1_ctx (C struct)”Œc.hmac_sha1_ctx”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ hmac_sha1_ctx”h]”j)�”}”(hŒstruct hmac_sha1_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj—h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kcubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#—h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj—h²hh³j"—h´KcubjD)�”}”(hŒ hmac_sha1_ctx”h]”jJ)�”}”(hj—h]”hŒ hmac_sha1_ctx”…”�”}”(hj5—h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj1—ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj—h²hh³j"—h´Kcubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj —h²hh³j"—h´Kcubah}”(h]”j—ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j"—h´Kchj —h²hubjv)�”}”(hhh]”hï)�”}”(hŒ,Context for computing HMAC-SHA1 of a message”h]”hŒ,Context for computing HMAC-SHA1 of a message”…”�”}”(hjW—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KdhjT—h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj —h²hh³j"—h´Kcubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jo—j™jo—jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hŒ®**Definition**:: struct hmac_sha1_ctx { struct sha1_ctx sha_ctx; struct sha1_block_state ostate; }; **Members** ``sha_ctx`` private ``ostate`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj{—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjw—ubhŒ:”…”�”}”(hjw—h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Khhjs—ubjÃ)�”}”(hŒZstruct hmac_sha1_ctx { struct sha1_ctx sha_ctx; struct sha1_block_state ostate; };”h]”hŒZstruct hmac_sha1_ctx { struct sha1_ctx sha_ctx; struct sha1_block_state ostate; };”…”�”}”hj”—sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kjhjs—ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj¥—h]”hŒMembers”…”�”}”(hj§—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj£—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kohjs—ubjì)�”}”(hhh]”(jñ)�”}”(hŒ``sha_ctx`` private ”h]”(j÷)�”}”(hŒ ``sha_ctx``”h]”jý)�”}”(hjÄ—h]”hŒsha_ctx”…”�”}”(hjÆ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kfhj¾—ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjÝ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÙ—h´KfhjÚ—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¾—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÙ—h´Kfhj»—ubjñ)�”}”(hŒ``ostate`` private”h]”(j÷)�”}”(hŒ ``ostate``”h]”jý)�”}”(hjý—h]”hŒostate”…”�”}”(hjÿ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjû—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kfhj÷—ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kghj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j˜h´Kfhj»—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjs—ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ!hmac_sha1_preparekey (C function)”Œc.hmac_sha1_preparekey”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ\void hmac_sha1_preparekey (struct hmac_sha1_key *key, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒ[void hmac_sha1_preparekey(struct hmac_sha1_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjW˜h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjS˜h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Knubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf˜h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjS˜h²hh³je˜h´KnubjD)�”}”(hŒhmac_sha1_preparekey”h]”jJ)�”}”(hŒhmac_sha1_preparekey”h]”hŒhmac_sha1_preparekey”…”�”}”(hjx˜h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjt˜ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjS˜h²hh³je˜h´KnubjÊ)�”}”(hŒB(struct hmac_sha1_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha1_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj”˜h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj�˜ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡˜h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�˜ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_sha1_key”h]”hŒ hmac_sha1_key”…”�”}”(hj²˜h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¯˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j´˜Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jz˜sbŒc.hmac_sha1_preparekey”†”asbuh1hhj�˜ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒ˜h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�˜ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjà˜h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj�˜ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjí˜h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŒ˜ubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj™ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj™ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj$™h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj!™ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j&™Œmodname”NŒ classname”Nj j)�”}”j]”jΘŒc.hmac_sha1_preparekey”†”asbuh1hhj™ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjB™h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj™ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjP™h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj™ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj]™h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj™ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŒ˜ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjy™h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjv™ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j{™Œmodname”NŒ classname”Nj j)�”}”j]”jΘŒc.hmac_sha1_preparekey”†”asbuh1hhjr™ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—™h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjr™ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj¥™h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjr™ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŒ˜ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjS˜h²hh³je˜h´Knubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjO˜h²hh³je˜h´Knubah}”(h]”jJ˜ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³je˜h´KnhjL˜h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a key for HMAC-SHA1”h]”hŒPrepare a key for HMAC-SHA1”…”�”}”(hjÏ™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KnhjÌ™h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjL˜h²hh³je˜h´Knubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jç™j™jç™jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hXv**Parameters** ``struct hmac_sha1_key *key`` (output) the key structure to initialize ``const u8 *raw_key`` the raw HMAC-SHA1 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Note** the caller is responsible for zeroizing both the struct hmac_sha1_key and the raw key once they are no longer needed. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjñ™h]”hŒ Parameters”…”�”}”(hjó™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjï™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Krhjë™ubjì)�”}”(hhh]”(jñ)�”}”(hŒG``struct hmac_sha1_key *key`` (output) the key structure to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha1_key *key``”h]”jý)�”}”(hjšh]”hŒstruct hmac_sha1_key *key”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kohj šubj)�”}”(hhh]”hï)�”}”(hŒ((output) the key structure to initialize”h]”hŒ((output) the key structure to initialize”…”�”}”(hj)šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j%šh´Kohj&šubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj šubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j%šh´Kohjšubjñ)�”}”(hŒ,``const u8 *raw_key`` the raw HMAC-SHA1 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjIšh]”hŒconst u8 *raw_key”…”�”}”(hjKšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjGšubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KphjCšubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA1 key”h]”hŒthe raw HMAC-SHA1 key”…”�”}”(hjbšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j^šh´Kphj_šubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j^šh´Kphjšubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hj‚šh]”hŒsize_t raw_key_len”…”�”}”(hj„šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj€šubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kqhj|šubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hj›šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j—šh´Kqhj˜šubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|šubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j—šh´Kqhjšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjë™ubhï)�”}”(hŒ**Note**”h]”j¨)�”}”(hj½šh]”hŒNote”…”�”}”(hj¿šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj»šubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kshjë™ubhï)�”}”(hŒuthe caller is responsible for zeroizing both the struct hmac_sha1_key and the raw key once they are no longer needed.”h]”hŒuthe caller is responsible for zeroizing both the struct hmac_sha1_key and the raw key once they are no longer needed.”…”�”}”(hjÓšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kshjë™ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjäšh]”hŒContext”…”�”}”(hjæšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjâšubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kvhjë™ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjúšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kvhjë™ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha1_init (C function)”Œc.hmac_sha1_init”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒPvoid hmac_sha1_init (struct hmac_sha1_ctx *ctx, const struct hmac_sha1_key *key)”h]”j)�”}”(hŒOvoid hmac_sha1_init(struct hmac_sha1_ctx *ctx, const struct hmac_sha1_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj)›h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj%›h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”•h´K|ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8›h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj%›h²hh³j7›h´K|ubjD)�”}”(hŒhmac_sha1_init”h]”jJ)�”}”(hŒhmac_sha1_init”h]”hŒhmac_sha1_init”…”�”}”(hjJ›h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjF›ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj%›h²hh³j7›h´K|ubjÊ)�”}”(hŒ<(struct hmac_sha1_ctx *ctx, const struct hmac_sha1_key *key)”h]”(jÐ)�”}”(hŒstruct hmac_sha1_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjf›h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjb›ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjs›h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjb›ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_sha1_ctx”h]”hŒ hmac_sha1_ctx”…”�”}”(hj„›h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j†›Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jL›sbŒc.hmac_sha1_init”†”asbuh1hhjb›ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤›h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjb›ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj²›h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjb›ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj¿›h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjb›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj^›ubjÐ)�”}”(hŒconst struct hmac_sha1_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjØ›h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÔ›ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjå›h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÔ›ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjó›h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÔ›ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÔ›ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_sha1_key”h]”hŒ hmac_sha1_key”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjœubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jœŒmodname”NŒ classname”Nj j)�”}”j]”j ›Œc.hmac_sha1_init”†”asbuh1hhjÔ›ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/œh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÔ›ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj=œh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÔ›ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjJœh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÔ›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj^›ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj%›h²hh³j7›h´K|ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj!›h²hh³j7›h´K|ubah}”(h]”j›ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j7›h´K|hj›h²hubjv)�”}”(hhh]”hï)�”}”(hŒ1Initialize an HMAC-SHA1 context for a new message”h]”hŒ1Initialize an HMAC-SHA1 context for a new message”…”�”}”(hjtœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K|hjqœh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj›h²hh³j7›h´K|ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jŒœj™jŒœjš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hX **Parameters** ``struct hmac_sha1_ctx *ctx`` (output) the HMAC context to initialize ``const struct hmac_sha1_key *key`` the prepared HMAC key **Description** If you don't need incremental computation, consider hmac_sha1() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj–œh]”hŒ Parameters”…”�”}”(hj˜œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj”œubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K€hj�œubjì)�”}”(hhh]”(jñ)�”}”(hŒF``struct hmac_sha1_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha1_ctx *ctx``”h]”jý)�”}”(hjµœh]”hŒstruct hmac_sha1_ctx *ctx”…”�”}”(hj·œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj³œubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K}hj¯œubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hjΜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÊœh´K}hjËœubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¯œubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÊœh´K}hj¬œubjñ)�”}”(hŒ:``const struct hmac_sha1_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ#``const struct hmac_sha1_key *key``”h]”jý)�”}”(hjîœh]”hŒconst struct hmac_sha1_key *key”…”�”}”(hjðœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjìœubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K~hjèœubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�h´K~hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjèœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�h´K~hj¬œubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj�œubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj)�h]”hŒ Description”…”�”}”(hj+�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj'�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K€hj�œubhï)�”}”(hŒHIf you don't need incremental computation, consider hmac_sha1() instead.”h]”hŒJIf you don’t need incremental computation, consider hmac_sha1() instead.”…”�”}”(hj?�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Khj�œubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjP�h]”hŒContext”…”�”}”(hjR�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjN�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K�hj�œubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjf�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K‚hj�œubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ'hmac_sha1_init_usingrawkey (C function)”Œc.hmac_sha1_init_usingrawkey”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒbvoid hmac_sha1_init_usingrawkey (struct hmac_sha1_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒavoid hmac_sha1_init_usingrawkey(struct hmac_sha1_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj•�h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj‘�h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K‡ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‘�h²hh³j£�h´K‡ubjD)�”}”(hŒhmac_sha1_init_usingrawkey”h]”jJ)�”}”(hŒhmac_sha1_init_usingrawkey”h]”hŒhmac_sha1_init_usingrawkey”…”�”}”(hj¶�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj²�ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj‘�h²hh³j£�h´K‡ubjÊ)�”}”(hŒB(struct hmac_sha1_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha1_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÒ�h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÎ�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÎ�ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_sha1_ctx”h]”hŒ hmac_sha1_ctx”…”�”}”(hjð�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjí�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jò�Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j¸�sbŒc.hmac_sha1_init_usingrawkey”†”asbuh1hhjÎ�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÎ�ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÎ�ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj+žh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÎ�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊ�ubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjDžh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj@žubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQžh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@žubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjbžh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj_žubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jdžŒmodname”NŒ classname”Nj j)�”}”j]”j žŒc.hmac_sha1_init_usingrawkey”†”asbuh1hhj@žubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€žh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@žubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjŽžh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj@žubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj›žh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj@žubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊ�ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj·žh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj´žubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¹žŒmodname”NŒ classname”Nj j)�”}”j]”j žŒc.hmac_sha1_init_usingrawkey”†”asbuh1hhj°žubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕžh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj°žubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjãžh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj°žubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊ�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj‘�h²hh³j£�h´K‡ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj��h²hh³j£�h´K‡ubah}”(h]”jˆ�ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j£�h´K‡hjŠ�h²hubjv)�”}”(hhh]”hï)�”}”(hŒBInitialize an HMAC-SHA1 context for a new message, using a raw key”h]”hŒBInitialize an HMAC-SHA1 context for a new message, using a raw key”…”�”}”(hj Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K‡hj Ÿh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjŠ�h²hh³j£�h´K‡ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j%Ÿj™j%Ÿjš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hX[**Parameters** ``struct hmac_sha1_ctx *ctx`` (output) the HMAC context to initialize ``const u8 *raw_key`` the raw HMAC-SHA1 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Description** If you don't need incremental computation, consider hmac_sha1_usingrawkey() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj/Ÿh]”hŒ Parameters”…”�”}”(hj1Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj-Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K‹hj)Ÿubjì)�”}”(hhh]”(jñ)�”}”(hŒF``struct hmac_sha1_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha1_ctx *ctx``”h]”jý)�”}”(hjNŸh]”hŒstruct hmac_sha1_ctx *ctx”…”�”}”(hjPŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjLŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K‰hjHŸubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hjgŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jcŸh´K‰hjdŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjHŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jcŸh´K‰hjEŸubjñ)�”}”(hŒ,``const u8 *raw_key`` the raw HMAC-SHA1 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj‡Ÿh]”hŒconst u8 *raw_key”…”�”}”(hj‰Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj…Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KŠhj�Ÿubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA1 key”h]”hŒthe raw HMAC-SHA1 key”…”�”}”(hj Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jœŸh´KŠhj�Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�Ÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jœŸh´KŠhjEŸubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjÀŸh]”hŒsize_t raw_key_len”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¾Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K‹hjºŸubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hjÙŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÕŸh´K‹hjÖŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjºŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÕŸh´K‹hjEŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj)Ÿubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjûŸh]”hŒ Description”…”�”}”(hjýŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjùŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K�hj)Ÿubhï)�”}”(hŒTIf you don't need incremental computation, consider hmac_sha1_usingrawkey() instead.”h]”hŒVIf you don’t need incremental computation, consider hmac_sha1_usingrawkey() instead.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KŒhj)Ÿubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj" h]”hŒContext”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K�hj)Ÿubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K�hj)Ÿubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha1_update (C function)”Œc.hmac_sha1_update”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒRvoid hmac_sha1_update (struct hmac_sha1_ctx *ctx, const u8 *data, size_t data_len)”h]”j)�”}”(hŒQvoid hmac_sha1_update(struct hmac_sha1_ctx *ctx, const u8 *data, size_t data_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjg h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjc h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K–ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjc h²hh³ju h´K–ubjD)�”}”(hŒhmac_sha1_update”h]”jJ)�”}”(hŒhmac_sha1_update”h]”hŒhmac_sha1_update”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj„ ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjc h²hh³ju h´K–ubjÊ)�”}”(hŒ<(struct hmac_sha1_ctx *ctx, const u8 *data, size_t data_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha1_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj  ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj  ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_sha1_ctx”h]”hŒ hmac_sha1_ctx”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¿ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÄ Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jŠ sbŒc.hmac_sha1_update”†”asbuh1hhj  ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj  ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj  ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj  ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjœ ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¡ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#¡h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¡ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj4¡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj1¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j6¡Œmodname”NŒ classname”Nj j)�”}”j]”jÞ Œc.hmac_sha1_update”†”asbuh1hhj¡ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjR¡h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¡ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj`¡h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¡ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjm¡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjœ ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj‰¡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj†¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‹¡Œmodname”NŒ classname”Nj j)�”}”j]”jÞ Œc.hmac_sha1_update”†”asbuh1hhj‚¡ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§¡h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‚¡ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjµ¡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‚¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjœ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjc h²hh³ju h´K–ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj_ h²hh³ju h´K–ubah}”(h]”jZ ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³ju h´K–hj\ h²hubjv)�”}”(hhh]”hï)�”}”(hŒ-Update an HMAC-SHA1 context with message data”h]”hŒ-Update an HMAC-SHA1 context with message data”…”�”}”(hjß¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K–hjÜ¡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj\ h²hh³ju h´K–ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j÷¡j™j÷¡jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha1_ctx *ctx`` the HMAC context to update; must have been initialized ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¢h]”hŒ Parameters”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÿ¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kšhjû¡ubjì)�”}”(hhh]”(jñ)�”}”(hŒU``struct hmac_sha1_ctx *ctx`` the HMAC context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha1_ctx *ctx``”h]”jý)�”}”(hj ¢h]”hŒstruct hmac_sha1_ctx *ctx”…”�”}”(hj"¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K—hj¢ubj)�”}”(hhh]”hï)�”}”(hŒ6the HMAC context to update; must have been initialized”h]”hŒ6the HMAC context to update; must have been initialized”…”�”}”(hj9¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j5¢h´K—hj6¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j5¢h´K—hj¢ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjY¢h]”hŒconst u8 *data”…”�”}”(hj[¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjW¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K˜hjS¢ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjr¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jn¢h´K˜hjo¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjS¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jn¢h´K˜hj¢ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj’¢h]”hŒsize_t data_len”…”�”}”(hj”¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj�¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K™hjŒ¢ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj«¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j§¢h´K™hj¨¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŒ¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j§¢h´K™hj¢ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjû¡ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÍ¢h]”hŒ Description”…”�”}”(hjÏ¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjË¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K›hjû¡ubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hjã¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kšhjû¡ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjô¢h]”hŒContext”…”�”}”(hjö¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjò¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kœhjû¡ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj £h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K�hjû¡ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha1_final (C function)”Œc.hmac_sha1_final”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒQvoid hmac_sha1_final (struct hmac_sha1_ctx *ctx, u8 out[static SHA1_DIGEST_SIZE])”h]”j)�”}”(hŒPvoid hmac_sha1_final(struct hmac_sha1_ctx *ctx, u8 out[static SHA1_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj9£h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj5£h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¦ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjH£h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj5£h²hh³jG£h´K¦ubjD)�”}”(hŒhmac_sha1_final”h]”jJ)�”}”(hŒhmac_sha1_final”h]”hŒhmac_sha1_final”…”�”}”(hjZ£h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjV£ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj5£h²hh³jG£h´K¦ubjÊ)�”}”(hŒ<(struct hmac_sha1_ctx *ctx, u8 out[static SHA1_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct hmac_sha1_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjv£h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjr£ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒ£h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjr£ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_sha1_ctx”h]”hŒ hmac_sha1_ctx”…”�”}”(hj”£h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‘£ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j–£Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j\£sbŒc.hmac_sha1_final”†”asbuh1hhjr£ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´£h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjr£ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjr£ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÏ£h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjr£ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjn£ubjÐ)�”}”(hŒu8 out[static SHA1_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjë£h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjè£ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jí£Œmodname”NŒ classname”Nj j)�”}”j]”j°£Œc.hmac_sha1_final”†”asbuh1hhjä£ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ¤h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjä£ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjä£ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj%¤h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjä£ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj2¤h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjä£ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?¤h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjä£ubh)�”}”(hhh]”jJ)�”}”(hŒSHA1_DIGEST_SIZE”h]”hŒSHA1_DIGEST_SIZE”…”�”}”(hjP¤h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjM¤ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jR¤Œmodname”NŒ classname”Nj j)�”}”j]”j°£Œc.hmac_sha1_final”†”asbuh1hhjä£ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjn¤h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjä£ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjn£ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj5£h²hh³jG£h´K¦ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj1£h²hh³jG£h´K¦ubah}”(h]”j,£ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jG£h´K¦hj.£h²hubjv)�”}”(hhh]”hï)�”}”(hŒ#Finish computing an HMAC-SHA1 value”h]”hŒ#Finish computing an HMAC-SHA1 value”…”�”}”(hj—¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¦hj”¤h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj.£h²hh³jG£h´K¦ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¯¤j™j¯¤jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hX2**Parameters** ``struct hmac_sha1_ctx *ctx`` the HMAC context to finalize; must have been initialized ``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting HMAC-SHA1 value **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¹¤h]”hŒ Parameters”…”�”}”(hj»¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj·¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kªhj³¤ubjì)�”}”(hhh]”(jñ)�”}”(hŒW``struct hmac_sha1_ctx *ctx`` the HMAC context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha1_ctx *ctx``”h]”jý)�”}”(hjؤh]”hŒstruct hmac_sha1_ctx *ctx”…”�”}”(hjÚ¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÖ¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K§hjÒ¤ubj)�”}”(hhh]”hï)�”}”(hŒ8the HMAC context to finalize; must have been initialized”h]”hŒ8the HMAC context to finalize; must have been initialized”…”�”}”(hjñ¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jí¤h´K§hjî¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÒ¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jí¤h´K§hjϤubjñ)�”}”(hŒK``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting HMAC-SHA1 value ”h]”(j÷)�”}”(hŒ#``u8 out[static SHA1_DIGEST_SIZE]``”h]”jý)�”}”(hj¥h]”hŒu8 out[static SHA1_DIGEST_SIZE]”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¨hj ¥ubj)�”}”(hhh]”hï)�”}”(hŒ&(output) the resulting HMAC-SHA1 value”h]”hŒ&(output) the resulting HMAC-SHA1 value”…”�”}”(hj*¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j&¥h´K¨hj'¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j&¥h´K¨hjϤubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj³¤ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjL¥h]”hŒ Description”…”�”}”(hjN¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjJ¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kªhj³¤ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjb¥h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjb¥ubhŒ(. So the caller does not need to do it.”…”�”}”(hjb¥h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K©hj³¤ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj…¥h]”hŒContext”…”�”}”(hj‡¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjƒ¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K«hj³¤ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj›¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¬hj³¤ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha1 (C function)”Œ c.hmac_sha1”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒrvoid hmac_sha1 (const struct hmac_sha1_key *key, const u8 *data, size_t data_len, u8 out[static SHA1_DIGEST_SIZE])”h]”j)�”}”(hŒqvoid hmac_sha1(const struct hmac_sha1_key *key, const u8 *data, size_t data_len, u8 out[static SHA1_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÊ¥h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÆ¥h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K²ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ¥h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÆ¥h²hh³jØ¥h´K²ubjD)�”}”(hŒ hmac_sha1”h]”jJ)�”}”(hŒ hmac_sha1”h]”hŒ hmac_sha1”…”�”}”(hjë¥h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjç¥ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÆ¥h²hh³jØ¥h´K²ubjÊ)�”}”(hŒc(const struct hmac_sha1_key *key, const u8 *data, size_t data_len, u8 out[static SHA1_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst struct hmac_sha1_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¦ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¦ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj"¦h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¦ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/¦h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¦ubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_sha1_key”h]”hŒ hmac_sha1_key”…”�”}”(hj@¦h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj=¦ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jB¦Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jí¥sbŒ c.hmac_sha1”†”asbuh1hhj¦ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`¦h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¦ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjn¦h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¦ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj{¦h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¦ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÿ¥ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj”¦h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj�¦ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡¦h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�¦ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj²¦h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¯¦ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j´¦Œmodname”NŒ classname”Nj j)�”}”j]”j\¦Œ c.hmac_sha1”†”asbuh1hhj�¦ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjЦh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�¦ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÞ¦h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj�¦ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjë¦h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�¦ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÿ¥ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj§ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j §Œmodname”NŒ classname”Nj j)�”}”j]”j\¦Œ c.hmac_sha1”†”asbuh1hhj§ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%§h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj§ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj3§h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj§ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÿ¥ubjÐ)�”}”(hŒu8 out[static SHA1_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjO§h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjL§ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jQ§Œmodname”NŒ classname”Nj j)�”}”j]”j\¦Œ c.hmac_sha1”†”asbuh1hhjH§ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjm§h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjH§ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj{§h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjH§ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj‰§h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjH§ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj–§h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjH§ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£§h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjH§ubh)�”}”(hhh]”jJ)�”}”(hŒSHA1_DIGEST_SIZE”h]”hŒSHA1_DIGEST_SIZE”…”�”}”(hj´§h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj±§ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¶§Œmodname”NŒ classname”Nj j)�”}”j]”j\¦Œ c.hmac_sha1”†”asbuh1hhjH§ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÒ§h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjH§ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÿ¥ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÆ¥h²hh³jØ¥h´K²ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÂ¥h²hh³jØ¥h´K²ubah}”(h]”j½¥ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jØ¥h´K²hj¿¥h²hubjv)�”}”(hhh]”hï)�”}”(hŒ3Compute HMAC-SHA1 in one shot, using a prepared key”h]”hŒ3Compute HMAC-SHA1 in one shot, using a prepared key”…”�”}”(hjû§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K²hjø§h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj¿¥h²hh³jØ¥h´K²ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¨j™j¨jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hXh**Parameters** ``const struct hmac_sha1_key *key`` the prepared HMAC key ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting HMAC-SHA1 value **Description** If you're using the key only once, consider using hmac_sha1_usingrawkey(). **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¨h]”hŒ Parameters”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¶hj¨ubjì)�”}”(hhh]”(jñ)�”}”(hŒ:``const struct hmac_sha1_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ#``const struct hmac_sha1_key *key``”h]”jý)�”}”(hj<¨h]”hŒconst struct hmac_sha1_key *key”…”�”}”(hj>¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj:¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K³hj6¨ubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjU¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jQ¨h´K³hjR¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jQ¨h´K³hj3¨ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hju¨h]”hŒconst u8 *data”…”�”}”(hjw¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjs¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K´hjo¨ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjލh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jЍh´K´hj‹¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjo¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jЍh´K´hj3¨ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj®¨h]”hŒsize_t data_len”…”�”}”(hj°¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¬¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kµhj¨¨ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjǨh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jèh´KµhjĨubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¨¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jèh´Kµhj3¨ubjñ)�”}”(hŒK``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting HMAC-SHA1 value ”h]”(j÷)�”}”(hŒ#``u8 out[static SHA1_DIGEST_SIZE]``”h]”jý)�”}”(hjç¨h]”hŒu8 out[static SHA1_DIGEST_SIZE]”…”�”}”(hjé¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjå¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¶hjá¨ubj)�”}”(hhh]”hï)�”}”(hŒ&(output) the resulting HMAC-SHA1 value”h]”hŒ&(output) the resulting HMAC-SHA1 value”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jü¨h´K¶hjý¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjá¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jü¨h´K¶hj3¨ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¨ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj"©h]”hŒ Description”…”�”}”(hj$©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj ©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¸hj¨ubhï)�”}”(hŒJIf you're using the key only once, consider using hmac_sha1_usingrawkey().”h]”hŒLIf you’re using the key only once, consider using hmac_sha1_usingrawkey().”…”�”}”(hj8©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K·hj¨ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjI©h]”hŒContext”…”�”}”(hjK©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjG©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¹hj¨ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj_©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kºhj¨ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ"hmac_sha1_usingrawkey (C function)”Œc.hmac_sha1_usingrawkey”hNt”auh1hþhj<Šh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ„void hmac_sha1_usingrawkey (const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA1_DIGEST_SIZE])”h]”j)�”}”(hŒƒvoid hmac_sha1_usingrawkey(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA1_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŽ©h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjŠ©h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÁubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�©h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŠ©h²hh³jœ©h´KÁubjD)�”}”(hŒhmac_sha1_usingrawkey”h]”jJ)�”}”(hŒhmac_sha1_usingrawkey”h]”hŒhmac_sha1_usingrawkey”…”�”}”(hj¯©h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«©ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjŠ©h²hh³jœ©h´KÁubjÊ)�”}”(hŒi(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA1_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjË©h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÇ©ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ©h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÇ©ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjé©h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjæ©ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j멌modname”NŒ classname”Nj j)�”}”j]”j)�”}”j j±©sbŒc.hmac_sha1_usingrawkey”†”asbuh1hhjÇ©ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ªh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÇ©ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÇ©ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj$ªh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÇ©ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjéubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj@ªh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj=ªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jBªŒmodname”NŒ classname”Nj j)�”}”j]”jªŒc.hmac_sha1_usingrawkey”†”asbuh1hhj9ªubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^ªh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj9ªubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjlªh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj9ªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjéubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj…ªh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj�ªubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’ªh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�ªubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj£ªh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¥ªŒmodname”NŒ classname”Nj j)�”}”j]”jªŒc.hmac_sha1_usingrawkey”†”asbuh1hhj�ªubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁªh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�ªubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjϪh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj�ªubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjܪh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�ªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjéubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjøªh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjõªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”júªŒmodname”NŒ classname”Nj j)�”}”j]”jªŒc.hmac_sha1_usingrawkey”†”asbuh1hhjñªubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjñªubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj$«h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjñªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjéubjÐ)�”}”(hŒu8 out[static SHA1_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj@«h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj=«ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jB«Œmodname”NŒ classname”Nj j)�”}”j]”jªŒc.hmac_sha1_usingrawkey”†”asbuh1hhj9«ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^«h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj9«ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjl«h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj9«ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjz«h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj9«ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj‡«h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj9«ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”«h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj9«ubh)�”}”(hhh]”jJ)�”}”(hŒSHA1_DIGEST_SIZE”h]”hŒSHA1_DIGEST_SIZE”…”�”}”(hj¥«h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¢«ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j§«Œmodname”NŒ classname”Nj j)�”}”j]”jªŒc.hmac_sha1_usingrawkey”†”asbuh1hhj9«ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj9«ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjéubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjŠ©h²hh³jœ©h´KÁubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj†©h²hh³jœ©h´KÁubah}”(h]”j�©ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jœ©h´KÁhjƒ©h²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Compute HMAC-SHA1 in one shot, using a raw key”h]”hŒ.Compute HMAC-SHA1 in one shot, using a raw key”…”�”}”(hjì«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÁhjé«h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjƒ©h²hh³jœ©h´KÁubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¬j™j¬jš‰j›‰jœ‰uh1jh²hhj<Šh³Nh´Nubjž)�”}”(hXâ**Parameters** ``const u8 *raw_key`` the raw HMAC-SHA1 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting HMAC-SHA1 value **Description** If you're using the key multiple times, prefer to use hmac_sha1_preparekey() followed by multiple calls to hmac_sha1() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¬h]”hŒ Parameters”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj ¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÅhj¬ubjì)�”}”(hhh]”(jñ)�”}”(hŒ,``const u8 *raw_key`` the raw HMAC-SHA1 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj-¬h]”hŒconst u8 *raw_key”…”�”}”(hj/¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj+¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÂhj'¬ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA1 key”h]”hŒthe raw HMAC-SHA1 key”…”�”}”(hjF¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jB¬h´KÂhjC¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jB¬h´KÂhj$¬ubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjf¬h]”hŒsize_t raw_key_len”…”�”}”(hjh¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjd¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÃhj`¬ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j{¬h´KÃhj|¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj`¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j{¬h´KÃhj$¬ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjŸ¬h]”hŒconst u8 *data”…”�”}”(hj¡¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj�¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÄhj™¬ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj¸¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j´¬h´KÄhjµ¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j´¬h´KÄhj$¬ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjجh]”hŒsize_t data_len”…”�”}”(hjÚ¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÖ¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÅhjÒ¬ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjñ¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jí¬h´KÅhjî¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÒ¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jí¬h´KÅhj$¬ubjñ)�”}”(hŒK``u8 out[static SHA1_DIGEST_SIZE]`` (output) the resulting HMAC-SHA1 value ”h]”(j÷)�”}”(hŒ#``u8 out[static SHA1_DIGEST_SIZE]``”h]”jý)�”}”(hj­h]”hŒu8 out[static SHA1_DIGEST_SIZE]”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÆhj ­ubj)�”}”(hhh]”hï)�”}”(hŒ&(output) the resulting HMAC-SHA1 value”h]”hŒ&(output) the resulting HMAC-SHA1 value”…”�”}”(hj*­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j&­h´KÆhj'­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j&­h´KÆhj$¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¬ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjL­h]”hŒ Description”…”�”}”(hjN­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjJ­ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÈhj¬ubhï)�”}”(hŒIf you're using the key multiple times, prefer to use hmac_sha1_preparekey() followed by multiple calls to hmac_sha1() instead.”h]”hŒ�If you’re using the key multiple times, prefer to use hmac_sha1_preparekey() followed by multiple calls to hmac_sha1() instead.”…”�”}”(hjb­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÇhj¬ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjs­h]”hŒContext”…”�”}”(hju­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjq­ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÊhj¬ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj‰­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KËhj¬ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj<Šh²hh³Nh´Nubeh}”(h]”Œsha-1”ah ]”h"]”Œsha-1”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K=ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSHA-2”h]”hŒSHA-2”…”�”}”(hjª­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj§­h²hh³hÇh´KFubhï)�”}”(hŒèThis API provides support for the SHA-2 family of cryptographic hash functions, including SHA-224, SHA-256, SHA-384, and SHA-512. This also includes their corresponding HMACs: HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, and HMAC-SHA512.”h]”hŒèThis API provides support for the SHA-2 family of cryptographic hash functions, including SHA-224, SHA-256, SHA-384, and SHA-512. This also includes their corresponding HMACs: HMAC-SHA224, HMAC-SHA256, HMAC-SHA384, and HMAC-SHA512.”…”�”}”(hj¸­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KHhj§­h²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha224_ctx (C struct)”Œ c.sha224_ctx”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ sha224_ctx”h]”j)�”}”(hŒstruct sha224_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjß­h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÛ­h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí­h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛ­h²hh³jì­h´KubjD)�”}”(hŒ sha224_ctx”h]”jJ)�”}”(hjÙ­h]”hŒ sha224_ctx”…”�”}”(hjÿ­h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjû­ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÛ­h²hh³jì­h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj×­h²hh³jì­h´Kubah}”(h]”jÒ­ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jì­h´KhjÔ­h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Context for hashing a message with SHA-224”h]”hŒ*Context for hashing a message with SHA-224”…”�”}”(hj!®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K—hj®h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÔ­h²hh³jì­h´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j9®j™j9®jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒk**Definition**:: struct sha224_ctx { struct __sha256_ctx ctx; }; **Members** ``ctx`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjE®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjA®ubhŒ:”…”�”}”(hjA®h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K›hj=®ubjÃ)�”}”(hŒ3struct sha224_ctx { struct __sha256_ctx ctx; };”h]”hŒ3struct sha224_ctx { struct __sha256_ctx ctx; };”…”�”}”hj^®sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K�hj=®ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjo®h]”hŒMembers”…”�”}”(hjq®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjm®ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¡hj=®ubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hjŽ®h]”hŒctx”…”�”}”(hj�®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjŒ®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K˜hjˆ®ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj§®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K™hj¤®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjˆ®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j£®h´K˜hj…®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj=®ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha224_init (C function)”Œ c.sha224_init”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ)void sha224_init (struct sha224_ctx *ctx)”h]”j)�”}”(hŒ(void sha224_init(struct sha224_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjè®h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjä®h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KŸubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷®h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjä®h²hh³jö®h´KŸubjD)�”}”(hŒ sha224_init”h]”jJ)�”}”(hŒ sha224_init”h]”hŒ sha224_init”…”�”}”(hj ¯h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¯ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjä®h²hh³jö®h´KŸubjÊ)�”}”(hŒ(struct sha224_ctx *ctx)”h]”jÐ)�”}”(hŒstruct sha224_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj%¯h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj!¯ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2¯h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj!¯ubh)�”}”(hhh]”jJ)�”}”(hŒ sha224_ctx”h]”hŒ sha224_ctx”…”�”}”(hjC¯h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj@¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jE¯Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j ¯sbŒ c.sha224_init”†”asbuh1hhj!¯ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc¯h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj!¯ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjq¯h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj!¯ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj~¯h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj!¯ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¯ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjä®h²hh³jö®h´KŸubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjà®h²hh³jö®h´KŸubah}”(h]”jÛ®ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jö®h´KŸhjÝ®h²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Initialize a SHA-224 context for a new message”h]”hŒ.Initialize a SHA-224 context for a new message”…”�”}”(hj¨¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KŸhj¥¯h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÝ®h²hh³jö®h´KŸubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÀ¯j™jÀ¯jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒ¹**Parameters** ``struct sha224_ctx *ctx`` the context to initialize **Description** If you don't need incremental computation, consider sha224() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjʯh]”hŒ Parameters”…”�”}”(hj̯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjȯubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K£hjįubjì)�”}”(hhh]”jñ)�”}”(hŒ5``struct sha224_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct sha224_ctx *ctx``”h]”jý)�”}”(hjé¯h]”hŒstruct sha224_ctx *ctx”…”�”}”(hjë¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjç¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K hjã¯ubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jþ¯h´K hjÿ¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjã¯ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jþ¯h´K hjà¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjįubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj$°h]”hŒ Description”…”�”}”(hj&°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj"°ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¢hjįubhï)�”}”(hŒEIf you don't need incremental computation, consider sha224() instead.”h]”hŒGIf you don’t need incremental computation, consider sha224() instead.”…”�”}”(hj:°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¡hjįubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjK°h]”hŒContext”…”�”}”(hjM°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjI°ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K£hjįubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hja°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¤hjįubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha224_update (C function)”Œc.sha224_update”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒGvoid sha224_update (struct sha224_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒFvoid sha224_update(struct sha224_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�°h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjŒ°h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K©ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ°h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŒ°h²hh³jž°h´K©ubjD)�”}”(hŒ sha224_update”h]”jJ)�”}”(hŒ sha224_update”h]”hŒ sha224_update”…”�”}”(hj±°h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj­°ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjŒ°h²hh³jž°h´K©ubjÊ)�”}”(hŒ4(struct sha224_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct sha224_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjͰh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjɰubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚ°h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjɰubh)�”}”(hhh]”jJ)�”}”(hŒ sha224_ctx”h]”hŒ sha224_ctx”…”�”}”(hjë°h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjè°ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jí°Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j³°sbŒc.sha224_update”†”asbuh1hhjɰubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ±h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjɰubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjɰubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj&±h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjɰubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŰubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj?±h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj;±ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL±h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;±ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj]±h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjZ±ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j_±Œmodname”NŒ classname”Nj j)�”}”j]”j±Œc.sha224_update”†”asbuh1hhj;±ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{±h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;±ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj‰±h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj;±ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj–±h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj;±ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŰubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj²±h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¯±ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j´±Œmodname”NŒ classname”Nj j)�”}”j]”j±Œc.sha224_update”†”asbuh1hhj«±ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjбh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj«±ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjÞ±h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«±ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŰubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjŒ°h²hh³jž°h´K©ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjˆ°h²hh³jž°h´K©ubah}”(h]”jƒ°ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jž°h´K©hj…°h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a SHA-224 context with message data”h]”hŒ*Update a SHA-224 context with message data”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K©hj²h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj…°h²hh³jž°h´K©ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j ²j™j ²jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct sha224_ctx *ctx`` the context to update; must have been initialized ``const u8 *data`` the message data ``size_t len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj*²h]”hŒ Parameters”…”�”}”(hj,²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj(²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K­hj$²ubjì)�”}”(hhh]”(jñ)�”}”(hŒM``struct sha224_ctx *ctx`` the context to update; must have been initialized ”•h]”(j÷)�”}”(hŒ``struct sha224_ctx *ctx``”h]”jý)�”}”(hjI²h]”hŒstruct sha224_ctx *ctx”…”�”}”(hjK²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjG²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KªhjC²ubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hjb²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j^²h´Kªhj_²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjC²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j^²h´Kªhj@²ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj‚²h]”hŒconst u8 *data”…”�”}”(hj„²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj€²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K«hj|²ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj›²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j—²h´K«hj˜²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j—²h´K«hj@²ubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj»²h]”hŒ size_t len”…”�”}”(hj½²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¹²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¬hjµ²ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjÔ²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jвh´K¬hjѲubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjµ²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jвh´K¬hj@²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj$²ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjö²h]”hŒ Description”…”�”}”(hjø²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjô²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K®hj$²ubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj ³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K­hj$²ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj³h]”hŒContext”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¯hj$²ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj3³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K°hj$²ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha224_final (C function)”Œc.sha224_final”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒMvoid sha224_final (struct sha224_ctx *ctx, u8 out[static SHA224_DIGEST_SIZE])”h]”j)�”}”(hŒLvoid sha224_final(struct sha224_ctx *ctx, u8 out[static SHA224_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjb³h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj^³h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¹ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjq³h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj^³h²hh³jp³h´K¹ubjD)�”}”(hŒ sha224_final”h]”jJ)�”}”(hŒ sha224_final”h]”hŒ sha224_final”…”�”}”(hjƒ³h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj³ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj^³h²hh³jp³h´K¹ubjÊ)�”}”(hŒ;(struct sha224_ctx *ctx, u8 out[static SHA224_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct sha224_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjŸ³h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj›³ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬³h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj›³ubh)�”}”(hhh]”jJ)�”}”(hŒ sha224_ctx”h]”hŒ sha224_ctx”…”�”}”(hj½³h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjº³ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¿³Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j…³sbŒc.sha224_final”†”asbuh1hhj›³ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjݳh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj›³ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjë³h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj›³ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjø³h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj›³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj—³ubjÐ)�”}”(hŒ!u8 out[static SHA224_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj´ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j´Œmodname”NŒ classname”Nj j)�”}”j]”jÙ³Œc.sha224_final”†”asbuh1hhj ´ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2´h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ´ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj@´h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ´ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjN´h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj ´ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj[´h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj ´ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh´h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ´ubh)�”}”(hhh]”jJ)�”}”(hŒSHA224_DIGEST_SIZE”h]”hŒSHA224_DIGEST_SIZE”…”�”}”(hjy´h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjv´ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j{´Œmodname”NŒ classname”Nj j)�”}”j]”jÙ³Œc.sha224_final”†”asbuh1hhj ´ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj—´h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj ´ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj—³ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj^³h²hh³jp³h´K¹ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjZ³h²hh³jp³h´K¹ubah}”(h]”jU³ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jp³h´K¹hjW³h²hubjv)�”}”(hhh]”hï)�”}”(hŒ)Finish computing a SHA-224 message digest”h]”hŒ)Finish computing a SHA-224 message digest”…”�”}”(hjÀ´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¹hj½´h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjW³h²hh³jp³h´K¹ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jØ´j™jØ´jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX3**Parameters** ``struct sha224_ctx *ctx`` the context to finalize; must have been initialized ``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting SHA-224 message digest **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjâ´h]”hŒ Parameters”…”�”}”(hjä´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjà´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K½hjÜ´ubjì)�”}”(hhh]”(jñ)�”}”(hŒO``struct sha224_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha224_ctx *ctx``”h]”jý)�”}”(hjµh]”hŒstruct sha224_ctx *ctx”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÿ´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kºhjû´ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jµh´Kºhjµubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjû´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jµh´Kºhjø´ubjñ)�”}”(hŒT``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting SHA-224 message digest ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA224_DIGEST_SIZE]``”h]”jý)�”}”(hj:µh]”hŒ!u8 out[static SHA224_DIGEST_SIZE]”…”�”}”(hj<µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj8µubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K»hj4µubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-224 message digest”h]”hŒ-(output) the resulting SHA-224 message digest”…”�”}”(hjSµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jOµh´K»hjPµubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4µubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jOµh´K»hjø´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÜ´ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjuµh]”hŒ Description”…”�”}”(hjwµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjsµubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K½hjÜ´ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj‹µh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj“µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‹µubhŒ(. So the caller does not need to do it.”…”�”}”(hj‹µh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¼hjÜ´ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj®µh]”hŒContext”…”�”}”(hj°µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¬µubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¾hjÜ´ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjĵh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¿hjÜ´ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha224 (C function)”Œc.sha224”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒKvoid sha224 (const u8 *data, size_t len, u8 out[static SHA224_DIGEST_SIZE])”h]”j)�”}”(hŒJvoid sha224(const u8 *data, size_t len, u8 out[static SHA224_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjóµh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjïµh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÄubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjïµh²hh³j¶h´KÄubjD)�”}”(hŒsha224”h]”jJ)�”}”(hŒsha224”h]”hŒsha224”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¶ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjïµh²hh³j¶h´KÄubjÊ)�”}”(hŒ?(const u8 *data, size_t len, u8 out[static SHA224_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj0¶h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj,¶ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=¶h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj,¶ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjN¶h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjK¶ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jP¶Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j¶sbŒc.sha224”†”asbuh1hhj,¶ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn¶h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj,¶ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj|¶h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj,¶ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj‰¶h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj,¶ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj(¶ubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj¥¶h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¢¶ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j§¶Œmodname”NŒ classname”Nj j)�”}”j]”jj¶Œc.sha224”†”asbuh1hhjž¶ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjž¶ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjѶh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjž¶ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj(¶ubjÐ)�”}”(hŒ!u8 out[static SHA224_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjí¶h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjê¶ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jï¶Œmodname”NŒ classname”Nj j)�”}”j]”jj¶Œc.sha224”†”asbuh1hhjæ¶ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ·h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjæ¶ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjæ¶ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj'·h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjæ¶ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj4·h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjæ¶ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA·h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjæ¶ubh)�”}”(hhh]”jJ)�”}”(hŒSHA224_DIGEST_SIZE”h]”hŒSHA224_DIGEST_SIZE”…”�”}”(hjR·h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjO·ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jT·Œmodname”NŒ classname”Nj j)�”}”j]”jj¶Œc.sha224”†”asbuh1hhjæ¶ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjp·h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjæ¶ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj(¶ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjïµh²hh³j¶h´KÄubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjëµh²hh³j¶h´KÄubah}”(h]”jæµah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¶h´KÄhjèµh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Compute SHA-224 message digest in one shot”h]”hŒ*Compute SHA-224 message digest in one shot”…”�”}”(hj™·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÄhj–·h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjèµh²hh³j¶h´KÄubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j±·j™j±·jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒÒ**Parameters** ``const u8 *data`` the message data ``size_t len`` the data length in bytes ``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting SHA-224 message digest **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj»·h]”hŒ Parameters”…”�”}”(hj½·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¹·ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÈhjµ·ubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjÚ·h]”hŒconst u8 *data”…”�”}”(hjÜ·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjØ·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÅhjÔ·ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjó·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jï·h´KÅhjð·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÔ·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jï·h´KÅhjÑ·ubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj¸h]”hŒ size_t len”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÆhj ¸ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj,¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j(¸h´KÆhj)¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j(¸h´KÆhjÑ·ubjñ)�”}”(hŒT``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting SHA-224 message digest ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA224_DIGEST_SIZE]``”h]”jý)�”}”(hjL¸h]”hŒ!u8 out[static SHA224_DIGEST_SIZE]”…”�”}”(hjN¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjJ¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÇhjF¸ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-224 message digest”h]”hŒ-(output) the resulting SHA-224 message digest”…”�”}”(hje¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ja¸h´KÇhjb¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjF¸ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³ja¸h´KÇhjÑ·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjµ·ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj‡¸h]”hŒContext”…”�”}”(hj‰¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj…¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÉhjµ·ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj�¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÉhjµ·ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha224_key (C struct)”Œc.hmac_sha224_key”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒhmac_sha224_key”h]”j)�”}”(hŒstruct hmac_sha224_key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj̸h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjȸh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÎubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚ¸h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjȸh²hh³jÙ¸h´KÎubjD)�”}”(hŒhmac_sha224_key”h]”jJ)�”}”(hjƸh]”hŒhmac_sha224_key”…”�”}”(hjì¸h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjè¸ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjȸh²hh³jÙ¸h´KÎubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjĸh²hh³jÙ¸h´KÎubah}”(h]”j¿¸ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÙ¸h´KÎhjÁ¸h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepared key for HMAC-SHA224”h]”hŒPrepared key for HMAC-SHA224”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÎhj ¹h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÁ¸h²hh³jÙ¸h´KÎubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j&¹j™j&¹jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒu**Definition**:: struct hmac_sha224_key { struct __hmac_sha256_key key; }; **Members** ``key`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj2¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj.¹ubhŒ:”…”�”}”(hj.¹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÒhj*¹ubjÃ)�”}”(hŒ=struct hmac_sha224_key { struct __hmac_sha256_key key; };”h]”hŒ=struct hmac_sha224_key { struct __hmac_sha256_key key; };”…”�”}”hjK¹sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÔhj*¹ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj\¹h]”hŒMembers”…”�”}”(hj^¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjZ¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KØhj*¹ubjì)�”}”(hhh]”jñ)�”}”(hŒ``key`` private”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hj{¹h]”hŒkey”…”�”}”(hj}¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjy¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÏhju¹ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj”¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÐhj‘¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhju¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�¹h´KÏhjr¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj*¹ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha224_ctx (C struct)”Œc.hmac_sha224_ctx”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒhmac_sha224_ctx”h]”j)�”}”(hŒstruct hmac_sha224_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÕ¹h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjѹh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÖubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjã¹h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjѹh²hh³jâ¹h´KÖubjD)�”}”(hŒhmac_sha224_ctx”h]”jJ)�”}”(hjϹh]”hŒhmac_sha224_ctx”…”�”}”(hjõ¹h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjñ¹ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjѹh²hh³jâ¹h´KÖubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj͹h²hh³jâ¹h´KÖubah}”(h]”jȹah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jâ¹h´KÖhjʹh²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Context for computing HMAC-SHA224 of a message”h]”hŒ.Context for computing HMAC-SHA224 of a message”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÖhjºh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjʹh²hh³jâ¹h´KÖubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j/ºj™j/ºjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒu**Definition**:: struct hmac_sha224_ctx { struct __hmac_sha256_ctx ctx; }; **Members** ``ctx`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj;ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj7ºubhŒ:”…”�”}”(hj7ºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÚhj3ºubjÃ)�”}”(hŒ=struct hmac_sha224_ctx { struct __hmac_sha256_ctx ctx; };”h]”hŒ=struct hmac_sha224_ctx { struct __hmac_sha256_ctx ctx; };”…”�”}”hjTºsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÜhj3ºubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjeºh]”hŒMembers”…”�”}”(hjgºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjcºubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kàhj3ºubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hj„ºh]”hŒctx”…”�”}”(hj†ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj‚ºubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K×hj~ºubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj�ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KØhjšºubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj~ºubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j™ºh´K×hj{ºubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj3ºubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ#hmac_sha224_preparekey (C function)”Œc.hmac_sha224_preparekey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ`void hmac_sha224_preparekey (struct hmac_sha224_key *key, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒ_void hmac_sha224_preparekey(struct hmac_sha224_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÞºh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÚºh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÞubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíºh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚºh²hh³jìºh´KÞubjD)�”}”(hŒhmac_sha224_preparekey”h]”jJ)�”}”(hŒhmac_sha224_preparekey”h]”hŒhmac_sha224_preparekey”…”�”}”(hjÿºh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjûºubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÚºh²hh³jìºh´KÞubjÊ)�”}”(hŒD(struct hmac_sha224_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha224_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj»ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(»h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj»ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_key”h]”hŒhmac_sha224_key”…”�”}”(hj9»h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj6»ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j;»Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j»sbŒc.hmac_sha224_preparekey”†”asbuh1hhj»ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjY»h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj»ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjg»h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj»ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjt»h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj»ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj»ubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj�»h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj‰»ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš»h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‰»ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj«»h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¨»ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j­»Œmodname”NŒ classname”Nj j)�”}”j]”jU»Œc.hmac_sha224_preparekey”†”asbuh1hhj‰»ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ»h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‰»ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj×»h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj‰»ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjä»h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‰»ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj»ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjý»ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¼Œmodname”NŒ classname”Nj j)�”}”j]”jU»Œc.hmac_sha224_preparekey”†”asbuh1hhjù»ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjù»ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj,¼h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjù»ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj»ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÚºh²hh³jìºh´KÞubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÖºh²hh³jìºh´KÞubah}”(h]”jѺah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jìºh´KÞhjÓºh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a key for HMAC-SHA224”h]”hŒPrepare a key for HMAC-SHA224”…”�”}”(hjV¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÞhjS¼h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÓºh²hh³jìºh´KÞubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jn¼j™jn¼jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX|**Parameters** ``struct hmac_sha224_key *key`` (output) the key structure to initialize ``const u8 *raw_key`` the raw HMAC-SHA224 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Note** the caller is responsible for zeroizing both the struct hmac_sha224_key and the raw key once they are no longer needed. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjx¼h]”hŒ Parameters”…”�”}”(hjz¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjv¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kâhjr¼ubjì)�”}”(hhh]”(jñ)�”}”(hŒI``struct hmac_sha224_key *key`` (output) the key structure to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha224_key *key``”h]”jý)�”}”(hj—¼h]”hŒstruct hmac_sha224_key *key”…”�”}”(hj™¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj•¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kßhj‘¼ubj)�”}”(hhh]”hï)�”}”(hŒ((output) the key structure to initialize”h]”hŒ((output) the key structure to initialize”…”�”}”(hj°¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¬¼h´Kßhj­¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‘¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¬¼h´Kßhj޼ubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA224 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjмh]”hŒconst u8 *raw_key”…”�”}”(hjÒ¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjμubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kàhjʼubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA224 key”h]”hŒthe raw HMAC-SHA224 key”…”�”}”(hjé¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jå¼h´Kàhjæ¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjʼubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jå¼h´Kàhj޼ubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hj ½h]”hŒsize_t raw_key_len”…”�”}”(hj ½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Káhj½ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hj"½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j½h´Káhj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j½h´Káhj޼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjr¼ubhï)�”}”(hŒ**Note**”h]”j¨)�”}”(hjD½h]”hŒNote”…”�”}”(hjF½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjB½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kãhjr¼ubhï)�”}”(hŒwthe caller is responsible for zeroizing both the struct hmac_sha224_key and the raw key once they are no longer needed.”h]”hŒwthe caller is responsible for zeroizing both the struct hmac_sha224_key and the raw key once they are no longer needed.”…”�”}”(hjZ½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kãhjr¼ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjk½h]”hŒContext”…”�”}”(hjm½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hji½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kæhjr¼ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj�½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kæhjr¼ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha224_init (C function)”Œc.hmac_sha224_init”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒVvoid hmac_sha224_init (struct hmac_sha224_ctx *ctx, const struct hmac_sha224_key *key)”h]”j)�”}”(hŒUvoid hmac_sha224_init(struct hmac_sha224_ctx *ctx, const struct hmac_sha224_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj°½h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj¬½h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kìubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿½h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¬½h²hh³j¾½h´KìubjD)�”}”(hŒhmac_sha224_init”h]”jJ)�”}”(hŒhmac_sha224_init”h]”hŒhmac_sha224_init”…”�”}”(hjѽh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjͽubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¬½h²hh³j¾½h´KìubjÊ)�”}”(hŒ@(struct hmac_sha224_ctx *ctx, const struct hmac_sha224_key *key)”h]”(jÐ)�”}”(hŒstruct hmac_sha224_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjí½h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjé½ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjú½h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjé½ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_ctx”h]”hŒhmac_sha224_ctx”…”�”}”(hj ¾h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¾ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j ¾Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÓ½sbŒc.hmac_sha224_init”†”asbuh1hhjé½ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+¾h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjé½ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj9¾h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjé½ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjF¾h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjé½ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjå½ubjÐ)�”}”(hŒ!const struct hmac_sha224_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj_¾h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj[¾ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl¾h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj[¾ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjz¾h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj[¾ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡¾h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj[¾ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_key”h]”hŒhmac_sha224_key”…”�”}”(hj˜¾h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj•¾ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jš¾Œmodname”NŒ classname”Nj j)�”}”j]”j'¾Œc.hmac_sha224_init”†”asbuh1hhj[¾ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶¾h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj[¾ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjľh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj[¾ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjѾh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj[¾ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjå½ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj¬½h²hh³j¾½h´Kìubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¨½h²hh³j¾½h´Kìubah}”(h]”j£½ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¾½h´Kìhj¥½h²hubjv)�”}”(hhh]”hï)�”}”(hŒ3Initialize an HMAC-SHA224 context for a new message”h]”hŒ3Initialize an HMAC-SHA224 context for a new message”…”�”}”(hjû¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kìhjø¾h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj¥½h²hh³j¾½h´Kìubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¿j™j¿jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha224_ctx *ctx`` (output) the HMAC context to initialize ``const struct hmac_sha224_key *key`` the prepared HMAC key **Description** If you don't need incremental computation, consider hmac_sha224() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¿h]”hŒ Parameters”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kðhj¿ubjì)�”}”(hhh]”(jñ)�”}”(hŒH``struct hmac_sha224_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha224_ctx *ctx``”h]”jý)�”}”(hj<¿h]”hŒstruct hmac_sha224_ctx *ctx”…”�”}”(hj>¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj:¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kíhj6¿ubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hjU¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jQ¿h´KíhjR¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jQ¿h´Kíhj3¿ubjñ)�”}”(hŒ<``const struct hmac_sha224_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha224_key *key``”h]”jý)�”}”(hju¿h]”hŒ!const struct hmac_sha224_key *key”…”�”}”(hjw¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjs¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kîhjo¿ubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjŽ¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŠ¿h´Kîhj‹¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjo¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŠ¿h´Kîhj3¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¿ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj°¿h]”hŒ Description”…”�”}”(hj²¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj®¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kðhj¿ubhï)�”}”(hŒJIf you don't need incremental computation, consider hmac_sha224() instead.”h]”hŒLIf you don’t need incremental computation, consider hmac_sha224() instead.”…”�”}”(hjÆ¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kïhj¿ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj׿h]”hŒContext”…”�”}”(hjÙ¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÕ¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kñhj¿ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjí¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kòhj¿ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ)hmac_sha224_init_usingrawkey (C function)”Œc.hmac_sha224_init_usingrawkey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒfvoid hmac_sha224_init_usingrawkey (struct hmac_sha224_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒevoid hmac_sha224_init_usingrawkey(struct hmac_sha224_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÀh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kûubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+Àh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÀh²hh³j*Àh´KûubjD)�”}”(hŒhmac_sha224_init_usingrawkey”h]”jJ)�”}”(hŒhmac_sha224_init_usingrawkey”h]”hŒhmac_sha224_init_usingrawkey”…”�”}”(hj=Àh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj9Àubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÀh²hh³j*Àh´KûubjÊ)�”}”(hŒD(struct hmac_sha224_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha224_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjYÀh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjUÀubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjfÀh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjUÀubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_ctx”h]”hŒhmac_sha224_ctx”…”�”}”(hjwÀh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjtÀubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jyÀŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j?ÀsbŒc.hmac_sha224_init_usingrawkey”†”asbuh1hhjUÀubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—Àh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjUÀubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¥Àh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjUÀubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj²Àh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjUÀubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjQÀubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjËÀh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÇÀubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØÀh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÇÀubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjéÀh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjæÀubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jëÀŒmodname”NŒ classname”Nj j)�”}”j]”j“ÀŒc.hmac_sha224_init_usingrawkey”†”asbuh1hhjÇÀubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÇÀubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÇÀubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj"Áh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÇÀubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjQÀubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj>Áh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj;Áubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j@ÁŒmodname”NŒ classname”Nj j)�”}”j]”j“ÀŒc.hmac_sha224_init_usingrawkey”†”asbuh1hhj7Áubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\Áh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj7ÁubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjjÁh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj7Áubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjQÀubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÀh²hh³j*Àh´Kûubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÀh²hh³j*Àh´Kûubah}”(h]”jÀah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j*Àh´KûhjÀh²hubjv)�”}”(hhh]”hï)�”}”(hŒDInitialize an HMAC-SHA224 context for a new message, using a raw key”h]”hŒDInitialize an HMAC-SHA224 context for a new message, using a raw key”…”�”}”(hj”Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kûhj‘Áh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÀh²hh³j*Àh´Kûubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¬Áj™j¬Ájš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXa**Parameters** ``struct hmac_sha224_ctx *ctx`` (output) the HMAC context to initialize ``const u8 *raw_key`` the raw HMAC-SHA224 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Description** If you don't need incremental computation, consider hmac_sha224_usingrawkey() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¶Áh]”hŒ Parameters”…”�”}”(hj¸Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj´Áubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kÿhj°Áubjì)�”}”(hhh]”(jñ)�”}”(hŒH``struct hmac_sha224_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha224_ctx *ctx``”h]”jý)�”}”(hjÕÁh]”hŒstruct hmac_sha224_ctx *ctx”…”�”}”(hj×Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÓÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KýhjÏÁubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hjîÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jêÁh´KýhjëÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÏÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jêÁh´KýhjÌÁubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA224 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjÂh]”hŒconst u8 *raw_key”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj Âubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KþhjÂubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA224 key”h]”hŒthe raw HMAC-SHA224 key”…”�”}”(hj'Âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j#Âh´Kþhj$Âubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÂubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j#Âh´KþhjÌÁubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjGÂh]”hŒsize_t raw_key_len”…”�”}”(hjIÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjEÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KÿhjAÂubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hj`Âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j\Âh´Kÿhj]Âubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjAÂubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j\Âh´KÿhjÌÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj°Áubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj‚Âh]”hŒ Description”…”�”}”(hj„Âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj€Âubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj°Áubhï)�”}”(hŒVIf you don't need incremental computation, consider hmac_sha224_usingrawkey() instead.”h]”hŒXIf you don’t need incremental computation, consider hmac_sha224_usingrawkey() instead.”…”�”}”(hj˜Âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj°Áubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj©Âh]”hŒContext”…”�”}”(hj«Âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj§Âubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj°Áubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj¿Âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj°Áubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha224_update (C function)”Œc.hmac_sha224_update”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒVvoid hmac_sha224_update (struct hmac_sha224_ctx *ctx, const u8 *data, size_t data_len)”h]”j)�”}”(hŒUvoid hmac_sha224_update(struct hmac_sha224_ctx *ctx, const u8 *data, size_t data_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjîÂh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjêÂh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýÂh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjêÂh²hh³jüÂh´M ubjD)�”}”(hŒhmac_sha224_update”h]”jJ)�”}”(hŒhmac_sha224_update”h]”hŒhmac_sha224_update”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Ãubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjêÂh²hh³jüÂh´M ubjÊ)�”}”(hŒ>(struct hmac_sha224_ctx *ctx, const u8 *data, size_t data_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha224_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj+Ãh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj'Ãubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8Ãh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj'Ãubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_ctx”h]”hŒhmac_sha224_ctx”…”�”}”(hjIÃh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjFÃubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jKÃŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÃsbŒc.hmac_sha224_update”†”asbuh1hhj'Ãubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjiÃh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj'Ãubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjwÃh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj'ÃubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj„Ãh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj'Ãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj#ÃubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj�Ãh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj™Ãubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªÃh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj™Ãubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj»Ãh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¸Ãubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j½ÃŒmodname”NŒ classname”Nj j)�”}”j]”jeÃŒc.hmac_sha224_update”†”asbuh1hhj™Ãubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙÃh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj™Ãubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjçÃh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj™ÃubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjôÃh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj™Ãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj#ÃubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Äubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÄŒmodname”NŒ classname”Nj j)�”}”j]”jeÃŒc.hmac_sha224_update”†”asbuh1hhj Äubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.Äh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ÄubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj<Äh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Äubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj#Ãubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjêÂh²hh³jüÂh´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjæÂh²hh³jüÂh´M ubah}”(h]”jáÂah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jüÂh´M hjãÂh²hubjv)�”}”(hhh]”hï)�”}”(hŒ/Update an HMAC-SHA224 context with message data”h]”hŒ/Update an HMAC-SHA224 context with message data”…”�”}”(hjfÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hjcÄh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjãÂh²hh³jüÂh´M ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j~Äj™j~Äjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha224_ctx *ctx`` the HMAC context to update; must have been initialized ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjˆÄh]”hŒ Parameters”…”�”}”(hjŠÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj†Äubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj‚Äubjì)�”}”(hhh]”(jñ)�”}”(hŒW``struct hmac_sha224_ctx *ctx`` the HMAC context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha224_ctx *ctx``”h]”jý)�”}”(hj§Äh]”hŒstruct hmac_sha224_ctx *ctx”…”�”}”(hj©Äh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¥Äubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj¡Äubj)�”}”(hhh]”hï)�”}”(hŒ6the HMAC context to update; must have been initialized”h]”hŒ6the HMAC context to update; must have been initialized”…”�”}”(hjÀÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¼Äh´M hj½Äubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¡Äubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¼Äh´M hjžÄubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjàÄh]”hŒconst u8 *data”…”�”}”(hjâÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÞÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hjÚÄubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjùÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jõÄh´M hjöÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÚÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jõÄh´M hjžÄubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjÅh]”hŒsize_t data_len”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hjÅubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj2Åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j.Åh´M hj/Åubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j.Åh´M hjžÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj‚Äubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjTÅh]”hŒ Description”…”�”}”(hjVÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjRÅubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj‚Äubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hjjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj‚Äubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj{Åh]”hŒContext”…”�”}”(hj}Åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjyÅubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj‚Äubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj‘Åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj‚Äubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha224_final (C function)”Œc.hmac_sha224_final”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒWvoid hmac_sha224_final (struct hmac_sha224_ctx *ctx, u8 out[static SHA224_DIGEST_SIZE])”h]”j)�”}”(hŒVvoid hmac_sha224_final(struct hmac_sha224_ctx *ctx, u8 out[static SHA224_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÀÅh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj¼Åh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏÅh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¼Åh²hh³jÎÅh´MubjD)�”}”(hŒhmac_sha224_final”h]”jJ)�”}”(hŒhmac_sha224_final”h]”hŒhmac_sha224_final”…”�”}”(hjáÅh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÝÅubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¼Åh²hh³jÎÅh´MubjÊ)�”}”(hŒ@(struct hmac_sha224_ctx *ctx, u8 out[static SHA224_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct hmac_sha224_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjýÅh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjùÅubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Æh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjùÅubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_ctx”h]”hŒhmac_sha224_ctx”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÆubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÆŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jãÅsbŒc.hmac_sha224_final”†”asbuh1hhjùÅubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;Æh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjùÅubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjIÆh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjùÅubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjVÆh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjùÅubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjõÅubjÐ)�”}”(hŒ!u8 out[static SHA224_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjrÆh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjoÆubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jtÆŒmodname”NŒ classname”Nj j)�”}”j]”j7ÆŒc.hmac_sha224_final”†”asbuh1hhjkÆubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Æh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjkÆubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjžÆh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjkÆubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj¬Æh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjkÆubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj¹Æh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjkÆubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÆÆh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjkÆubh)�”}”(hhh]”jJ)�”}”(hŒSHA224_DIGEST_SIZE”h]”hŒSHA224_DIGEST_SIZE”…”�”}”(hjׯh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÔÆubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÙÆŒmodname”NŒ classname”Nj j)�”}”j]”j7ÆŒc.hmac_sha224_final”†”asbuh1hhjkÆubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjõÆh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjkÆubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjõÅubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj¼Åh²hh³jÎÅh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¸Åh²hh³jÎÅh´Mubah}”(h]”j³Åah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÎÅh´MhjµÅh²hubjv)�”}”(hhh]”hï)�”}”(hŒ%Finish computing an HMAC-SHA224 value”h]”hŒ%Finish computing an HMAC-SHA224 value”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjÇh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjµÅh²hh³jÎÅh´Mubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j6Çj™j6Çjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX8**Parameters** ``struct hmac_sha224_ctx *ctx`` the HMAC context to finalize; must have been initialized ``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting HMAC-SHA224 value **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj@Çh]”hŒ Parameters”…”�”}”(hjBÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj>Çubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj:Çubjì)�”}”(hhh]”(jñ)�”}”(hŒY``struct hmac_sha224_ctx *ctx`` the HMAC context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha224_ctx *ctx``”h]”jý)�”}”(hj_Çh]”hŒstruct hmac_sha224_ctx *ctx”…”�”}”(hjaÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj]Çubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjYÇubj)�”}”(hhh]”hï)�”}”(hŒ8the HMAC context to finalize; must have been initialized”h]”hŒ8the HMAC context to finalize; must have been initialized”…”�”}”(hjxÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jtÇh´MhjuÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jtÇh´MhjVÇubjñ)�”}”(hŒO``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting HMAC-SHA224 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA224_DIGEST_SIZE]``”h]”jý)�”}”(hj˜Çh]”hŒ!u8 out[static SHA224_DIGEST_SIZE]”…”�”}”(hjšÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj–Çubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj’Çubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA224 value”h]”hŒ((output) the resulting HMAC-SHA224 value”…”�”}”(hj±Çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j­Çh´Mhj®Çubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’Çubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j­Çh´MhjVÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj:Çubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÓÇh]”hŒ Description”…”�”}”(hjÕÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÑÇubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj:Çubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjéÇh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjñÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjéÇubhŒ(. So the caller does not need to do it.”…”�”}”(hjéÇh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj:Çubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj Èh]”hŒContext”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj Èubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj:Çubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj"Èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj:Çubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha224 (C function)”Œ c.hmac_sha224”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒxvoid hmac_sha224 (const struct hmac_sha224_key *key, const u8 *data, size_t data_len, u8 out[static SHA224_DIGEST_SIZE])”h]”j)�”}”(hŒwvoid hmac_sha224(const struct hmac_sha224_key *key, const u8 *data, size_t data_len, u8 out[static SHA224_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjQÈh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjMÈh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M&ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`Èh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjMÈh²hh³j_Èh´M&ubjD)�”}”(hŒ hmac_sha224”h]”jJ)�”}”(hŒ hmac_sha224”h]”hŒ hmac_sha224”…”�”}”(hjrÈh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjnÈubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjMÈh²hh³j_Èh´M&ubjÊ)�”}”(hŒg(const struct hmac_sha224_key *key, const u8 *data, size_t data_len, u8 out[static SHA224_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒ!const struct hmac_sha224_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjŽÈh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjŠÈubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›Èh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŠÈubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj©Èh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjŠÈubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶Èh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŠÈubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_key”h]”hŒhmac_sha224_key”…”�”}”(hjÇÈh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÄÈubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÉÈŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jtÈsbŒ c.hmac_sha224”†”asbuh1hhjŠÈubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçÈh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŠÈubj*)�”}”(hj-h•]”hŒ*”…”�”}”(hjõÈh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjŠÈubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŠÈubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj†ÈubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÉubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(Éh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÉubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj9Éh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj6Éubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j;ÉŒmodname”NŒ classname”Nj j)�”}”j]”jãÈŒ c.hmac_sha224”†”asbuh1hhjÉubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWÉh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÉubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjeÉh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÉubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjrÉh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÉubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj†ÈubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjŽÉh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‹Éubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�ÉŒmodname”NŒ classname”Nj j)�”}”j]”jãÈŒ c.hmac_sha224”†”asbuh1hhj‡Éubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬Éh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‡ÉubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjºÉh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‡Éubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj†ÈubjÐ)�”}”(hŒ!u8 out[static SHA224_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÖÉh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÓÉubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jØÉŒmodname”NŒ classname”Nj j)�”}”j]”jãÈŒ c.hmac_sha224”†”asbuh1hhjÏÉubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjôÉh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÏÉubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÏÉubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÏÉubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÏÉubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*Êh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÏÉubh)�”}”(hhh]”jJ)�”}”(hŒSHA224_DIGEST_SIZE”h]”hŒSHA224_DIGEST_SIZE”…”�”}”(hj;Êh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj8Êubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j=ÊŒmodname”NŒ classname”Nj j)�”}”j]”jãÈŒ c.hmac_sha224”†”asbuh1hhjÏÉubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjYÊh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÏÉubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj†Èubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjMÈh²hh³j_Èh´M&ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjIÈh²hh³j_Èh´M&ubah}”(h]”jDÈah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j_Èh´M&hjFÈh²hubjv)�”}”(hhh]”hï)�”}”(hŒ5Compute HMAC-SHA224 in one shot, using a prepared key”h]”hŒ5Compute HMAC-SHA224 in one shot, using a prepared key”…”�”}”(hj‚Êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M&hjÊh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjFÈh²hh³j_Èh´M&ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jšÊj™jšÊjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXp**Parameters** ``const struct hmac_sha224_key *key`` the prepared HMAC key ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting HMAC-SHA224 value **Description** If you're using the key only once, consider using hmac_sha224_usingrawkey(). **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¤Êh]”hŒ Parameters”…”�”}”(hj¦Êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¢Êubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M*hjžÊubjì)�”}”(hhh]”(jñ)�”}”(hŒ<``const struct hmac_sha224_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha224_key *key``”h]”jý)�”}”(hjÃÊh]”hŒ!const struct hmac_sha224_key *key”…”�”}”(hjÅÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÁÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M'hj½Êubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjÜÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jØÊh´M'hjÙÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj½Êubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jØÊh´M'hjºÊubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjüÊh]”hŒconst u8 *data”…”�”}”(hjþÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjúÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M(hjöÊubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jËh´M(hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjöÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jËh´M(hjºÊubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj5Ëh]”hŒsize_t data_len”…”�”}”(hj7Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj3Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M)hj/Ëubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjNËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jJËh´M)hjKËubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj/Ëubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jJËh´M)hjºÊubjñ)�”}”(hŒO``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting HMAC-SHA224 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA224_DIGEST_SIZE]``”h]”jý)�”}”(hjnËh]”hŒ!u8 out[static SHA224_DIGEST_SIZE]”…”�”}”(hjpËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjlËubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M*hjhËubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA224 value”h]”hŒ((output) the resulting HMAC-SHA224 value”…”�”}”(hj‡Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jƒËh´M*hj„Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhËubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jƒËh´M*hjºÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjžÊubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj©Ëh]”hŒ Description”…”�”}”(hj«Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj§Ëubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M,hjžÊubhï)�”}”(hŒLIf you're using the key only once, consider using hmac_sha224_usingrawkey().”h]”hŒNIf you’re using the key only once, consider using hmac_sha224_usingrawkey().”…”�”}”(hj¿Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M+hjžÊubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÐËh]”hŒContext”…”�”}”(hjÒËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÎËubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M-hjžÊubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjæËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M.hjžÊubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha224_usingrawkey (C function)”Œc.hmac_sha224_usingrawkey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒˆvoid hmac_sha224_usingrawkey (const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA224_DIGEST_SIZE])”h]”j)�”}”(hŒ‡void hmac_sha224_usingrawkey(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA224_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÌh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M5ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$Ìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÌh²hh³j#Ìh´M5ubjD)�”}”(hŒhmac_sha224_usingrawkey”h]”jJ)�”}”(hŒhmac_sha224_usingrawkey”h]”hŒhmac_sha224_usingrawkey”…”�”}”(hj6Ìh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj2Ìubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÌh²hh³j#Ìh´M5ubjÊ)�”}”(hŒk(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA224_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjRÌh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjNÌubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_Ìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjNÌubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjpÌh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjmÌubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jrÌŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j8ÌsbŒc.hmac_sha224_usingrawkey”†”asbuh1hhjNÌubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Ìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjNÌubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjžÌh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjNÌubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj«Ìh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjNÌubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjJÌubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÇÌh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÄÌubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÉÌŒmodname”NŒ classname”Nj j)�”}”j]”jŒÌŒc.hmac_sha224_usingrawkey”†”asbuh1hhjÀÌubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåÌh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÀÌubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjóÌh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÀÌubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjJÌubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj Íh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÍubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÍubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj*Íh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj'Íubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j,ÍŒmodname”NŒ classname”Nj j)�”}”j]”jŒÌŒc.hmac_sha224_usingrawkey”†”asbuh1hhjÍubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHÍh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÍubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjVÍh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÍubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjcÍh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjJÌubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj|Íubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�ÍŒmodname”NŒ classname”Nj j)�”}”j]”jŒÌŒc.hmac_sha224_usingrawkey”†”asbuh1hhjxÍubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Íh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjxÍubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj«Íh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjJÌubjÐ)�”}”(hŒ!u8 out[static SHA224_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÇÍh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÄÍubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÉÍŒmodname”NŒ classname”Nj j)�”}”j]”jŒÌŒc.hmac_sha224_usingrawkey”†”asbuh1hhjÀÍubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåÍh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÀÍubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjóÍh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÀÍubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÀÍubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÀÍubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÀÍubh)�”}”(hhh]”jJ)�”}”(hŒSHA224_DIGEST_SIZE”h]”hŒSHA224_DIGEST_SIZE”…”�”}”(hj,Îh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj)Îubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j.ÎŒmodname”NŒ classname”Nj j)�”}”j]”jŒÌŒc.hmac_sha224_usingrawkey”†”asbuh1hhjÀÍubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjJÎh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÀÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjJÌubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÌh²hh³j#Ìh´M5ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj Ìh²hh³j#Ìh´M5ubah}”(h]”jÌah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j#Ìh´M5hj Ìh²hubjv)�”}”(hhh]”hï)�”}”(hŒ0Compute HMAC-SHA224 in one shot, using a raw key”h]”hŒ0Compute HMAC-SHA224 in one shot, using a raw key”…”�”}”(hjsÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M5hjpÎh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj Ìh²hh³j#Ìh´M5ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j‹Îj™j‹Îjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXì**Parameters** ``const u8 *raw_key`` the raw HMAC-SHA224 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting HMAC-SHA224 value **Description** If you're using the key multiple times, prefer to use hmac_sha224_preparekey() followed by multiple calls to hmac_sha224() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj•Îh]”hŒ Parameters”…”�”}”(hj—Îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj“Îubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M9hj�Îubjì)�”}”(hhh]”(jñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA224 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj´Îh]”hŒconst u8 *raw_key”…”�”}”(hj¶Îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj²Îubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M6hj®Îubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA224 key”h]”hŒthe raw HMAC-SHA224 key”…”�”}”(hjÍÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÉÎh´M6hjÊÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj®Îubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÉÎh´M6hj«Îubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjíÎh]”hŒsize_t raw_key_len”…”�”}”(hjïÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjëÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M7hjçÎubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÏh´M7hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjçÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÏh´M7hj«Îubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj&Ïh]”hŒconst u8 *data”…”�”}”(hj(Ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj$Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M8hj Ïubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj?Ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j;Ïh´M8hj<Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj Ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j;Ïh´M8hj«Îubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj_Ïh]”hŒsize_t data_len”…”�”}”(hjaÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj]Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M9hjYÏubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjxÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jtÏh´M9hjuÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jtÏh´M9hj«Îubjñ)�”}”(hŒO``u8 out[static SHA224_DIGEST_SIZE]`` (output) the resulting HMAC-SHA224 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA224_DIGEST_SIZE]``”h]”jý)�”}”(hj˜Ïh]”hŒ!u8 out[static SHA224_DIGEST_SIZE]”…”�”}”(hjšÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj–Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M:hj’Ïubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA224 value”h]”hŒ((output) the resulting HMAC-SHA224 value”…”�”}”(hj±Ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j­Ïh´M:hj®Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’Ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j­Ïh´M:hj«Îubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj�Îubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÓÏh]”hŒ Description”…”�”}”(hjÕÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÑÏubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M<hj�Îubhï)�”}”(hŒƒIf you're using the key multiple times, prefer to use hmac_sha224_preparekey() followed by multiple calls to hmac_sha224() instead.”h]”hŒ…If you’re using the key multiple times, prefer to use hmac_sha224_preparekey() followed by multiple calls to hmac_sha224() instead.”…”�”}”(hjéÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M;hj�Îubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjúÏh]”hŒContext”…”�”}”(hjüÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjøÏubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M>hj�Îubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M?hj�Îubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha256_ctx (C struct)”Œ c.sha256_ctx”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ sha256_ctx”h]”j)�”}”(hŒstruct sha256_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj?Ðh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj;Ðh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MDubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMÐh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;Ðh²hh³jLÐh´MDubjD)�”}”(hŒ sha256_ctx”h]”jJ)�”}”(hj9Ðh]”hŒ sha256_ctx”…”�”}”(hj_Ðh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj[Ðubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj;Ðh²hh³jLÐh´MDubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj7Ðh²hh³jLÐh´MDubah}”(h]”j2Ðah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jLÐh´MDhj4Ðh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Context for hashing a message with SHA-256”h]”hŒ*Context for hashing a message with SHA-256”…”�”}”(hj�Ðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MFhj~Ðh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj4Ðh²hh³jLÐh´MDubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j™Ðj™j™Ðjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒk**Definition**:: struct sha256_ctx { struct __sha256_ctx ctx; }; **Members** ``ctx`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj¥Ðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¡ÐubhŒ:”…”�”}”(hj¡Ðh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MJhj�ÐubjÃ)�”}”(hŒ3struct sha256_ctx { struct __sha256_ctx ctx; };”h]”hŒ3struct sha256_ctx { struct __sha256_ctx ctx; };”…”�”}”hj¾Ðsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MLhj�Ðubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjÏÐh]”hŒMembers”…”�”}”(hjÑÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÍÐubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MPhj�Ðubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hjîÐh]”hŒctx”…”�”}”(hjðÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjìÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MGhjèÐubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MHhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjèÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÑh´MGhjåÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj�Ðubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha256_init (C function)”Œ c.sha256_init”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ)void sha256_init (struct sha256_ctx *ctx)”h]”j)�”}”(hŒ(void sha256_init(struct sha256_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjHÑh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjDÑh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MNubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWÑh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjDÑh²hh³jVÑh´MNubjD)�”}”(hŒ sha256_init”h]”jJ)�”}”(hŒ sha256_init”h]”hŒ sha256_init”…”�”}”(hjiÑh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjeÑubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjDÑh²hh³jVÑh´MNubjÊ)�”}”(hŒ(struct sha256_ctx *ctx)”h]”jÐ)�”}”(hŒstruct sha256_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj…Ñh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj�Ñubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’Ñh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�Ñubh)�”}”(hhh]”jJ)�”}”(hŒ sha256_ctx”h]”hŒ sha256_ctx”…”�”}”(hj£Ñh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Ñubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¥ÑŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jkÑsbŒ c.sha256_init”†”asbuh1hhj�Ñubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃÑh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�Ñubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÑÑh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj�ÑubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÞÑh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�Ñubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj}Ñubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjDÑh²hh³jVÑh´MNubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj@Ñh²hh³jVÑh´MNubah}”(h]”j;Ñah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jVÑh´MNhj=Ñh²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Initialize a SHA-256 context for a new message”h]”hŒ.Initialize a SHA-256 context for a new message”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MNhjÒh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj=Ñh²hh³jVÑh´MNubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j Òj™j Òjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒ¹**Parameters** ``struct sha256_ctx *ctx`` the context to initialize **Description** If you don't need incremental computation, consider sha256() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj*Òh]”hŒ Parameters”…”�”}”(hj,Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj(Òubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MRhj$Òubjì)�”}”(hhh]”jñ)�”}”(hŒ5``struct sha256_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct sha256_ctx *ctx``”h]”jý)�”}”(hjIÒh]”hŒstruct sha256_ctx *ctx”…”�”}”(hjKÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjGÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MOhjCÒubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hjbÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j^Òh´MOhj_Òubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j^Òh´MOhj@Òubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj$Òubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj„Òh]”hŒ Description”…”�”}”(hj†Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‚Òubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MQhj$Òubhï)�”}”(hŒEIf you don't need incremental computation, consider sha256() instead.”h]”hŒGIf you don’t need incremental computation, consider sha256() instead.”…”�”}”(hjšÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MPhj$Òubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj«Òh]”hŒContext”…”�”}”(hj­Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj©Òubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MRhj$Òubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÁÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MShj$Òubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha256_update (C function)”Œc.sha256_update”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒGvoid sha256_update (struct sha256_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒFvoid sha256_update(struct sha256_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjðÒh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjìÒh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MXubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿÒh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjìÒh²hh³jþÒh´MXubjD)�”}”(hŒ sha256_update”h]”jJ)�”}”(hŒ sha256_update”h]”hŒ sha256_update”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Óubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjìÒh²hh³jþÒh´MXubjÊ)�”}”(hŒ4(struct sha256_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct sha256_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj-Óh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj)Óubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:Óh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj)Óubh)�”}”(hhh]”jJ)�”}”(hŒ sha256_ctx”h]”hŒ sha256_ctx”…”�”}”(hjKÓh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjHÓubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jMÓŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÓsbŒc.sha256_update”†”asbuh1hhj)Óubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkÓh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj)Óubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjyÓh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj)ÓubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj†Óh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj)Óubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj%ÓubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjŸÓh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj›Óubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬Óh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj›Óubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj½Óh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjºÓubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¿ÓŒmodname”NŒ classname”Nj j)�”}”j]”jgÓŒc.sha256_update”†”asbuh1hhj›Óubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛÓh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj›Óubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjéÓh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj›ÓubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjöÓh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj›Óubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj%ÓubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÔubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÔŒmodname”NŒ classname”Nj j)�”}”j]”jgÓŒc.sha256_update”†”asbuh1hhj Ôubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0Ôh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ÔubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj>Ôh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Ôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj%Óubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjìÒh²hh³jþÒh´MXubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjèÒh²hh³jþÒh´MXubah}”(h]”jãÒah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jþÒh´MXhjåÒh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a SHA-256 context with message data”h]”hŒ*Update a SHA-256 context with message data”…”�”}”(hjhÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MXhjeÔh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjåÒh²hh³jþÒh´MXubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j€Ôj™j€Ôjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct sha256_ctx *ctx`` the context to update; must have been initialized ``const u8 *data`` the message data ``size_t len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjŠÔh]”hŒ Parameters”…”�”}”(hjŒÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjˆÔubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M\hj„Ôubjì)�”}”(hhh]”(jñ)�”}”(hŒM``struct sha256_ctx *ctx`` the context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha256_ctx *ctx``”h]”jý)�”}”(hj©Ôh]”hŒstruct sha256_ctx *ctx”…”�”}”(hj«Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj§Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MYhj£Ôubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hjÂÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¾Ôh´MYhj¿Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj£Ôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¾Ôh´MYhj Ôubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjâÔh]”hŒconst u8 *data”…”�”}”(hjäÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjàÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MZhjÜÔubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjûÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j÷Ôh´MZhjøÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÜÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j÷Ôh´MZhj Ôubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjÕh]”hŒ size_t len”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M[hjÕubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj4Õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j0Õh´M[hj1Õubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÕubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j0Õh´M[hj Ôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj„Ôubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjVÕh]”hŒ Description”…”�”}”(hjXÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjTÕubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M]hj„Ôubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hjlÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M\hj„Ôubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj}Õh]”hŒContext”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj{Õubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M^hj„Ôubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj“Õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M_hj„Ôubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha256_final (C function)”Œc.sha256_final”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒMvoid sha256_final (struct sha256_ctx *ctx, u8 out[static SHA256_DIGEST_SIZE])”h]”j)�”}”(hŒLvoid sha256_final(struct sha256_ctx *ctx, u8 out[static SHA256_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÂÕh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj¾Õh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑÕh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¾Õh²hh³jÐÕh´MhubjD)�”}”(hŒ sha256_final”h]”jJ)�”}”(hŒ sha256_final”h]”hŒ sha256_final”…”�”}”(hjãÕh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjßÕubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¾Õh²hh³jÐÕh´MhubjÊ)�”}”(hŒ;(struct sha256_ctx *ctx, u8 out[static SHA256_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct sha256_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÿÕh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjûÕubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Öh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjûÕubh)�”}”(hhh]”jJ)�”}”(hŒ sha256_ctx”h]”hŒ sha256_ctx”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÖubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÖŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jåÕsbŒc.sha256_final”†”asbuh1hhjûÕubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=Öh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjûÕubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjKÖh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjûÕubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjXÖh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjûÕubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj÷ÕubjÐ)�”}”(hŒ!u8 out[static SHA256_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjtÖh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjqÖubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jvÖŒmodname”NŒ classname”Nj j)�”}”j]”j9ÖŒc.sha256_final”†”asbuh1hhjmÖubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’Öh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjmÖubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj Öh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjmÖubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj®Öh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjmÖubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj»Öh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjmÖubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈÖh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjmÖubh)�”}”(hhh]”jJ)�”}”(hŒSHA256_DIGEST_SIZE”h]”hŒSHA256_DIGEST_SIZE”…”�”}”(hjÙÖh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÖÖubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÛÖŒmodname”NŒ classname”Nj j)�”}”j]”j9ÖŒc.sha256_final”†”asbuh1hhjmÖubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj÷Öh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjmÖubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj÷Õubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj¾Õh²hh³jÐÕh´Mhubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjºÕh²hh³jÐÕh´Mhubah}”(h]”jµÕah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÐÕh´Mhhj·Õh²hubjv)�”}”(hhh]”hï)�”}”(hŒ)Finish computing a SHA-256 message digest”h]”hŒ)Finish computing a SHA-256 message digest”…”�”}”(hj ×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhhj×h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj·Õh²hh³jÐÕh´Mhubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j8×j™j8×jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX3**Parameters** ``struct sha256_ctx *ctx`` the context to finalize; must have been initialized ``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting SHA-256 message digest **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjB×h]”hŒ Parameters”…”�”}”(hjD×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj@×ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mlhj<×ubjì)�”}”(hhh]”(jñ)�”}”(hŒO``struct sha256_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha256_ctx *ctx``”h]”jý)�”}”(hja×h]”hŒstruct sha256_ctx *ctx”…”�”}”(hjc×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj_×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mihj[×ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjz×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jv×h´Mihjw×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj[×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jv×h´MihjX×ubjñ)�”}”(hŒT``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting SHA-256 message digest ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA256_DIGEST_SIZE]``”h]”jý)�”}”(hjš×h]”hŒ!u8 out[static SHA256_DIGEST_SIZE]”…”�”}”(hjœ×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj˜×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mjhj”×ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-256 message digest”h]”hŒ-(output) the resulting SHA-256 message digest”…”�”}”(hj³×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¯×h´Mjhj°×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¯×h´MjhjX×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj<×ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÕ×h]”hŒ Description”…”�”}”(hj××h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÓ×ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mlhj<×ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjë×h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjó×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjë×ubhŒ(. So the caller does not need to do it.”…”�”}”(hjë×h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mkhj<×ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjØh]”hŒContext”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj Øubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mmhj<×ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj$Øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mnhj<×ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha256 (C function)”Œc.sha256”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒKvoid sha256 (const u8 *data, size_t len, u8 out[static SHA256_DIGEST_SIZE])”h]”j)�”}”(hŒJvoid sha256(const u8 *data, size_t len, u8 out[static SHA256_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjSØh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjOØh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Msubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbØh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjOØh²hh³jaØh´MsubjD)�”}”(hŒsha256”h]”jJ)�”}”(hŒsha256”h]”hŒsha256”…”�”}”(hjtØh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjpØubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjOØh²hh³jaØh´MsubjÊ)�”}”(hŒ?(const u8 *data, size_t len, u8 out[static SHA256_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj�Øh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjŒØubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�Øh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŒØubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj®Øh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«Øubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j°ØŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jvØsbŒc.sha256”†”asbuh1hhjŒØubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎØh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŒØubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÜØh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjŒØubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjéØh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŒØubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjˆØubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÙubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÙŒmodname”NŒ classname”Nj j)�”}”j]”jÊØŒc.sha256”†”asbuh1hhjþØubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#Ùh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjþØubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj1Ùh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjþØubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjˆØubjÐ)�”}”(hŒ!u8 out[static SHA256_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjMÙh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJÙubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jOÙŒmodname”NŒ classname”Nj j)�”}”j]”jÊØŒc.sha256”†”asbuh1hhjFÙubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkÙh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjFÙubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjyÙh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjFÙubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj‡Ùh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjFÙubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj”Ùh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjFÙubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡Ùh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjFÙubh)�”}”(hhh]”jJ)�”}”(hŒSHA256_DIGEST_SIZE”h]”hŒSHA256_DIGEST_SIZE”…”�”}”(hj²Ùh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¯Ùubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j´ÙŒmodname”NŒ classname”Nj j)�”}”j]”jÊØŒc.sha256”†”asbuh1hhjFÙubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÐÙh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjFÙubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjˆØubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjOØh²hh³jaØh´Msubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjKØh²hh³jaØh´Msubah}”(h]”jFØah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jaØh´MshjHØh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Compute SHA-256 message digest in one shot”h]”hŒ*Compute SHA-256 message digest in one shot”…”�”}”(hjùÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MshjöÙh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjHØh²hh³jaØh´Msubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÚj™jÚjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒÒ**Parameters** ``const u8 *data`` the message data ``size_t len`` the data length in bytes ``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting SHA-256 message digest **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÚh]”hŒ Parameters”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MwhjÚubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj:Úh]”hŒconst u8 *data”…”�”}”(hj<Úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj8Úubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mthj4Úubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjSÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jOÚh´MthjPÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4Úubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jOÚh´Mthj1Úubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjsÚh]”hŒ size_t len”…”�”}”(hjuÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjqÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MuhjmÚubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjŒÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jˆÚh´Muhj‰Úubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjmÚubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jˆÚh´Muhj1Úubjñ)�”}”(hŒT``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting SHA-256 message digest ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA256_DIGEST_SIZE]``”h]”jý)�”}”(hj¬Úh]”hŒ!u8 out[static SHA256_DIGEST_SIZE]”…”�”}”(hj®Úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjªÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mvhj¦Úubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-256 message digest”h]”hŒ-(output) the resulting SHA-256 message digest”…”�”}”(hjÅÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÁÚh´MvhjÂÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦Úubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÁÚh´Mvhj1Úubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÚubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjçÚh]”hŒContext”…”�”}”(hjéÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjåÚubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MxhjÚubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjýÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MxhjÚubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha256_finup_2x (C function)”Œc.sha256_finup_2x”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ©void sha256_finup_2x (const struct sha256_ctx *ctx, const u8 *data1, const u8 *data2, size_t len, u8 out1[static SHA256_DIGEST_SIZE], u8 out2[static SHA256_DIGEST_SIZE])”h]”j)�”}”(hŒ¨void sha256_finup_2x(const struct sha256_ctx *ctx, const u8 *data1, const u8 *data2, size_t len, u8 out1[static SHA256_DIGEST_SIZE], u8 out2[static SHA256_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj,Ûh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj(Ûh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M}ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;Ûh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj(Ûh²hh³j:Ûh´M}ubjD)�”}”(hŒsha256_finup_2x”h]”jJ)�”}”(hŒsha256_finup_2x”h]”hŒsha256_finup_2x”…”�”}”(hjMÛh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjIÛubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj(Ûh²hh³j:Ûh´M}ubjÊ)�”}”(hŒ”(const struct sha256_ctx *ctx, const u8 *data1, const u8 *data2, size_t len, u8 out1[static SHA256_DIGEST_SIZE], u8 out2[static SHA256_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst struct sha256_ctx *ctx”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjiÛh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjeÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvÛh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjeÛubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj„Ûh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjeÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘Ûh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjeÛubh)�”}”(hhh]”jJ)�”}”(hŒ sha256_ctx”h]”hŒ sha256_ctx”…”�”}”(hj¢Ûh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŸÛubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¤ÛŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jOÛsbŒc.sha256_finup_2x”†”asbuh1hhjeÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂÛh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjeÛubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÐÛh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjeÛubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÝÛh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjeÛubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjaÛubjÐ)�”}”(hŒconst u8 *data1”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjöÛh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjòÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjòÛubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÜŒmodname”NŒ classname”Nj j)�”}”j]”j¾ÛŒc.sha256_finup_2x”†”asbuh1hhjòÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2Üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjòÛubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj@Üh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjòÛubjJ)�”}”(hŒdata1”h]”hŒdata1”…”�”}”(hjMÜh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjòÛubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjaÛubjÐ)�”}”(hŒconst u8 *data2”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjfÜh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjbÜubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsÜh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjbÜubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj„Üh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�Üubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j†ÜŒmodname”NŒ classname”Nj j)�”}”j]”j¾ÛŒc.sha256_finup_2x”†”asbuh1hhjbÜubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢Üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjbÜubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj°Üh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjbÜubjJ)�”}”(hŒdata2”h]”hŒdata2”…”�”}”(hj½Üh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjbÜubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjaÛubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÙÜh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÖÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÛÜŒmodname”NŒ classname”Nj j)�”}”j]”j¾ÛŒc.sha256_finup_2x”†”asbuh1hhjÒÜubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷Üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÒÜubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÒÜubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjaÛubjÐ)�”}”(hŒ"u8 out1[static SHA256_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj!Ýh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÝubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j#ÝŒmodname”NŒ classname”Nj j)�”}”j]”j¾ÛŒc.sha256_finup_2x”†”asbuh1hhjÝubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?Ýh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÝubjJ)�”}”(hŒout1”h]”hŒout1”…”�”}”(hjMÝh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÝubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj[Ýh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÝubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjhÝh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÝubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuÝh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÝubh)�”}”(hhh]”jJ)�”}”(hŒSHA256_DIGEST_SIZE”h]”hŒSHA256_DIGEST_SIZE”…”�”}”(hj†Ýh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjƒÝubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jˆÝŒmodname”NŒ classname”Nj j)�”}”j]”j¾ÛŒc.sha256_finup_2x”†”asbuh1hhjÝubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj¤Ýh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÝubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjaÛubjÐ)�”}”(hŒ"u8 out2[static SHA256_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj¿Ýh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¼Ýubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÁÝŒmodname”NŒ classname”Nj j)�”}”j]”j¾ÛŒc.sha256_finup_2x”†”asbuh1hhj¸Ýubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝÝh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¸ÝubjJ)�”}”(hŒout2”h]”hŒout2”…”�”}”(hjëÝh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¸Ýubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjùÝh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¸Ýubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¸Ýubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¸Ýubh)�”}”(hhh]”jJ)�”}”(hŒSHA256_DIGEST_SIZE”h]”hŒSHA256_DIGEST_SIZE”…”�”}”(hj$Þh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj!Þubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j&ÞŒmodname”NŒ classname”Nj j)�”}”j]”j¾ÛŒc.sha256_finup_2x”†”asbuh1hhj¸Ýubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjBÞh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¸Ýubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjaÛubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj(Ûh²hh³j:Ûh´M}ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj$Ûh²hh³j:Ûh´M}ubah}”(h]”jÛah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j:Ûh´M}hj!Ûh²hubjv)�”}”(hhh]”hï)�”}”(hŒ€Compute two SHA-256 digests from a common initial context. On some CPUs, this is faster than sequentially computing each digest.”h]”hŒ€Compute two SHA-256 digests from a common initial context. On some CPUs, this is faster than sequentially computing each digest.”…”�”}”(hjkÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M}hjhÞh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj!Ûh²hh³j:Ûh´M}ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jƒÞj™jƒÞjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX6**Parameters** ``const struct sha256_ctx *ctx`` an optional initial context, which may have already processed data. If NULL, a default initial context is used (equivalent to sha256_init()). ``const u8 *data1`` data for the first message ``const u8 *data2`` data for the second message ``size_t len`` the length of each of **data1** and **data2**, in bytes ``u8 out1[static SHA256_DIGEST_SIZE]`` (output) the first SHA-256 message digest ``u8 out2[static SHA256_DIGEST_SIZE]`` (output) the second SHA-256 message digest **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj�Þh]”hŒ Parameters”…”�”}”(hj�Þh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‹Þubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�hj‡Þubjì)�”}”(hhh]”(jñ)�”}”(hŒ°``const struct sha256_ctx *ctx`` an optional initial context, which may have already processed data. If NULL, a default initial context is used (equivalent to sha256_init()). ”h]”(j÷)�”}”(hŒ ``const struct sha256_ctx *ctx``”h]”jý)�”}”(hj¬Þh]”hŒconst struct sha256_ctx *ctx”…”�”}”(hj®Þh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjªÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�hj¦Þubj)�”}”(hhh]”hï)�”}”(hŒŽan optional initial context, which may have already processed data. If NULL, a default initial context is used (equivalent to sha256_init()).”h]”hŒŽan optional initial context, which may have already processed data. If NULL, a default initial context is used (equivalent to sha256_init()).”…”�”}”(hjÅÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M€hjÂÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦Þubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÁÞh´M�hj£Þubjñ)�”}”(hŒ/``const u8 *data1`` data for the first message ”h]”(j÷)�”}”(hŒ``const u8 *data1``”h]”jý)�”}”(hjæÞh]”hŒconst u8 *data1”…”�”}”(hjèÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjäÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M‚hjàÞubj)�”}”(hhh]”hï)�”}”(hŒdata for the first message”h]”hŒdata for the first message”…”�”}”(hjÿÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jûÞh´M‚hjüÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjàÞubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jûÞh´M‚hj£Þubjñ)�”}”(hŒ0``const u8 *data2`` data for the second message ”h]”(j÷)�”}”(hŒ``const u8 *data2``”h]”jý)�”}”(hjßh]”hŒconst u8 *data2”…”�”}”(hj!ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjßubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mƒhjßubj)�”}”(hhh]”hï)�”}”(hŒdata for the second message”h]”hŒdata for the second message”…”�”}”(hj8ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j4ßh´Mƒhj5ßubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j4ßh´Mƒhj£Þubjñ)�”}”(hŒG``size_t len`` the length of each of **data1** and **data2**, in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjXßh]”hŒ size_t len”…”�”}”(hjZßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjVßubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M„hjRßubj)�”}”(hhh]”hï)�”}”(hŒ7the length of each of **data1** and **data2**, in bytes”h]”(hŒthe length of each of ”…”�”}”(hjqßh²hh³Nh´Nubj¨)�”}”(hŒ **data1**”h]”hŒdata1”…”�”}”(hjyßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjqßubhŒ and ”…”�”}”(hjqßh²hh³Nh´Nubj¨)�”}”(hŒ **data2**”h]”hŒdata2”…”�”}”(hj‹ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjqßubhŒ , in bytes”…”�”}”(hjqßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jmßh´M„hjnßubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjRßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jmßh´M„hj£Þubjñ)�”}”(hŒQ``u8 out1[static SHA256_DIGEST_SIZE]`` (output) the first SHA-256 message digest ”h]”(j÷)�”}”(hŒ&``u8 out1[static SHA256_DIGEST_SIZE]``”h]”jý)�”}”(hjµßh]”hŒ"u8 out1[static SHA256_DIGEST_SIZE]”…”�”}”(hj·ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj³ßubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M…hj¯ßubj)�”}”(hhh]”hï)�”}”(hŒ)(output) the first SHA-256 message digest”h]”hŒ)(output) the first SHA-256 message digest”…”�”}”(hjÎßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÊßh´M…hjËßubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¯ßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÊßh´M…hj£Þubjñ)�”}”(hŒR``u8 out2[static SHA256_DIGEST_SIZE]`` (output) the second SHA-256 message digest ”h]”(j÷)�”}”(hŒ&``u8 out2[static SHA256_DIGEST_SIZE]``”h]”jý)�”}”(hjîßh]”hŒ"u8 out2[static SHA256_DIGEST_SIZE]”…”�”}”(hjðßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjìßubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M†hjèßubj)�”}”(hhh]”hï)�”}”(hŒ*(output) the second SHA-256 message digest”h]”hŒ*(output) the second SHA-256 message digest”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jàh´M†hjàubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjèßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jàh´M†hj£Þubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj‡Þubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj)àh]”hŒContext”…”�”}”(hj+àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj'àubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mˆhj‡Þubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj?àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”•h´Mˆhj‡Þubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ)sha256_finup_2x_is_optimized (C function)”Œc.sha256_finup_2x_is_optimized”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ(bool sha256_finup_2x_is_optimized (void)”h]”j)�”}”(hŒ'bool sha256_finup_2x_is_optimized(void)”h]”(j’)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjnàh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjjàh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}àh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjjàh²hh³j|àh´M�ubjD)�”}”(hŒsha256_finup_2x_is_optimized”h]”jJ)�”}”(hŒsha256_finup_2x_is_optimized”h]”hŒsha256_finup_2x_is_optimized”…”�”}”(hj�àh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‹àubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjjàh²hh³j|àh´M�ubjÊ)�”}”(hŒ(void)”h]”jÐ)�”}”(hŒvoid”h]”j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj«àh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj§àubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj£àubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjjàh²hh³j|àh´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjfàh²hh³j|àh´M�ubah}”(h]”jaàah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j|àh´M�hjcàh²hubjv)�”}”(hhh]”hï)�”}”(hŒjCheck if sha256_finup_2x() is using a real interleaved implementation, as opposed to a sequential fallback”h]”hŒjCheck if sha256_finup_2x() is using a real interleaved implementation, as opposed to a sequential fallback”…”�”}”(hjÕàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�hjÒàh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjcàh²hh³j|àh´M�ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jíàj™jíàjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒa**Parameters** ``void`` no arguments **Return** true if optimized **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj÷àh]”hŒ Parameters”…”�”}”(hjùàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjõàubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M”hjñàubjì)�”}”(hhh]”jñ)�”}”(hŒ``void`` no arguments ”h]”(j÷)�”}”(hŒ``void``”h]”jý)�”}”(hjáh]”hŒvoid”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Khjáubj)�”}”(hhh]”hï)�”}”(hŒ no arguments”h]”hŒ no arguments”…”�”}”(hj/áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j+áh´Khj,áubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjáubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j+áh´Khj áubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjñàubhï)�”}”(hŒ **Return**”h]”j¨)�”}”(hjQáh]”hŒReturn”…”�”}”(hjSáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjOáubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Khjñàubhï)�”}”(hŒtrue if optimized”h]”hŒtrue if optimized”…”�”}”(hjgáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M“hjñàubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjxáh]”hŒContext”…”�”}”(hjzáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjváubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M•hjñàubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjŽáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M•hjñàubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha256_key (C struct)”Œc.hmac_sha256_key”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒhmac_sha256_key”h]”j)�”}”(hŒstruct hmac_sha256_key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj½áh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¹áh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mšubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËáh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¹áh²hh³jÊáh´MšubjD)�”}”(hŒhmac_sha256_key”h]”jJ)�”}”(hj·áh]”hŒhmac_sha256_key”…”�”}”(hjÝáh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÙáubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¹áh²hh³jÊáh´Mšubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjµáh²hh³jÊáh´Mšubah}”(h]”j°áah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÊáh´Mšhj²áh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepared key for HMAC-SHA256”h]”hŒPrepared key for HMAC-SHA256”…”�”}”(hjÿáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mšhjüáh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj²áh²hh³jÊáh´Mšubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jâj™jâjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒu**Definition**:: struct hmac_sha256_key { struct __hmac_sha256_key key; }; **Members** ``key`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj#âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjâubhŒ:”…”�”}”(hjâh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MžhjâubjÃ)�”}”(hŒ=struct hmac_sha256_key { struct __hmac_sha256_key key; };”h]”hŒ=struct hmac_sha256_key { struct __hmac_sha256_key key; };”…”�”}”hj<âsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hjâubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjMâh]”hŒMembers”…”�”}”(hjOâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjKâubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¤hjâubjì)�”}”(hhh]”jñ)�”}”(hŒ``key`` private”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hjlâh]”hŒkey”…”�”}”(hjnâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M›hjfâubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj…âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mœhj‚âubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjfâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�âh´M›hjcâubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjâubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha256_ctx (C struct)”Œc.hmac_sha256_ctx”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒhmac_sha256_ctx”h]”j)�”}”(hŒstruct hmac_sha256_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÆâh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÂâh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¢ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔâh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÂâh²hh³jÓâh´M¢ubjD)�”}”(hŒhmac_sha256_ctx”h]”jJ)�”}”(hjÀâh]”hŒhmac_sha256_ctx”…”�”}”(hjæâh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjââubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÂâh²hh³jÓâh´M¢ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¾âh²hh³jÓâh´M¢ubah}”(h]”j¹âah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÓâh´M¢hj»âh²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Context for computing HMAC-SHA256 of a message”h]”hŒ.Context for computing HMAC-SHA256 of a message”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¢hjãh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj»âh²hh³jÓâh´M¢ubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j ãj™j ãjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒu**Definition**:: struct hmac_sha256_ctx { struct __hmac_sha256_ctx ctx; }; **Members** ``ctx`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj,ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj(ãubhŒ:”…”�”}”(hj(ãh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¦hj$ãubjÃ)�”}”(hŒ=struct hmac_sha256_ctx { struct __hmac_sha256_ctx ctx; };”h]”hŒ=struct hmac_sha256_ctx { struct __hmac_sha256_ctx ctx; };”…”�”}”hjEãsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¨hj$ãubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjVãh]”hŒMembers”…”�”}”(hjXãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjTãubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¬hj$ãubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hjuãh]”hŒctx”…”�”}”(hjwãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjsãubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M£hjoãubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjŽãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¤hj‹ãubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjoãubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŠãh´M£hjlãubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj$ãubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ#hmac_sha256_preparekey (C function)”Œc.hmac_sha256_preparekey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ`void hmac_sha256_preparekey (struct hmac_sha256_key *key, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒ_void hmac_sha256_preparekey(struct hmac_sha256_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÏãh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjËãh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mªubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞãh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjËãh²hh³jÝãh´MªubjD)�”}”(hŒhmac_sha256_preparekey”h]”jJ)�”}”(hŒhmac_sha256_preparekey”h]”hŒhmac_sha256_preparekey”…”�”}”(hjðãh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjìãubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjËãh²hh³jÝãh´MªubjÊ)�”}”(hŒD(struct hmac_sha256_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha256_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj äh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjäubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjäubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha256_key”h]”hŒhmac_sha256_key”…”�”}”(hj*äh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj'äubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j,äŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jòãsbŒc.hmac_sha256_preparekey”†”asbuh1hhjäubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJäh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjäubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjXäh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjäubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjeäh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjäubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjäubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj~äh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjzäubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹äh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjzäubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjœäh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj™äubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jžäŒmodname”NŒ classname”Nj j)�”}”j]”jFäŒc.hmac_sha256_preparekey”†”asbuh1hhjzäubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºäh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjzäubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÈäh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjzäubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjÕäh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjzäubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjäubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjñäh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjîäubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jóäŒmodname”NŒ classname”Nj j)�”}”j]”jFäŒc.hmac_sha256_preparekey”†”asbuh1hhjêäubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjêäubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjêäubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjäubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjËãh²hh³jÝãh´Mªubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÇãh²hh³jÝãh´Mªubah}”(h]”jÂãah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÝãh´MªhjÄãh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a key for HMAC-SHA256”h]”hŒPrepare a key for HMAC-SHA256”…”�”}”(hjGåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MªhjDåh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÄãh²hh³jÝãh´Mªubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j_åj™j_åjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX|**Parameters** ``struct hmac_sha256_key *key`` (output) the key structure to initialize ``const u8 *raw_key`` the raw HMAC-SHA256 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Note** the caller is responsible for zeroizing both the struct hmac_sha256_key and the raw key once they are no longer needed. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjiåh]”hŒ Parameters”…”�”}”(hjkåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjgåubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M®hjcåubjì)�”}”(hhh]”(jñ)�”}”(hŒI``struct hmac_sha256_key *key`` (output) the key structure to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha256_key *key``”h]”jý)�”}”(hjˆåh]”hŒstruct hmac_sha256_key *key”…”�”}”(hjŠåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj†åubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M«hj‚åubj)�”}”(hhh]”hï)�”}”(hŒ((output) the key structure to initialize”h]”hŒ((output) the key structure to initialize”…”�”}”(hj¡åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�åh´M«hjžåubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‚åubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�åh´M«hjåubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA256 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjÁåh]”hŒconst u8 *raw_key”…”�”}”(hjÃåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¿åubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¬hj»åubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA256 key”h]”hŒthe raw HMAC-SHA256 key”…”�”}”(hjÚåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÖåh´M¬hj×åubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj»åubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÖåh´M¬hjåubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjúåh]”hŒsize_t raw_key_len”…”�”}”(hjüåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjøåubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M­hjôåubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jæh´M­hjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjôåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jæh´M­hjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjcåubhï)�”}”(hŒ**Note**”h]”j¨)�”}”(hj5æh]”hŒNote”…”�”}”(hj7æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj3æubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¯hjcåubhï)�”}”(hŒwthe caller is responsible for zeroizing both the struct hmac_sha256_key and the raw key once they are no longer needed.”h]”hŒwthe caller is responsible for zeroizing both the struct hmac_sha256_key and the raw key once they are no longer needed.”…”�”}”(hjKæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¯hjcåubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj\æh]”hŒContext”…”�”}”(hj^æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjZæubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M²hjcåubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjræh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M²hjcåubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha256_init (C function)”Œc.hmac_sha256_init”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒVvoid hmac_sha256_init (struct hmac_sha256_ctx *ctx, const struct hmac_sha256_key *key)”h]”j)�”}”(hŒUvoid hmac_sha256_init(struct hmac_sha256_ctx *ctx, const struct hmac_sha256_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¡æh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj�æh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¸ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°æh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�æh²hh³j¯æh´M¸ubjD)�”}”(hŒhmac_sha256_init”h]”jJ)�”}”(hŒhmac_sha256_init”h]”hŒhmac_sha256_init”…”�”}”(hjÂæh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¾æubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj�æh²hh³j¯æh´M¸ubjÊ)�”}”(hŒ@(struct hmac_sha256_ctx *ctx, const struct hmac_sha256_key *key)”h]”(jÐ)�”}”(hŒstruct hmac_sha256_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÞæh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÚæubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëæh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚæubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha256_ctx”h]”hŒhmac_sha256_ctx”…”�”}”(hjüæh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjùæubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jþæŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÄæsbŒc.hmac_sha256_init”†”asbuh1hhjÚæubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚæubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj*çh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÚæubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj7çh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÚæubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÖæubjÐ)�”}”(hŒ!const struct hmac_sha256_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjPçh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjLçubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]çh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjLçubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjkçh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjLçubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjxçh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjLçubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha256_key”h]”hŒhmac_sha256_key”…”�”}”(hj‰çh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj†çubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‹çŒmodname”NŒ classname”Nj j)�”}”j]”jçŒc.hmac_sha256_init”†”asbuh1hhjLçubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§çh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjLçubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjµçh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjLçubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÂçh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjLçubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÖæubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj�æh²hh³j¯æh´M¸ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj™æh²hh³j¯æh´M¸ubah}”(h]”j”æah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¯æh´M¸hj–æh²hubjv)�”}”(hhh]”hï)�”}”(hŒ3Initialize an HMAC-SHA256 context for a new message”h]”hŒ3Initialize an HMAC-SHA256 context for a new message”…”�”}”(hjìçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¸hjéçh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj–æh²hh³j¯æh´M¸ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jèj™jèjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha256_ctx *ctx`` (output) the HMAC context to initialize ``const struct hmac_sha256_key *key`` the prepared HMAC key **Description** If you don't need incremental computation, consider hmac_sha256() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjèh]”hŒ Parameters”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj èubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¼hjèubjì)�”}”(hhh]”(jñ)�”}”(hŒH``struct hmac_sha256_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha256_ctx *ctx``”h]”jý)�”}”(hj-èh]”hŒstruct hmac_sha256_ctx *ctx”…”�”}”(hj/èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj+èubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¹hj'èubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hjFèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jBèh´M¹hjCèubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'èubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jBèh´M¹hj$èubjñ)�”}”(hŒ<``const struct hmac_sha256_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha256_key *key``”h]”jý)�”}”(hjfèh]”hŒ!const struct hmac_sha256_key *key”…”�”}”(hjhèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjdèubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mºhj`èubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j{èh´Mºhj|èubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj`èubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j{èh´Mºhj$èubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjèubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj¡èh]”hŒ Description”…”�”}”(hj£èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjŸèubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¼hjèubhï)�”}”(hŒJIf you don't need incremental computation, consider hmac_sha256() instead.”h]”hŒLIf you don’t need incremental computation, consider hmac_sha256() instead.”…”�”}”(hj·èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M»hjèubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÈèh]”hŒContext”…”�”}”(hjÊèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÆèubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M½hjèubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÞèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¾hjèubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ)hmac_sha256_init_usingrawkey (C function)”Œc.hmac_sha256_init_usingrawkey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒfvoid hmac_sha256_init_usingrawkey (struct hmac_sha256_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒevoid hmac_sha256_init_usingrawkey(struct hmac_sha256_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj éh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj éh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÇubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj éh²hh³jéh´MÇubjD)�”}”(hŒhmac_sha256_init_usingrawkey”h]”jJ)�”}”(hŒhmac_sha256_init_usingrawkey”h]”hŒhmac_sha256_init_usingrawkey”…”�”}”(hj.éh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj*éubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj éh²hh³jéh´MÇubjÊ)�”}”(hŒD(struct hmac_sha256_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha256_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjJéh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjFéubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWéh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjFéubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha256_ctx”h]”hŒhmac_sha256_ctx”…”�”}”(hjhéh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjeéubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jjéŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j0ésbŒc.hmac_sha256_init_usingrawkey”†”asbuh1hhjFéubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆéh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjFéubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj–éh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjFéubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj£éh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjFéubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjBéubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj¼éh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¸éubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉéh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¸éubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÚéh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj×éubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÜéŒmodname”NŒ classname”Nj j)�”}”j]”j„éŒc.hmac_sha256_init_usingrawkey”†”asbuh1hhj¸éubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjøéh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¸éubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¸éubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¸éubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjBéubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj/êh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj,êubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j1êŒmodname”NŒ classname”Nj j)�”}”j]”j„éŒc.hmac_sha256_init_usingrawkey”†”asbuh1hhj(êubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMêh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj(êubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj[êh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj(êubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjBéubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj éh²hh³jéh´MÇubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjéh²hh³jéh´MÇubah}”(h]”jéah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jéh´MÇhjéh²hubjv)�”}”(hhh]”hï)�”}”(hŒDInitialize an HMAC-SHA256 context for a new message, using a raw key”h]”hŒDInitialize an HMAC-SHA256 context for a new message, using a raw key”…”�”}”(hj…êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÇhj‚êh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjéh²hh³jéh´MÇubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j�êj™j�êjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXa**Parameters** ``struct hmac_sha256_ctx *ctx`` (output) the HMAC context to initialize ``const u8 *raw_key`` the raw HMAC-SHA256 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Description** If you don't need incremental computation, consider hmac_sha256_usingrawkey() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj§êh]”hŒ Parameters”…”�”}”(hj©êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¥êubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MËhj¡êubjì)�”}”(hhh]”(jñ)�”}”(hŒH``struct hmac_sha256_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha256_ctx *ctx``”h]”jý)�”}”(hjÆêh]”hŒstruct hmac_sha256_ctx *ctx”…”�”}”(hjÈêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÄêubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÉhjÀêubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hjßêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÛêh´MÉhjÜêubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀêubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÛêh´MÉhj½êubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA256 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjÿêh]”hŒconst u8 *raw_key”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjýêubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÊhjùêubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA256 key”h]”hŒthe raw HMAC-SHA256 key”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jëh´MÊhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjùêubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jëh´MÊhj½êubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hj8ëh]”hŒsize_t raw_key_len”…”�”}”(hj:ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj6ëubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MËhj2ëubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hjQëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jMëh´MËhjNëubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj2ëubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jMëh´MËhj½êubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¡êubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjsëh]”hŒ Description”…”�”}”(hjuëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjqëubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÍhj¡êubhï)�”}”(hŒVIf you don't need incremental computation, consider hmac_sha256_usingrawkey() instead.”h]”hŒXIf you don’t need incremental computation, consider hmac_sha256_usingrawkey() instead.”…”�”}”(hj‰ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÌhj¡êubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjšëh]”hŒContext”…”�”}”(hjœëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj˜ëubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÏhj¡êubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj°ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÐhj¡êubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha256_update (C function)”Œc.hmac_sha256_update”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒVvoid hmac_sha256_update (struct hmac_sha256_ctx *ctx, const u8 *data, size_t data_len)”h]”j)�”}”(hŒUvoid hmac_sha256_update(struct hmac_sha256_ctx *ctx, const u8 *data, size_t data_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjßëh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÛëh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÖubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîëh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛëh²hh³jíëh´MÖubjD)�”}”(hŒhmac_sha256_update”h]”jJ)�”}”(hŒhmac_sha256_update”h]”hŒhmac_sha256_update”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjüëubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÛëh²hh³jíëh´MÖubjÊ)�”}”(hŒ>(struct hmac_sha256_ctx *ctx, const u8 *data, size_t data_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha256_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjìubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)ìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjìubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha256_ctx”h]”hŒhmac_sha256_ctx”…”�”}”(hj:ìh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj7ìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j<ìŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jìsbŒc.hmac_sha256_update”†”asbuh1hhjìubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjìubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjhìh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjìubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjuìh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjìubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjŽìh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjŠìubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›ìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŠìubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj¬ìh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj©ìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j®ìŒmodname”NŒ classname”Nj j)�”}”j]”jVìŒc.hmac_sha256_update”†”asbuh1hhjŠìubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŠìubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjØìh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjŠìubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjåìh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŠìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjìubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjþìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jíŒmodname”NŒ classname”Nj j)�”}”j]”jVìŒc.hmac_sha256_update”†”asbuh1hhjúìubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjúìubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj-íh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjúìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjìubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÛëh²hh³jíëh´MÖubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj×ëh²hh³jíëh´MÖubah}”(h]”jÒëah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jíëh´MÖhjÔëh²hubjv)�”}”(hhh]”hï)�”}”(hŒ/Update an HMAC-SHA256 context with message data”h]”hŒ/Update an HMAC-SHA256 context with message data”…”�”}”(hjWíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÖhjTíh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÔëh²hh³jíëh´MÖubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜joíj™joíjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha256_ctx *ctx`` the HMAC context to update; must have been initialized ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjyíh]”hŒ Parameters”…”�”}”(hj{íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjwíubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÚhjsíubjì)�”}”(hhh]”(jñ)�”}”(hŒW``struct hmac_sha256_ctx *ctx`` the HMAC context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha256_ctx *ctx``”h]”jý)�”}”(hj˜íh]”hŒstruct hmac_sha256_ctx *ctx”…”�”}”(hjšíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj–íubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M×hj’íubj)�”}”(hhh]”hï)�”}”(hŒ6the HMAC context to update; must have been initialized”h]”hŒ6the HMAC context to update; must have been initialized”…”�”}”(hj±íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j­íh´M×hj®íubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’íubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j­íh´M×hj�íubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjÑíh]”hŒconst u8 *data”…”�”}”(hjÓíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÏíubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MØhjËíubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjêíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jæíh´MØhjçíubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjËíubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jæíh´MØhj�íubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj îh]”hŒsize_t data_len”…”�”}”(hj îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÙhjîubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj#îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jîh´MÙhj îubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jîh´MÙhj�íubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjsíubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjEîh]”hŒ Description”…”�”}”(hjGîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjCîubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÛhjsíubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj[îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÚhjsíubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjlîh]”hŒContext”…”�”}”(hjnîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjjîubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÜhjsíubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj‚îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÝhjsíubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha256_final (C function)”Œc.hmac_sha256_final”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒWvoid hmac_sha256_final (struct hmac_sha256_ctx *ctx, u8 out[static SHA256_DIGEST_SIZE])”h]”j)�”}”(hŒVvoid hmac_sha256_final(struct hmac_sha256_ctx *ctx, u8 out[static SHA256_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj±îh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj­îh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mæubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀîh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj­îh²hh³j¿îh´MæubjD)�”}”(hŒhmac_sha256_final”h]”jJ)�”}”(hŒhmac_sha256_final”h]”hŒhmac_sha256_final”…”�”}”(hjÒîh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÎîubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj­îh²hh³j¿îh´MæubjÊ)�”}”(hŒ@(struct hmac_sha256_ctx *ctx, u8 out[static SHA256_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct hmac_sha256_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjîîh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjêîubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûîh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjêîubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha256_ctx”h]”hŒhmac_sha256_ctx”…”�”}”(hj ïh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ïubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jïŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÔîsbŒc.hmac_sha256_final”†”asbuh1hhjêîubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,ïh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjêîubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj:ïh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjêîubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjGïh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjêîubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjæîubjÐ)�”}”(hŒ!u8 out[static SHA256_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjcïh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj`ïubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jeïŒmodname”NŒ classname”Nj j)�”}”j]”j(ïŒc.hmac_sha256_final”†”asbuh1hhj\ïubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�ïh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj\ïubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj�ïh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj\ïubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj�ïh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj\ïubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjªïh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj\ïubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·ïh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj\ïubh)�”}”(hhh]”jJ)�”}”(hŒSHA256_DIGEST_SIZE”h]”hŒSHA256_DIGEST_SIZE”…”�”}”(hjÈïh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÅïubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÊïŒmodname”NŒ classname”Nj j)�”}”j]”j(ïŒc.hmac_sha256_final”†”asbuh1hhj\ïubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjæïh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj\ïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjæîubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj­îh²hh³j¿îh´Mæubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj©îh²hh³j¿îh´Mæubah}”(h]”j¤îah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j¿îh´Mæhj¦îh²hubjv)�”}”(hhh]”hï)�”}”(hŒ%Finish computing an HMAC-SHA256 value”h]”hŒ%Finish computing an HMAC-SHA256 value”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mæhj ðh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj¦îh²hh³j¿îh´Mæubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j'ðj™j'ðjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX8**Parameters** ``struct hmac_sha256_ctx *ctx`` the HMAC context to finalize; must have been initialized ``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting HMAC-SHA256 value **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj1ðh]”hŒ Parameters”…”�”}”(hj3ðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj/ðubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mêhj+ðubjì)�”}”(hhh]”(jñ)�”}”(hŒY``struct hmac_sha256_ctx *ctx`` the HMAC context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha256_ctx *ctx``”h]”jý)�”}”(hjPðh]”hŒstruct hmac_sha256_ctx *ctx”…”�”}”(hjRðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjNðubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MçhjJðubj)�”}”(hhh]”hï)�”}”(hŒ8the HMAC context to finalize; must have been initialized”h]”hŒ8the HMAC context to finalize; must have been initialized”…”�”}”(hjiðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jeðh´Mçhjfðubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjJðubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jeðh´MçhjGðubjñ)�”}”(hŒO``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting HMAC-SHA256 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA256_DIGEST_SIZE]``”h]”jý)�”}”(hj‰ðh]”hŒ!u8 out[static SHA256_DIGEST_SIZE]”…”�”}”(hj‹ðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj‡ðubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mèhjƒðubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA256 value”h]”hŒ((output) the resulting HMAC-SHA256 value”…”�”}”(hj¢ðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jžðh´MèhjŸðubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒðubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jžðh´MèhjGðubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj+ðubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÄðh]”hŒ Description”…”�”}”(hjÆðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÂðubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mêhj+ðubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjÚðh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjâðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÚðubhŒ(. So the caller does not need to do it.”…”�”}”(hjÚðh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Méhj+ðubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjýðh]”hŒContext”…”�”}”(hjÿðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjûðubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mëhj+ðubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mìhj+ðubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha256 (C function)”Œ c.hmac_sha256”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒxvoid hmac_sha256 (const struct hmac_sha256_key *key, const u8 *data, size_t data_len, u8 out[static SHA256_DIGEST_SIZE])”h]”j)�”}”(hŒwvoid hmac_sha256(const struct hmac_sha256_key *key, const u8 *data, size_t data_len, u8 out[static SHA256_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjBñh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj>ñh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mòubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQñh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj>ñh²hh³jPñh´MòubjD)�”}”(hŒ hmac_sha256”h]”jJ)�”}”(hŒ hmac_sha256”h]”hŒ hmac_sha256”…”�”}”(hjcñh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj_ñubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj>ñh²hh³jPñh´MòubjÊ)�”}”(hŒg(const struct hmac_sha256_key *key, const u8 *data, size_t data_len, u8 out[static SHA256_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒ!const struct hmac_sha256_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj{ñubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒñh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj{ñubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjšñh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj{ñubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§ñh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj{ñubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha256_key”h]”hŒhmac_sha256_key”…”�”}”(hj¸ñh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjµñubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jºñŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jeñsbŒ c.hmac_sha256”†”asbuh1hhj{ñubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØñh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj{ñubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjæñh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj{ñubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjóñh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj{ñubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjwñubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj òh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjòubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjòubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj*òh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj'òubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j,òŒmodname”NŒ classname”Nj j)�”}”j]”jÔñŒ c.hmac_sha256”†”asbuh1hhjòubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHòh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjòubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjVòh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjòubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjcòh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjòubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjwñubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj|òubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j�òŒmodname”NŒ classname”Nj j)�”}”j]”jÔñŒ c.hmac_sha256”†”asbuh1hhjxòubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�òh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjxòubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj«òh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxòubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjwñubjÐ)�”}”(hŒ!u8 out[static SHA256_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÇòh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÄòubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÉòŒmodname”NŒ classname”Nj j)�”}”j]”jÔñŒ c.hmac_sha256”†”asbuh1hhjÀòubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåòh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÀòubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjóòh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÀòubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÀòubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÀòubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÀòubh)�”}”(hhh]”jJ)�”}”(hŒSHA256_DIGEST_SIZE”h]”hŒSHA256_DIGEST_SIZE”…”�”}”(hj,óh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj)óubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j.óŒmodname”NŒ classname”Nj j)�”}”j]”jÔñŒ c.hmac_sha256”†”asbuh1hhjÀòubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjJóh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÀòubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjwñubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj>ñh²hh³jPñh´Mòubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj:ñh²hh³jPñh´Mòubah}”(h]”j5ñah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jPñh´Mòhj7ñh²hubjv)�”}”(hhh]”hï)�”}”(hŒ5Compute HMAC-SHA256 in one shot, using a prepared key”h]”hŒ5Compute HMAC-SHA256 in one shot, using a prepared key”…”�”}”(hjsóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mòhjpóh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj7ñh²hh³jPñh´Mòubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j‹ój™j‹ójš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXp**Parameters** ``const struct hmac_sha256_key *key`` the prepared HMAC key ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting HMAC-SHA256 value **Description** If you're using the key only once, consider using hmac_sha256_usingrawkey(). **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj•óh]”hŒ Parameters”…”�”}”(hj—óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj“óubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Möhj�óubjì)�”}”(hhh]”(jñ)�”}”(hŒ<``const struct hmac_sha256_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha256_key *key``”h]”jý)�”}”(hj´óh]”hŒ!const struct hmac_sha256_key *key”…”�”}”(hj¶óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj²óubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Móhj®óubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjÍóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÉóh´MóhjÊóubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj®óubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÉóh´Móhj«óubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjíóh]”hŒconst u8 *data”…”�”}”(hjïóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjëóubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Môhjçóubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jôh´Môhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjçóubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jôh´Môhj«óubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj&ôh]”hŒsize_t data_len”…”�”}”(hj(ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj$ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mõhj ôubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj?ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j;ôh´Mõhj<ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j;ôh´Mõhj«óubjñ)�”}”(hŒO``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting HMAC-SHA256 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA256_DIGEST_SIZE]``”h]”jý)�”}”(hj_ôh]”hŒ!u8 out[static SHA256_DIGEST_SIZE]”…”�”}”(hjaôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj]ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MöhjYôubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA256 value”h]”hŒ((output) the resulting HMAC-SHA256 value”…”�”}”(hjxôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jtôh´Möhjuôubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jtôh´Möhj«óubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj�óubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjšôh]”hŒ Description”…”�”}”(hjœôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj˜ôubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Møhj�óubhï)�”}”(hŒLIf you're using the key only once, consider using hmac_sha256_usingrawkey().”h]”hŒNIf you’re using the key only once, consider using hmac_sha256_usingrawkey().”…”�”}”(hj°ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M÷hj�óubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÁôh]”hŒContext”…”�”}”(hjÃôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¿ôubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mùhj�óubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj×ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Múhj�óubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha256_usingrawkey (C function)”Œc.hmac_sha256_usingrawkey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒˆvoid hmac_sha256_usingrawkey (const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA256_DIGEST_SIZE])”h]”j)�”}”(hŒ‡void hmac_sha256_usingrawkey(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA256_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjõh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjõh²hh³jõh´MubjD)�”}”(hŒhmac_sha256_usingrawkey”h]”jJ)�”}”(hŒhmac_sha256_usingrawkey”h]”hŒhmac_sha256_usingrawkey”…”�”}”(hj'õh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj#õubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjõh²hh³jõh´MubjÊ)�”}”(hŒk(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA256_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjCõh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj?õubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPõh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj?õubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjaõh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj^õubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jcõŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j)õsbŒc.hmac_sha256_usingrawkey”†”asbuh1hhj?õubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�õh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj?õubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj�õh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj?õubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjœõh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj?õubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj;õubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj¸õh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjµõubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jºõŒmodname”NŒ classname”Nj j)�”}”j]”j}õŒc.hmac_sha256_usingrawkey”†”asbuh1hhj±õubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖõh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj±õubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjäõh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj±õubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj;õubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjýõh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjùõubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj öh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjùõubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjöubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jöŒmodname”NŒ classname”Nj j)�”}”j]”j}õŒc.hmac_sha256_usingrawkey”†”asbuh1hhjùõubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9öh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjùõubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjGöh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjùõubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjTöh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjùõubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj;õubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjpöh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjmöubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jröŒmodname”NŒ classname”Nj j)�”}”j]”j}õŒc.hmac_sha256_usingrawkey”†”asbuh1hhjiöubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽöh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjiöubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjœöh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjiöubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj;õubjÐ)�”}”(hŒ!u8 out[static SHA256_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj¸öh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjµöubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jºöŒmodname”NŒ classname”Nj j)�”}”j]”j}õŒc.hmac_sha256_usingrawkey”†”asbuh1hhj±öubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖöh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj±öubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjäöh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj±öubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjòöh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj±öubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjÿöh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj±öubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ÷h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj±öubh)�”}”(hhh]”jJ)�”}”(hŒSHA256_DIGEST_SIZE”h]”hŒSHA256_DIGEST_SIZE”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj÷ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”•Jj÷Œmodname”NŒ classname”Nj j)�”}”j]”j}õŒc.hmac_sha256_usingrawkey”†”asbuh1hhj±öubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj;÷h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj±öubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj;õubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjõh²hh³jõh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjþôh²hh³jõh´Mubah}”(h]”jùôah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jõh´Mhjûôh²hubjv)�”}”(hhh]”hï)�”}”(hŒ0Compute HMAC-SHA256 in one shot, using a raw key”h]”hŒ0Compute HMAC-SHA256 in one shot, using a raw key”…”�”}”(hjd÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhja÷h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjûôh²hh³jõh´Mubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j|÷j™j|÷jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXì**Parameters** ``const u8 *raw_key`` the raw HMAC-SHA256 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting HMAC-SHA256 value **Description** If you're using the key multiple times, prefer to use hmac_sha256_preparekey() followed by multiple calls to hmac_sha256() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj†÷h]”hŒ Parameters”…”�”}”(hjˆ÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj„÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj€÷ubjì)�”}”(hhh]”(jñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA256 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj¥÷h]”hŒconst u8 *raw_key”…”�”}”(hj§÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj£÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjŸ÷ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA256 key”h]”hŒthe raw HMAC-SHA256 key”…”�”}”(hj¾÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jº÷h´Mhj»÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŸ÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jº÷h´Mhjœ÷ubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjÞ÷h]”hŒsize_t raw_key_len”…”�”}”(hjà÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÜ÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjØ÷ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hj÷÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jó÷h´Mhjô÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjØ÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jó÷h´Mhjœ÷ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjøh]”hŒconst u8 *data”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjøubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj0øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j,øh´Mhj-øubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j,øh´Mhjœ÷ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjPøh]”hŒsize_t data_len”…”�”}”(hjRøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjNøubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjJøubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjiøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jeøh´Mhjføubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjJøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jeøh´Mhjœ÷ubjñ)�”}”(hŒO``u8 out[static SHA256_DIGEST_SIZE]`` (output) the resulting HMAC-SHA256 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA256_DIGEST_SIZE]``”h]”jý)�”}”(hj‰øh]”hŒ!u8 out[static SHA256_DIGEST_SIZE]”…”�”}”(hj‹øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj‡øubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjƒøubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA256 value”h]”hŒ((output) the resulting HMAC-SHA256 value”…”�”}”(hj¢øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jžøh´MhjŸøubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jžøh´Mhjœ÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj€÷ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÄøh]”hŒ Description”…”�”}”(hjÆøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÂøubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj€÷ubhï)�”}”(hŒƒIf you're using the key multiple times, prefer to use hmac_sha256_preparekey() followed by multiple calls to hmac_sha256() instead.”h]”hŒ…If you’re using the key multiple times, prefer to use hmac_sha256_preparekey() followed by multiple calls to hmac_sha256() instead.”…”�”}”(hjÚøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj€÷ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjëøh]”hŒContext”…”�”}”(hjíøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjéøubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj€÷ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj€÷ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha384_ctx (C struct)”Œ c.sha384_ctx”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ sha384_ctx”h]”j)�”}”(hŒstruct sha384_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj0ùh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj,ùh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>ùh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj,ùh²hh³j=ùh´MubjD)�”}”(hŒ sha384_ctx”h]”jJ)�”}”(hj*ùh]”hŒ sha384_ctx”…”�”}”(hjPùh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjLùubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj,ùh²hh³j=ùh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj(ùh²hh³j=ùh´Mubah}”(h]”j#ùah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j=ùh´Mhj%ùh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Context for hashing a message with SHA-384”h]”hŒ*Context for hashing a message with SHA-384”…”�”}”(hjrùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M4hjoùh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj%ùh²hh³j=ùh´Mubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jŠùj™jŠùjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒk**Definition**:: struct sha384_ctx { struct __sha512_ctx ctx; }; **Members** ``ctx`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj–ùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj’ùubhŒ:”…”�”}”(hj’ùh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M8hjŽùubjÃ)�”}”(hŒ3struct sha384_ctx { struct __sha512_ctx ctx; };”h]”hŒ3struct sha384_ctx { struct __sha512_ctx ctx; };”…”�”}”hj¯ùsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M:hjŽùubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjÀùh]”hŒMembers”…”�”}”(hjÂùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¾ùubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M>hjŽùubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hjßùh]”hŒctx”…”�”}”(hjáùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÝùubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M5hjÙùubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjøùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M6hjõùubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÙùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jôùh´M5hjÖùubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjŽùubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha384_init (C function)”Œ c.sha384_init”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ)void sha384_init (struct sha384_ctx *ctx)”h]”j)�”}”(hŒ(void sha384_init(struct sha384_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj9úh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj5úh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M<ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHúh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj5úh²hh³jGúh´M<ubjD)�”}”(hŒ sha384_init”h]”jJ)�”}”(hŒ sha384_init”h]”hŒ sha384_init”…”�”}”(hjZúh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjVúubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj5úh²hh³jGúh´M<ubjÊ)�”}”(hŒ(struct sha384_ctx *ctx)”h]”jÐ)�”}”(hŒstruct sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjvúh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjrúubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒúh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjrúubh)�”}”(hhh]”jJ)�”}”(hŒ sha384_ctx”h]”hŒ sha384_ctx”…”�”}”(hj”úh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‘úubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j–úŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j\úsbŒ c.sha384_init”†”asbuh1hhjrúubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´úh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjrúubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÂúh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjrúubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÏúh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjrúubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjnúubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj5úh²hh³jGúh´M<ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj1úh²hh³jGúh´M<ubah}”(h]”j,úah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jGúh´M<hj.úh²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Initialize a SHA-384 context for a new message”h]”hŒ.Initialize a SHA-384 context for a new message”…”�”}”(hjùúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M<hjöúh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj.úh²hh³jGúh´M<ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jûj™jûjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒ¹**Parameters** ``struct sha384_ctx *ctx`` the context to initialize **Description** If you don't need incremental computation, consider sha384() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjûh]”hŒ Parameters”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M@hjûubjì)�”}”(hhh]”jñ)�”}”(hŒ5``struct sha384_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct sha384_ctx *ctx``”h]”jý)�”}”(hj:ûh]”hŒstruct sha384_ctx *ctx”…”�”}”(hj<ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj8ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M=hj4ûubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hjSûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jOûh´M=hjPûubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj4ûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jOûh´M=hj1ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjûubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjuûh]”hŒ Description”…”�”}”(hjwûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjsûubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M?hjûubhï)�”}”(hŒEIf you don't need incremental computation, consider sha384() instead.”h]”hŒGIf you don’t need incremental computation, consider sha384() instead.”…”�”}”(hj‹ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M>hjûubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjœûh]”hŒContext”…”�”}”(hjžûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjšûubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M@hjûubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj²ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MAhjûubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha384_update (C function)”Œc.sha384_update”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒGvoid sha384_update (struct sha384_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒFvoid sha384_update(struct sha384_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjáûh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÝûh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MFubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjðûh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÝûh²hh³jïûh´MFubjD)�”}”(hŒ sha384_update”h]”jJ)�”}”(hŒ sha384_update”h]”hŒ sha384_update”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjþûubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÝûh²hh³jïûh´MFubjÊ)�”}”(hŒ4(struct sha384_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjüubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjüubh)�”}”(hhh]”jJ)�”}”(hŒ sha384_ctx”h]”hŒ sha384_ctx”…”�”}”(hj<üh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj9üubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j>üŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jüsbŒc.sha384_update”†”asbuh1hhjüubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjüubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjjüh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjüubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjwüh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjüubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjüubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj�üh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjŒüubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŒüubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj®üh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj«üubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j°üŒmodname”NŒ classname”Nj j)�”}”j]”jXüŒc.sha384_update”†”asbuh1hhjŒüubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌüh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŒüubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÚüh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjŒüubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjçüh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŒüubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjüubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjýubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jýŒmodname”NŒ classname”Nj j)�”}”j]”jXüŒc.sha384_update”†”asbuh1hhjüüubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!ýh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjüüubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj/ýh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjüüubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjüubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÝûh²hh³jïûh´MFubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÙûh²hh³jïûh´MFubah}”(h]”jÔûah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jïûh´MFhjÖûh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a SHA-384 context with message data”h]”hŒ*Update a SHA-384 context with message data”…”�”}”(hjYýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MFhjVýh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÖûh²hh³jïûh´MFubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jqýj™jqýjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct sha384_ctx *ctx`` the context to update; must have been initialized ``const u8 *data`` the message data ``size_t len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj{ýh]”hŒ Parameters”…”�”}”(hj}ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjyýubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MJhjuýubjì)�”}”(hhh]”(jñ)�”}”(hŒM``struct sha384_ctx *ctx`` the context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha384_ctx *ctx``”h]”jý)�”}”(hjšýh]”hŒstruct sha384_ctx *ctx”…”�”}”(hjœýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj˜ýubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MGhj”ýubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hj³ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¯ýh´MGhj°ýubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”ýubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¯ýh´MGhj‘ýubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjÓýh]”hŒconst u8 *data”…”�”}”(hjÕýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÑýubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MHhjÍýubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjìýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jèýh´MHhjéýubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍýubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jèýh´MHhj‘ýubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj þh]”hŒ size_t len”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj þubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MIhjþubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj%þh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j!þh´MIhj"þubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j!þh´MIhj‘ýubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjuýubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjGþh]”hŒ Description”…”�”}”(hjIþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjEþubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MKhjuýubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj]þh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MJhjuýubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjnþh]”hŒContext”…”�”}”(hjpþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjlþubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MLhjuýubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj„þh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MMhjuýubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha384_final (C function)”Œc.sha384_final”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒMvoid sha384_final (struct sha384_ctx *ctx, u8 out[static SHA384_DIGEST_SIZE])”h]”j)�”}”(hŒLvoid sha384_final(struct sha384_ctx *ctx, u8 out[static SHA384_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj³þh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj¯þh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MVubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂþh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¯þh²hh³jÁþh´MVubjD)�”}”(hŒ sha384_final”h]”jJ)�”}”(hŒ sha384_final”h]”hŒ sha384_final”…”�”}”(hjÔþh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÐþubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¯þh²hh³jÁþh´MVubjÊ)�”}”(hŒ;(struct sha384_ctx *ctx, u8 out[static SHA384_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjðþh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjìþubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýþh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjìþubh)�”}”(hhh]”jJ)�”}”(hŒ sha384_ctx”h]”hŒ sha384_ctx”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ÿubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÿŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÖþsbŒc.sha384_final”†”asbuh1hhjìþubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.ÿh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjìþubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj<ÿh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjìþubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjIÿh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjìþubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjèþubjÐ)�”}”(hŒ!u8 out[static SHA384_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjeÿh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjbÿubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jgÿŒmodname”NŒ classname”Nj j)�”}”j]”j*ÿŒc.sha384_final”†”asbuh1hhj^ÿubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒÿh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj^ÿubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj‘ÿh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj^ÿubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjŸÿh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj^ÿubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj¬ÿh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj^ÿubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹ÿh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj^ÿubh)�”}”(hhh]”jJ)�”}”(hŒSHA384_DIGEST_SIZE”h]”hŒSHA384_DIGEST_SIZE”…”�”}”(hjÊÿh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÇÿubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÌÿŒmodname”NŒ classname”Nj j)�”}”j]”j*ÿŒc.sha384_final”†”asbuh1hhj^ÿubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjèÿh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj^ÿubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjèþubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj¯þh²hh³jÁþh´MVubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj«þh²hh³jÁþh´MVubah}”(h]”j¦þah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÁþh´MVhj¨þh²hubjv)�”}”(hhh]”hï)�”}”(hŒ)Finish computing a SHA-384 message digest”h]”hŒ)Finish computing a SHA-384 message digest”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MVhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj¨þh²hh³jÁþh´MVubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j)j™j)jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX3**Parameters** ``struct sha384_ctx *ctx`` the context to finalize; must have been initialized ``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting SHA-384 message digest **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj3h]”hŒ Parameters”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MZhj-ubjì)�”}”(hhh]”(jñ)�”}”(hŒO``struct sha384_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha384_ctx *ctx``”h]”jý)�”}”(hjRh]”hŒstruct sha384_ctx *ctx”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MWhjLubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jgh´MWhjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jgh´MWhjIubjñ)�”}”(hŒT``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting SHA-384 message digest ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA384_DIGEST_SIZE]``”h]”jý)�”}”(hj‹h]”hŒ!u8 out[static SHA384_DIGEST_SIZE]”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MXhj…ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-384 message digest”h]”hŒ-(output) the resulting SHA-384 message digest”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´MXhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j h´MXhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj-ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÆh]”hŒ Description”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MZhj-ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjÜh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÜubhŒ(. So the caller does not need to do it.”…”�”}”(hjÜh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MYhj-ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÿh]”hŒContext”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjýubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M[hj-ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M\hj-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha384 (C function)”Œc.sha384”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒKvoid sha384 (const u8 *data, size_t len, u8 out[static SHA384_DIGEST_SIZE])”h]”j)�”}”(hŒJvoid sha384(const u8 *data, size_t len, u8 out[static SHA384_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj@h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Maubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@h²hh³jRh´MaubjD)�”}”(hŒsha384”h]”jJ)�”}”(hŒsha384”h]”hŒsha384”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjaubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj@h²hh³jRh´MaubjÊ)�”}”(hŒ?(const u8 *data, size_t len, u8 out[static SHA384_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj}ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj}ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjœubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¡Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jgsbŒc.sha384”†”asbuh1hhj}ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj}ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj}ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj}ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjyubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjóubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jøŒmodname”NŒ classname”Nj j)�”}”j]”j»Œc.sha384”†”asbuh1hhjïubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjïubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjyubjÐ)�”}”(hŒ!u8 out[static SHA384_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j@Œmodname”NŒ classname”Nj j)�”}”j]”j»Œc.sha384”†”asbuh1hhj7ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj7ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj7ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj7ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj7ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj7ubh)�”}”(hhh]”jJ)�”}”(hŒSHA384_DIGEST_SIZE”h]”hŒSHA384_DIGEST_SIZE”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¥Œmodname”NŒ classname”Nj j)�”}”j]”j»Œc.sha384”†”asbuh1hhj7ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjyubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj@h²hh³jRh´Maubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj<h²hh³jRh´Maubah}”(h]”j7ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jRh´Mahj9h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Compute SHA-384 message digest in one shot”h]”hŒ*Compute SHA-384 message digest in one shot”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mahjçh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj9h²hh³jRh´Maubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jj™jjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒÒ**Parameters** ``const u8 *data`` the message data ``size_t len`` the data length in bytes ``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting SHA-384 message digest **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj h]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mehjubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj+h]”hŒconst u8 *data”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mbhj%ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j@h´MbhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j@h´Mbhj"ubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjdh]”hŒ size_t len”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjbubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mchj^ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jyh´Mchjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jyh´Mchj"ubjñ)�”}”(hŒT``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting SHA-384 message digest ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA384_DIGEST_SIZE]``”h]”jý)�”}”(hj�h]”hŒ!u8 out[static SHA384_DIGEST_SIZE]”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mdhj—ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-384 message digest”h]”hŒ-(output) the resulting SHA-384 message digest”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j²h´Mdhj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j²h´Mdhj"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjØh]”hŒContext”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mfhjubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mfhjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha384_key (C struct)”Œc.hmac_sha384_key”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒhmac_sha384_key”h]”j)�”}”(hŒstruct hmac_sha384_key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mkubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjh²hh³j*h´MkubjD)�”}”(hŒhmac_sha384_key”h]”jJ)�”}”(hjh]”hŒhmac_sha384_key”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj9ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjh²hh³j*h´Mkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjh²hh³j*h´Mkubah}”(h]”jah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j*h´Mkhjh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepared key for HMAC-SHA384”h]”hŒPrepared key for HMAC-SHA384”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mkhj\h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjh²hh³j*h´Mkubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jwj™jwjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒu**Definition**:: struct hmac_sha384_key { struct __hmac_sha512_key key; }; **Members** ``key`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mohj{ubjÃ)�”}”(hŒ=struct hmac_sha384_key { struct __hmac_sha512_key key; };”h]”hŒ=struct hmac_sha384_key { struct __hmac_sha512_key key; };”…”�”}”hjœsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mqhj{ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj­h]”hŒMembers”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Muhj{ubjì)�”}”(hhh]”jñ)�”}”(hŒ``key`` private”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hjÌh]”hŒkey”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MlhjÆubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mmhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jáh´MlhjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj{ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha384_ctx (C struct)”Œc.hmac_sha384_ctx”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒhmac_sha384_ctx”h]”j)�”}”(hŒstruct hmac_sha384_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj"h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Msubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj"h²hh³j3h´MsubjD)�”}”(hŒhmac_sha384_ctx”h]”jJ)�”}”(hj h]”hŒhmac_sha384_ctx”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjBubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj"h²hh³j3h´Msubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjh²hh³j3h´Msubah}”(h]”jah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j3h´Mshjh²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Context for computing HMAC-SHA384 of a message”h]”hŒ.Context for computing HMAC-SHA384 of a message”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mshjeh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjh²hh³j3h´Msubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j€j™j€jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒu**Definition**:: struct hmac_sha384_ctx { struct __hmac_sha512_ctx ctx; }; **Members** ``ctx`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjˆubhŒ:”…”�”}”(hjˆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mwhj„ubjÃ)�”}”(hŒ=struct hmac_sha384_ctx { struct __hmac_sha512_ctx ctx; };”h]”hŒ=struct hmac_sha384_ctx { struct __hmac_sha512_ctx ctx; };”…”�”}”hj¥sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Myhj„ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj¶h]”hŒMembers”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M}hj„ubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hjÕh]”hŒctx”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MthjÏubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Muhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jêh´MthjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj„ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ#hmac_sha384_preparekey (C function)”Œc.hmac_sha384_preparekey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ`void hmac_sha384_preparekey (struct hmac_sha384_key *key, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒ_void hmac_sha384_preparekey(struct hmac_sha384_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj+h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M{ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj+h²hh³j=h´M{ubjD)�”}”(hŒhmac_sha384_preparekey”h]”jJ)�”}”(hŒhmac_sha384_preparekey”h]”hŒhmac_sha384_preparekey”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjLubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj+h²hh³j=h´M{ubjÊ)�”}”(hŒD(struct hmac_sha384_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha384_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjhubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjhubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha384_key”h]”hŒhmac_sha384_key”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jRsbŒc.hmac_sha384_preparekey”†”asbuh1hhjhubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjhubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjhubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjhubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjdubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÚubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjùubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jþŒmodname”NŒ classname”Nj j)�”}”j]”j¦Œc.hmac_sha384_preparekey”†”asbuh1hhjÚubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÚubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÚubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjdubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jSŒmodname”NŒ classname”Nj j)�”}”j]”j¦Œc.hmac_sha384_preparekey”†”asbuh1hhjJubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjdubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj+h²hh³j=h´M{ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj'h²hh³j=h´M{ubah}”(h]”j"ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j=h´M{hj$h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a key for HMAC-SHA384”h]”hŒPrepare a key for HMAC-SHA384”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M{hj¤h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj$h²hh³j=h´M{ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¿j™j¿jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX|**Parameters** ``struct hmac_sha384_key *key`` (output) the key structure to initialize ``const u8 *raw_key`` the raw HMAC-SHA384 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Note** the caller is responsible for zeroizing both the struct hmac_sha384_key and the raw key once they are no longer needed. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÉh]”hŒ Parameters”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjÃubjì)�”}”(hhh]”(jñ)�”}”(hŒI``struct hmac_sha384_key *key`` (output) the key structure to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha384_key *key``”h]”jý)�”}”(hjèh]”hŒstruct hmac_sha384_key *key”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M|hjâubj)�”}”(hhh]”hï)�”}”(hŒ((output) the key structure to initialize”h]”hŒ((output) the key structure to initialize”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jýh´M|hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jýh´M|hjßubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA384 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj!h]”hŒconst u8 *raw_key”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M}hjubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA384 key”h]”hŒthe raw HMAC-SHA384 key”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j6h´M}hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j6h´M}hjßubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjZh]”hŒsize_t raw_key_len”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M~hjTubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³joh´M~hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³joh´M~hjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÃubhï)�”}”(hŒ**Note**”h]”j¨)�”}”(hj•h]”hŒNote”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M€hjÃubhï)�”}”(hŒwthe caller is responsible for zeroizing both the struct hmac_sha384_key and the raw key once they are no longer needed.”h]”hŒwthe caller is responsible for zeroizing both the struct hmac_sha384_key and the raw key once they are no longer needed.”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M€hjÃubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj¼h]”hŒContext”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MƒhjÃubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MƒhjÃubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha384_init (C function)”Œc.hmac_sha384_init”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒVvoid hmac_sha384_init (struct hmac_sha384_ctx *ctx, const struct hmac_sha384_key *key)”h]”j)�”}”(hŒUvoid hmac_sha384_init(struct hmac_sha384_ctx *ctx, const struct hmac_sha384_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjýh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M‰ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjýh²hh³j h´M‰ubjD)�”}”(hŒhmac_sha384_init”h]”jJ)�”}”(hŒhmac_sha384_init”h]”hŒhmac_sha384_init”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjýh²hh³j h´M‰ubjÊ)�”}”(hŒ@(struct hmac_sha384_ctx *ctx, const struct hmac_sha384_key *key)”h]”(jÐ)�”}”(hŒstruct hmac_sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj: ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj: ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha384_ctx”h]”hŒhmac_sha384_ctx”…”�”}”(hj\ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjY ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j^ Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j$ sbŒc.hmac_sha384_init”†”asbuh1hhj: ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj: ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjŠ h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj: ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj: ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj6 ubjÐ)�”}”(hŒ!const struct hmac_sha384_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj° h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¬ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¬ ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjË h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¬ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¬ ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha384_key”h]”hŒhmac_sha384_key”…”�”}”(hjé h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjæ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jë Œmodname”NŒ classname”Nj j)�”}”j]”jx Œc.hmac_sha384_init”†”asbuh1hhj¬ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¬ ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¬ ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¬ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj6 ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjýh²hh³j h´M‰ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjùh²hh³j h´M‰ubah}”(h]”jôah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j h´M‰hjöh²hubjv)�”}”(hhh]”hï)�”}”(hŒ3Initialize an HMAC-SHA384 context for a new message”h]”hŒ3Initialize an HMAC-SHA384 context for a new message”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M‰hjI h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjöh²hh³j h´M‰ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jd j™jd jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha384_ctx *ctx`` (output) the HMAC context to initialize ``const struct hmac_sha384_key *key`` the prepared HMAC key **Description** If you don't need incremental computation, consider hmac_sha384() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjn h]”hŒ Parameters”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjl ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�hjh ubjì)�”}”(hhh]”(jñ)�”}”(hŒH``struct hmac_sha384_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha384_ctx *ctx``”h]”jý)�”}”(hj� h]”hŒstruct hmac_sha384_ctx *ctx”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj‹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MŠhj‡ ubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¢ h´MŠhj£ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¢ h´MŠhj„ ubjñ)�”}”(hŒ<``const struct hmac_sha384_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha384_key *key``”h]”jý)�”}”(hjÆ h]”hŒ!const struct hmac_sha384_key *key”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÄ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M‹hjÀ ubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÛ h´M‹hjÜ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÛ h´M‹hj„ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjh ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj h]”hŒ Description”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�hjh ubhï)�”}”(hŒJIf you don't need incremental computation, consider hmac_sha384() instead.”h]”hŒLIf you don’t need incremental computation, consider hmac_sha384() instead.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MŒhjh ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj( h]”hŒContext”…”�”}”(hj* h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj& ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MŽhjh ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj> h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�hjh ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ)hmac_sha384_init_usingrawkey (C function)”Œc.hmac_sha384_init_usingrawkey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒfvoid hmac_sha384_init_usingrawkey (struct hmac_sha384_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒevoid hmac_sha384_init_usingrawkey(struct hmac_sha384_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hji h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M˜ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hji h²hh³j{ h´M˜ubjD)�”}”(hŒhmac_sha384_init_usingrawkey”h]”jJ)�”}”(hŒhmac_sha384_init_usingrawkey”h]”hŒhmac_sha384_init_usingrawkey”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŠ ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChji h²hh³j{ h´M˜ubjÊ)�”}”(hŒD(struct hmac_sha384_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¦ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¦ ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha384_ctx”h]”hŒhmac_sha384_ctx”…”�”}”(hjÈ h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÅ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÊ Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j� sbŒc.hmac_sha384_init_usingrawkey”†”asbuh1hhj¦ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¦ ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¦ ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¦ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¢ ubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj7 ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j< Œmodname”NŒ classname”Nj j)�”}”j]”jä Œc.hmac_sha384_init_usingrawkey”†”asbuh1hhj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¢ ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŒ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‘ Œmodname”NŒ classname”Nj j)�”}”j]”jä Œc.hmac_sha384_init_usingrawkey”†”asbuh1hhjˆ ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjˆ ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjˆ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¢ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhji h²hh³j{ h´M˜ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihje h²hh³j{ h´M˜ubah}”(h]”j` ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j{ h´M˜hjb h²hubjv)�”}”(hhh]”hï)�”}”(hŒDInitialize an HMAC-SHA384 context for a new message, using a raw key”h]”hŒDInitialize an HMAC-SHA384 context for a new message, using a raw key”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M˜hjâ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjb h²hh³j{ h´M˜ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jý j™jý jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXa**Parameters** ``struct hmac_sha384_ctx *ctx`` (output) the HMAC context to initialize ``const u8 *raw_key`` the raw HMAC-SHA384 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Description** If you don't need incremental computation, consider hmac_sha384_usingrawkey() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mœhj ubjì)�”}”(hhh]”(jñ)�”}”(hŒH``struct hmac_sha384_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha384_ctx *ctx``”h]”jý)�”}”(hj& h]”hŒstruct hmac_sha384_ctx *ctx”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj$ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mšhj ubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j; h´Mšhj< ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j; h´Mšhj ubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA384 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj_ h]”hŒconst u8 *raw_key”…”�”}”(hja h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj] ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M›hjY ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA384 key”h]”hŒthe raw HMAC-SHA384 key”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jt h´M›hju ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjY ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jt h´M›hj ubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”•h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hj˜ h]”hŒsize_t raw_key_len”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mœhj’ ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j­ h´Mœhj® ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j­ h´Mœhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÓ h]”hŒ Description”…”�”}”(hjÕ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÑ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mžhj ubhï)�”}”(hŒVIf you don't need incremental computation, consider hmac_sha384_usingrawkey() instead.”h]”hŒXIf you don’t need incremental computation, consider hmac_sha384_usingrawkey() instead.”…”�”}”(hjé h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�hj ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjú h]”hŒContext”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¡hj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha384_update (C function)”Œc.hmac_sha384_update”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒVvoid hmac_sha384_update (struct hmac_sha384_ctx *ctx, const u8 *data, size_t data_len)”h]”j)�”}”(hŒUvoid hmac_sha384_update(struct hmac_sha384_ctx *ctx, const u8 *data, size_t data_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj;h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M§ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;h²hh³jMh´M§ubjD)�”}”(hŒhmac_sha384_update”h]”jJ)�”}”(hŒhmac_sha384_update”h]”hŒhmac_sha384_update”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj\ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj;h²hh³jMh´M§ubjÊ)�”}”(hŒ>(struct hmac_sha384_ctx *ctx, const u8 *data, size_t data_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjxubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjxubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha384_ctx”h]”hŒhmac_sha384_ctx”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj—ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jœŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jbsbŒc.hmac_sha384_update”†”asbuh1hhjxubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjxubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjxubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjtubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjêubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjêubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j¶Œc.hmac_sha384_update”†”asbuh1hhjêubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjêubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjêubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjêubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjtubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj^ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jcŒmodname”NŒ classname”Nj j)�”}”j]”j¶Œc.hmac_sha384_update”†”asbuh1hhjZubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjZubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjZubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjtubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj;h²hh³jMh´M§ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj7h²hh³jMh´M§ubah}”(h]”j2ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jMh´M§hj4h²hubjv)�”}”(hhh]”hï)�”}”(hŒ/Update an HMAC-SHA384 context with message data”h]”hŒ/Update an HMAC-SHA384 context with message data”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M§hj´h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj4h²hh³jMh´M§ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÏj™jÏjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha384_ctx *ctx`` the HMAC context to update; must have been initialized ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÙh]”hŒ Parameters”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M«hjÓubjì)�”}”(hhh]”(jñ)�”}”(hŒW``struct hmac_sha384_ctx *ctx`` the HMAC context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha384_ctx *ctx``”h]”jý)�”}”(hjøh]”hŒstruct hmac_sha384_ctx *ctx”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjöubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¨hjòubj)�”}”(hhh]”hï)�”}”(hŒ6the HMAC context to update; must have been initialized”h]”hŒ6the HMAC context to update; must have been initialized”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´M¨hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j h´M¨hjïubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj1h]”hŒconst u8 *data”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M©hj+ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jFh´M©hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jFh´M©hjïubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjjh]”hŒsize_t data_len”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mªhjdubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Mªhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjdubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´Mªhjïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÓubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj¥h]”hŒ Description”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¬hjÓubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M«hjÓubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÌh]”hŒContext”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M­hjÓubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M®hjÓubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha384_final (C function)”Œc.hmac_sha384_final”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒWvoid hmac_sha384_final (struct hmac_sha384_ctx *ctx, u8 out[static SHA384_DIGEST_SIZE])”h]”j)�”}”(hŒVvoid hmac_sha384_final(struct hmac_sha384_ctx *ctx, u8 out[static SHA384_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M·ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj h²hh³jh´M·ubjD)�”}”(hŒhmac_sha384_final”h]”jJ)�”}”(hŒhmac_sha384_final”h]”hŒhmac_sha384_final”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj.ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj h²hh³jh´M·ubjÊ)�”}”(hŒ@(struct hmac_sha384_ctx *ctx, u8 out[static SHA384_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct hmac_sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjJubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha384_ctx”h]”hŒhmac_sha384_ctx”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjiubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jnŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j4sbŒc.hmac_sha384_final”†”asbuh1hhjJubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjJubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjFubjÐ)�”}”(hŒ!u8 out[static SHA384_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÀubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÅŒmodname”NŒ classname”Nj j)�”}”j]”jˆŒc.hmac_sha384_final”†”asbuh1hhj¼ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¼ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¼ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¼ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¼ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¼ubh)�”}”(hhh]”jJ)�”}”(hŒSHA384_DIGEST_SIZE”h]”hŒSHA384_DIGEST_SIZE”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j*Œmodname”NŒ classname”Nj j)�”}”j]”jˆŒc.hmac_sha384_final”†”asbuh1hhj¼ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¼ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjFubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj h²hh³jh´M·ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj h²hh³jh´M·ubah}”(h]”jah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jh´M·hjh²hubjv)�”}”(hhh]”hï)�”}”(hŒ%Finish computing an HMAC-SHA384 value”h]”hŒ%Finish computing an HMAC-SHA384 value”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M·hjlh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjh²hh³jh´M·ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j‡j™j‡jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX8**Parameters** ``struct hmac_sha384_ctx *ctx`` the HMAC context to finalize; must have been initialized ``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting HMAC-SHA384 value **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj‘h]”hŒ Parameters”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M»hj‹ubjì)�”}”(hhh]”(jñ)�”}”(hŒY``struct hmac_sha384_ctx *ctx`` the HMAC context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha384_ctx *ctx``”h]”jý)�”}”(hj°h]”hŒstruct hmac_sha384_ctx *ctx”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¸hjªubj)�”}”(hhh]”hï)�”}”(hŒ8the HMAC context to finalize; must have been initialized”h]”hŒ8the HMAC context to finalize; must have been initialized”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÅh´M¸hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÅh´M¸hj§ubjñ)�”}”(hŒO``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting HMAC-SHA384 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA384_DIGEST_SIZE]``”h]”jý)�”}”(hjéh]”hŒ!u8 out[static SHA384_DIGEST_SIZE]”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¹hjãubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA384 value”h]”hŒ((output) the resulting HMAC-SHA384 value”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jþh´M¹hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjãubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jþh´M¹hj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj‹ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj$h]”hŒ Description”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M»hj‹ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj:h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj:ubhŒ(. So the caller does not need to do it.”…”�”}”(hj:h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mºhj‹ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj]h]”hŒContext”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¼hj‹ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M½hj‹ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha384 (C function)”Œ c.hmac_sha384”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒxvoid hmac_sha384 (const struct hmac_sha384_key *key, const u8 *data, size_t data_len, u8 out[static SHA384_DIGEST_SIZE])”h]”j)�”}”(hŒwvoid hmac_sha384(const struct hmac_sha384_key *key, const u8 *data, size_t data_len, u8 out[static SHA384_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjžh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÃubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjžh²hh³j°h´MÃubjD)�”}”(hŒ hmac_sha384”h]”jJ)�”}”(hŒ hmac_sha384”h]”hŒ hmac_sha384”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¿ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjžh²hh³j°h´MÃubjÊ)�”}”(hŒg(const struct hmac_sha384_key *key, const u8 *data, size_t data_len, u8 out[static SHA384_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒ!const struct hmac_sha384_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha384_key”h]”hŒhmac_sha384_key”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÅsbŒ c.hmac_sha384”†”asbuh1hhjÛubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÛubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÛubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj×ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjhubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjhubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒŒmodname”NŒ classname”Nj j)�”}”j]”j4Œ c.hmac_sha384”†”asbuh1hhjhubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjhubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjhubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjhubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj×ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jáŒmodname”NŒ classname”Nj j)�”}”j]”j4Œ c.hmac_sha384”†”asbuh1hhjØubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjØubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj×ubjÐ)�”}”(hŒ!u8 out[static SHA384_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j)Œmodname”NŒ classname”Nj j)�”}”j]”j4Œ c.hmac_sha384”†”asbuh1hhj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ubh)�”}”(hhh]”jJ)�”}”(hŒSHA384_DIGEST_SIZE”h]”hŒSHA384_DIGEST_SIZE”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj‰ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŽŒmodname”NŒ classname”Nj j)�”}”j]”j4Œ c.hmac_sha384”†”asbuh1hhj ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj×ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjžh²hh³j°h´MÃubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjšh²hh³j°h´MÃubah}”(h]”j•ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j°h´MÃhj—h²hubjv)�”}”(hhh]”hï)�”}”(hŒ5Compute HMAC-SHA384 in one shot, using a prepared key”h]”hŒ5Compute HMAC-SHA384 in one shot, using a prepared key”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÃhjÐh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj—h²hh³j°h´MÃubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jëj™jëjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXp**Parameters** ``const struct hmac_sha384_key *key`` the prepared HMAC key ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting HMAC-SHA384 value **Description** If you're using the key only once, consider using hmac_sha384_usingrawkey(). **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjõh]”hŒ Parameters”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjóubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÇhjïubjì)�”}”(hhh]”(jñ)�”}”(hŒ<``const struct hmac_sha384_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha384_key *key``”h]”jý)�”}”(hjh]”hŒ!const struct hmac_sha384_key *key”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÄhjubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j)h´MÄhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j)h´MÄhj ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjMh]”hŒconst u8 *data”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÅhjGubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jbh´MÅhjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jbh´MÅhj ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj†h]”hŒsize_t data_len”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÆhj€ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j›h´MÆhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j›h´MÆhj ubjñ)�”}”(hŒO``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting HMAC-SHA384 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA384_DIGEST_SIZE]``”h]”jý)�”}”(hj¿h]”hŒ!u8 out[static SHA384_DIGEST_SIZE]”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÇhj¹ubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA384 value”h]”hŒ((output) the resulting HMAC-SHA384 value”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÔh´MÇhjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÔh´MÇhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjïubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjúh]”hŒ Description”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÉhjïubhï)�”}”(hŒLIf you're using the key only once, consider using hmac_sha384_usingrawkey().”h]”hŒNIf you’re using the key only once, consider using hmac_sha384_usingrawkey().”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÈhjïubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj!h]”hŒContext”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÊhjïubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MËhjïubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha384_usingrawkey (C function)”Œc.hmac_sha384_usingrawkey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒˆvoid hmac_sha384_usingrawkey (const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA384_DIGEST_SIZE])”h]”j)�”}”(hŒ‡void hmac_sha384_usingrawkey(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA384_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjbh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjbh²hh³jth´MÒubjD)�”}”(hŒhmac_sha384_usingrawkey”h]”jJ)�”}”(hŒhmac_sha384_usingrawkey”h]”hŒhmac_sha384_usingrawkey”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjƒubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjbh²hh³jth´MÒubjÊ)�”}”(hŒk(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA384_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjŸubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŸubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¾ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÃŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j‰sbŒc.hmac_sha384_usingrawkey”†”asbuh1hhjŸubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŸubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjŸubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŸubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj›ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”jÝŒc.hmac_sha384_usingrawkey”†”asbuh1hhjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj›ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjYubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjYubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j}Œmodname”NŒ classname”Nj j)�”}”j]”jÝŒc.hmac_sha384_usingrawkey”†”asbuh1hhjYubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjYubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjYubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj›ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÍubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÒŒmodname”NŒ classname”Nj j)�”}”j]”jÝŒc.hmac_sha384_usingrawkey”†”asbuh1hhjÉubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÉubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÉubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj›ubjÐ)�”}”(hŒ!u8 out[static SHA384_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”jÝŒc.hmac_sha384_usingrawkey”†”asbuh1hhjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubh)�”}”(hhh]”jJ)�”}”(hŒSHA384_DIGEST_SIZE”h]”hŒSHA384_DIGEST_SIZE”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjzubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”jÝŒc.hmac_sha384_usingrawkey”†”asbuh1hhjubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj›ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjbh²hh³jth´MÒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj^h²hh³jth´MÒubah}”(h]”jYah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jth´MÒhj[h²hubjv)�”}”(hhh]”hï)�”}”(hŒ0Compute HMAC-SHA384 in one shot, using a raw key”h]”hŒ0Compute HMAC-SHA384 in one shot, using a raw key”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÒhjÁh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj[h²hh³jth´MÒubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÜj™jÜjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXì**Parameters** ``const u8 *raw_key`` the raw HMAC-SHA384 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting HMAC-SHA384 value **Description** If you're using the key multiple times, prefer to use hmac_sha384_preparekey() followed by multiple calls to hmac_sha384() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjæh]”hŒ Parameters”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÖhjàubjì)�”}”(hhh]”(jñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA384 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjh]”hŒconst u8 *raw_key”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÓhjÿubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA384 key”h]”hŒthe raw HMAC-SHA384 key”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´MÓhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´MÓhjüubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hj>h]”hŒsize_t raw_key_len”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÔhj8ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jSh´MÔhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jSh´MÔhjüubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjwh]”hŒconst u8 *data”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÕhjqubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŒh´MÕhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŒh´MÕhjüubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj°h]”hŒsize_t data_len”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÖhjªubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÅh´MÖhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÅh´MÖhjüubjñ)�”}”(hŒO``u8 out[static SHA384_DIGEST_SIZE]`` (output) the resulting HMAC-SHA384 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA384_DIGEST_SIZE]``”h]”jý)�”}”(hjéh]”hŒ!u8 out[static SHA384_DIGEST_SIZE]”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M×hjãubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA384 value”h]”hŒ((output) the resulting HMAC-SHA384 value”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jþh´M×hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjãubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jþh´M×hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjàubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj$h]”hŒ Description”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÙhjàubhï)�”}”(hŒƒIf you're using the key multiple times, prefer to use hmac_sha384_preparekey() followed by multiple calls to hmac_sha384() instead.”h]”hŒ…If you’re using the key multiple times, prefer to use hmac_sha384_preparekey() followed by multiple calls to hmac_sha384() instead.”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MØhjàubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjKh]”hŒContext”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÛhjàubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÜhjàubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha512_ctx (C struct)”Œ c.sha512_ctx”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ sha512_ctx”h]”j)�”}”(hŒstruct sha512_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjŒh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Máubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŒh²hh³j�h´MáubjD)�”}”(hŒ sha512_ctx”h]”jJ)�”}”(hjŠh]”hŒ sha512_ctx”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¬ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjŒh²hh³j�h´Máubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjˆh²hh³j�h´Máubah}”(h]”jƒah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j�h´Máhj…h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Context for hashing a message with SHA-512”h]”hŒ*Context for hashing a message with SHA-512”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MãhjÏh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj…h²hh³j�h´Máubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jêj™jêjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒk**Definition**:: struct sha512_ctx { struct __sha512_ctx ctx; }; **Members** ``ctx`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjòubhŒ:”…”�”}”(hjòh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MçhjîubjÃ)�”}”(hŒ3struct sha512_ctx { struct __sha512_ctx ctx; };”h]”hŒ3struct sha512_ctx { struct __sha512_ctx ctx; };”…”�”}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Méhjîubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj h]”hŒMembers”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Míhjîubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hj?h]”hŒctx”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mähj9ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MåhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jTh´Mähj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjîubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha512_init (C function)”Œ c.sha512_init”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ)void sha512_init (struct sha512_ctx *ctx)”h]”j)�”}”(hŒ(void sha512_init(struct sha512_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj•h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mëubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj•h²hh³j§h´MëubjD)�”}”(hŒ sha512_init”h]”jJ)�”}”(hŒ sha512_init”h]”hŒ sha512_init”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¶ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj•h²hh³j§h´MëubjÊ)�”}”(hŒ(struct sha512_ctx *ctx)”h]”jÐ)�”}”(hŒstruct sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÒubh)�”}”(hhh]”jJ)�”}”(hŒ sha512_ctx”h]”hŒ sha512_ctx”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjñubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jöŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j¼sbŒ c.sha512_init”†”asbuh1hhjÒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÒubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÒubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÎubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj•h²hh³j§h´Mëubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj‘h²hh³j§h´Mëubah}”(h]”jŒah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j§h´MëhjŽh²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Initialize a SHA-512 context for a new message”h]”hŒ.Initialize a SHA-512 context for a new message”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MëhjVh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjŽh²hh³j§h´Mëubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jqj™jqjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒ¹**Parameters** ``struct sha512_ctx *ctx`` the context to initialize **Description** If you don't need incremental computation, consider sha512() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj{h]”hŒ Parameters”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mïhjuubjì)�”}”(hhh]”jñ)�”}”(hŒ5``struct sha512_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct sha512_ctx *ctx``”h]”jý)�”}”(hjšh]”hŒstruct sha512_ctx *ctx”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mìhj”ubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¯h´Mìhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¯h´Mìhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjuubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÕh]”hŒ Description”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mîhjuubhï)�”}”(hŒEIf you don't need incremental computation, consider sha512() instead.”h]”hŒGIf you don’t need incremental computation, consider sha512() instead.”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Míhjuubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjüh]”hŒContext”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mïhjuubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mðhjuubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha512_update (C function)”Œc.sha512_update”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒGvoid sha512_update (struct sha512_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒFvoid sha512_update(struct sha512_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj=h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mõubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj=h²hh³jOh´MõubjD)�”}”(hŒ sha512_update”h]”jJ)�”}”(hŒ sha512_update”h]”hŒ sha512_update”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj^ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj=h²hh³jOh´MõubjÊ)�”}”(hŒ4(struct sha512_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjzubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjzubh)�”}”(hhh]”jJ)�”}”(hŒ sha512_ctx”h]”hŒ sha512_ctx”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj™ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jžŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jdsbŒc.sha512_update”†”asbuh1hhjzubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjzubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjzubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjzubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjvubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjìubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjìubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŒmodname”NŒ classname”Nj j)�”}”j]”j¸Œc.sha512_update”†”asbuh1hhjìubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjìubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjìubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjvubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj`ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jeŒmodname”NŒ classname”Nj j)�”}”j]”j¸Œc.sha512_update”†”asbuh1hhj\ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj\ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj\ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjvubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj=h²hh³jOh´Mõubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj9h²hh³jOh´Mõubah}”(h]”j4ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jOh´Mõhj6h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a SHA-512 context with message data”h]”hŒ*Update a SHA-512 context with message data”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mõhj¶h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj6h²hh³jOh´Mõubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÑj™jÑjš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct sha512_ctx *ctx`` the context to update; must have been initialized ``const u8 *data`` the message data ``size_t len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÛh]”hŒ Parameters”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MùhjÕubjì)�”}”(hhh]”(jñ)�”}”(hŒM``struct sha512_ctx *ctx`` the context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha512_ctx *ctx``”h]”jý)�”}”(hjúh]”hŒstruct sha512_ctx *ctx”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Möhjôubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´Möhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j h´Möhjñubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj3 h]”hŒconst u8 *data”…”�”}”(hj5 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj1 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M÷hj- ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjL h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jH h´M÷hjI ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj- ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jH h´M÷hjñubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjl h]”hŒ size_t len”…”�”}”(hjn h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Møhjf ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j� h´Møhj‚ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjf ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j� h´Møhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÕubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj§ h]”hŒ Description”…”�”}”(hj© h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¥ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MúhjÕubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MùhjÕubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÎ h]”hŒContext”…”�”}”(hjÐ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÌ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MûhjÕubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MühjÕubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha512_final (C function)”Œc.sha512_final”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒMvoid sha512_final (struct sha512_ctx *ctx, u8 out[static SHA512_DIGEST_SIZE])”h]”j)�”}”(hŒLvoid sha512_final(struct sha512_ctx *ctx, u8 out[static SHA512_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj!h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj!h²hh³j!!h´MubjD)�”}”(hŒ sha512_final”h]”jJ)�”}”(hŒ sha512_final”h]”hŒ sha512_final”…”�”}”(hj4!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj0!ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj!h²hh³j!!h´MubjÊ)�”}”(hŒ;(struct sha512_ctx *ctx, u8 out[static SHA512_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjP!h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjL!ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjL!ubh)�”}”(hhh]”jJ)�”}”(hŒ sha512_ctx”h]”hŒ sha512_ctx”…”�”}”(hjn!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjk!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jp!Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j6!sbŒc.sha512_final”†”asbuh1hhjL!ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽ!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjL!ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjœ!h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjL!ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj©!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjL!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjH!ubjÐ)�”}”(hŒ!u8 out[static SHA512_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÅ!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÂ!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÇ!Œmodname”NŒ classname”Nj j)�”}”j]”jŠ!Œc.sha512_final”†”asbuh1hhj¾!ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjã!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¾!ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjñ!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¾!ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjÿ!h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¾!ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj "h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¾!ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¾!ubh)�”}”(hhh]”jJ)�”}”(hŒSHA512_DIGEST_SIZE”h]”hŒSHA512_DIGEST_SIZE”…”�”}”(hj*"h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj'"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j,"Œmodname”NŒ classname”Nj j)�”}”j]”jŠ!Œc.sha512_final”†”asbuh1hhj¾!ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjH"h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¾!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjH!ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj!h²hh³j!!h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj !h²hh³j!!h´Mubah}”(h]”j!ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j!!h´Mhj!h²hubjv)�”}”(hhh]”hï)�”}”(hŒ)Finish computing a SHA-512 message digest”h]”hŒ)Finish computing a SHA-512 message digest”…”�”}”(hjq"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjn"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj!h²hh³j!!h´Mubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j‰"j™j‰"jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX3**Parameters** ``struct sha512_ctx *ctx`` the context to finalize; must have been initialized ``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting SHA-512 message digest **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj“"h]”hŒ Parameters”…”�”}”(hj•"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‘"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj�"ubjì)�”}”(hhh]”(jñ)�”}”(hŒO``struct sha512_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha512_ctx *ctx``”h]”jý)�”}”(hj²"h]”hŒstruct sha512_ctx *ctx”…”�”}”(hj´"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj°"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj¬"ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjË"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÇ"h´MhjÈ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÇ"h´Mhj©"ubjñ)�”}”(hŒT``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting SHA-512 message digest ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA512_DIGEST_SIZE]``”h]”jý)�”}”(hjë"h]”hŒ!u8 out[static SHA512_DIGEST_SIZE]”…”�”}”(hjí"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjé"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjå"ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-512 message digest”h]”hŒ-(output) the resulting SHA-512 message digest”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j#h´Mhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjå"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j#h´Mhj©"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj�"ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj&#h]”hŒ Description”…”�”}”(hj(#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj$#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj�"ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj<#h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjD#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj<#ubhŒ(. So the caller does not need to do it.”…”�”}”(hj<#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj�"ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj_#h]”hŒContext”…”�”}”(hja#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj]#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj�"ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hju#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hj�"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsha512 (C function)”Œc.sha512”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒKvoid sha512 (const u8 *data, size_t len, u8 out[static SHA512_DIGEST_SIZE])”h]”j)�”}”(hŒJvoid sha512(const u8 *data, size_t len, u8 out[static SHA512_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¤#h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj #h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³#h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj #h²hh³j²#h´MubjD)�”}”(hŒsha512”h]”jJ)�”}”(hŒsha512”h]”hŒsha512”…”�”}”(hjÅ#h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÁ#ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj #h²hh³j²#h´MubjÊ)�”}”(hŒ?(const u8 *data, size_t len, u8 out[static SHA512_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjá#h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÝ#ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjî#h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÝ#ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÿ#h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjü#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j$Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÇ#sbŒc.sha512”†”asbuh1hhjÝ#ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÝ#ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj-$h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÝ#ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj:$h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÝ#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÙ#ubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjV$h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjS$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jX$Œmodname”NŒ classname”Nj j)�”}”j]”j$Œc.sha512”†”asbuh1hhjO$ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt$h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjO$ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj‚$h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjO$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÙ#ubjÐ)�”}”(hŒ!u8 out[static SHA512_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjž$h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj›$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j $Œmodname”NŒ classname”Nj j)�”}”j]”j$Œc.sha512”†”asbuh1hhj—$ub•j3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼$h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj—$ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjÊ$h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj—$ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjØ$h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj—$ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjå$h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj—$ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò$h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj—$ubh)�”}”(hhh]”jJ)�”}”(hŒSHA512_DIGEST_SIZE”h]”hŒSHA512_DIGEST_SIZE”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j%Œmodname”NŒ classname”Nj j)�”}”j]”j$Œc.sha512”†”asbuh1hhj—$ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj!%h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj—$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÙ#ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj #h²hh³j²#h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjœ#h²hh³j²#h´Mubah}”(h]”j—#ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j²#h´Mhj™#h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Compute SHA-512 message digest in one shot”h]”hŒ*Compute SHA-512 message digest in one shot”…”�”}”(hjJ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjG%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj™#h²hh³j²#h´Mubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jb%j™jb%jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒÒ**Parameters** ``const u8 *data`` the message data ``size_t len`` the data length in bytes ``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting SHA-512 message digest **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjl%h]”hŒ Parameters”…”�”}”(hjn%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjf%ubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj‹%h]”hŒconst u8 *data”…”�”}”(hj�%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj‰%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj…%ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj¤%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j %h´Mhj¡%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j %h´Mhj‚%ubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjÄ%h]”hŒ size_t len”…”�”}”(hjÆ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÂ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj¾%ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjÝ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÙ%h´MhjÚ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¾%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÙ%h´Mhj‚%ubjñ)�”}”(hŒT``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting SHA-512 message digest ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA512_DIGEST_SIZE]``”h]”jý)�”}”(hjý%h]”hŒ!u8 out[static SHA512_DIGEST_SIZE]”…”�”}”(hjÿ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjû%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj÷%ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-512 message digest”h]”hŒ-(output) the resulting SHA-512 message digest”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j&h´Mhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j&h´Mhj‚%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjf%ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj8&h]”hŒContext”…”�”}”(hj:&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj6&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjf%ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjN&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjf%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha512_key (C struct)”Œc.hmac_sha512_key”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒhmac_sha512_key”h]”j)�”}”(hŒstruct hmac_sha512_key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj}&h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjy&h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹&h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjy&h²hh³jŠ&h´MubjD)�”}”(hŒhmac_sha512_key”h]”jJ)�”}”(hjw&h]”hŒhmac_sha512_key”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj™&ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjy&h²hh³jŠ&h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihju&h²hh³jŠ&h´Mubah}”(h]”jp&ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jŠ&h´Mhjr&h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepared key for HMAC-SHA512”h]”hŒPrepared key for HMAC-SHA512”…”�”}”(hj¿&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj¼&h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjr&h²hh³jŠ&h´Mubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j×&j™j×&jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒu**Definition**:: struct hmac_sha512_key { struct __hmac_sha512_key key; }; **Members** ``key`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjã&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjß&ubhŒ:”…”�”}”(hjß&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjÛ&ubjÃ)�”}”(hŒ=struct hmac_sha512_key { struct __hmac_sha512_key key; };”h]”hŒ=struct hmac_sha512_key { struct __hmac_sha512_key key; };”…”�”}”hjü&sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hjÛ&ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj 'h]”hŒMembers”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj 'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M$hjÛ&ubjì)�”}”(hhh]”jñ)�”}”(hŒ``key`` private”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hj,'h]”hŒkey”…”�”}”(hj.'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj*'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhj&'ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjE'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjB'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj&'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jA'h´Mhj#'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÛ&ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha512_ctx (C struct)”Œc.hmac_sha512_ctx”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒhmac_sha512_ctx”h]”j)�”}”(hŒstruct hmac_sha512_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj†'h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj‚'h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M"ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”'h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‚'h²hh³j“'h´M"ubjD)�”}”(hŒhmac_sha512_ctx”h]”jJ)�”}”(hj€'h]”hŒhmac_sha512_ctx”…”�”}”(hj¦'h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¢'ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj‚'h²hh³j“'h´M"ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj~'h²hh³j“'h´M"ubah}”(h]”jy'ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j“'h´M"hj{'h²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Context for computing HMAC-SHA512 of a message”h]”hŒ.Context for computing HMAC-SHA512 of a message”…”�”}”(hjÈ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M"hjÅ'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj{'h²hh³j“'h´M"ubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jà'j™jà'jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hŒu**Definition**:: struct hmac_sha512_ctx { struct __hmac_sha512_ctx ctx; }; **Members** ``ctx`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjì'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjè'ubhŒ:”…”�”}”(hjè'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M&hjä'ubjÃ)�”}”(hŒ=struct hmac_sha512_ctx { struct __hmac_sha512_ctx ctx; };”h]”hŒ=struct hmac_sha512_ctx { struct __hmac_sha512_ctx ctx; };”…”�”}”hj(sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M(hjä'ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj(h]”hŒMembers”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M,hjä'ubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hj5(h]”hŒctx”…”�”}”(hj7(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj3(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M#hj/(ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjN(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M$hjK(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj/(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jJ(h´M#hj,(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjä'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ#hmac_sha512_preparekey (C function)”Œc.hmac_sha512_preparekey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ`void hmac_sha512_preparekey (struct hmac_sha512_key *key, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒ_void hmac_sha512_preparekey(struct hmac_sha512_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj‹(h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M*ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjž(h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‹(h²hh³j�(h´M*ubjD)�”}”(hŒhmac_sha512_preparekey”h]”jJ)�”}”(hŒhmac_sha512_preparekey”h]”hŒhmac_sha512_preparekey”…”�”}”(hj°(h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¬(ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj‹(h²hh³j�(h´M*ubjÊ)�”}”(hŒD(struct hmac_sha512_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha512_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÌ(h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÈ(ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ(h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÈ(ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_key”h]”hŒhmac_sha512_key”…”�”}”(hjê(h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjç(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jì(Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j²(sbŒc.hmac_sha512_preparekey”†”asbuh1hhjÈ(ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj )h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÈ(ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÈ(ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj%)h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÈ(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÄ(ubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj>)h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj:)ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK)h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj:)ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj\)h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjY)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j^)Œmodname”NŒ classname”Nj j)�”}”j]”j)Œc.hmac_sha512_preparekey”†”asbuh1hhj:)ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz)h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj:)ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjˆ)h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj:)ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj•)h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj:)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÄ(ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj±)h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj®)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j³)Œmodname”NŒ classname”Nj j)�”}”j]”j)Œc.hmac_sha512_preparekey”†”asbuh1hhjª)ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏ)h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjª)ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjÝ)h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjª)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÄ(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj‹(h²hh³j�(h´M*ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj‡(h²hh³j�(h´M*ubah}”(h]”j‚(ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j�(h´M*hj„(h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a key for HMAC-SHA512”h]”hŒPrepare a key for HMAC-SHA512”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M*hj*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj„(h²hh³j�(h´M*ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j*j™j*jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX|**Parameters** ``struct hmac_sha512_key *key`` (output) the key structure to initialize ``const u8 *raw_key`` the raw HMAC-SHA512 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Note** the caller is responsible for zeroizing both the struct hmac_sha512_key and the raw key once they are no longer needed. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj)*h]”hŒ Parameters”…”�”}”(hj+*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj'*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M.hj#*ubjì)�”}”(hhh]”(jñ)�”}”(hŒI``struct hmac_sha512_key *key`` (output) the key structure to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha512_key *key``”h]”jý)�”}”(hjH*h]”hŒstruct hmac_sha512_key *key”…”�”}”(hjJ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjF*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M+hjB*ubj)�”}”(hhh]”hï)�”}”(hŒ((output) the key structure to initialize”h]”hŒ((output) the key structure to initialize”…”�”}”(hja*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j]*h´M+hj^*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjB*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j]*h´M+hj?*ubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA512 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj�*h]”hŒconst u8 *raw_key”…”�”}”(hjƒ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M,hj{*ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA512 key”h]”hŒthe raw HMAC-SHA512 key”…”�”}”(hjš*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j–*h´M,hj—*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj{*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j–*h´M,hj?*ubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjº*h]”hŒsize_t raw_key_len”…”�”}”(hj¼*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj¸*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M-hj´*ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hjÓ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÏ*h´M-hjÐ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj´*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÏ*h´M-hj?*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj#*ubhï)�”}”(hŒ**Note**”h]”j¨)�”}”(hjõ*h]”hŒNote”…”�”}”(hj÷*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjó*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M/hj#*ubhï)�”}”(hŒwthe caller is responsible for zeroizing both the struct hmac_sha512_key and the raw key once they are no longer needed.”h]”hŒwthe caller is responsible for zeroizing both the struct hmac_sha512_key and the raw key once they are no longer needed.”…”�”}”(hj +h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M/hj#*ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj+h]”hŒContext”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M2hj#*ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj2+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M2hj#*ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha512_init (C function)”Œc.hmac_sha512_init”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒVvoid hmac_sha512_init (struct hmac_sha512_ctx *ctx, const struct hmac_sha512_key *key)”h]”j)�”}”(hŒUvoid hmac_sha512_init(struct hmac_sha512_ctx *ctx, const struct hmac_sha512_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hja+h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj]+h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M8ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj]+h²hh³jo+h´M8ubjD)�”}”(hŒhmac_sha512_init”h]”jJ)�”}”(hŒhmac_sha512_init”h]”hŒhmac_sha512_init”…”�”}”(hj‚+h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj~+ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj]+h²hh³jo+h´M8ubjÊ)�”}”(hŒ@(struct hmac_sha512_ctx *ctx, const struct hmac_sha512_key *key)”h]”(jÐ)�”}”(hŒstruct hmac_sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjž+h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjš+ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjš+ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_ctx”h]”hŒhmac_sha512_ctx”…”�”}”(hj¼+h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¹+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¾+Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j„+sbŒc.hmac_sha512_init”†”asbuh1hhjš+ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjš+ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjê+h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjš+ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj÷+h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjš+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj–+ubjÐ)�”}”(hŒ!const struct hmac_sha512_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj ,ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ,ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj+,h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj ,ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8,h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ,ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_key”h]”hŒhmac_sha512_key”…”�”}”(hjI,h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjF,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jK,Œmodname”NŒ classname”Nj j)�”}”j]”jØ+Œc.hmac_sha512_init”†”asbuh1hhj ,ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg,h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ,ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hju,h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj ,ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj‚,h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj–+ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj]+h²hh³jo+h´M8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjY+h²hh³jo+h´M8ubah}”(h]”jT+ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jo+h´M8hjV+h²hubjv)�”}”(hhh]”hï)�”}”(hŒ3Initialize an HMAC-SHA512 context for a new message”h]”hŒ3Initialize an HMAC-SHA512 context for a new message”…”�”}”(hj¬,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M8hj©,h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjV+h²hh³jo+h´M8ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÄ,j™jÄ,jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha512_ctx *ctx`` (output) the HMAC context to initialize ``const struct hmac_sha512_key *key`` the prepared HMAC key **Description** If you don't need incremental computation, consider hmac_sha512() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÎ,h]”hŒ Parameters”…”�”}”(hjÐ,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÌ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M<hjÈ,ubjì)�”}”(hhh]”(jñ)�”}”(hŒH``struct hmac_sha512_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha512_ctx *ctx``”h]”jý)�”}”(hjí,h]”hŒstruct hmac_sha512_ctx *ctx”…”�”}”(hjï,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjë,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M9hjç,ubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j-h´M9hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjç,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j-h´M9hjä,ubjñ)�”}”(hŒ<``const struct hmac_sha512_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha512_key *key``”h]”jý)�”}”(hj&-h]”hŒ!const struct hmac_sha512_key *key”…”�”}”(hj(-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj$-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M:hj -ubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hj?-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j;-h´M:hj<-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj -ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j;-h´M:hjä,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÈ,ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hja-h]”hŒ Description”…”�”}”(hjc-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj_-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M<hjÈ,ubhï)�”}”(hŒJIf you don't need incremental computation, consider hmac_sha512() instead.”h]”hŒLIf you don’t need incremental computation, consider hmac_sha512() instead.”…”�”}”(hjw-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M;hjÈ,ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjˆ-h]”hŒContext”…”�”}”(hjŠ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj†-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M=hjÈ,ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjž-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M>hjÈ,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ)hmac_sha512_init_usingrawkey (C function)”Œc.hmac_sha512_init_usingrawkey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒfvoid hmac_sha512_init_usingrawkey (struct hmac_sha512_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒevoid hmac_sha512_init_usingrawkey(struct hmac_sha512_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÍ-h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÉ-h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MGubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ-h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÉ-h²hh³jÛ-h´MGubjD)�”}”(hŒhmac_sha512_init_usingrawkey”h]”jJ)�”}”(hŒhmac_sha512_init_usingrawkey”h]”hŒhmac_sha512_init_usingrawkey”…”�”}”(hjî-h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjê-ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÉ-h²hh³jÛ-h´MGubjÊ)�”}”(hŒD(struct hmac_sha512_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj .h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj.ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_ctx”h]”hŒhmac_sha512_ctx”…”�”}”(hj(.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj%.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j*.Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jð-sbŒc.hmac_sha512_init_usingrawkey”†”asbuh1hhj.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjH.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj.ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjV.h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj.ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjc.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj.ubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj|.h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjx.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjx.ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjš.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj—.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jœ.Œmodname”NŒ classname”Nj j)�”}”j]”jD.Œc.hmac_sha512_init_usingrawkey”†”asbuh1hhjx.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjx.ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÆ.h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjx.ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjÓ.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjx.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj.ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjï.h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjì.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jñ.Œmodname”NŒ classname”Nj j)�”}”j]”jD.Œc.hmac_sha512_init_usingrawkey”†”asbuh1hhjè.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj /h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjè.ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjè.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj.ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÉ-h²hh³jÛ-h´MGubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÅ-h²hh³jÛ-h´MGubah}”(h]”jÀ-ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÛ-h´MGhjÂ-h²hubjv)�”}”(hhh]”hï)�”}”(hŒDInitialize an HMAC-SHA512 context for a new message, using a raw key”h]”hŒDInitialize an HMAC-SHA512 context for a new message, using a raw key”…”�”}”(hjE/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MGhjB/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÂ-h²hh³jÛ-h´MGubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j]/j™j]/jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXa**Parameters** ``struct hmac_sha512_ctx *ctx`` (output) the HMAC context to initialize ``const u8 *raw_key`` the raw HMAC-SHA512 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. **Description** If you don't need incremental computation, consider hmac_sha512_usingrawkey() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjg/h]”hŒ Parameters”…”�”}”(hji/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hje/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MKhja/ubjì)�”}”(hhh]”(jñ)�”}”(hŒH``struct hmac_sha512_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_sha512_ctx *ctx``”h]”jý)�”}”(hj†/h]”hŒstruct hmac_sha512_ctx *ctx”…”�”}”(hjˆ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj„/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MIhj€/ubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hjŸ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j›/h´MIhjœ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j›/h´MIhj}/ubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA512 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj¿/h]”hŒconst u8 *raw_key”…”�”}”(hjÁ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj½/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MJhj¹/ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA512 key”h]”hŒthe raw HMAC-SHA512 key”…”�”}”(hjØ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÔ/h´MJhjÕ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÔ/h´MJhj}/ubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjø/h]”hŒsize_t raw_key_len”…”�”}”(hjú/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjö/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MKhjò/ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j 0h´MKhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjò/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j 0h´MKhj}/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhja/ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj30h]”hŒ Description”…”�”}”(hj50h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj10ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MMhja/ubhï)�”}”(hŒVIf you don't need incremental computation, consider hmac_sha512_usingrawkey() instead.”h]”hŒXIf you don’t need incremental computation, consider hmac_sha512_usingrawkey() instead.”…”�”}”(hjI0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MLhja/ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjZ0h]”hŒContext”…”�”}”(hj\0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjX0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MOhja/ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjp0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MPhja/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha512_update (C function)”Œc.hmac_sha512_update”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒVvoid hmac_sha512_update (struct hmac_sha512_ctx *ctx, const u8 *data, size_t data_len)”h]”j)�”}”(hŒUvoid hmac_sha512_update(struct hmac_sha512_ctx *ctx, const u8 *data, size_t data_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŸ0h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj›0h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MVubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®0h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj›0h²hh³j­0h´MVubjD)�”}”(hŒhmac_sha512_update”h]”jJ)�”}”(hŒhmac_sha512_update”h]”hŒhmac_sha512_update”…”�”}”(hjÀ0h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¼0ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj›0h²hh³j­0h´MVubjÊ)�”}”(hŒ>(struct hmac_sha512_ctx *ctx, const u8 *data, size_t data_len)”h]”(jÐ)�”}”(hŒstruct hmac_sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÜ0h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjØ0ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjé0h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØ0ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_ctx”h]”hŒhmac_sha512_ctx”…”�”}”(hjú0h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj÷0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jü0Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÂ0sbŒc.hmac_sha512_update”†”asbuh1hhjØ0ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØ0ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj(1h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjØ0ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj51h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjØ0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔ0ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjN1h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjJ1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJ1ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjl1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhji1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jn1Œmodname”NŒ classname”Nj j)�”}”j]”j1Œc.hmac_sha512_update”†”asbuh1hhjJ1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠ1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJ1ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj˜1h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjJ1ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj¥1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJ1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔ0ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjÁ1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¾1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÃ1Œmodname”NŒ classname”Nj j)�”}”j]”j1Œc.hmac_sha512_update”†”asbuh1hhjº1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjº1ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjí1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjº1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔ0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj›0h²hh³j­0h´MVubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj—0h²hh³j­0h´MVubah}”(h]”j’0ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j­0h´MVhj”0h²hubjv)�”}”(hhh]”hï)�”}”(hŒ/Update an HMAC-SHA512 context with message data”h]”hŒ/Update an HMAC-SHA512 context with message data”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MVhj2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj”0h²hh³j­0h´MVubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j/2j™j/2jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_sha512_ctx *ctx`` the HMAC context to update; must have been initialized ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj92h]”hŒ Parameters”…”�”}”(hj;2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj72ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MZhj32ubjì)�”}”(hhh]”(jñ)�”}”(hŒW``struct hmac_sha512_ctx *ctx`` the HMAC context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha512_ctx *ctx``”h]”jý)�”}”(hjX2h]”hŒstruct hmac_sha512_ctx *ctx”…”�”}”(hjZ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjV2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MWhjR2ubj)�”}”(hhh]”hï)�”}”(hŒ6the HMAC context to update; must have been initialized”h]”hŒ6the HMAC context to update; must have been initialized”…”�”}”(hjq2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jm2h´MWhjn2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjR2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jm2h´MWhjO2ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj‘2h]”hŒconst u8 *data”…”�”}”(hj“2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj�2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MXhj‹2ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjª2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¦2h´MXhj§2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¦2h´MXhjO2ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjÊ2h]”hŒsize_t data_len”…”�”}”(hjÌ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÈ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MYhjÄ2ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjã2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jß2h´MYhjà2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÄ2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jß2h´MYhjO2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj32ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj3h]”hŒ Description”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M[hj32ubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MZhj32ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj,3h]”hŒContext”…”�”}”(hj.3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj*3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M\hj32ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjB3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M]hj32ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha512_final (C function)”Œc.hmac_sha512_final”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒWvoid hmac_sha512_final (struct hmac_sha512_ctx *ctx, u8 out[static SHA512_DIGEST_SIZE])”h]”j)�”}”(hŒVvoid hmac_sha512_final(struct hmac_sha512_ctx *ctx, u8 out[static SHA512_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjq3h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjm3h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mfubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€3h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjm3h²hh³j3h´MfubjD)�”}”(hŒhmac_sha512_final”h]”jJ)�”}”(hŒhmac_sha512_final”h]”hŒhmac_sha512_final”…”�”}”(hj’3h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŽ3ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjm3h²hh³j3h´MfubjÊ)�”}”(hŒ@(struct hmac_sha512_ctx *ctx, u8 out[static SHA512_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct hmac_sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj®3h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjª3ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»3h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjª3ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_ctx”h]”hŒhmac_sha512_ctx”…”�”}”(hjÌ3h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÉ3ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÎ3Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j”3sbŒc.hmac_sha512_final”†”asbuh1hhjª3ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì3h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjª3ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjú3h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjª3ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjª3ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¦3ubjÐ)�”}”(hŒ!u8 out[static SHA512_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj#4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj 4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j%4Œmodname”NŒ classname”Nj j)�”}”j]”jè3Œc.hmac_sha512_final”†”asbuh1hhj4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjO4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj4ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj]4h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj4ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjj4h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4ubh)�”}”(hhh]”jJ)�”}”(hŒSHA512_DIGEST_SIZE”h]”hŒSHA512_DIGEST_SIZE”…”�”}”(hjˆ4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj…4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jŠ4Œmodname”NŒ classname”Nj j)�”}”j]”jè3Œc.hmac_sha512_final”†”asbuh1hhj4ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj¦4h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¦3ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjm3h²hh³j3h´Mfubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihji3h²hh³j3h´Mfubah}”(h]”jd3ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j3h´Mfhjf3h²hubjv)�”}”(hhh]”hï)�”}”(hŒ%Finish computing an HMAC-SHA512 value”h]”hŒ%Finish computing an HMAC-SHA512 value”…”�”}”(hjÏ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MfhjÌ4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjf3h²hh³j3h´Mfubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jç4j™jç4jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hX8**Parameters** ``struct hmac_sha512_ctx *ctx`` the HMAC context to finalize; must have been initialized ``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting HMAC-SHA512 value **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjñ4h]”hŒ Parameters”…”�”}”(hjó4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjï4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mjhjë4ubjì)�”}”(hhh]”(jñ)�”}”(hŒY``struct hmac_sha512_ctx *ctx`` the HMAC context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_sha512_ctx *ctx``”h]”jý)�”}”(hj5h]”hŒstruct hmac_sha512_ctx *ctx”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mghj 5ubj)�”}”(hhh]”hï)�”}”(hŒ8the HMAC context to finalize; must have been initialized”h]”hŒ8the HMAC context to finalize; must have been initialized”…”�”}”(hj)5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j%5h´Mghj&5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj 5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j%5h´Mghj5ubjñ)�”}”(hŒO``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting HMAC-SHA512 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA512_DIGEST_SIZE]``”h]”jý)�”}”(hjI5h]”hŒ!u8 out[static SHA512_DIGEST_SIZE]”…”�”}”(hjK5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjG5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhhjC5ubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA512 value”h]”hŒ((output) the resulting HMAC-SHA512 value”…”�”}”(hjb5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j^5h´Mhhj_5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjC5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j^5h´Mhhj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjë4ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj„5h]”hŒ Description”…”�”}”(hj†5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‚5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mjhjë4ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjš5h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj¢5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjš5ubhŒ(. So the caller does not need to do it.”…”�”}”(hjš5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mihjë4ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj½5h]”hŒContext”…”�”}”(hj¿5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj»5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mkhjë4ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÓ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mlhjë4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_sha512 (C function)”Œ c.hmac_sha512”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒxvoid hmac_sha512 (const struct hmac_sha512_key *key, const u8 *data, size_t data_len, u8 out[static SHA512_DIGEST_SIZE])”h]”j)�”}”(hŒwvoid hmac_sha512(const struct hmac_sha512_key *key, const u8 *data, size_t data_len, u8 out[static SHA512_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjþ5h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mrubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjþ5h²hh³j6h´MrubjD)�”}”(hŒ hmac_sha512”h]”jJ)�”}”(hŒ hmac_sha512”h]”hŒ hmac_sha512”…”�”}”(hj#6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj6ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjþ5h²hh³j6h´MrubjÊ)�”}”(hŒg(const struct hmac_sha512_key *key, const u8 *data, size_t data_len, u8 out[static SHA512_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒ!const struct hmac_sha512_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj?6h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj;6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;6ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjZ6h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj;6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;6ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_key”h]”hŒhmac_sha512_key”…”�”}”(hjx6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhju6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jz6Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j%6sbŒ c.hmac_sha512”†”asbuh1hhj;6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;6ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¦6h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj;6ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj³6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj;6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj76ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÌ6h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÈ6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÈ6ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjê6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjç6ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jì6Œmodname”NŒ classname”Nj j)�”}”j]”j”6Œ c.hmac_sha512”†”asbuh1hhjÈ6ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÈ6ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÈ6ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj#7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÈ6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj76ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj?7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj<7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jA7Œmodname”NŒ classname”Nj j)�”}”j]”j”6Œ c.hmac_sha512”†”asbuh1hhj87ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]7h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj87ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjk7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj87ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj76ubjÐ)�”}”(hŒ!u8 out[static SHA512_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj‡7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj„7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‰7Œmodname”NŒ classname”Nj j)�”}”j]”j”6Œ c.hmac_sha512”†”asbuh1hhj€7ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥7h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj€7ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj³7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj€7ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjÁ7h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj€7ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjÎ7h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj€7ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛ7h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj€7ubh)�”}”(hhh]”jJ)�”}”(hŒSHA512_DIGEST_SIZE”h]”hŒSHA512_DIGEST_SIZE”…”�”}”(hjì7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjé7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jî7Œmodname”NŒ classname”Nj j)�”}”j]”j”6Œ c.hmac_sha512”†”asbuh1hhj€7ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj 8h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj€7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj76ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjþ5h²hh³j6h´Mrubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjú5h²hh³j6h´Mrubah}”(h]”jõ5ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j6h´Mrhj÷5h²hubjv)�”}”(hhh]”hï)�”}”(hŒ5Compute HMAC-SHA512 in one shot, using a prepared key”h]”hŒ5Compute HMAC-SHA512 in one shot, using a prepared key”…”�”}”(hj38h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mrhj08h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj÷5h²hh³j6h´Mrubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jK8j™jK8jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXp**Parameters** ``const struct hmac_sha512_key *key`` the prepared HMAC key ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting HMAC-SHA512 value **Description** If you're using the key only once, consider using hmac_sha512_usingrawkey(). **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjU8h]”hŒ Parameters”…”�”}”(hjW8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjS8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MvhjO8ubjì)�”}”(hhh]”(jñ)�”}”(hŒ<``const struct hmac_sha512_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha512_key *key``”h]”jý)�”}”(hjt8h]”hŒ!const struct hmac_sha512_key *key”…”�”}”(hjv8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjr8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mshjn8ubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hj�8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‰8h´MshjŠ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjn8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j‰8h´Mshjk8ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj­8h]”hŒconst u8 *data”…”�”}”(hj¯8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj«8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mthj§8ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjÆ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÂ8h´MthjÃ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÂ8h´Mthjk8ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjæ8h]”hŒsize_t data_len”…”�”}”(hjè8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjä8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Muhjà8ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjÿ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jû8h´Muhjü8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjà8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jû8h´Muhjk8ubjñ)�”}”(hŒO``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting HMAC-SHA512 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA512_DIGEST_SIZE]``”h]”jý)�”}”(hj9h]”hŒ!u8 out[static SHA512_DIGEST_SIZE]”…”�”}”(hj!9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mvhj9ubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA512 value”h]”hŒ((output) the resulting HMAC-SHA512 value”…”�”}”(hj89h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j49h´Mvhj59ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j49h´Mvhjk8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjO8ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjZ9h]”hŒ Description”…”�”}”(hj\9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjX9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MxhjO8ubhï)�”}”(hŒLIf you're using the key only once, consider using hmac_sha512_usingrawkey().”h]”hŒNIf you’re using the key only once, consider using hmac_sha512_usingrawkey().”…”�”}”(hjp9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MwhjO8ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj�9h]”hŒContext”…”�”}”(hjƒ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MyhjO8ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj—9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MzhjO8ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha512_usingrawkey (C function)”Œc.hmac_sha512_usingrawkey”hNt”auh1hþhj§­h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒˆvoid hmac_sha512_usingrawkey (const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA512_DIGEST_SIZE])”h]”j)�”}”(hŒ‡void hmac_sha512_usingrawkey(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA512_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÆ9h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÂ9h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕ9h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÂ9h²hh³jÔ9h´M�ubjD)�”}”(hŒhmac_sha512_usingrawkey”h]”jJ)�”}”(hŒhmac_sha512_usingrawkey”h]”hŒhmac_sha512_usingrawkey”…”�”}”(hjç9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjã9ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÂ9h²hh³jÔ9h´M�ubjÊ)�”}”(hŒk(const u8 *raw_key, size_t raw_key_len, const u8 *data, size_t data_len, u8 out[static SHA512_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÿ9ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÿ9ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj!:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j#:Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jé9sbŒc.hmac_sha512_usingrawkey”†”asbuh1hhjÿ9ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÿ9ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjO:h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÿ9ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj\:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÿ9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjû9ubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjx:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhju:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jz:Œmodname”NŒ classname”Nj j)�”}”j]”j=:Œc.hmac_sha512_usingrawkey”†”asbuh1hhjq:ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjq:ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj¤:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjq:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjû9ubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj½:h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¹:ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¹:ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjÛ:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjØ:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÝ:Œmodname”NŒ classname”Nj j)�”}”j]”j=:Œc.hmac_sha512_usingrawkey”†”asbuh1hhj¹:ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¹:ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¹:ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¹:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjû9ubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj0;h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj-;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j2;Œmodname”NŒ classname”Nj j)�”}”j]”j=:Œc.hmac_sha512_usingrawkey”†”asbuh1hhj);ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN;h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj);ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj\;h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj);ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjû9ubjÐ)�”}”(hŒ!u8 out[static SHA512_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjx;h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhju;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jz;Œmodname”NŒ classname”Nj j)�”}”j]”j=:Œc.hmac_sha512_usingrawkey”†”asbuh1hhjq;ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–;h²hh³Nh´Nubah}”(h]”h ]”j?a•ú«h"]”h$]”h&]”uh1j2hjq;ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj¤;h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjq;ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj²;h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjq;ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj¿;h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjq;ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌ;h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjq;ubh)�”}”(hhh]”jJ)�”}”(hŒSHA512_DIGEST_SIZE”h]”hŒSHA512_DIGEST_SIZE”…”�”}”(hjÝ;h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÚ;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jß;Œmodname”NŒ classname”Nj j)�”}”j]”j=:Œc.hmac_sha512_usingrawkey”†”asbuh1hhjq;ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjû;h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjq;ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjû9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÂ9h²hh³jÔ9h´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¾9h²hh³jÔ9h´M�ubah}”(h]”j¹9ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÔ9h´M�hj»9h²hubjv)�”}”(hhh]”hï)�”}”(hŒ0Compute HMAC-SHA512 in one shot, using a raw key”h]”hŒ0Compute HMAC-SHA512 in one shot, using a raw key”…”�”}”(hj$<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�hj!<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj»9h²hh³jÔ9h´M�ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j<<j™j<<jš‰j›‰jœ‰uh1jh²hhj§­h³Nh´Nubjž)�”}”(hXì**Parameters** ``const u8 *raw_key`` the raw HMAC-SHA512 key ``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ``const u8 *data`` the message data ``size_t data_len`` the data length in bytes ``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting HMAC-SHA512 value **Description** If you're using the key multiple times, prefer to use hmac_sha512_preparekey() followed by multiple calls to hmac_sha512() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjF<h]”hŒ Parameters”…”�”}”(hjH<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjD<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M…hj@<ubjì)�”}”(hhh]”(jñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA512 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hje<h]”hŒconst u8 *raw_key”…”�”}”(hjg<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjc<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M‚hj_<ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA512 key”h]”hŒthe raw HMAC-SHA512 key”…”�”}”(hj~<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jz<h´M‚hj{<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj_<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jz<h´M‚hj\<ubjñ)�”}”(hŒP``size_t raw_key_len`` the key length in bytes. All key lengths are supported. ”h]”(j÷)�”}”(hŒ``size_t raw_key_len``”h]”jý)�”}”(hjž<h]”hŒsize_t raw_key_len”…”�”}”(hj <h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjœ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mƒhj˜<ubj)�”}”(hhh]”hï)�”}”(hŒ8the key length in bytes. All key lengths are supported.”h]”hŒ8the key length in bytes. All key lengths are supported.”…”�”}”(hj·<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j³<h´Mƒhj´<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj˜<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j³<h´Mƒhj\<ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj×<h]”hŒconst u8 *data”…”�”}”(hjÙ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÕ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M„hjÑ<ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjð<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jì<h´M„hjí<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÑ<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jì<h´M„hj\<ubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj=h]”hŒsize_t data_len”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M…hj =ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj)=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j%=h´M…hj&=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj =ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j%=h´M…hj\<ubjñ)�”}”(hŒO``u8 out[static SHA512_DIGEST_SIZE]`` (output) the resulting HMAC-SHA512 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA512_DIGEST_SIZE]``”h]”jý)�”}”(hjI=h]”hŒ!u8 out[static SHA512_DIGEST_SIZE]”…”�”}”(hjK=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjG=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M†hjC=ubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA512 value”h]”hŒ((output) the resulting HMAC-SHA512 value”…”�”}”(hjb=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j^=h´M†hj_=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjC=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j^=h´M†hj\<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj@<ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj„=h]”hŒ Description”…”�”}”(hj†=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‚=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mˆhj@<ubhï)�”}”(hŒƒIf you're using the key multiple times, prefer to use hmac_sha512_preparekey() followed by multiple calls to hmac_sha512() instead.”h]”hŒ…If you’re using the key multiple times, prefer to use hmac_sha512_preparekey() followed by multiple calls to hmac_sha512() instead.”…”�”}”(hjš=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M‡hj@<ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj«=h]”hŒContext”…”�”}”(hj­=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj©=ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MŠhj@<ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjÁ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M‹hj@<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj§­h²hh³Nh´Nubeh}”(h]”Œsha-2”ah ]”h"]”Œsha-2”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KFubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSHA-3”h]”hŒSHA-3”…”�”}”(hjâ=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjß=h²hh³hÇh´KOubhï)�”}”(hŒ+The SHA-3 API is documented in :ref:`sha3`.”h]”(hŒThe SHA-3 API is documented in ”…”�”}”(hjð=h²hh³Nh´Nubh)�”}”(hŒ :ref:`sha3`”h]”hŒinline”“”)�”}”(hjú=h]”hŒsha3”…”�”}”(hjþ=h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jü=hjø=ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œcrypto/libcrypto-hash”Œ refdomain”j >Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆŒ reftarget”Œsha3”uh1hh³hÇh´KQhjð=ubhŒ.”…”�”}”(hjð=h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KQhjß=h²hubeh}”(h]”Œsha-3”ah ]”h"]”Œsha-3”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KOubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSM3”h]”hŒSM3”…”�”}”(hj2>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj/>h²hh³hÇh´KTubhï)�”}”(hŒBThis API provides support for the SM3 cryptographic hash function.”h]”hŒBThis API provides support for the SM3 cryptographic hash function.”…”�”}”(hj@>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KVhj/>h²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsm3_ctx (C struct)”Œ c.sm3_ctx”hNt”auh1hþhj/>h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒsm3_ctx”h]”j)�”}”(hŒstruct sm3_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjg>h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjc>h²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju>h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjc>h²hh³jt>h´KubjD)�”}”(hŒsm3_ctx”h]”jJ)�”}”(hja>h]”hŒsm3_ctx”…”�”}”(hj‡>h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjƒ>ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjc>h²hh³jt>h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj_>h²hh³jt>h´Kubah}”(h]”jZ>ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jt>h´Khj\>h²hubjv)�”}”(hhh]”hï)�”}”(hŒ&Context for hashing a message with SM3”h]”hŒ&Context for hashing a message with SM3”…”�”}”(hj©>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K!hj¦>h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj\>h²hh³jt>h´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jÁ>j™jÁ>jš‰j›‰jœ‰uh1jh²hhj/>h³Nh´Nubjž)�”}”(hX7**Definition**:: struct sm3_ctx { struct sm3_block_state state; u64 bytecount; u8 buf[SM3_BLOCK_SIZE]; }; **Members** ``state`` the compression function state ``bytecount`` number of bytes processed so far ``buf`` partial block buffer; bytecount % SM3_BLOCK_SIZE bytes are valid”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÍ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÉ>ubhŒ:”…”�”}”(hjÉ>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K%hjÅ>ubjÃ)�”}”(hŒdstruct sm3_ctx { struct sm3_block_state state; u64 bytecount; u8 buf[SM3_BLOCK_SIZE]; };”h]”hŒdstruct sm3_ctx { struct sm3_block_state state; u64 bytecount; u8 buf[SM3_BLOCK_SIZE]; };”…”�”}”hjæ>sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K'hjÅ>ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj÷>h]”hŒMembers”…”�”}”(hjù>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjõ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K-hjÅ>ubjì)�”}”(hhh]”(jñ)�”}”(hŒ)``state`` the compression function state ”h]”(j÷)�”}”(hŒ ``state``”h]”jý)�”}”(hj?h]”hŒstate”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K#hj?ubj)�”}”(hhh]”hï)�”}”(hŒthe compression function state”h]”hŒthe compression function state”…”�”}”(hj/?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j+?h´K#hj,?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j+?h´K#hj ?ubjñ)�”}”(hŒ/``bytecount`` number of bytes processed so far ”h]”(j÷)�”}”(hŒ ``bytecount``”h]”jý)�”}”(hjO?h]”hŒ bytecount”…”�”}”(hjQ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjM?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K$hjI?ubj)�”}”(hhh]”hï)�”}”(hŒ number of bytes processed so far”h]”hŒ number of bytes processed so far”…”�”}”(hjh?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jd?h´K$hje?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjI?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jd?h´K$hj ?ubjñ)�”}”(hŒH``buf`` partial block buffer; bytecount % SM3_BLOCK_SIZE bytes are valid”h]”(j÷)�”}”(hŒ``buf``”h]”jý)�”}”(hjˆ?h]”hŒbuf”…”�”}”(hjŠ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj†?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K$hj‚?ubj)�”}”(hhh]”hï)�”}”(hŒ@partial block buffer; bytecount % SM3_BLOCK_SIZE bytes are valid”h]”hŒ@partial block buffer; bytecount % SM3_BLOCK_SIZE bytes are valid”…”�”}”(hj¡?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K%hjž?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‚?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�?h´K$hj ?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÅ>ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj/>h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsm3_init (C function)”Œ c.sm3_init”hNt”auh1hþhj/>h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ#void sm3_init (struct sm3_ctx *ctx)”h]”j)�”}”(hŒ"void sm3_init(struct sm3_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjâ?h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÞ?h²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K-ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñ?h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÞ?h²hh³jð?h´K-ubjD)�”}”(hŒsm3_init”h]”jJ)�”}”(hŒsm3_init”h]”hŒsm3_init”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÿ?ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÞ?h²hh³jð?h´K-ubjÊ)�”}”(hŒ(struct sm3_ctx *ctx)”h]”jÐ)�”}”(hŒstruct sm3_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj@ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,@h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@ubh)�”}”(hhh]”jJ)�”}”(hŒsm3_ctx”h]”hŒsm3_ctx”…”�”}”(hj=@h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj:@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j?@Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j@sbŒ c.sm3_init”†”asbuh1hhj@ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]@h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjk@h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj@ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjx@h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj@ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÞ?h²hh³jð?h´K-ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÚ?h²hh³jð?h´K-ubah}”(h]”jÕ?ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jð?h´K-hj×?h²hubjv)�”}”(hhh]”hï)�”}”(hŒ+Initialize an SM3 context for a new message”h]”hŒ+Initialize an SM3 context for a new message”…”�”}”(hj¢@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K-hjŸ@h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj×?h²hh³jð?h´K-ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jº@j™jº@jš‰j›‰jœ‰uh1jh²hhj/>h³Nh´Nubjž)�”}”(hŒ³**Parameters** ``struct sm3_ctx *ctx`` the context to initialize **Description** If you don't need incremental computation, consider sm3() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÄ@h]”hŒ Parameters”…”�”}”(hjÆ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÂ@ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K1hj¾@ubjì)�”}”(hhh]”jñ)�”}”(hŒ2``struct sm3_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct sm3_ctx *ctx``”h]”jý)�”}”(hjã@h]”hŒstruct sm3_ctx *ctx”…”�”}”(hjå@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjá@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K.hjÝ@ubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hjü@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jø@h´K.hjù@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝ@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jø@h´K.hjÚ@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¾@ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjAh]”hŒ Description”…”�”}”(hj Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjAubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K0hj¾@ubhï)�”}”(hŒBIf you don't need incremental computation, consider sm3() instead.”h]”hŒDIf you don’t need incremental computation, consider sm3() instead.”…”�”}”(hj4Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K/hj¾@ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjEAh]”hŒContext”…”�”}”(hjGAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjCAubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K1hj¾@ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj[Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K2hj¾@ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj/>h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsm3_update (C function)”Œ c.sm3_update”hNt”auh1hþhj/>h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒAvoid sm3_update (struct sm3_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒ@void sm3_update(struct sm3_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŠAh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj†Ah²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K7ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™Ah²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj†Ah²hh³j˜Ah´K7ubjD)�”}”(hŒ sm3_update”h]”jJ)�”}”(hŒ sm3_update”h]”hŒ sm3_update”…”�”}”(hj«Ah²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj§Aubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj†Ah²hh³j˜Ah´K7ubjÊ)�”}”(hŒ1(struct sm3_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct sm3_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÇAh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÃAubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔAh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÃAubh)�”}”(hhh]”jJ)�”}”(hŒsm3_ctx”h]”hŒsm3_ctx”…”�”}”(hjåAh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjâAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jçAŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j­AsbŒ c.sm3_update”†”asbuh1hhjÃAubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÃAubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÃAubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj Bh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÃAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¿AubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj9Bh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj5Bubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFBh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj5Bubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjWBh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjTBubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jYBŒmodname”NŒ classname”Nj j)�”}”j]”jBŒ c.sm3_update”†”asbuh1hhj5Bubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuBh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj5Bubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjƒBh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj5BubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj�Bh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj5Bubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¿AubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj¬Bh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj©Bubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j®BŒmodname”NŒ classname”Nj j)�”}”j]”jBŒ c.sm3_update”†”asbuh1hhj¥Bubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊBh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¥BubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjØBh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¥Bubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¿Aubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj†Ah²hh³j˜Ah´K7ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj‚Ah²hh³j˜Ah´K7ubah}”(h]”j}Aah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j˜Ah´K7hjAh²hubjv)�”}”(hhh]”hï)�”}”(hŒ'Update an SM3 context with message data”h]”hŒ'Update an SM3 context with message data”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K7hjÿBh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjAh²hh³j˜Ah´K7ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jCj™jCjš‰j›‰jœ‰uh1jh²hhj/>h³Nh´Nubjž)�”}”(hX**Parameters** ``struct sm3_ctx *ctx`` the context to update; must have been initialized ``const u8 *data`` the message data ``size_t len`` the data length in bytes **Description** This can be called any number of times. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj$Ch]”hŒ Parameters”…”�”}”(hj&Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj"Cubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K;hjCubjì)�”}”(hhh]”(jñ)�”}”(hŒJ``struct sm3_ctx *ctx`` the context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sm3_ctx *ctx``”h]”jý)�”}”(hjCCh]”hŒstruct sm3_ctx *ctx”…”�”}”(hjECh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjACubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K8hj=Cubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hj\Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jXCh´K8hjYCubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj=Cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jXCh´K8hj:Cubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj|Ch]”hŒconst u8 *data”…”�”}”(hj~Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjzCubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K9hjvCubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj•Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‘Ch´K9hj’Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjvCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j‘Ch´K9hj:Cubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjµCh]”hŒ size_t len”…”�”}”(hj·Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj³Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´K:hj¯Cubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjÎCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÊCh´K:hjËCubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¯Cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÊCh´K:hj:Cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjCubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjðCh]”hŒ Description”…”�”}”(hjòCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjîCubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KhjCubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj/>h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsm3_final (C function)”Œ c.sm3_final”hNt”auh1hþhj/>h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒDvoid sm3_final (struct sm3_ctx *ctx, u8 out[static SM3_DIGEST_SIZE])”h]”j)�”}”(hŒCvoid sm3_final(struct sm3_ctx *ctx, u8 out[static SM3_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj\Dh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjXDh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KCubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjkDh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjXDh²hh³jjDh´KCubjD)�”}”(hŒ sm3_final”h]”jJ)�”}”(hŒ sm3_final”h]”hŒ sm3_final”…”�”}”(hj}Dh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjyDubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjXDh²hh³jjDh´KCubjÊ)�”}”(hŒ5(struct sm3_ctx *ctx, u8 out[static SM3_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct sm3_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj™Dh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj•Dubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦Dh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj•Dubh)�”}”(hhh]”jJ)�”}”(hŒsm3_ctx”h]”hŒsm3_ctx”…”�”}”(hj·Dh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj´Dubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¹DŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jDsbŒ c.sm3_final”†”asbuh1hhj•Dubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×Dh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj•Dubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjåDh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj•DubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjòDh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj•Dubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj‘DubjÐ)�”}”(hŒu8 out[static SM3_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Eubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jEŒmodname”NŒ classname”Nj j)�”}”j]”jÓDŒ c.sm3_final”†”asbuh1hhjEubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,Eh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjEubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj:Eh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjEubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjHEh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjEubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjUEh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjEubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbEh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjEubh)�”}”(hhh]”jJ)�”}”(hŒSM3_DIGEST_SIZE”h]”hŒSM3_DIGEST_SIZE”…”�”}”(hjsEh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjpEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”juEŒmodname”NŒ classname”Nj j)�”}”j]”jÓDŒ c.sm3_final”†”asbuh1hhjEubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj‘Eh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj‘Dubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjXDh²hh³jjDh´KCubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjTDh²hh³jjDh´KCubah}”(h]”jODah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jjDh´KChjQDh²hubjv)�”}”(hhh]”hï)�”}”(hŒ&Finish computing an SM3 message digest”h]”hŒ&Finish computing an SM3 message digest”…”�”}”(hjºEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KChj·Eh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjQDh²hh³jjDh´KCubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÒEj™jÒEjš‰j›‰jœ‰uh1jh²hhj/>h³Nh´Nubjž)�”}”(hX)**Parameters** ``struct sm3_ctx *ctx`` the context to finalize; must have been initialized ``u8 out[static SM3_DIGEST_SIZE]`` (output) the resulting SM3 message digest **Description** After finishing, this zeroizes **ctx**. So the caller does not need to do it. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjÜEh]”hŒ Parameters”…”�”}”(hjÞEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÚEubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KGhjÖEubjì)�”}”(hhh]”(jñ)�”}”(hŒL``struct sm3_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sm3_ctx *ctx``”h]”jý)�”}”(hjûEh]”hŒstruct sm3_ctx *ctx”…”�”}”(hjýEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjùEubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KDhjõEubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jFh´KDhjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjõEubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jFh´KDhjòEubjñ)�”}”(hŒM``u8 out[static SM3_DIGEST_SIZE]`` (output) the resulting SM3 message digest ”h]”(j÷)�”}”(hŒ"``u8 out[static SM3_DIGEST_SIZE]``”h]”jý)�”}”(hj4Fh]”hŒu8 out[static SM3_DIGEST_SIZE]”…”�”}”(hj6Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj2Fubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KEhj.Fubj)�”}”(hhh]”hï)�”}”(hŒ)(output) the resulting SM3 message digest”h]”hŒ)(output) the resulting SM3 message digest”…”�”}”(hjMFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jIFh´KEhjJFubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.Fubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jIFh´KEhjòEubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÖEubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjoFh]”hŒ Description”…”�”}”(hjqFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjmFubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KGhjÖEubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj…Fh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj�Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj…FubhŒ(. So the caller does not need to do it.”…”�”}”(hj…Fh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KFhjÖEubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj¨Fh]”hŒContext”…”�”}”(hjªFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¦Fubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KHhjÖEubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj¾Fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KIhjÖEubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj/>h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsm3 (C function)”Œc.sm3”hNt”auh1hþhj/>h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒEvoid sm3 (const u8 *data, size_t len, u8 out[static SM3_DIGEST_SIZE])”h]”j)�”}”(hŒDvoid sm3(const u8 *data, size_t len, u8 out[static SM3_DIGEST_SIZE])”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjíFh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjéFh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KNubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjüFh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjéFh²hh³jûFh´KNubjD)�”}”(hŒsm3”h]”jJ)�”}”(hŒsm3”h]”hŒsm3”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Gubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjéFh²hh³jûFh´KNubjÊ)�”}”(hŒ<(const u8 *data, size_t len, u8 out[static SM3_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj*Gh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj&Gubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7Gh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj&Gubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjHGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjEGubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jJGŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jGsbŒc.sm3”†”asbuh1hhj&Gubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhGh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj&Gubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjvGh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj&GubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjƒGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj&Gubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj"GubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjŸGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjœGubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¡GŒmodname”NŒ classname”Nj j)�”}”j]”jdGŒc.sm3”†”asbuh1hhj˜Gubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½Gh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj˜GubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjËGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj˜Gubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj"GubjÐ)�”}”(hŒu8 out[static SM3_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjçGh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjäGubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jéGŒmodname”NŒ classname”Nj j)�”}”j]”jdGŒc.sm3”†”asbuh1hhjàGubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjàGubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjàGubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj!Hh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjàGubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj.Hh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjàGubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;Hh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjàGubh)�”}”(hhh]”jJ)�”}”(hŒSM3_DIGEST_SIZE”h]”hŒSM3_DIGEST_SIZE”…”�”}”(hjLHh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjIHubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jNHŒmodname”NŒ classname”Nj j)�”}”j]”jdGŒc.sm3”†”asbuh1hhjàGubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjjHh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjàGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj"Gubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjéFh²hh³jûFh´KNubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjåFh²hh³jûFh´KNubah}”(h]”jàFah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jûFh´KNhjâFh²hubjv)�”}”(hhh]”hï)�”}”(hŒ&Compute SM3 message digest in one shot”h]”hŒ&Compute SM3 message digest in one shot”…”�”}”(hj“Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KNhj�Hh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjâFh²hh³jûFh´KNubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j«Hj™j«Hjš‰j›‰jœ‰uh1jh²hhj/>h³Nh´Nubjž)�”}”(hŒË**Parameters** ``const u8 *data`` the message data ``size_t len`` the data length in bytes ``u8 out[static SM3_DIGEST_SIZE]`` (output) the resulting SM3 message digest **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjµHh]”hŒ Parameters”…”�”}”(hj·Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj³Hubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KRhj¯Hubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjÔHh]”hŒconst u8 *data”…”�”}”(hjÖHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÒHubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KOhjÎHubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjíHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jéHh´KOhjêHubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÎHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jéHh´KOhjËHubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj Ih]”hŒ size_t len”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KPhjIubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj&Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j"Ih´KPhj#Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j"Ih´KPhjËHubjñ)�”}”(hŒM``u8 out[static SM3_DIGEST_SIZE]`` (output) the resulting SM3 message digest ”h]”(j÷)�”}”(hŒ"``u8 out[static SM3_DIGEST_SIZE]``”h]”jý)�”}”(hjFIh]”hŒu8 out[static SM3_DIGEST_SIZE]”…”�”}”(hjHIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjDIubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KQhj@Iubj)�”}”(hhh]”hï)�”}”(hŒ)(output) the resulting SM3 message digest”h]”hŒ)(output) the resulting SM3 message digest”…”�”}”(hj_Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j[Ih´KQhj\Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j[Ih´KQhjËHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¯Hubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj�Ih]”hŒContext”…”�”}”(hjƒIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KShj¯Hubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj—Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:88: ./include/crypto/sm3.h”h´KShj¯Hubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj/>h²hh³Nh´Nubeh}”(h]”Œsm3”ah ]”h"]”Œsm3”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KTubeh}”(h]”Œhash-functions-macs-and-xofs”ah ]”h"]”Œhash functions, macs, and xofs”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jàIŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jºIj·IjEjBj2)j/)j:j:jÌbjÉbj7†j4†jŠjŠj9Šj6Šj¤­j¡­jÜ=jÙ=j,>j)>j²Ij¯IuŒ nametypes”}”(jºI‰jE‰j2)‰j:‰jÌb‰j7†‰jЉj9Љj¤­‰jÜ=‰j,>‰j²I‰uh}”(j·IhÊjBhÝj jj„j‰jjj§j¬j(j-j# j( jÐ jÕ j%j*j÷jüjˆj�j/)jHjsjxj§j¬j©j®jÂjÇj”"j™"jï$jô$j:j5)j`)je)j”+j™+j–-j›-j¯0j´0j�3j†3jÜ5já5jÉbj":jM:jR:j…<jŠ<j'>j,>jŸ?j¤?jAj!Aj˜Bj�BjEjEj–Gj›Gj´Ij¹IjÒKj×KjÜNjáNj!Qj&QjóSjøSjÅVjÊVjJYjOYjÏ[jÔ[jQ_jV_j4†jÏbjúbjÿbjudjzdjfj"fjïhjôhj€kj…kjYnj^nj›oj ojÝpjâpj¯sj´sjvj vjíxjòxj¿{jÄ{jP~jU~j‚j‚jŠj:†je†jj†j6ŠjŠj¡­j<ŠjgŠjlŠjâ‹jç‹jŠ�j��j\�ja�jí’jò’jÆ•jË•j—j —jJ˜jO˜j›j!›jˆ�j��jZ j_ j,£j1£j½¥jÂ¥j�©j†©jÙ=j§­jÒ­j×­jÛ®jà®jƒ°jˆ°jU³jZ³jæµjëµj¿¸jĸjȹj͹jѺjÖºj£½j¨½jÀjÀjáÂjæÂj³Åj¸ÅjDÈjIÈjÌj Ìj2Ðj7Ðj;Ñj@ÑjãÒjèÒjµÕjºÕjFØjKØjÛj$Ûjaàjfàj°ájµáj¹âj¾âjÂãjÇãj”æj™æjéjéjÒëj×ëj¤îj©îj5ñj:ñjùôjþôj#ùj(ùj,új1újÔûjÙûj¦þj«þj7j<jjjjj"j'jôjùj` je j2j7jj j•jšjYj^jƒjˆjŒj‘j4j9j!j !j—#jœ#jp&ju&jy'j~'j‚(j‡(jT+jY+jÀ-jÅ-j’0j—0jd3ji3jõ5jú5j¹9j¾9j)>jß=j¯Ij/>jZ>j_>jÕ?jÚ?j}Aj‚AjODjTDjàFjåFuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.