€•Œ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_zeroize_ctx (C function)”Œc.blake2b_zeroize_ctx”hNt”auh1hþhjHh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ2void blake2b_zeroize_ctx (struct blake2b_ctx *ctx)”h]”j)�”}”(hŒ1void blake2b_zeroize_ctx(struct blake2b_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: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_zeroize_ctx”h]”jJ)�”}”(hŒblake2b_zeroize_ctx”h]”hŒblake2b_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 blake2b_ctx *ctx)”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_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 a blake2b_ctx structure”h]”hŒZeroize a blake2b_ctx structure”…”�”}”(hjth²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)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²hhjHh³Nh´Nubjž)�”}”(hŒH**Parameters** ``struct blake2b_ctx *ctx`` The blake2b_ctx to zeroize”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-hj�ubjì)�”}”(hhh]”jñ)�”}”(hŒ6``struct blake2b_ctx *ctx`` The blake2b_ctx to zeroize”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´K/hj¯ubj)�”}”(hhh]”hï)�”}”(hŒThe blake2b_ctx to zeroize”h]”hŒThe blake2b_ctx to zeroize”…”�”}”(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¬ubah}”(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”…”�”}”(hjh²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´KUubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj h²hh³jh´KUubjD)�”}”(hŒ blake2b_init”h]”jJ)�”}”(hŒ blake2b_init”h]”hŒ blake2b_init”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj,ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj h²hh³jh´KUubjÊ)�”}”(hŒ((struct blake2b_ctx *ctx, size_t outlen)”h]”(jÐ)�”}”(hŒstruct blake2b_ctx *ctx”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Œ blake2b_ctx”h]”hŒ blake2b_ctx”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jlŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j2sbŒc.blake2b_init”†”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Œctx”h]”hŒctx”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjDubjÐ)�”}”(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]”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ÏhjDubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj h²hh³jh´KUubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjh²hh³jh´KUubah}”(h]”jah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jh´KUhjh²hubjv)�”}”(hhh]”hï)�”}”(hŒ8Initialize a BLAKE2b context for a new message (unkeyed)”h]”hŒ8Initialize a BLAKE2b context for a new message (unkeyed)”…”�”}”(hjh²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´KUhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjh²hh³jh´KUubeh}”(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¨)�”}”(hj9h]”hŒ Parameters”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KYhj3ubjì)�”}”(hhh]”(jñ)�”}”(hŒ6``struct blake2b_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct blake2b_ctx *ctx``”h]”jý)�”}”(hjXh]”hŒstruct blake2b_ctx *ctx”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´KVhjRubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jmh´KVhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jmh´KVhjOubjñ)�”}”(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´KWhj‹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´KWhj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¦h´KWhjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj3ubhï)�”}”(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´KYhj3ubhï)�”}”(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´KYhj3ubeh}”(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”…”�”}”(hjh²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´Kaubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj h²hh³jh´KaubjD)�”}”(hŒblake2b_init_key”h]”jJ)�”}”(hŒblake2b_init_key”h]”hŒblake2b_init_key”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj.ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj h²hh³jh´KaubjÊ)�”}”(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”…”�”}”(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Œ blake2b_ctx”h]”hŒ blake2b_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.blake2b_init_key”†”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Œ 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]”jˆŒc.blake2b_init_key”†”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ÏhjFubjÐ)�”}”(hŒconst void *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubj’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjFubjÐ)�”}”(hŒ size_t keylen”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Œkeylen”h]”hŒkeylen”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjaubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjFubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj h²hh³jh´Kaubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj h²hh³jh´Kaubah}”(h]”jah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jh´Kahjh²hubjv)�”}”(hhh]”hï)�”}”(hŒ6Initialize a BLAKE2b context for a new message (keyed)”h]”hŒ6Initialize a BLAKE2b context for a new message (keyed)”…”�”}”(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´Kahj»h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjh²hh³jh´Kaubeh}”(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´KehjÚ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´Kbhjù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´Kbhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j h´Kbhjö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ý)�”}”(hj8 h]”hŒ size_t outlen”…”�”}”(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:19: ./include/crypto/blake2b.h”h´Kchj2 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”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jM h´KchjN ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj2 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jM h´Kchjöubjñ)�”}”(hŒ``const void *key`` the key ”h]”(j÷)�”}”(hŒ``const void *key``”h]”jý)�”}”(hjq h]”hŒconst void *key”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjo ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´Kdhjk ubj)�”}”(hhh]”hï)�”}”(hŒthe key”h]”hŒthe key”…”�”}”(hjŠ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j† h´Kdhj‡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjk ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j† h´Kdhjöubjñ)�”}”(hŒD``size_t keylen`` the key length in bytes, at most BLAKE2B_KEY_SIZE ”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´Kehj¤ ubj)�”}”(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”…”�”}”(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ö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:19: ./include/crypto/blake2b.h”h´KghjÚ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´KghjÚubeh}”(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´Ksubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj&!h²hh³j8!h´KsubjD)�”}”(hŒblake2b_update”h]”jJ)�”}”(hŒblake2b_update”h]”hŒblake2b_update”…”�”}”(hjK!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjG!ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj&!h²hh³j8!h´KsubjÊ)�”}”(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”…”�”}”(hjg!h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjc!ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjc!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 jM!sbŒc.blake2b_update”†”asbuh1hhjc!ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjc!ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj³!h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjc!ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÀ!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjc!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 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.blake2b_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Œin”h]”hŒin”…”�”}”(hj0"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 inlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjL"h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjI"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jN"Œmodname”NŒ classname”Nj j)�”}”j]”j¡!Œc.blake2b_update”†”asbuh1hhjE"ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj"h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjE"ubjJ)�”}”(hŒinlen”h]”hŒinlen”…”�”}”(hjx"h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjE"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj_!ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj&!h²hh³j8!h´Ksubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj"!h²hh³j8!h´Ksubah}”(h]”j!ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j8!h´Kshj!h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a BLAKE2b context with message data”h]”hŒ*Update a BLAKE2b 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:19: ./include/crypto/blake2b.h”h´KshjŸ"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj!h²hh³j8!h´Ksubeh}”(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¨)�”}”(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´Kwhj¾"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´KthjÝ"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´Kthjù"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝ"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jø"h´KthjÚ"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´Kuhj#ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj5#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j1#h´Kuhj2#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j1#h´KuhjÚ"ubjñ)�”}”(hŒ*``size_t inlen`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t inlen``”h]”jý)�”}”(hjU#h]”hŒ size_t inlen”…”�”}”(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:19: ./include/crypto/blake2b.h”h´KvhjO#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´Kvhjk#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjO#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jj#h´KvhjÚ"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´Kxhj¾"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:19: ./include/crypto/blake2b.h”h´Kwhj¾"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´Kyhj¾"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´Kzhj¾"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´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjø#h²hh³j $h´KubjD)�”}”(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´KubjÊ)�”}”(hŒ"(struct blake2b_ctx *ctx, u8 *out)”h]”(jÐ)�”}”(hŒstruct blake2b_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(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Œ blake2b_ctx”h]”hŒ blake2b_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.blake2b_final”†”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Œctx”h]”hŒctx”…”�”}”(hj’$h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj5$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_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Œ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$ubeh}”(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Œ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´Khj%h²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²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¨)�”}”(hj3%h]”hŒ Parameters”…”�”}”(hj5%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj1%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-%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ý)�”}”(hjR%h]”hŒstruct blake2b_ctx *ctx”…”�”}”(hjT%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjP%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K€hjL%ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjk%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jg%h´K€hjh%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjL%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jg%h´K€hjI%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ý)�”}”(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‚hj…%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 ”…”�”}”(hj¤%h²hh³Nh´Nubj¨)�”}”(hŒ **outlen**”h]”hŒoutlen”…”�”}”(hj¬%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¤%ubhŒ9 that was passed to blake2b_init() or blake2b_init_key().”…”�”}”(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´K�hj¡%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j %h´K‚hjI%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´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: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”…”�”}”(hjW&h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjS&h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:19: ./include/crypto/blake2b.h”h´K‹ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf&h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjS&h²hh³je&h´K‹ubjD)�”}”(hŒblake2b”h]”jJ)�”}”(hŒblake2b”h]”hŒblake2b”…”�”}”(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´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”&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 jz&sbŒ 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Œ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”†”asbuh1hhj'ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj''h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj'ubjJ)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hj5'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”…”�”}”(hjN'h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjJ'ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj['h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJ'ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjl'h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhji'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jn'Œmodname”NŒ classname”Nj j)�”}”j]”jÎ&Œ c.blake2b”†”asbuh1hhjJ'ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠ'h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJ'ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj˜'h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjJ'ubjJ)�”}”(hŒin”h]”hŒin”…”�”}”(hj¥'h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJ'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]”jÎ&Œ 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ÏhjŒ&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]”jÎ&Œ c.blake2b”†”asbuh1hhj(ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'(h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj(ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj5(h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj(ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjB(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”…”�”}”(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”†”asbuh1hhjW(ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|(h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjW(ubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hjŠ(h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjW(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´K‹ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjO&h²hh³je&h´K‹ubah}”(h]”jJ&ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³je&h´K‹hjL&h²hubjv)�”}”(hhh]”hï)�”}”(hŒ Compute BLAKE2b hash in one shot”h]”hŒ Compute BLAKE2b hash in one shot”…”�”}”(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±(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjL&h²hh³je&h´K‹ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÌ(j™jÌ(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§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Ð(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”…”�”}”(hj0)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”…”�”}”(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´K�hjD)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj()ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jC)h´KŽhjì(ubjñ)�”}”(hŒ"``const u8 *in`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *in``”h]”jý)�”}”(hjh)h]”hŒ const u8 *in”…”�”}”(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:19: ./include/crypto/blake2b.h”h´K�hjb)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&]”uh1jhjb)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ý)�”}”(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´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‘hjÔ)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&]”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 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³j6*h´K’hj7*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j6*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§hjZ*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.”…”�”}”(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´K”hjÐ(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”…”�”}”(hj“*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj�*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.”…”�”}”(hj¡*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 Œblake2s_ctx (C struct)”Œ c.blake2s_ctx”hNt”auh1hþhj�*h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ blake2s_ctx”h]”j)�”}”(hŒstruct blake2s_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:26: ./include/crypto/blake2s.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ*h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÄ*h²hh³jÕ*h´KubjD)�”}”(hŒ blake2s_ctx”h]”jJ)�”}”(hjÂ*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Æ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 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&]”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 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; };”…”�”}”hjG+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¨)�”}”(hjX+h]”hŒMembers”…”�”}”(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:26: ./include/crypto/blake2s.h”h´K)hj&+ubjì)�”}”(hhh]”(jñ)�”}”(hŒ!``h`` compression function state ”h]”(j÷)�”}”(hŒ``h``”h]”jý)�”}”(hjw+h]”hŒh”…”�”}”(hjy+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühju+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Khjq+ubj)�”}”(hhh]”hï)�”}”(hŒcompression function state”h]”hŒcompression function state”…”�”}”(hj�+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŒ+h´Khj�+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjq+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŒ+h´Khjn+ubjñ)�”}”(hŒ``t`` block counter ”h]”(j÷)�”}”(hŒ``t``”h]”jý)�”}”(hj°+h]”hŒt”…”�”}”(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Œ 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&]”uh1jhjª+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÅ+h´Khjn+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´Khjn+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³j7,h´Khj8,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j7,h´Khjn+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ühjY,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K hjU,ubj)�”}”(hhh]”hï)�”}”(hŒ#number of bytes buffered in **buf**”h]”(hŒnumber of bytes buffered in ”…”�”}”(hjt,h²hh³Nh´Nubj¨)�”}”(hŒ**buf**”h]”hŒbuf”…”�”}”(hj|,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjt,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jp,h´K hjq,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjU,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jp,h´K hjn+ubjñ)�”}”(hŒJ``outlen`` length of output hash value in bytes, at most BLAKE2S_HASH_SIZE”h]”(j÷)�”}”(hŒ ``outlen``”h]”jý)�”}”(hj¢,h]”hŒ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³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K!hj¸,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœ,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j·,h´K hjn+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 Œ blake2s_zeroize_ctx (C function)”Œc.blake2s_zeroize_ctx”hNt”auh1hþhj�*h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ2void blake2s_zeroize_ctx (struct blake2s_ctx *ctx)”h]”j)�”}”(hŒ1void blake2s_zeroize_ctx(struct blake2s_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: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_zeroize_ctx”h]”jJ)�”}”(hŒblake2s_zeroize_ctx”h]”hŒblake2s_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 blake2s_ctx *ctx)”h]”jÐ)�”}”(hŒstruct blake2s_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(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Œ blake2s_ctx”h]”hŒ blake2s_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.blake2s_zeroize_ctx”†”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Œctx”h]”hŒctx”…”�”}”(hj’-h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj5-ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj1-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 a blake2s_ctx structure”h]”hŒZeroize a blake2s_ctx structure”…”�”}”(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¹-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ŒH**Parameters** ``struct blake2s_ctx *ctx`` The blake2s_ctx to zeroize”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´K1hjØ-ubjì)�”}”(hhh]”jñ)�”}”(hŒ6``struct blake2s_ctx *ctx`` The blake2s_ctx to zeroize”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´K3hj÷-ubj)�”}”(hhh]”hï)�”}”(hŒThe blake2s_ctx to zeroize”h]”hŒThe blake2s_ctx to zeroize”…”�”}”(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&]”uh1jhj÷-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j.h´K3hjô-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 Œblake2s_init (C function)”Œc.blake2s_init”hNt”auh1hþhj�*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”…”�”}”(hjW.h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjS.h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KYubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf.h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjS.h²hh³je.h´KYubjD)�”}”(hŒ blake2s_init”h]”jJ)�”}”(hŒ blake2s_init”h]”hŒ blake2s_init”…”�”}”(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´KYubjÊ)�”}”(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 jz.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”…”�”}”(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 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]”jÎ.Œc.blake2s_init”†”asbuh1hhj/ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'/h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj/ubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hj5/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ÉhjS.h²hh³je.h´KYubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjO.h²hh³je.h´KYubah}”(h]”jJ.ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³je.h´KYhjL.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´KYhj\/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjL.h²hh³je.h´KYubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jw/j™jw/jš‰j›‰jœ‰uh1jh²hhj�*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´K]hj{/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´KZhjš/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´KZhj¶/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjš/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jµ/h´KZhj—/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—/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj{/ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj0h]”hŒContext”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K]hj{/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´K]hj{/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj�*h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s_init_key (C function)”Œc.blake2s_init_key”hNt”auh1hþhj�*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”…”�”}”(hjY0h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjU0h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Keubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh0h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjU0h²hh³jg0h´KeubjD)�”}”(hŒblake2s_init_key”h]”jJ)�”}”(hŒblake2s_init_key”h]”hŒblake2s_init_key”…”�”}”(hjz0h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjv0ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjU0h²hh³jg0h´KeubjÊ)�”}”(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–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Œ blake2s_ctx”h]”hŒ blake2s_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.blake2s_init_key”†”asbuh1hhj’0ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔ0h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj’0ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjâ0h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj’0ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjï0h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj’0ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŽ0ubjÐ)�”}”(hŒ size_t outlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj 1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j 1Œmodname”NŒ classname”Nj j)�”}”j]”jÐ0Œc.blake2s_init_key”†”asbuh1hhj1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj1ubjJ)�”}”(hŒoutlen”h]”hŒoutlen”…”�”}”(hj71h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŽ0ubjÐ)�”}”(hŒconst void *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjP1h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjL1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjL1ubj’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjk1h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjL1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjy1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjL1ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj‡1h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjL1ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj”1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjL1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŽ0ubjÐ)�”}”(hŒ size_t keylen”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]”jÐ0Œc.blake2s_init_key”†”asbuh1hhj©1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj©1ubjJ)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(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ÉhjU0h²hh³jg0h´Keubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjQ0h²hh³jg0h´Keubah}”(h]”jL0ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jg0h´KehjN0h²hubjv)�”}”(hhh]”hï)�”}”(hŒ6Initialize a BLAKE2s context for a new message (keyed)”h]”hŒ6Initialize a BLAKE2s context for a new message (keyed)”…”�”}”(hj2h²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´Kehj2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjN0h²hh³jg0h´Keubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j2j™j2jš‰j›‰jœ‰uh1jh²hhj�*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¨)�”}”(hj(2h]”hŒ Parameters”…”�”}”(hj*2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj&2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kihj"2ubjì)�”}”(hhh]”(jñ)�”}”(hŒ6``struct blake2s_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct blake2s_ctx *ctx``”h]”jý)�”}”(hjG2h]”hŒstruct blake2s_ctx *ctx”…”�”}”(hjI2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjE2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´KfhjA2ubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hj`2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j\2h´Kfhj]2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjA2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j\2h´Kfhj>2ubjñ)�”}”(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€2h]”hŒ size_t outlen”…”�”}”(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´Kghjz2ubj)�”}”(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™2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j•2h´Kghj–2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjz2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j•2h´Kghj>2ubjñ)�”}”(hŒ``const void *key`` the key ”h]”(j÷)�”}”(hŒ``const void *key``”h]”jý)�”}”(hj¹2h]”hŒconst void *key”…”�”}”(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´Khhj³2ubj)�”}”(hhh]”hï)�”}”(hŒthe key”h]”hŒthe key”…”�”}”(hjÒ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÎ2h´KhhjÏ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj³2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÎ2h´Khhj>2ubjñ)�”}”(hŒD``size_t keylen`` the key length in bytes, at most BLAKE2S_KEY_SIZE ”h]”(j÷)�”}”(hŒ``size_t keylen``”h]”jý)�”}”(hjò2h]”hŒ size_t keylen”…”�”}”(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´Kihjì2ubj)�”}”(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”…”�”}”(hj 3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j3h´Kihj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjì2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j3h´Kihj>2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj"2ubhï)�”}”(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:26: ./include/crypto/blake2s.h”h´Kkhj"2ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjC3h²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´Kkhj"2ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj�*h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s_update (C function)”Œc.blake2s_update”hNt”auh1hþhj�*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”…”�”}”(hjr3h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjn3h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kwubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�3h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjn3h²hh³j€3h´KwubjD)�”}”(hŒblake2s_update”h]”jJ)�”}”(hŒblake2s_update”h]”hŒblake2s_update”…”�”}”(hj“3h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�3ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjn3h²hh³j€3h´KwubjÊ)�”}”(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¯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_update”†”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Œ const u8 *in”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj!4h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4ubh)�”}”(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”jA4Œmodname”NŒ classname”Nj j)�”}”j]”jé3Œc.blake2s_update”†”asbuh1hhj4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjk4h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj4ubjJ)�”}”(hŒin”h]”hŒin”…”�”}”(hjx4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj§3ubjÐ)�”}”(hŒ size_t inlen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(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.blake2s_update”†”asbuh1hhj�4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�4ubjJ)�”}”(hŒinlen”h]”hŒinlen”…”�”}”(hjÀ4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj§3ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjn3h²hh³j€3h´Kwubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjj3h²hh³j€3h´Kwubah}”(h]”je3ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j€3h´Kwhjg3h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a BLAKE2s context with message data”h]”hŒ*Update a BLAKE2s context with message data”…”�”}”(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´Kwhjç4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjg3h²hh³j€3h´Kwubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j5j™j5jš‰j›‰jœ‰uh1jh²hhj�*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¨)�”}”(hj 5h]”hŒ Parameters”…”�”}”(hj5h²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{hj5ubjì)�”}”(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ý)�”}”(hj+5h]”hŒstruct blake2s_ctx *ctx”…”�”}”(hj-5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj)5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kxhj%5ubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hjD5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j@5h´KxhjA5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj%5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j@5h´Kxhj"5ubjñ)�”}”(hŒ"``const u8 *in`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *in``”h]”jý)�”}”(hjd5h]”hŒ const u8 *in”…”�”}”(hjf5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjb5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kyhj^5ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj}5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jy5h´Kyhjz5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj^5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jy5h´Kyhj"5ubjñ)�”}”(hŒ*``size_t inlen`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t inlen``”h]”jý)�”}”(hj�5h]”hŒ size_t inlen”…”�”}”(hjŸ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj›5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kzhj—5ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj¶5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j²5h´Kzhj³5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj—5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j²5h´Kzhj"5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj5ubhï)�”}”(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:26: ./include/crypto/blake2s.h”h´K|hj5ubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(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{hj5ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÿ5h]”hŒContext”…”�”}”(hj6h²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}hj5ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj6h²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~hj5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj�*h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s_final (C function)”Œc.blake2s_final”hNt”auh1hþhj�*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”…”�”}”(hjD6h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj@6h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kƒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@6h²hh³jR6h´KƒubjD)�”}”(hŒ blake2s_final”h]”jJ)�”}”(hŒ blake2s_final”h]”hŒ blake2s_final”…”�”}”(hje6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhja6ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj@6h²hh³jR6h´KƒubjÊ)�”}”(hŒ"(struct blake2s_ctx *ctx, u8 *out)”h]”(jÐ)�”}”(hŒstruct blake2s_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(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Œ blake2s_ctx”h]”hŒ blake2s_ctx”…”�”}”(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)�”}”j jg6sbŒc.blake2s_final”†”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Œctx”h]”hŒctx”…”�”}”(hjÚ6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj}6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjy6ubjÐ)�”}”(hŒu8 *out”h]”(h)�”}”(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.blake2s_final”†”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Œout”h]”hŒout”…”�”}”(hj/7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjï6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjy6ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj@6h²hh³jR6h´Kƒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj<6h²hh³jR6h´Kƒubah}”(h]”j76ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jR6h´Kƒhj96h²hubjv)�”}”(hhh]”hï)�”}”(hŒFinish computing a BLAKE2s hash”h]”hŒFinish computing a BLAKE2s hash”…”�”}”(hjY7h²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ƒhjV7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj96h²hh³jR6h´Kƒubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jq7j™jq7jš‰j›‰jœ‰uh1jh²hhj�*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{7h]”hŒ Parameters”…”�”}”(hj}7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjy7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K‡hju7ubjì)�”}”(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š7h]”hŒstruct blake2s_ctx *ctx”…”�”}”(hjœ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj˜7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K„hj”7ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hj³7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¯7h´K„hj°7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj”7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¯7h´K„hj‘7ubjñ)�”}”(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ý)�”}”(hjÓ7h]”hŒu8 *out”…”�”}”(hjÕ7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÑ7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K†hjÍ7ubj)�”}”(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 ”…”�”}”(hjì7h²hh³Nh´Nubj¨)�”}”(hŒ **outlen**”h]”hŒoutlen”…”�”}”(hjô7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjì7ubhŒ9 that was passed to blake2s_init() or blake2s_init_key().”…”�”}”(hjì7h²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é7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍ7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jè7h´K†hj‘7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhju7ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj!8h]”hŒ Description”…”�”}”(hj#8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´Kˆhju7ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj78h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hj?8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj78ubhŒ(. So the caller does not need to do it.”…”�”}”(hj78h²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‡hju7ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjZ8h]”hŒContext”…”�”}”(hj\8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjX8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K‰hju7ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjp8h²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Šhju7ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj�*h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œblake2s (C function)”Œ c.blake2s”hNt”auh1hþhj�*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Ÿ8h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj›8h²hh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®8h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj›8h²hh³j­8h´K�ubjD)�”}”(hŒblake2s”h]”jJ)�”}”(hŒblake2s”h]”hŒblake2s”…”�”}”(hjÀ8h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¼8ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj›8h²hh³j­8h´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Ü8h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjØ8ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjé8h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØ8ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjú8h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj÷8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jü8Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÂ8sbŒ c.blake2s”†”asbuh1hhjØ8ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØ8ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj(9h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjØ8ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj59h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjØ8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔ8ubjÐ)�”}”(hŒ size_t keylen”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjQ9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjN9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jS9Œmodname”NŒ classname”Nj j)�”}”j]”j9Œ c.blake2s”†”asbuh1hhjJ9ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo9h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJ9ubjJ)�”}”(hŒkeylen”h]”hŒkeylen”…”�”}”(hj}9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJ9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔ8ubjÐ)�”}”(hŒ const u8 *in”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj–9h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj’9ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£9h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj’9ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj´9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj±9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¶9Œmodname”NŒ classname”Nj j)�”}”j]”j9Œ c.blake2s”†”asbuh1hhj’9ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒ9h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj’9ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjà9h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj’9ubjJ)�”}”(hŒin”h]”hŒin”…”�”}”(hjí9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj’9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔ8ubjÐ)�”}”(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]”j9Œ c.blake2s”†”asbuh1hhj:ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj':h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj:ubjJ)�”}”(hŒinlen”h]”hŒinlen”…”�”}”(hj5:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔ8ubjÐ)�”}”(hŒu8 *out”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjQ:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjN:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jS:Œmodname”NŒ classname”Nj j)�”}”j]”j9Œ c.blake2s”†”asbuh1hhjJ:ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJ:ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj}:h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjJ:ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjŠ:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJ:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔ8ubjÐ)�”}”(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]”j9Œ c.blake2s”†”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Ô8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj›8h²hh³j­8h´K�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj—8h²hh³j­8h´K�ubah}”(h]”j’8ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j­8h´K�hj”8h²hubjv)�”}”(hhh]”hï)�”}”(hŒ Compute BLAKE2s hash in one shot”h]”hŒ Compute BLAKE2s hash in one shot”…”�”}”(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ù:h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj”8h²hh³j­8h´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 *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¨)�”}”(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´K“hj;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:26: ./include/crypto/blake2s.h”h´K�hj7;ubj)�”}”(hhh]”hï)�”}”(hŒ$the key, or NULL for an unkeyed hash”h]”hŒ$the key, or NULL for an unkeyed hash”…”�”}”(hjV;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jR;h´K�hjS;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj7;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jR;h´K�hj4;ubjñ)�”}”(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ý)�”}”(hjv;h]”hŒ size_t keylen”…”�”}”(hjx;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjt;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ^/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:26: ./include/crypto/blake2s.h”h´K’hjp;ubj)�”}”(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�;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&]”uh1jhjp;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j‹;h´K’hj4;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:26: ./include/crypto/blake2s.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“hj4;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:26: ./include/crypto/blake2s.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”hj4;ubjñ)�”}”(hŒH``u8 *out`` (output) the resulting BLAKE2s 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:26: ./include/crypto/blake2s.h”h´K•hj<ubj)�”}”(hhh]”hï)�”}”(hŒ;(output) the resulting BLAKE2s hash, with length **outlen**”h]”(hŒ1(output) the resulting BLAKE2s hash, with length ”…”�”}”(hj;<h²hh³Nh´Nubj¨)�”}”(hŒ **outlen**”h]”hŒoutlen”…”�”}”(hjC<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj;<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j7<h´K•hj8<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j7<h´K•hj4;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ý)�”}”(hji<h]”hŒ size_t outlen”…”�”}”(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:26: ./include/crypto/blake2s.h”h´K–hjc<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&]”uh1jhjc<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j~<h´K–hj4;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´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:26: ./include/crypto/blake2s.h”h´K˜hj;ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj�*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.”…”�”}”(hjé<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”…”�”}”(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Œ polyval_elem”h]”jJ)�”}”(hj =h]”hŒ polyval_elem”…”�”}”(hj0=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Œ&An element of the POLYVAL finite field”h]”hŒ&An element of the POLYVAL finite field”…”�”}”(hjR=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´KhjO=h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj=h²hh³j=h´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jj=j™jj=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”…”�”}”(hjv=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjr=ubhŒ:”…”�”}”(hjr=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´Khjn=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´Khjn=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#hjn=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ý)�”}”(hjø=h]”hŒbytes”…”�”}”(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Œ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”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj>ubhŒ and ”…”�”}”(hj>h²hh³Nh´Nubj¨)�”}”(hŒ**hi**”h]”hŒhi”…”�”}”(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³j >h´Khj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjò=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j >h´Khj¶=ubjñ)�”}”(hŒ``{unnamed_struct}`` anonymous ”h]”(j÷)�”}”(hŒ``{unnamed_struct}``”h]”jý)�”}”(hjU>h]”hŒ{unnamed_struct}”…”�”}”(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:34: ./include/crypto/gf128hash.h”h´KhjO>ubj)�”}”(hhh]”hï)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(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Œ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ëhjn=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´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.”…”�”}”(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²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”…”�”}”(hjH?h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjD?h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjV?h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjD?h²hh³jU?h´KubjD)�”}”(hŒ ghash_key”h]”jJ)�”}”(hjB?h]”hŒ ghash_key”…”�”}”(hjh?h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjd?ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjD?h²hh³jU?h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj@?h²hh³jU?h´Kubah}”(h]”j;?ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jU?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³jU?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ý)�”}”(hj÷?h]”hŒhtable”…”�”}”(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Œ1GHASH key format used by the POWER8 assembly code”h]”hŒ1GHASH key format used by the POWER8 assembly code”…”�”}”(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_raw`` The hash key H, in GHASH format ”h]”(j÷)�”}”(hŒ ``h_raw``”h]”jý)�”}”(hj0@h]”hŒh_raw”…”�”}”(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:34: ./include/crypto/gf128hash.h”h´K1hj*@ubj)�”}”(hhh]”hï)�”}”(hŒThe hash key H, in GHASH format”h]”hŒThe hash key H, in GHASH format”…”�”}”(hjI@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jE@h´K1hjF@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jE@h´K1hjî?ubjñ)�”}”(hŒ'``h`` The hash key H, in POLYVAL format”h]”(j÷)�”}”(hŒ``h``”h]”jý)�”}”(hji@h]”hŒh”…”�”}”(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:34: ./include/crypto/gf128hash.h”h´K3hjc@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&]”uh1jhjc@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j~@h´K3hjî?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”…”�”}”(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Œ polyval_key”h]”jJ)�”}”(hjä@h]”hŒ polyval_key”…”�”}”(hj Ah²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjAubah}”(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 POLYVAL”h]”hŒPrepared key for POLYVAL”…”�”}”(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´K8hj)Ah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjß@h²hh³j÷@h´K,ubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jDAj™jDAjš‰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”…”�”}”(hjPAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjLAubhŒ:”…”�”}”(hjLAh²hh³Nh´Nube•h}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KhjHAubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjzAh]”hŒMembers”…”�”}”(hj|Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjxAubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KFhjHAubjì)�”}”(hhh]”(jñ)�”}”(hŒ4``h_powers`` Powers of the hash key H^8 through H^1 ”h]”(j÷)�”}”(hŒ ``h_powers``”h]”jý)�”}”(hj™Ah]”hŒh_powers”…”�”}”(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´KEhj“Aubj)�”}”(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²Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j®Ah´KEhj¯Aubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj“Aubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j®Ah´KEhj�Aubjñ)�”}”(hŒ``h`` The hash key H”h]”(j÷)�”}”(hŒ``h``”h]”jý)�”}”(hjÒAh]”hŒh”…”�”}”(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´KGhjÌAubj)�”}”(hhh]”hï)�”}”(hŒThe hash key H”h]”hŒThe hash key H”…”�”}”(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´KHhjèAubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÌAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jçAh´KGhj�Aubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjHAubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjØ<h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjBh]”hŒ Description”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjBubah}”(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.”…”�”}”(hj+Bh²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:Bh²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”…”�”}”(hjbBh²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´KCubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjpBh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj^Bh²hh³joBh´KCubjD)�”}”(hŒ ghash_ctx”h]”jJ)�”}”(hj\Bh]”hŒ ghash_ctx”…”�”}”(hj‚Bh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj~Bubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj^Bh²hh³joBh´KCubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjZBh²hh³joBh´KCubah}”(h]”jUBah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³joBh´KChjWBh²hubjv)�”}”(hhh]”hï)�”}”(hŒ#Context for computing a GHASH value”h]”hŒ#Context for computing a GHASH value”…”�”}”(hj¤Bh²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¡Bh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjWBh²hh³joBh´KCubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j¼Bj™j¼Bjš‰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ÈBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÄBubhŒ:”…”�”}”(hjÄBh²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ÀBubjÃ)�”}”(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áBsbah}”(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ÀBubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjòBh]”hŒMembers”…”�”}”(hjôBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjðBubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KYhjÀBubjì)�”}”(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ý)�”}”(hjCh]”hŒkey”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KPhj Cubj)�”}”(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.”…”�”}”(hj*Ch²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´KOhj'Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj Cubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j&Ch´KPhjCubjñ)�”}”(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ý)�”}”(hjKCh]”hŒacc”…”�”}”(hjMCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjICubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KRhjECubj)�”}”(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.”…”�”}”(hjdCh²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´KQhjaCubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjECubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j`Ch´KRhjCubjñ)�”}”(hŒI``partial`` Number of data bytes processed so far modulo GHASH_BLOCK_SIZE”h]”(j÷)�”}”(hŒ ``partial``”h]”jý)�”}”(hj…Ch]”hŒpartial”…”�”}”(hj‡Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjƒCubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KRhjCubj)�”}”(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žCh²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›Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jšCh´KRhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÀBubeh}”(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ßCh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÛCh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KYubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíCh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛCh²hh³jìCh´KYubjD)�”}”(hŒ polyval_ctx”h]”jJ)�”}”(hjÙCh]”hŒ polyval_ctx”…”�”}”(hjÿCh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjûCubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÛCh²hh³jìCh´KYubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj×Ch²hh³jìCh´KYubah}”(h]”jÒCah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jìCh´KYhjÔCh²hubjv)�”}”(hhh]”hï)�”}”(hŒ%Context for computing a POLYVAL value”h]”hŒ%Context for computing a POLYVAL value”…”�”}”(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´K[hjDh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÔCh²hh³jìCh´KYubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j9Dj™j9Djš‰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”…”�”}”(hjEDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjADubhŒ:”…”�”}”(hjADh²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=DubjÃ)�”}”(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^Dsbah}”(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=Dubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjoDh]”hŒMembers”…”�”}”(hjqDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjmDubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kghj=Dubjì)�”}”(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ŽDh]”hŒkey”…”�”}”(hj�Dh²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´K^hjˆDubj)�”}”(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§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´K]hj¤Dubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjˆDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j£Dh´K^hj…Dubjñ)�”}”(hŒ``acc`` The accumulator ”h]”(j÷)�”}”(hŒ``acc``”h]”jý)�”}”(hjÈDh]”hŒacc”…”�”}”(hjÊDh²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´K_hjÂDubj)�”}”(hhh]”hï)�”}”(hŒThe accumulator”h]”hŒThe accumulator”…”�”}”(hjáDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÝDh´K_hjÞDubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÂDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÝDh´K_hj…Dubjñ)�”}”(hŒK``partial`` Number of data bytes processed so far modulo POLYVAL_BLOCK_SIZE”h]”(j÷)�”}”(hŒ ``partial``”h]”jý)�”}”(hjEh]”hŒpartial”…”�”}”(hjEh²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´K_hjûDubj)�”}”(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”…”�”}”(hjEh²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`hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjûDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jEh´K_hj…Dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj=Dubeh}”(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[Eh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjWEh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Khubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjEh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjWEh²hh³jiEh´KhubjD)�”}”(hŒghash_preparekey”h]”jJ)�”}”(hŒghash_preparekey”h]”hŒghash_preparekey”…”�”}”(hj|Eh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxEubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjWEh²hh³jiEh´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˜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Œ ghash_key”h]”hŒ ghash_key”…”�”}”(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)�”}”j j~EsbŒc.ghash_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Ïhj�EubjÐ)�”}”(hŒ"const u8 raw_key[GHASH_BLOCK_SIZE]”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj Fh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjFubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjFubh)�”}”(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ÒEŒc.ghash_preparekey”†”asbuh1hhjFubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFFh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjFubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjTFh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjFubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjbFh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjFubh)�”}”(hhh]”jJ)�”}”(hŒGHASH_BLOCK_SIZE”h]”hŒGHASH_BLOCK_SIZE”…”�”}”(hjrFh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjoFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jtFŒmodname”NŒ classname”Nj j)�”}”j]”jÒEŒc.ghash_preparekey”†”asbuh1hhjFubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj�Fh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjFubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj�Eubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjWEh²hh³jiEh´Khubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjSEh²hh³jiEh´Khubah}”(h]”jNEah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jiEh´KhhjPEh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a GHASH key”h]”hŒPrepare a GHASH 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´Khhj¶Fh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjPEh²hh³jiEh´Khubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÑFj™jÑFjš‰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Û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´KlhjÕFubjì)�”}”(hhh]”(jñ)�”}”(hŒC``struct ghash_key *key`` (output) The key structure to initialize ”h]”(j÷)�”}”(hŒ``struct ghash_key *key``”h]”jý)�”}”(hjúFh]”hŒstruct ghash_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´KihjôFubj)�”}”(hhh]”hï)�”}”(hŒ((output) The key structure to initialize”h]”hŒ((output) The key structure to initialize”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jGh´KihjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjôFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jGh´KihjñFubjñ)�”}”(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ý)�”}”(hj3Gh]”hŒ"const u8 raw_key[GHASH_BLOCK_SIZE]”…”�”}”(hj5Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj1Gubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kjhj-Gubj)�”}”(hhh]”hï)�”}”(hŒThe raw hash key”h]”hŒThe raw hash key”…”�”}”(hjLGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jHGh´KjhjIGubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-Gubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jHGh´KjhjñFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÕFubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjnGh]”hŒ Description”…”�”}”(hjpGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjlGubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KlhjÕFubhï)�”}”(hŒ0Initialize a GHASH key structure from a raw key.”h]”hŒ0Initialize a GHASH key structure from a raw key.”…”�”}”(hj„Gh²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´KkhjÕ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´KmhjÕFubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj«Gh²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´KnhjÕFubeh}”(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Ú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´Ktubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéGh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÖGh²hh³jèGh´KtubjD)�”}”(hŒpolyval_preparekey”h]”jJ)�”}”(hŒpolyval_preparekey”h]”hŒpolyval_preparekey”…”�”}”(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´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”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjHubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$Hh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjHubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_key”h]”hŒ polyval_key”…”�”}”(hj5Hh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj2Hubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j7HŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jýGsbŒc.polyval_preparekey”†”asbuh1hhjHubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUHh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjHubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjcHh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjHubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjpHh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjHubjÐ)�”}”(hŒ$const u8 raw_key[POLYVAL_BLOCK_SIZE]”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj‰Hh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj…Hubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Hh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj…Hubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(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]”jQHŒc.polyval_preparekey”†”asbuh1hhj…Hubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅHh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj…HubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjÓHh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj…Hubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjáHh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj…Hubh)�”}”(hhh]”jJ)�”}”(hŒPOLYVAL_BLOCK_SIZE”h]”hŒPOLYVAL_BLOCK_SIZE”…”�”}”(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]”jQHŒc.polyval_preparekey”†”asbuh1hhj…Hubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj…Hubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjHubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÖGh²hh³jèGh´Ktubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÒGh²hh³jèGh´Ktubah}”(h]”jÍGah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jèGh´KthjÏGh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a POLYVAL key”h]”hŒPrepare a POLYVAL key”…”�”}”(hj8Ih²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´Kthj5Ih²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÏGh²hh³jèGh´Ktubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jPIj™jPIjš‰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¨)�”}”(hjZIh]”hŒ Parameters”…”�”}”(hj\Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjXIubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KxhjTIubjì)�”}”(hhh]”(jñ)�”}”(hŒE``struct polyval_key *key`` (output) The key structure to initialize ”h]”(j÷)�”}”(hŒ``struct polyval_key *key``”h]”jý)�”}”(hjyIh]”hŒstruct polyval_key *key”…”�”}”(hj{Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjwIubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KuhjsIubj)�”}”(hhh]”hï)�”}”(hŒ((output) The key structure to initialize”h]”hŒ((output) The key structure to initialize”…”�”}”(hj’Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŽIh´Kuhj�Iubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjsIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŽIh´KuhjpIubjñ)�”}”(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²Ih]”hŒ$const u8 raw_key[POLYVAL_BLOCK_SIZE]”…”�”}”(hj´Ih²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´Kvhj¬Iubj)�”}”(hhh]”hï)�”}”(hŒThe raw hash key”h]”hŒThe raw hash key”…”�”}”(hjËIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÇIh´KvhjÈIubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬Iubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÇIh´KvhjpIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjTIubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjíIh]”hŒ Description”…”�”}”(hjïIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjëIubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KxhjTIubhï)�”}”(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.”…”�”}”(hjJh²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´KwhjTIubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjJh]”hŒContext”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K{hjTIubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj*Jh²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|hjTIubeh}”(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”…”�”}”(hjYJh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjUJh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K‚ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhJh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjUJh²hh³jgJh´K‚ubjD)�”}”(hŒ ghash_init”h]”jJ)�”}”(hŒ ghash_init”h]”hŒ ghash_init”…”�”}”(hjzJh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjvJubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjUJh²hh³jgJh´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–Jh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj’Jubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£Jh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj’Jubh)�”}”(hhh]”jJ)�”}”(hŒ ghash_ctx”h]”hŒ ghash_ctx”…”�”}”(hj´Jh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj±Jubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¶JŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j|JsbŒ c.ghash_init”†”asbuh1hhj’Jubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔJh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj’Jubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjâJh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj’JubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjïJh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj’Jubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŽJubjÐ)�”}”(hŒconst struct ghash_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjKubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjKubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj#Kh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjKubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0Kh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjKubh)�”}”(hhh]”jJ)�”}”(hŒ ghash_key”h]”hŒ ghash_key”…”�”}”(hjAKh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj>Kubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jCKŒmodname”NŒ classname”Nj j)�”}”j]”jÐJŒ c.ghash_init”†”asbuh1hhjKubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_Kh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjKubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjmKh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjKubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjzKh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjKubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŽJubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjUJh²hh³jgJh´K‚ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjQJh²hh³jgJh´K‚ubah}”(h]”jLJah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jgJh´K‚hjNJh²hubjv)�”}”(hhh]”hï)�”}”(hŒ,Initialize a GHASH context for a new message”h]”hŒ,Initialize a GHASH context for a new message”…”�”}”(hj¤Kh²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¡Kh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjNJh²hh³jgJh´K‚ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¼Kj™j¼Kjš‰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¨)�”}”(hjÆKh]”hŒ Parameters”…”�”}”(hjÈKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÄKubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K†hjÀKubjì)�”}”(hhh]”(jñ)�”}”(hŒ4``struct ghash_ctx *ctx`` The context to initialize ”h]”(j÷)�”}”(hŒ``struct ghash_ctx *ctx``”h]”jý)�”}”(hjåKh]”hŒstruct ghash_ctx *ctx”…”�”}”(hjçKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjãKubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KƒhjßKubj)�”}”(hhh]”hï)�”}”(hŒThe context to initialize”h]”hŒThe context to initialize”…”�”}”(hjþKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³júKh´KƒhjûKubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³júKh´KƒhjÜKubjñ)�”}”(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ý)�”}”(hjLh]”hŒconst struct ghash_key *key”…”�”}”(hj Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K„hjLubj)�”}”(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.”…”�”}”(hj7Lh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j3Lh´K„hj4Lubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j3Lh´K„hjÜKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÀKubeh}”(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”…”�”}”(hjwLh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjsLh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KŽubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†Lh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjsLh²hh³j…Lh´KŽubjD)�”}”(hŒ polyval_init”h]”jJ)�”}”(hŒ polyval_init”h]”hŒ polyval_init”…”�”}”(hj˜Lh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj”Lubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjsLh²hh³j…Lh´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´Lh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj°Lubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁLh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj°Lubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_ctx”h]”hŒ polyval_ctx”…”�”}”(hjÒLh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÏLubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÔLŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jšLsbŒc.polyval_init”†”asbuh1hhj°Lubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjòLh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj°Lubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj°LubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj Mh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj°Lubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¬LubjÐ)�”}”(hŒconst struct polyval_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hj&Mh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj"Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3Mh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj"Mubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjAMh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj"Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNMh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj"Mubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_key”h]”hŒ polyval_key”…”�”}”(hj_Mh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj\Mubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jaMŒmodname”NŒ classname”Nj j)�”}”j]”jîLŒc.polyval_init”†”asbuh1hhj"Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}Mh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj"Mubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj‹Mh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj"MubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj˜Mh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj"Mubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj¬Lubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjsLh²hh³j…Lh´KŽubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjoLh²hh³j…Lh´KŽubah}”(h]”jjLah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j…Lh´KŽhjlLh²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Initialize a POLYVAL context for a new message”h]”hŒ.Initialize a POLYVAL context for a new message”…”�”}”(hjÂMh²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¿Mh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjlLh²hh³j…Lh´KŽubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÚMj™jÚMjš‰j›‰jœ‰uh1jh²hhjØ<h³Nh´Nubjž)�”}”(hŒí**Parameters** ``struct polyval_ctx *ctx`` The context to initialize ``const struct polyval_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¨)�”}”(hjäMh]”hŒ Parameters”…”�”}”(hjæMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjâMubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K’hjÞMubjì)�”}”(hhh]”(jñ)�”}”(hŒ6``struct polyval_ctx *ctx`` The context to initialize ”h]”(j÷)�”}”(hŒ``struct polyval_ctx *ctx``”h]”jý)�”}”(hjNh]”hŒstruct polyval_ctx *ctx”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K�hjýMubj)�”}”(hhh]”hï)�”}”(hŒThe context to initialize”h]”hŒThe context to initialize”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jNh´K�hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jNh´K�hjúMubjñ)�”}”(hŒ ``const struct polyval_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 polyval_key *key``”h]”jý)�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj:Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K�hj6Nubj)�”}”(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.”…”�”}”(hjUNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jQNh´K�hjRNubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jQNh´K�hjúMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÞMubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjØ<h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ&polyval_import_blkaligned (C function)”Œc.polyval_import_blkaligned”hNt”auh1hþhjØ<h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒwvoid polyval_import_blkaligned (struct polyval_ctx *ctx, const struct polyval_key *key, const struct polyval_elem *acc)”h]”j)�”}”(hŒvvoid polyval_import_blkaligned(struct polyval_ctx *ctx, const struct polyval_key *key, const struct polyval_elem *acc)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj•Nh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj‘Nh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kšubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤Nh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj‘Nh²hh³j£Nh´KšubjD)�”}”(hŒpolyval_import_blkaligned”h]”jJ)�”}”(hŒpolyval_import_blkaligned”h]”hŒpolyval_import_blkaligned”…”�”}”(hj¶Nh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj²Nubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj‘Nh²hh³j£Nh´KšubjÊ)�”}”(hŒX(struct polyval_ctx *ctx, const struct polyval_key *key, const struct polyval_elem *acc)”h]”(jÐ)�”}”(hŒstruct polyval_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjÒNh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÎNubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjßNh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÎNubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_ctx”h]”hŒ polyval_ctx”…”�”}”(hjðNh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjíNubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jòNŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j¸NsbŒc.polyval_import_blkaligned”†”asbuh1hhjÎNubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÎNubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÎNubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj+Oh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÎNubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊNubjÐ)�”}”(hŒconst struct polyval_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjDOh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj@Oubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQOh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@Oubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj_Oh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj@Oubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlOh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@Oubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_key”h]”hŒ polyval_key”…”�”}”(hj}Oh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjzOubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jOŒmodname”NŒ classname”Nj j)�”}”j]”j OŒc.polyval_import_blkaligned”†”asbuh1hhj@Oubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›Oh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj@Oubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj©Oh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj@OubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj¶Oh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj@Oubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊNubjÐ)�”}”(hŒconst struct polyval_elem *acc”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÏOh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjËOubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜOh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjËOubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjêOh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjËOubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷Oh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjËOubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_elem”h]”hŒ polyval_elem”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjPubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j PŒmodname”NŒ classname”Nj j)�”}”j]”j OŒc.polyval_import_blkaligned”†”asbuh1hhjËOubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&Ph²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjËOubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj4Ph²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjËOubjJ)�”}”(hŒacc”h]”hŒacc”…”�”}”(hjAPh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjËOubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÊNubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj‘Nh²hh³j£Nh´Kšubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj�Nh²hh³j£Nh´Kšubah}”(h]”jˆNah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j£Nh´KšhjŠNh²hubjv)�”}”(hhh]”hï)�”}”(hŒ"Import a POLYVAL accumulator value”h]”hŒ"Import a POLYVAL accumulator value”…”�”}”(hjkPh²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šhjhPh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjŠNh²hh³j£Nh´Kšubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jƒPj™jƒPjš‰j›‰jœ‰uh1jh²hhjØ<h³Nh´Nubjž)�”}”(hX¯**Parameters** ``struct polyval_ctx *ctx`` The context to initialize ``const struct polyval_key *key`` The key to import. Note that a pointer to the key is saved in the context, so the key must live at least as long as the context. ``const struct polyval_elem *acc`` The accumulator value to import. **Description** This imports an accumulator that was saved by polyval_export_blkaligned(). The same key must be used.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj�Ph]”hŒ Parameters”…”�”}”(hj�Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‹Pubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Kžhj‡Pubjì)�”}”(hhh]”(jñ)�”}”(hŒ6``struct polyval_ctx *ctx`` The context to initialize ”h]”(j÷)�”}”(hŒ``struct polyval_ctx *ctx``”h]”jý)�”}”(hj¬Ph]”hŒstruct polyval_ctx *ctx”…”�”}”(hj®Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjªPubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K›hj¦Pubj)�”}”(hhh]”hï)�”}”(hŒThe context to initialize”h]”hŒThe context to initialize”…”�”}”(hjÅPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÁPh´K›hjÂPubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¦Pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÁPh´K›hj£Pubjñ)�”}”(hŒ¤``const struct polyval_key *key`` The key to import. 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 polyval_key *key``”h]”jý)�”}”(hjåPh]”hŒconst struct polyval_key *key”…”�”}”(hjçPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjãPubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K�hjßPubj)�”}”(hhh]”hï)�”}”(hŒ�The key to import. 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 import. 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þPh²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ûPubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³júPh´K�hj£Pubjñ)�”}”(hŒD``const struct polyval_elem *acc`` The accumulator value to import. ”h]”(j÷)�”}”(hŒ"``const struct polyval_elem *acc``”h]”jý)�”}”(hjQh]”hŒconst struct polyval_elem *acc”…”�”}”(hj!Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KžhjQubj)�”}”(hhh]”hï)�”}”(hŒ The accumulator value to import.”h]”hŒ The accumulator value to import.”…”�”}”(hj8Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j4Qh´Kžhj5Qubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j4Qh´Kžhj£Pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj‡Pubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjZQh]”hŒ Description”…”�”}”(hj\Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjXQubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K hj‡Pubhï)�”}”(hŒeThis imports an accumulator that was saved by polyval_export_blkaligned(). The same key must be used.”h]”hŒeThis imports an accumulator that was saved by polyval_export_blkaligned(). The same key must be used.”…”�”}”(hjpQh²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‡Pubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjØ<h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ&polyval_export_blkaligned (C function)”Œc.polyval_export_blkaligned”hNt”auh1hþhjØ<h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒXvoid polyval_export_blkaligned (const struct polyval_ctx *ctx, struct polyval_elem *acc)”h]”j)�”}”(hŒWvoid polyval_export_blkaligned(const struct polyval_ctx *ctx, struct polyval_elem *acc)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŸQh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj›Qh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K¬ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®Qh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj›Qh²hh³j­Qh´K¬ubjD)�”}”(hŒpolyval_export_blkaligned”h]”jJ)�”}”(hŒpolyval_export_blkaligned”h]”hŒpolyval_export_blkaligned”…”�”}”(hjÀQh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¼Qubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj›Qh²hh³j­Qh´K¬ubjÊ)�”}”(hŒ9(const struct polyval_ctx *ctx, struct polyval_elem *acc)”h]”(jÐ)�”}”(hŒconst struct polyval_ctx *ctx”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjÜQh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjØQubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéQh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØQubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj÷Qh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjØQubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØQubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_ctx”h]”hŒ polyval_ctx”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjRubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jRŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÂQsbŒc.polyval_export_blkaligned”†”asbuh1hhjØQubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5Rh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØQubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjCRh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjØQubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjPRh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjØQubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔQubjÐ)�”}”(hŒstruct polyval_elem *acc”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjiRh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjeRubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvRh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjeRubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_elem”h]”hŒ polyval_elem”…”�”}”(hj‡Rh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj„Rubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j‰RŒmodname”NŒ classname”Nj j)�”}”j]”j1RŒc.polyval_export_blkaligned”†”asbuh1hhjeRubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥Rh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjeRubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj³Rh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjeRubjJ)�”}”(hŒacc”h]”hŒacc”…”�”}”(hjÀRh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjeRubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÔQubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj›Qh²hh³j­Qh´K¬ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj—Qh²hh³j­Qh´K¬ubah}”(h]”j’Qah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j­Qh´K¬hj”Qh²hubjv)�”}”(hhh]”hï)�”}”(hŒ"Export a POLYVAL accumulator value”h]”hŒ"Export a POLYVAL accumulator value”…”�”}”(hjêRh²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çRh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj”Qh²hh³j­Qh´K¬ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jSj™jSjš‰j›‰jœ‰uh1jh²hhjØ<h³Nh´Nubjž)�”}”(hXH**Parameters** ``const struct polyval_ctx *ctx`` The context to export the accumulator value from ``struct polyval_elem *acc`` (output) The exported accumulator value **Description** This exports the accumulator from a POLYVAL context. The number of data bytes processed so far must be a multiple of POLYVAL_BLOCK_SIZE.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj Sh]”hŒ Parameters”…”�”}”(hjSh²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°hjSubjì)�”}”(hhh]”(jñ)�”}”(hŒS``const struct polyval_ctx *ctx`` The context to export the accumulator value from ”h]”(j÷)�”}”(hŒ!``const struct polyval_ctx *ctx``”h]”jý)�”}”(hj+Sh]”hŒconst struct polyval_ctx *ctx”…”�”}”(hj-Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj)Subah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K­hj%Subj)�”}”(hhh]”hï)�”}”(hŒ0The context to export the accumulator value from”h]”hŒ0The context to export the accumulator value from”…”�”}”(hjDSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j@Sh´K­hjASubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj%Subeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j@Sh´K­hj"Subjñ)�”}”(hŒE``struct polyval_elem *acc`` (output) The exported accumulator value ”h]”(j÷)�”}”(hŒ``struct polyval_elem *acc``”h]”jý)�”}”(hjdSh]”hŒstruct polyval_elem *acc”…”�”}”(hjfSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjbSubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K®hj^Subj)�”}”(hhh]”hï)�”}”(hŒ'(output) The exported accumulator value”h]”hŒ'(output) The exported accumulator value”…”�”}”(hj}Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jySh´K®hjzSubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj^Subeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jySh´K®hj"Subeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjSubhï)�”}”(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°hjSubhï)�”}”(hŒ‰This exports the accumulator from a POLYVAL context. The number of data bytes processed so far must be a multiple of POLYVAL_BLOCK_SIZE.”h]”hŒ‰This exports the accumulator from a POLYVAL context. The number of data bytes processed so far must be a multiple of POLYVAL_BLOCK_SIZE.”…”�”}”(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¯hjSubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjØ<h²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œghash_update (C function)”Œc.ghash_update”hNt”auh1hþhjØ<h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒEvoid ghash_update (struct ghash_ctx *ctx, const u8 *data, size_t len)”h]”j)�”}”(hŒDvoid ghash_update(struct ghash_ctx *ctx, const u8 *data, size_t len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjäSh²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Œ ”…”�”}”(hjóSh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjàSh²hh³jòSh´KºubjD)�”}”(hŒ ghash_update”h]”jJ)�”}”(hŒ ghash_update”h]”hŒ ghash_update”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjTubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjàSh²hh³jòSh´KºubjÊ)�”}”(hŒ3(struct ghash_ctx *ctx, const u8 *data, size_t len)”h]”(jÐ)�”}”(hŒstruct ghash_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj!Th²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjTubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.Th²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjTubh)�”}”(hhh]”jJ)�”}”(hŒ ghash_ctx”h]”hŒ ghash_ctx”…”�”}”(hj?Th²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjThe data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(hj(Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j$Vh´K½hj%Vubah}”(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ëhjxUubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjJVh]”hŒ Description”…”�”}”(hjLVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjHVubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´K¿hjxUubhï)�”}”(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¾hjxUubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjqVh]”hŒContext”…”�”}”(hjsVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjoVubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÀhjxUubhï)�”}”(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ÁhjxUubeh}”(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”…”�”}”(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Œpolyval_update”h]”jJ)�”}”(hŒpolyval_update”h]”hŒpolyval_update”…”�”}”(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Œ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óVh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjïVubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjïVubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_ctx”h]”hŒ polyval_ctx”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjWubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jWŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÙVsbŒc.polyval_update”†”asbuh1hhjïVubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1Wh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjïVubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj?Wh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjïVubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjLWh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjïVubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjëVubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjeWh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjaWubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrWh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjaWubh)�”}”(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]”j-WŒc.polyval_update”†”asbuh1hhjaWubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡Wh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjaWubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¯Wh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjaWubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj¼Wh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjaWubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjëVubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(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-WŒc.polyval_update”†”asbuh1hhjÑWubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöWh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÑWubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÑWubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjëVubeh}”(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Œ*Update a POLYVAL context with message data”h]”hŒ*Update a POLYVAL context with message data”…”�”}”(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Æhj+Xh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj«Vh²hh³jÄVh´KÆubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jFXj™jFXjš‰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¨)�”}”(hjPXh]”hŒ Parameters”…”�”}”(hjRXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjNXubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÊhjJXubjì)�”}”(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ý)�”}”(hjoXh]”hŒstruct polyval_ctx *ctx”…”�”}”(hjqXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjmXubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÇhjiXubj)�”}”(hhh]”hï)�”}”(hŒ1The context to update; must have been initialized”h]”hŒ1The context to update; must have been initialized”…”�”}”(hjˆXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j„Xh´KÇhj…Xubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjiXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j„Xh´KÇhjfXubjñ)�”}”(hŒ$``const u8 *data`` The message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj¨Xh]”hŒconst u8 *data”…”�”}”(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 message data”h]”hŒThe message data”…”�”}”(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ÈhjfXubjñ)�”}”(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áXh]”hŒ size_t len”…”�”}”(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 data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(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ÉhjfXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjJXubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjYh]”hŒ Description”…”�”}”(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ËhjJXubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj2Yh²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ÊhjJXubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjCYh]”hŒContext”…”�”}”(hjEYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjAYubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÌhjJXubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjYYh²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ÍhjJXubeh}”(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ˆYh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj„Yh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´KÒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—Yh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj„Yh²hh³j–Yh´KÒubjD)�”}”(hŒ ghash_final”h]”jJ)�”}”(hŒ ghash_final”h]”hŒ ghash_final”…”�”}”(hj©Yh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¥Yubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj„Yh²hh³j–Yh´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”…”�”}”(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Œ ghash_ctx”h]”hŒ ghash_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 j«YsbŒ c.ghash_final”†”asbuh1hhjÁYubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÁYubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÁYubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÁYubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj½YubjÐ)�”}”(hŒu8 out[GHASH_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj:Zh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj7Zubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jThe data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(hjtah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jpah´Kñhjqaubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjUaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jpah´Kñhjà`ubjñ)�”}”(hŒ.``u8 out[GHASH_BLOCK_SIZE]`` The output value ”h]”(j÷)�”}”(hŒ``u8 out[GHASH_BLOCK_SIZE]``”h]”jý)�”}”(hj”ah]”hŒu8 out[GHASH_BLOCK_SIZE]”…”�”}”(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ŒThe output value”h]”hŒThe output value”…”�”}”(hj­ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j©ah´Kòhjªaubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŽaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j©ah´Kòhjà`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÄ`ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÏah]”hŒContext”…”�”}”(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´KôhjÄ`ubhï)�”}”(hŒ Any context.”h]”hŒ Any 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Ä`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”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjbh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#bh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjbh²hh³j"bh´MubjD)�”}”(hŒpolyval”h]”jJ)�”}”(hŒpolyval”h]”hŒpolyval”…”�”}”(hj5bh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj1bubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjbh²hh³j"bh´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”…”�”}”(hjQbh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjMbubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^bh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjMbubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjlbh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjMbubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjybh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjMbubh)�”}”(hhh]”jJ)�”}”(hŒ polyval_key”h]”hŒ polyval_key”…”�”}”(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]”j)�”}”j j7bsbŒ c.polyval”†”asbuh1hhjMbubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªbh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjMbubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¸bh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjMbubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjÅbh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjMbubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjIbubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(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Œu8”h]”hŒu8”…”�”}”(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]”j¦bŒ c.polyval”†”asbuh1hhjÚbubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjch²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Œdata”h]”hŒdata”…”�”}”(hj5ch²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÚbubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjIbubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjQch²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjNcubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jScŒmodname”NŒ classname”Nj j)�”}”j]”j¦bŒ c.polyval”†”asbuh1hhjJcubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoch²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjJcubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj}ch²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjJcubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjIbubjÐ)�”}”(hŒu8 out[POLYVAL_BLOCK_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(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]”j¦bŒ c.polyval”†”asbuh1hhj’cubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·ch²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj’cubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjÅch²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj’cubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjÓch²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj’cubh)�”}”(hhh]”jJ)�”}”(hŒPOLYVAL_BLOCK_SIZE”h]”hŒPOLYVAL_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]”j¦bŒ c.polyval”†”asbuh1hhj’cubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj’cubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjIbubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjbh²hh³j"bh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj bh²hh³j"bh´Mubah}”(h]”jbah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j"bh´Mhj bh²hubjv)�”}”(hhh]”hï)�”}”(hŒCompute a POLYVAL value”h]”hŒCompute a POLYVAL value”…”�”}”(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´Mhj'dh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj bh²hh³j"bh´Mubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jBdj™jBdjš‰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¨)�”}”(hjLdh]”hŒ Parameters”…”�”}”(hjNdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjJdubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´MhjFdubjì)�”}”(hhh]”(jñ)�”}”(hŒ3``const struct polyval_key *key`` The prepared key ”h]”(j÷)�”}”(hŒ!``const struct polyval_key *key``”h]”jý)�”}”(hjkdh]”hŒconst struct polyval_key *key”…”�”}”(hjmdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjidubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mhjedubj)�”}”(hhh]”hï)�”}”(hŒThe prepared key”h]”hŒThe prepared key”…”�”}”(hj„dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j€dh´Mhj�dubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjedubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j€dh´Mhjbdubjñ)�”}”(hŒ$``const u8 *data`` The message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj¤dh]”hŒconst u8 *data”…”�”}”(hj¦dh²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´Mhjždubj)�”}”(hhh]”hï)�”}”(hŒThe message data”h]”hŒThe message data”…”�”}”(hj½dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¹dh´Mhjºdubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjždubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¹dh´Mhjbdubjñ)�”}”(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Ýdh]”hŒ size_t len”…”�”}”(hjßdh²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´Mhj×dubj)�”}”(hhh]”hï)�”}”(hŒThe data length in bytes. Doesn’t need to be block-aligned.”…”�”}”(hjödh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jòdh´Mhjódubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj×dubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jòdh´Mhjbdubjñ)�”}”(hŒ0``u8 out[POLYVAL_BLOCK_SIZE]`` The output value ”h]”(j÷)�”}”(hŒ``u8 out[POLYVAL_BLOCK_SIZE]``”h]”jý)�”}”(hjeh]”hŒu8 out[POLYVAL_BLOCK_SIZE]”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´Mhjeubj)�”}”(hhh]”hï)�”}”(hŒThe output value”h]”hŒThe output value”…”�”}”(hj/eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j+eh´Mhj,eubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j+eh´Mhjbdubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjFdubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjQeh]”hŒContext”…”�”}”(hjSeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjOeubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:34: ./include/crypto/gf128hash.h”h´MhjFdubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjgeh²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´MhjFdubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjØ<h²hh³Nh´Nubeh}”(h]”Œghash-and-polyval”ah ]”h"]”Œghash and polyval”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒMD5”h]”hŒMD5”…”�”}”(hjˆeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj…eh²hh³hÇh´K%ubhï)�”}”(hŒ�This API provides support for the MD5 cryptographic hash function and HMAC-MD5. This algorithm is obsolete and is supported only for backwards compatibility.”h]”hŒ�This API provides support for the MD5 cryptographic hash function and HMAC-MD5. This algorithm is obsolete and is supported only for backwards compatibility.”…”�”}”(hj–eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K'hj…eh²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œmd5_ctx (C struct)”Œ c.md5_ctx”hNt”auh1hþhj…eh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒmd5_ctx”h]”j)�”}”(hŒstruct md5_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj½eh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¹eh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËeh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¹eh²hh³jÊeh´KubjD)�”}”(hŒmd5_ctx”h]”jJ)�”}”(hj·eh]”hŒmd5_ctx”…”�”}”(hjÝeh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÙeubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj¹eh²hh³jÊeh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjµeh²hh³jÊeh´Kubah}”(h]”j°eah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÊeh´Khj²eh²hubjv)�”}”(hhh]”hï)�”}”(hŒ&Context for hashing a message with MD5”h]”hŒ&Context for hashing a message with MD5”…”�”}”(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´K&hjüeh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj²eh²hh³jÊeh´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jfj™jfjš‰j›‰jœ‰uh1jh²hhj…eh³Nh´Nubjž)�”}”(hX7**Definition**:: struct md5_ctx { struct md5_block_state state; u64 bytecount; u8 buf[MD5_BLOCK_SIZE]; }; **Members** ``state`` the compression function state ``bytecount`` number of bytes processed so far ``buf`` partial block buffer; bytecount % MD5_BLOCK_SIZE bytes are valid”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj#fh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjfubhŒ:”…”�”}”(hjfh²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*hjfubjÃ)�”}”(hŒdstruct md5_ctx { struct md5_block_state state; u64 bytecount; u8 buf[MD5_BLOCK_SIZE]; };”h]”hŒdstruct md5_ctx { struct md5_block_state state; u64 bytecount; u8 buf[MD5_BLOCK_SIZE]; };”…”�”}”hjhjÌjubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjëjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jçjh´K>hjèjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÌjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jçjh´K>hj�jubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj kh]”hŒ size_t len”…”�”}”(hj kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj kubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K?hjkubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj$kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j kh´K?hj!kubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjkubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j kh´K?hj�jubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjtjubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjFkh]”hŒ Description”…”�”}”(hjHkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjDkubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KAhjtjubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(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´K@hjtjubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjmkh]”hŒContext”…”�”}”(hjokh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjkkubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KBhjtjubhï)�”}”(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´KChjtjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œmd5_final (C function)”Œ c.md5_final”hNt”auh1hþhj…eh²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²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´KHubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁkh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj®kh²hh³jÀkh´KHubjD)�”}”(hŒ md5_final”h]”jJ)�”}”(hŒ md5_final”h]”hŒ md5_final”…”�”}”(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´KHubjÊ)�”}”(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”…”�”}”(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Œmd5_ctx”h]”hŒmd5_ctx”…”�”}”(hj lh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj lubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jlŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jÕksbŒ c.md5_final”†”asbuh1hhjëkubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-lh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjëkubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj;lh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjëkubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjHlh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjëkubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjçkubjÐ)�”}”(hŒu8 out[static MD5_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjdlh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjalubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jflŒmodname”NŒ classname”Nj j)�”}”j]”j)lŒ c.md5_final”†”asbuh1hhj]lubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚lh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj]lubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj�lh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj]lubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjžlh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj]lubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj«lh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj]lubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸lh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj]lubh)�”}”(hhh]”jJ)�”}”(hŒMD5_DIGEST_SIZE”h]”hŒMD5_DIGEST_SIZE”…”�”}”(hjÉlh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÆlubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jËlŒmodname”NŒ classname”Nj j)�”}”j]”j)lŒ c.md5_final”†”asbuh1hhj]lubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjçlh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj]lubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjçkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj®kh²hh³jÀkh´KHubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjªkh²hh³jÀkh´KHubah}”(h]”j¥kah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÀkh´KHhj§kh²hubjv)�”}”(hhh]”hï)�”}”(hŒ&Finish computing an MD5 message digest”h]”hŒ&Finish computing an MD5 message digest”…”�”}”(hjmh²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´KHhj mh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj§kh²hh³jÀkh´KHubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j(mj™j(mjš‰j›‰jœ‰uh1jh²hhj…eh³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¨)�”}”(hj2mh]”hŒ Parameters”…”�”}”(hj4mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj0mubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KLhj,mubjì)�”}”(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ý)�”}”(hjQmh]”hŒstruct md5_ctx *ctx”…”�”}”(hjSmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjOmubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KIhjKmubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jfmh´KIhjgmubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjKmubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jfmh´KIhjHmubjñ)�”}”(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Šmh]”hŒu8 out[static MD5_DIGEST_SIZE]”…”�”}”(hjŒmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjˆmubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KJhj„mubj)�”}”(hhh]”hï)�”}”(hŒ)(output) the resulting MD5 message digest”h]”hŒ)(output) the resulting MD5 message digest”…”�”}”(hj£mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŸmh´KJhj mubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj„mubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŸmh´KJhjHmubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj,mubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÅmh]”hŒ Description”…”�”}”(hjÇmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÃmubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KLhj,mubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”•h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjÛmh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjãmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÛmubhŒ(. So the caller does not need to do it.”…”�”}”(hjÛmh²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´KKhj,mubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjþmh]”hŒContext”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjümubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KMhj,mubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjnh²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´KNhj,mubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œmd5 (C function)”Œc.md5”hNt”auh1hþhj…eh²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”…”�”}”(hjCnh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj?nh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KSubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRnh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj?nh²hh³jQnh´KSubjD)�”}”(hŒmd5”h]”jJ)�”}”(hŒmd5”h]”hŒmd5”…”�”}”(hjdnh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj`nubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj?nh²hh³jQnh´KSubjÊ)�”}”(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€nh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj|nubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�nh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj|nubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjžnh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj›nubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j nŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jfnsbŒc.md5”†”asbuh1hhj|nubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¾nh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj|nubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÌnh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj|nubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÙnh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj|nubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjxnubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjõnh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjònubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j÷nŒmodname”NŒ classname”Nj j)�”}”j]”jºnŒc.md5”†”asbuh1hhjînubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjînubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hj!oh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjînubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjxnubjÐ)�”}”(hŒu8 out[static MD5_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj=oh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj:oubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j?oŒmodname”NŒ classname”Nj j)�”}”j]”jºnŒc.md5”†”asbuh1hhj6oubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[oh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj6oubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjioh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj6oubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjwoh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj6oubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj„oh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj6oubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‘oh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj6oubh)�”}”(hhh]”jJ)�”}”(hŒMD5_DIGEST_SIZE”h]”hŒMD5_DIGEST_SIZE”…”�”}”(hj¢oh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjŸoubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j¤oŒmodname”NŒ classname”Nj j)�”}”j]”jºnŒc.md5”†”asbuh1hhj6oubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÀoh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj6oubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjxnubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj?nh²hh³jQnh´KSubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj;nh²hh³jQnh´KSubah}”(h]”j6nah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jQnh´KShj8nh²hubjv)�”}”(hhh]”hï)�”}”(hŒ&Compute MD5 message digest in one shot”h]”hŒ&Compute MD5 message digest in one shot”…”�”}”(hjéoh²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´KShjæoh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj8nh²hh³jQnh´KSubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jpj™jpjš‰j›‰jœ‰uh1jh²hhj…eh³Nh´Nubjž)�”}”(hŒË**Parameters** ``const u8 *data`` the message data ``size_t len`` the data length in bytes ``u8 out[static MD5_DIGEST_SIZE]`` (output) the resulting MD5 message digest **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj ph]”hŒ Parameters”…”�”}”(hj ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj pubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KWhjpubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj*ph]”hŒconst u8 *data”…”�”}”(hj,ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj(pubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KThj$pubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjCph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j?ph´KThj@pubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj$pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j?ph´KThj!pubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjcph]”hŒ size_t len”…”�”}”(hjeph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjapubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KUhj]pubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj|ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jxph´KUhjypubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj]pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jxph´KUhj!pubjñ)�”}”(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œph]”hŒu8 out[static MD5_DIGEST_SIZE]”…”�”}”(hjžph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjšpubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KVhj–pubj)�”}”(hhh]”hï)�”}”(hŒ)(output) the resulting MD5 message digest”h]”hŒ)(output) the resulting MD5 message digest”…”�”}”(hjµph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j±ph´KVhj²pubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj–pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j±ph´KVhj!pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjpubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj×ph]”hŒContext”…”�”}”(hjÙph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÕpubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KXhjpubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjíph²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´KXhjpubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_md5_key (C struct)”Œc.hmac_md5_key”hNt”auh1hþhj…eh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ hmac_md5_key”h]”j)�”}”(hŒstruct hmac_md5_key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjqh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K]ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*qh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjqh²hh³j)qh´K]ubjD)�”}”(hŒ hmac_md5_key”h]”jJ)�”}”(hjqh]”hŒ hmac_md5_key”…”�”}”(hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kkhj:subjì)�”}”(hhh]”jñ)�”}”(hŒ8``struct hmac_md5_key *key`` The hmac_md5_key to zeroize”h]”(j÷)�”}”(hŒ``struct hmac_md5_key *key``”h]”jý)�”}”(hj_sh]”hŒstruct hmac_md5_key *key”…”�”}”(hjash²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj]subah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´KmhjYsubj)�”}”(hhh]”hï)�”}”(hŒThe hmac_md5_key to zeroize”h]”hŒThe hmac_md5_key to zeroize”…”�”}”(hjxsh²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´Khhjusubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYsubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jtsh´KmhjVsubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj:subeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_md5_ctx (C struct)”Œc.hmac_md5_ctx”hNt”auh1hþhj…eh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ hmac_md5_ctx”h]”j)�”}”(hŒstruct hmac_md5_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj¹sh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjµsh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kmubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇsh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjµsh²hh³jÆsh´KmubjD)�”}”(hŒ hmac_md5_ctx”h]”jJ)�”}”(hj³sh]”hŒ hmac_md5_ctx”…”�”}”(hjÙsh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÕsubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjµsh²hh³jÆsh´Kmubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj±sh²hh³jÆsh´Kmubah}”(h]”j¬sah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÆsh´Kmhj®sh²hubjv)�”}”(hhh]”hï)�”}”(hŒ+Context for computing HMAC-MD5 of a message”h]”hŒ+Context for computing HMAC-MD5 of a message”…”�”}”(hjûsh²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´Kphjøsh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj®sh²hh³jÆsh´Kmubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jtj™jtjš‰j›‰jœ‰uh1jh²hhj…eh³Nh´Nubjž)�”}”(hŒ­**Definition**:: struct hmac_md5_ctx { struct md5_ctx hash_ctx; struct md5_block_state ostate; }; **Members** ``hash_ctx`` private ``ostate`` private”h]”(hï)�”}”(hŒ**Definition**::”h]”(j¨)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjtubhŒ:”…”�”}”(hjth²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´KthjtubjÃ)�”}”(hŒXstruct hmac_md5_ctx { struct md5_ctx hash_ctx; struct md5_block_state ostate; };”h]”hŒXstruct hmac_md5_ctx { struct md5_ctx hash_ctx; struct md5_block_state ostate; };”…”�”}”hj8tsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kvhjtubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjIth]”hŒMembers”…”�”}”(hjKth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjGtubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K{hjtubjì)�”}”(hhh]”(jñ)�”}”(hŒ``hash_ctx`` private ”h]”(j÷)�”}”(hŒ ``hash_ctx``”h]”jý)�”}”(hjhth]”hŒhash_ctx”…”�”}”(hjjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjftubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Krhjbtubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj�th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j}th´Krhj~tubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjbtubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j}th´Krhj_tubjñ)�”}”(hŒ``ostate`` private”h]”(j÷)�”}”(hŒ ``ostate``”h]”jý)�”}”(hj¡th]”hŒostate”…”�”}”(hj£th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjŸtubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Krhj›tubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hjºth²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´Kshj·tubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj›tubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¶th´Krhj_tubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjtubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ!hmac_md5_zeroize_ctx (C function)”Œc.hmac_md5_zeroize_ctx”hNt”auh1hþhj…eh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ4void hmac_md5_zeroize_ctx (struct hmac_md5_ctx *ctx)”h]”j)�”}”(hŒ3void hmac_md5_zeroize_ctx(struct hmac_md5_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjûth²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj÷th²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kzubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj uh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj÷th²hh³j uh´KzubjD)�”}”(hŒhmac_md5_zeroize_ctx”h]”jJ)�”}”(hŒhmac_md5_zeroize_ctx”h]”hŒhmac_md5_zeroize_ctx”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjuubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj÷th²hh³j uh´KzubjÊ)�”}”(hŒ(struct hmac_md5_ctx *ctx)”h]”jÐ)�”}”(hŒstruct hmac_md5_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj8uh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj4uubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEuh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4uubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_md5_ctx”h]”hŒ hmac_md5_ctx”…”�”}”(hjVuh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjSuubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jXuŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jusbŒc.hmac_md5_zeroize_ctx”†”asbuh1hhj4uubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvuh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4uubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj„uh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj4uubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj‘uh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj4uubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj0uubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj÷th²hh³j uh´Kzubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjóth²hh³j uh´Kzubah}”(h]”jîtah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j uh´Kzhjðth²hubjv)�”}”(hhh]”hï)�”}”(hŒ!Zeroize an hmac_md5_ctx structure”h]”hŒ!Zeroize an hmac_md5_ctx structure”…”�”}”(hj»uh²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´Kzhj¸uh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjðth²hh³j uh´Kzubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÓuj™jÓujš‰j›‰jœ‰uh1jh²hhj…eh³Nh´Nubjž)�”}”(hŒR**Parameters** ``struct hmac_md5_ctx *ctx`` The hmac_md5_ctx context to zeroize”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³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K~hj×uubjì)�”}”(hhh]”jñ)�”}”(hŒ@``struct hmac_md5_ctx *ctx`` The hmac_md5_ctx context to zeroize”h]”(j÷)�”}”(hŒ``struct hmac_md5_ctx *ctx``”h]”jý)�”}”(hjüuh]”hŒstruct hmac_md5_ctx *ctx”…”�”}”(hjþuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjúuubah}”(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öuubj)�”}”(hhh]”hï)�”}”(hŒ#The hmac_md5_ctx context to zeroize”h]”hŒ#The hmac_md5_ctx context to zeroize”…”�”}”(hjvh²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{hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjöuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jvh´K€hjóuubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj×uubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ hmac_md5_preparekey (C function)”Œc.hmac_md5_preparekey”hNt”auh1hþhj…eh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒZvoid hmac_md5_preparekey (struct hmac_md5_key *key, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒYvoid hmac_md5_preparekey(struct hmac_md5_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjVvh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjRvh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´Kƒubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjevh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjRvh²hh³jdvh´KƒubjD)�”}”(hŒhmac_md5_preparekey”h]”jJ)�”}”(hŒhmac_md5_preparekey”h]”hŒhmac_md5_preparekey”…”�”}”(hjwvh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjsvubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjRvh²hh³jdvh´KƒubjÊ)�”}”(hŒA(struct hmac_md5_key *key, const u8 *raw_key, size_t raw_key_len)”h]”(jÐ)�”}”(hŒstruct hmac_md5_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj“vh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj�vubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj vh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�vubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_md5_key”h]”hŒ hmac_md5_key”…”�”}”(hj±vh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj®vubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j³vŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jyvsbŒc.hmac_md5_preparekey”†”asbuh1hhj�vubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑvh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�vubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjßvh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj�vubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjìvh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�vubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj‹vubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjwubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjwubh)�”}”(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]”jÍvŒc.hmac_md5_preparekey”†”asbuh1hhjwubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAwh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjwubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjOwh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjwubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj\wh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj‹vubjÐ)�”}”(hŒsize_t raw_key_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hjxwh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjuwubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jzwŒmodname”NŒ classname”Nj j)�”}”j]”jÍvŒc.hmac_md5_preparekey”†”asbuh1hhjqwubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–wh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjqwubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj¤wh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjqwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj‹vubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjRvh²hh³jdvh´Kƒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjNvh²hh³jdvh´Kƒubah}”(h]”jIvah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jdvh´KƒhjKvh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a key for HMAC-MD5”h]”hŒPrepare a key for HMAC-MD5”…”�”}”(hjÎwh²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Ëwh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjKvh²hh³jdvh´Kƒubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jæwj™jæwjš‰j›‰jœ‰uh1jh²hhj…eh³Nh´Nubjž)�”}”(hXs**Parameters** ``struct hmac_md5_key *key`` (output) the key structure to initialize ``const u8 *raw_key`` the raw HMAC-MD5 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_md5_key and the raw key once they are no longer needed. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjðwh]”hŒ Parameters”…”�”}”(hjòwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjîwubah}”(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êwubjì)�”}”(hhh]”(jñ)�”}”(hŒF``struct hmac_md5_key *key`` (output) the key structure to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_md5_key *key``”h]”jý)�”}”(hjxh]”hŒstruct hmac_md5_key *key”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj xubah}”(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 xubj)�”}”(hhh]”hï)�”}”(hŒ((output) the key structure to initialize”h]”hŒ((output) the key structure to initialize”…”�”}”(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„hjxubjñ)�”}”(hŒ+``const u8 *raw_key`` the raw HMAC-MD5 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjHxh]”hŒconst u8 *raw_key”…”�”}”(hjJxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjFxubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K…hjBxubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-MD5 key”h]”hŒthe raw HMAC-MD5 key”…”�”}”(hjaxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j]xh´K…hj^xubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjBxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j]xh´K…hjxubjñ)�”}”(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�xh]”hŒsize_t raw_key_len”…”�”}”(hjƒxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjxubah}”(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{xubj)�”}”(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š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†hjxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjêwubhï)�”}”(hŒ**Note**”h]”j¨)�”}”(hj¼xh]”hŒNote”…”�”}”(hj¾xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjºxubah}”(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êwubhï)�”}”(hŒtthe caller is responsible for zeroizing both the struct hmac_md5_key and the raw key once they are no longer needed.”h]”hŒtthe caller is responsible for zeroizing both the struct hmac_md5_key and the raw key once they are no longer needed.”…”�”}”(hjÒxh²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êwubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjãxh]”hŒContext”…”�”}”(hjåxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjáxubah}”(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êwubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjùxh²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êwubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hj…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_md5_init (C function)”Œc.hmac_md5_init”hNt”auh1hþhj…eh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒMvoid hmac_md5_init (struct hmac_md5_ctx *ctx, const struct hmac_md5_key *key)”h]”j)�”}”(hŒLvoid hmac_md5_init(struct hmac_md5_ctx *ctx, const struct hmac_md5_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj(yh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj$yh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K‘ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7yh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj$yh²hh³j6yh´K‘ubjD)�”}”(hŒ hmac_md5_init”h]”jJ)�”}”(hŒ hmac_md5_init”h]”hŒ hmac_md5_init”…”�”}”(hjIyh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjEyubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj$yh²hh³j6yh´K‘ubjÊ)�”}”(hŒ:(struct hmac_md5_ctx *ctx, const struct hmac_md5_key *key)”h]”(jÐ)�”}”(hŒstruct hmac_md5_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjeyh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjayubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjryh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjayubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_md5_ctx”h]”hŒ hmac_md5_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 jKysbŒc.hmac_md5_init”†”asbuh1hhjayubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£yh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjayubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj±yh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjayubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj¾yh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjayubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj]yubjÐ)�”}”(hŒconst struct hmac_md5_key *key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(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Óyubj!)�”}”(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Œ hmac_md5_key”h]”hŒ hmac_md5_key”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj zubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jzŒmodname”NŒ classname”Nj j)�”}”j]”jŸyŒc.hmac_md5_init”†”asbuh1hhjÓyubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.zh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÓyubj*)�”}”(hj-h]”hŒ*”…”�”}”(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�zubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjO{h]”hŒContext”…”�”}”(hjQ{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjM{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.”…”�”}”(hje{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…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ&hmac_md5_init_usingrawkey (C function)”Œc.hmac_md5_init_usingrawkey”hNt”auh1hþhj…eh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ`void hmac_md5_init_usingrawkey (struct hmac_md5_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”h]”j)�”}”(hŒ_void hmac_md5_init_usingrawkey(struct hmac_md5_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³Œ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_init_usingrawkey”h]”jJ)�”}”(hŒhmac_md5_init_usingrawkey”h]”hŒhmac_md5_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ŒA(struct hmac_md5_ctx *ctx, const u8 *raw_key, size_t raw_key_len)”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_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”…”�”}”(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 |Œc.hmac_md5_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_md5_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ŒAInitialize an HMAC-MD5 context for a new message, using a raw key”h]”hŒAInitialize an HMAC-MD5 context for a new message, 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…eh³Nh´Nubjž)�”}”(hXX**Parameters** ``struct hmac_md5_ctx *ctx`` (output) the HMAC context to initialize ``const u8 *raw_key`` the raw HMAC-MD5 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_md5_usingrawkey() instead. **Context** Any context.”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj.}h]”hŒ Parameters”…”�”}”(hj0}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ŒE``struct hmac_md5_ctx *ctx`` (output) the HMAC context to initialize ”h]”(j÷)�”}”(hŒ``struct hmac_md5_ctx *ctx``”h]”jý)�”}”(hjM}h]”hŒstruct hmac_md5_ctx *ctx”…”�”}”(hjO}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjK}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žhjG}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´Kžhjc}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjG}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jb}h´KžhjD}ubjñ)�”}”(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ŸhjD}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 hjD}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ŒSIf you don't need incremental computation, consider hmac_md5_usingrawkey() instead.”h]”hŒUIf you don’t need incremental computation, consider hmac_md5_usingrawkey() 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.”…”�”}”(hj7~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…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_md5_update (C function)”Œc.hmac_md5_update”hNt”auh1hþhj…eh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒPvoid hmac_md5_update (struct hmac_md5_ctx *ctx, const u8 *data, size_t data_len)”h]”j)�”}”(hŒOvoid hmac_md5_update(struct hmac_md5_ctx *ctx, const u8 *data, size_t data_len)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjf~h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjb~h²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K«ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju~h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjb~h²hh³jt~h´K«ubjD)�”}”(hŒhmac_md5_update”h]”jJ)�”}”(hŒhmac_md5_update”h]”hŒhmac_md5_update”…”�”}”(hj‡~h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjƒ~ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjb~h²hh³jt~h´K«ubjÊ)�”}”(hŒ;(struct hmac_md5_ctx *ctx, const u8 *data, size_t data_len)”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_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”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj0ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j5Œmodname”NŒ classname”Nj j)�”}”j]”jÝ~Œc.hmac_md5_update”†”asbuh1hhjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubeh}”(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_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Éhjb~h²hh³jt~h´K«ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj^~h²hh³jt~h´K«ubah}”(h]”jY~ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jt~h´K«hj[~h²hubjv)�”}”(hhh]”hï)�”}”(hŒ,Update an HMAC-MD5 context with message data”h]”hŒ,Update an HMAC-MD5 context with message data”…”�”}”(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³jt~h´K«ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jöj™jöjš‰j›‰jœ‰uh1jh²hhj…eh³Nh´Nubjž)�”}”(hX**Parameters** ``struct hmac_md5_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³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K¯hjúubjì)�”}”(hhh]”(jñ)�”}”(hŒT``struct hmac_md5_ctx *ctx`` the HMAC context to update; must have been initialized ”h]”(j÷)�”}”(hŒ``struct hmac_md5_ctx *ctx``”h]”jý)�”}”(hj€h]”hŒstruct hmac_md5_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:42: ./include/crypto/md5.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”…”�”}”(hj8€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j4€h´K¬hj5€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j4€h´K¬hj€ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjX€h]”hŒconst u8 *data”…”�”}”(hjZ€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjV€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­hjR€ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjq€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jm€h´K­hjn€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjR€ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jm€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³Œ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”…”�”}”(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Œ'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³Œ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…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_md5_final (C function)”Œc.hmac_md5_final”hNt”auh1hþhj…eh²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”…”�”}”(hj8�h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hj4�h²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:42: ./include/crypto/md5.h”h´K»ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4�h²hh³jF�h´K»ubjD)�”}”(hŒhmac_md5_final”h]”jJ)�”}”(hŒhmac_md5_final”h]”hŒhmac_md5_final”…”�”}”(hjY�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjU�ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj4�h²hh³jF�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”…”�”}”(hju�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Œ 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”†”asbuh1hhjq�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjq�ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÁ�h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjq�ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÎ�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjq�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjm�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_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”…”�”}”(hj1‚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”…”�”}”(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_md5_final”†”asbuh1hhjã�ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjm‚h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjã�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjm�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj4�h²hh³jF�h´K»ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj0�h²hh³jF�h´K»ubah}”(h]”j+�ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jF�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³jF�h´K»ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j®‚j™j®‚jš‰j›‰jœ‰uh1jh²hhj…eh³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¨)�”}”(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Œ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ý)�”}”(hjׂh]”hŒstruct hmac_md5_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:42: ./include/crypto/md5.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Œ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¨)�”}”(hjKƒh]”hŒ Description”…”�”}”(hjMƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjIƒ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ŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hjaƒh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjiƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjaƒubhŒ(. So the caller does not need to do it.”…”�”}”(hjaƒ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¾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…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œhmac_md5 (C function)”Œ c.hmac_md5”hNt”auh1hþhj…eh²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‘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”h]”jJ)�”}”(hŒhmac_md5”h]”hŒhmac_md5”…”�”}”(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Œ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”jA„Œ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Œ*”…”�”}”(hjm„h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj„ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjz„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_md5”†”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_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”…”�”}”(hj2…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”…”�”}”(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[„Œ c.hmac_md5”†”asbuh1hhjG…ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl…h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjG…ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjz…h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjG…ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjˆ…h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjG…ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj•…h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjG…ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢…h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjG…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]”j[„Œ c.hmac_md5”†”asbuh1hhjG…ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÑ…h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjG…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Œ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&]”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…eh³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ühj9†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Çhj5†ubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjT†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jP†h´KÇhjQ†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jP†h´KÇhj2†ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjt†h]”hŒconst u8 *data”…”�”}”(hjv†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjr†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Èhjn†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&]”uh1jhjn†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j‰†h´KÈhj2†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³Œ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”…”�”}”(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Éhj2†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Êhj2†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().”…”�”}”(hj7‡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¨)�”}”(hjH‡h]”hŒContext”…”�”}”(hjJ‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjF‡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…eh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ!hmac_md5_usingrawkey (C function)”Œc.hmac_md5_usingrawkey”hNt”auh1hþhj…eh²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Œ ”…”�”}”(hjœ‡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”…”�”}”(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(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 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_md5_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”jAˆŒmodname”NŒ classname”Nj j)�”}”j]”jˆŒc.hmac_md5_usingrawkey”†”asbuh1hhj8ˆubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]ˆh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj8ˆubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjkˆh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj8ˆ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_md5_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_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Ï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”jA‰Œmodname”NŒ classname”Nj j)�”}”j]”jˆŒc.hmac_md5_usingrawkey”†”asbuh1hhj8‰ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]‰h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj8‰ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjk‰h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj8‰ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjy‰h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj8‰ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj†‰h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj8‰ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“‰h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj8‰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]”jˆŒc.hmac_md5_usingrawkey”†”asbuh1hhj8‰ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj8‰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-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…eh³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”…”�”}”(hjEŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jAŠh´KÖhjBŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj&Šubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jAŠ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ý)�”}”(hjeŠh]”hŒsize_t raw_key_len”…”�”}”(hjgŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjcŠ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³jzŠh´K×hj{Šubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj_Šubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jzŠ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ý)�”}”(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³Œ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”…”�”}”(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Œ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¨)�”}”(hjK‹h]”hŒ Description”…”�”}”(hjM‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjI‹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.”…”�”}”(hja‹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¨)�”}”(hjr‹h]”hŒContext”…”�”}”(hjt‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjp‹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…eh²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.”…”�”}”(hj·‹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”…”�”}”(hjÞ‹h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÚ‹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&]”uh1j2hjÚ‹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Æuh1jChjÚ‹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”…”�”}”(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.nh”†”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 *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”j­ŒŒmodname”NŒ classname”Nj j)�”}”j]”jUŒŒ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Œmessage”h]”hŒmessage”…”�”}”(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 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]”jUŒŒ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”…”�”}”(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]”jUŒŒc.nh”†”asbuh1hhjA�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjA�ubjJ)�”}”(hŒhash”h]”hŒhash”…”�”}”(hjt�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjA�ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj‚�h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjA�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]”jUŒŒc.nh”†”asbuh1hhjA�ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hj°�h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjA�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ŒNH hash function for Adiantum”h]”hŒNH hash function for Adiantum”…”�”}”(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Ö�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ž)�”}”(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. ”…”�”}”(hj3Žh²hh³Nh´Nubj¨)�”}”(hŒ**message_len**”h]”hŒ message_len”…”�”}”(hj;Žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj3ŽubhŒ5 + 48 bytes of it are used. This is NH_KEY_BYTES if ”…”�”}”(hj3Žh²hh³Nh´Nubj¨)�”}”(hŒ**message_len**”h]”hŒ message_len”…”�”}”(hjMŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj3ŽubhŒ, has its maximum length of NH_MESSAGE_BYTES.”…”�”}”(hj3Žh²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"hj0Ž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ý)�”}”(hjxŽh]”hŒconst u8 *message”…”�”}”(hjzŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjvŽ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$hjrŽ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&]”uh1jhjrŽ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ý)�”}”(hj±Žh]”hŒsize_t message_len”…”�”}”(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Œ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³jÆŽ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'hjåŽ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&]”uh1jhjåŽ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¨)�”}”(hjM�h]”hŒContext”…”�”}”(hjO�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjK�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.”…”�”}”(hjc�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.”…”�”}”(hj¹�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”…”�”}”(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´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjî�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜ�h²hh³jí�h´KubjD)�”}”(hŒsha1_ctx”h]”jJ)�”}”(hjÚ�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Æ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-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&]”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 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”…”�”}”(hjF�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjB�ubhŒ:”…”�”}”(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>�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¨)�”}”(hjp�h]”hŒMembers”…”�”}”(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´K0hj>�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³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ý)�”}”(hjÈ�h]”hŒ bytecount”…”�”}”(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Œ number of bytes processed so far”h]”hŒ number of bytes processed so far”…”�”}”(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Œ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‘hjW‘h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K0ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj‘h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjW‘h²hh³ji‘h´K0ubjD)�”}”(hŒ sha1_init”h]”jJ)�”}”(hŒ sha1_init”h]”hŒ sha1_init”…”�”}”(hj|‘h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjx‘ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjW‘h²hh³ji‘h´K0ubjÊ)�”}”(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Œ ”…”�”}”(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_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ÉhjW‘h²hh³ji‘h´K0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjS‘h²hh³ji‘h´K0ubah}”(h]”jN‘ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³ji‘h´K0hjP‘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´K0hj’h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjP‘h²hh³ji‘h´K0ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j3’j™j3’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´K4hj7’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ühjZ’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K1hjV’ubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hju’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jq’h´K1hjr’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjV’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jq’h´K1hjS’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj7’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´K3hj7’ubhï)�”}”(hŒCIf you don't need incremental computation, consider sha1() instead.”h]”hŒEIf you don’t need incremental computation, consider 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´K2hj7’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´K4hj7’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´K5hj7’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´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_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´K:ubjÊ)�”}”(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Œ ”…”�”}”(hjM“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Ïhj8“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]”jz“Œ 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Œ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Ïhj8“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]”jz“Œ c.sha1_update”†”asbuh1hhj”ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjC”h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj”ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjQ”h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj8“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-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´K:hjx”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 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¨)�”}”(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ŒK``struct sha1_ctx *ctx`` the context to update; 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´K;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´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´Khj—”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´KAhj—”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”…”�”}”(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´KFubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjä•h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÑ•h²hh³jã•h´KFubjD)�”}”(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Æuh1jChjÑ•h²hh³jã•h´KFubjÊ)�”}”(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”…”�”}”(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)�”}”j jø•sbŒ c.sha1_final”†”asbuh1hhj–ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjP–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”…”�”}”(hjk–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]”jL–Œ c.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”…”�”}”(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_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]”jL–Œ 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ÉhjÑ•h²hh³jã•h´KFubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÍ•h²hh³jã•h´KFubah}”(h]”jÈ•ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jã•h´KFhjÊ•h²hubjv)�”}”(hhh]”hï)�”}”(hŒ'Finish computing a SHA-1 message digest”h]”hŒ'Finish computing a SHA-1 message digest”…”�”}”(hj3—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´KFhj0—h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÊ•h²hh³jã•h´KFubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jK—j™jK—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¨)�”}”(hjU—h]”hŒ Parameters”…”�”}”(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:67: ./include/crypto/sha1.h”h´KJhjO—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ý)�”}”(hjt—h]”hŒstruct sha1_ctx *ctx”…”�”}”(hjv—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjr—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KGhjn—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´KGhjŠ—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjn—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j‰—h´KGhjk—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ý)�”}”(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´KHhj§—ubj)�”}”(hhh]”hï)�”}”(hŒ+(output) the resulting SHA-1 message digest”h]”hŒ+(output) the resulting SHA-1 message digest”…”�”}”(hjÆ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j—h´KHhj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j—h´KHhjk—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjO—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´KJhjO—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´KIhjO—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´KKhjO—ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj7˜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´KLhjO—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”…”�”}”(hjf˜h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjb˜h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KQubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hju˜h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjb˜h²hh³jt˜h´KQubjD)�”}”(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Æuh1jChjb˜h²hh³jt˜h´KQubjÊ)�”}”(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”…”�”}”(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.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 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”†”asbuh1hhj™ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6™h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj™ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjD™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.sha1”†”asbuh1hhjY™ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~™h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjY™ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjŒ™h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjY™ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjš™h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjY™ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj§™h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjY™ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´™h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjY™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”†”asbuh1hhjY™ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjã™h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjY™ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj›˜ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjb˜h²hh³jt˜h´KQubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj^˜h²hh³jt˜h´KQubah}”(h]”jY˜ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jt˜h´KQhj[˜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´KQhj šh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj[˜h²hh³jt˜h´KQubeh}”(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”…”�”}”(hj0š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(šubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjMšh]”hŒconst u8 *data”…”�”}”(hjOšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjKšubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KRhjGšubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjfšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jbšh´KRhjcšubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjGšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jbšh´KRhjDš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´KShj€š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´KShjœšubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj€šubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j›šh´KShjDš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ý)�”}”(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´KThj¹šubj)�”}”(hhh]”hï)�”}”(hŒ+(output) the resulting SHA-1 message digest”h]”hŒ+(output) the resulting SHA-1 message digest”…”�”}”(hjØšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÔšh´KThjÕšubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹šubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÔšh´KThjDš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´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_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´K[ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM›h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;›h²hh³jL›h´K[ubjD)�”}”(hŒ hmac_sha1_key”h]”jJ)�”}”(hj9›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³jL›h´K[ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj7›h²hh³jL›h´K[ubah}”(h]”j2›ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jL›h´K[hj4›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´K[hj~›h²hubah}”(h]”h •]”h"]”h$]”h&]”uh1juhj4›h²hh³jL›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Œ´**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”…”�”}”(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Œ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; };”…”�”}”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´Kahj�›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´Kfhj�›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]hjå›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]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 Œ"hmac_sha1_zeroize_key (C function)”Œc.hmac_sha1_zeroize_key”hNt”auh1hþhj¨�h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ6void hmac_sha1_zeroize_key (struct hmac_sha1_key *key)”h]”j)�”}”(hŒ5void hmac_sha1_zeroize_key(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´Keubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�œh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj}œh²hh³j�œh´KeubjD)�”}”(hŒhmac_sha1_zeroize_key”h]”jJ)�”}”(hŒhmac_sha1_zeroize_key”h]”hŒhmac_sha1_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´KeubjÊ)�”}”(hŒ(struct hmac_sha1_key *key)”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 j¤œsbŒc.hmac_sha1_zeroize_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Œ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´Keubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjyœh²hh³j�œh´Keubah}”(h]”jtœah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j�œh´Kehjvœh²hubjv)�”}”(hhh]”hï)�”}”(hŒ"Zeroize an hmac_sha1_key structure”h]”hŒ"Zeroize an hmac_sha1_key structure”…”�”}”(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´Kehj>�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjvœh²hh³j�œh´Keubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jY�j™jY�jš‰j›‰jœ‰uh1jh²hhj¨�h³Nh´Nubjž)�”}”(hŒL**Parameters** ``struct hmac_sha1_key *key`` The hmac_sha1_key to zeroize”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hjc�h]”hŒ Parameters”…”�”}”(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´Kihj]�ubjì)�”}”(hhh]”jñ)�”}”(hŒ:``struct hmac_sha1_key *key`` The hmac_sha1_key to zeroize”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´Kkhj|�ubj)�”}”(hhh]”hï)�”}”(hŒThe hmac_sha1_key to zeroize”h]”hŒThe hmac_sha1_key to zeroize”…”�”}”(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´Kfhj˜�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj|�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j—�h´Kkhjy�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_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´Kkubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjê�h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjØ�h²hh³jé�h´KkubjD)�”}”(hŒ hmac_sha1_ctx”h]”jJ)�”}”(hjÖ�h]”hŒ hmac_sha1_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´Kkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÔ�h²hh³jé�h´Kkubah}”(h]”jÏ�ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jé�h´KkhjÑ�h²hubjv)�”}”(hhh]”hï)�”}”(hŒ,Context for computing HMAC-SHA1 of a message”h]”hŒ,Context for computing HMAC-SHA1 of a 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´Knhjžh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÑ�h²hh³jé�h´Kkubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j6žj™j6ž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”…”�”}”(hjBž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´Krhj:ž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´Kthj:žubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjlžh]”hŒMembers”…”�”}”(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´Kyhj:ž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´Kphj…žubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj¤žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j žh´Kphj¡žubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…žubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j žh´Kphj‚ž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´Kphj¾ž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´KqhjÚžubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¾žubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÙžh´Kphj‚ž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 Œ"hmac_sha1_zeroize_ctx (C function)”Œc.hmac_sha1_zeroize_ctx”hNt”auh1hþhj¨�h²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ6void hmac_sha1_zeroize_ctx (struct hmac_sha1_ctx *ctx)”h]”j)�”}”(hŒ5void hmac_sha1_zeroize_ctx(struct hmac_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´Kxubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-Ÿh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjŸh²hh³j,Ÿh´KxubjD)�”}”(hŒhmac_sha1_zeroize_ctx”h]”jJ)�”}”(hŒhmac_sha1_zeroize_ctx”h]”hŒhmac_sha1_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´KxubjÊ)�”}”(hŒ(struct hmac_sha1_ctx *ctx)”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 hjWŸubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhŸh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjWŸubh)�”}”(hhh]”jJ)�”}”(hŒ hmac_sha1_ctx”h]”hŒ hmac_sha1_ctx”…”�”}”(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)�”}”j jAŸsbŒc.hmac_sha1_zeroize_ctx”†”asbuh1hhjWŸubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™Ÿh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjWŸubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj§Ÿh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjWŸubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj´Ÿh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjWŸubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjSŸubah}”(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Œ"Zeroize an hmac_sha1_ctx structure”h]”hŒ"Zeroize an hmac_sha1_ctx structure”…”�”}”(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´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²hhj¨�h³Nh´Nubjž)�”}”(hŒT**Parameters** ``struct hmac_sha1_ctx *ctx`` The hmac_sha1_ctx context to zeroize”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ŒB``struct hmac_sha1_ctx *ctx`` The hmac_sha1_ctx context to zeroize”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Œ$The hmac_sha1_ctx context to zeroize”h]”hŒ$The hmac_sha1_ctx context to zeroize”…”�”}”(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´Kyhj5 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j4 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 Œ!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”…”�”}”(hjy h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hju 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&]”uh1j2hju h²hh³j‡ h´K�ubjD)�”}”(hŒhmac_sha1_preparekey”h]”jJ)�”}”(hŒhmac_sha1_preparekey”h]”hŒhmac_sha1_preparekey”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj– ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChju h²hh³j‡ h´K�ubjÊ)�”}”(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 jœ 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Œ ”…”�”}”(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.hmac_sha1_preparekey”†”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Œ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_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Éhju h²hh³j‡ h´K�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjq h²hh³j‡ h´K�ubah}”(h]”jl ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j‡ h´K�hjn 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´K�hjî¡h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjn 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ž)�”}”(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´K…hj ¢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ý)�”}”(hj2¢h]”hŒstruct hmac_sha1_key *key”…”�”}”(hj4¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj0¢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 key structure to initialize”h]”hŒ((output) the key structure to initialize”…”�”}”(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Œ,``const u8 *raw_key`` the raw HMAC-SHA1 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjk¢h]”hŒconst u8 *raw_key”…”�”}”(hjm¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühji¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´Kƒhje¢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&]”uh1jhje¢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: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)¢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´K†hj ¢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´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_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”…”�”}”(hjK£h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjG£h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ£h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjG£h²hh³jY£h´K�ubjD)�”}”(hŒhmac_sha1_init”h]”jJ)�”}”(hŒhmac_sha1_init”h]”hŒhmac_sha1_init”…”�”}”(hjl£h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjh£ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjG£h²hh³jY£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”…”�”}”(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 jn£sbŒ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Œ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_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”…”�”}”(hj3¤h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj0¤ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j5¤Œmodname”NŒ classname”Nj j)�”}”j]”j£Œc.hmac_sha1_init”†”asbuh1hhjö£ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ¤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”…”�”}”(hjl¤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ÉhjG£h²hh³jY£h´K�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjC£h²hh³jY£h´K�ubah}”(h]”j>£ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jY£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”…”�”}”(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³jY£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¨)�”}”(hjK¥h]”hŒ Description”…”�”}”(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: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.”…”�”}”(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´K’hj²¤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´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_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Œ ”…”�”}”(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Œctx”h]”hŒctx”…”�”}”(hjM¦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”…”�”}”(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.hmac_sha1_init_usingrawkey”†”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Œraw_key”h]”hŒraw_key”…”�”}”(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 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˜jG§j™jG§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¨)�”}”(hjQ§h]”hŒ Parameters”…”�”}”(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:67: ./include/crypto/sha1.h”h´KžhjK§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ý)�”}”(hjp§h]”hŒstruct hmac_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Œ'(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&]”uh1jhjj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j…§h´Kœhjg§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�hjg§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žhjg§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjK§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 hjK§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.”…”�”}”(hj3¨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ŸhjK§ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjD¨h]”hŒContext”…”�”}”(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:67: ./include/crypto/sha1.h”h´K¢hjK§ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjZ¨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£hjK§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”…”�”}”(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_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Æuh1jChj…¨h²hh³j—¨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”…”�”}”(hj8©h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj4©ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjE©h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4©ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(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.hmac_sha1_update”†”asbuh1hhj4©ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt©h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4©ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj‚©h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj4©ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj�©h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj4©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É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 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³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`` 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ý)�”}”(hjBªh]”hŒstruct hmac_sha1_ctx *ctx”…”�”}”(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: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”…”�”}”(hj[ªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jWªh´KªhjXªubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<ªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jWªh´Kªhj9ª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ühjyªubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K«hjuª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&]”uh1jhjuªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�ªh´K«hj9ª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¬hj9ª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”…”�”}”(hj[«h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjW«h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´K¹ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj«h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjW«h²hh³ji«h´K¹ubjD)�”}”(hŒhmac_sha1_final”h]”jJ)�”}”(hŒhmac_sha1_final”h]”hŒhmac_sha1_final”…”�”}”(hj|«h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjx«ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjW«h²hh³ji«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”…”�”}”(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_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.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”…”�”}”(hj9¬h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¬ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjG¬h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¬ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjT¬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ŒSHA1_DIGEST_SIZE”h]”hŒSHA1_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]”jÒ«Œc.hmac_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ÉhjW«h²hh³ji«h´K¹ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjS«h²hh³ji«h´K¹ubah}”(h]”jN«ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³ji«h´K¹hjP«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&]”uh1juhjP«h²hh³ji«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ý)�”}”(hj3­h]”hŒu8 out[static SHA1_DIGEST_SIZE]”…”�”}”(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: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”…”�”}”(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ñ¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÕ¬ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjn­h]”hŒ Description”…”�”}”(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: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 ”…”�”}”(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´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Œ ”…”�”}”(hj6®h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj%®ubj!)�”}”(hj$h]”hŒstruct”…”�”}”(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Œ hmac_sha1_key”h]”hŒ hmac_sha1_key”…”�”}”(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)�”}”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Œ*”…”�”}”(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]”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Œ ”…”�”}”(hjG¯h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj"¯ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjU¯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”…”�”}”(hjq¯h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjn¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”js¯Œmodname”NŒ classname”Nj j)�”}”j]”j~®Œ c.hmac_sha1”†”asbuh1hhjj¯ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�¯h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjj¯ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj�¯h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjj¯ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj«¯h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjj¯ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj¸¯h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjj¯ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjůh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjj¯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”†”asbuh1hhjj¯ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjô¯h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjj¯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˜j5°j™j5°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”…”�”}”(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:67: ./include/crypto/sha1.h”h´KÉhj9°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ÆhjX°ubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjw°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³js°h´KÆhjt°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjX°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³js°h´KÆhjU°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ÇhjU°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ÈhjU°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ÉhjU°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj9°ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjD±h]”hŒ Description”…”�”}”(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:67: ./include/crypto/sha1.h”h´KËhj9°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().”…”�”}”(hjZ±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Êhj9°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:67: ./include/crypto/sha1.h”h´KÌhj9°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Íhj9°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Œ*”…”�”}”(hj9²h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjé±ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjF²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”…”�”}”(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_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”jDzŒ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Œ ”…”�”}”(hj8³h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj³ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjF³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”…”�”}”(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_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ŒSHA1_DIGEST_SIZE”h]”hŒSHA1_DIGEST_SIZE”…”�”}”(hjdzh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjijubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jɳŒmodname”NŒ classname”Nj j)�”}”j]”j'²Œc.hmac_sha1_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´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¨)�”}”(hj0´h]”hŒ Parameters”…”�”}”(hj2´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ý)�”}”(hjO´h]”hŒconst u8 *raw_key”…”�”}”(hjQ´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjM´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:67: ./include/crypto/sha1.h”h´KÕhjI´ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA1 key”h]”hŒthe raw HMAC-SHA1 key”…”�”}”(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ÕhjF´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ÖhjF´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×hjF´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ØhjF´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ý)�”}”(hj3µh]”hŒu8 out[static SHA1_DIGEST_SIZE]”…”�”}”(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: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”…”�”}”(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ÙhjF´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj*´ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjnµh]”hŒ Description”…”�”}”(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: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.”…”�”}”(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´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”…”�”}”(hjC¶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˜j[¶j™j[¶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”…”�”}”(hjg¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjc¶ubhŒ:”…”�”}”(hjc¶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¨)�”}”(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´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”…”�”}”(hjG·h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjC·ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjT·h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjC·ubh)�”}”(hhh]”jJ)�”}”(hŒ sha224_ctx”h]”hŒ sha224_ctx”…”�”}”(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)�”}”j j-·sbŒ c.sha224_init”†”asbuh1hhjC·ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…·h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjC·ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj“·h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjC·ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj ·h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjC·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¨)�”}”(hjF¸h]”hŒ Description”…”�”}”(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´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¨)�”}”(hjm¸h]”hŒContext”…”�”}”(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´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_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”…”�”}”(hjH¹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”…”�”}”(hja¹h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj]¹ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn¹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.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˜jBºj™jBº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¨)�”}”(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´K®hjFº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ý)�”}”(hjkºh]”hŒstruct sha224_ctx *ctx”…”�”}”(hjmºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjiºubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K«hjeº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´K«hj�ºubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjeºubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j€ºh´K«hjbº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¬hjbº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­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³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¯hjFº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®hjFº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´K°hjFº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´K±hjFº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”…”�”}”(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_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³j’»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”…”�”}”(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.sha224_final”†”asbuh1hhj/¼ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjT¼h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj/¼ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjb¼h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj/¼ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjp¼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.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³j’»h´Kºubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj|»h²hh³j’»h´Kºubah}”(h]”jw»ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j’»h´Kºhjy»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&]”uh1juhjy»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** ``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³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Œ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ühjZ½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´K¼hjV½ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-224 message digest”h]”hŒ-(output) the resulting SHA-224 message digest”…”�”}”(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½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Œ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”…”�”}”(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´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”…”�”}”(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.sha224”†”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Œdata”h]”hŒdata”…”�”}”(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 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”†”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Ï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.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Œ[”…”�”}”(hjI¿h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj¿ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjV¿h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj¿ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc¿h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj¿ubh)�”}”(hhh]”jJ)�”}”(hŒSHA224_DIGEST_SIZE”h]”hŒSHA224_DIGEST_SIZE”…”�”}”(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]”jŒ¾Œc.sha224”†”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ÏhjJ¾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ý)�”}”(hj5Àh]”hŒ size_t 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´KÇ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´KÇhjKÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj/Àubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jJÀ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ý)�”}”(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´KÈhjhÀubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-224 message digest”h]”hŒ-(output) the resulting SHA-224 message digest”…”�”}”(hj‡Àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jƒÀh´KÈhj„Àubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjhÀ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: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”…”�”}”(hj0Á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˜jHÁj™jHÁ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”…”�”}”(hjTÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjPÁubhŒ:”…”�”}”(hjPÁ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ÓhjLÁubjÃ)�”}”(hŒ=struct hmac_sha224_key { struct __hmac_sha256_key key; };”h]”hŒ=struct hmac_sha224_key { struct __hmac_sha256_key key; };”…”�”}”hjmÁ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ÕhjLÁ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´KÙhjLÁ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´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ëhjLÁubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjɵh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha224_zeroize_key (C function)”Œc.hmac_sha224_zeroize_key”hNt”auh1hþhjɵh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void hmac_sha224_zeroize_key (struct hmac_sha224_key *key)”h]”j)�”}”(hŒ9void hmac_sha224_zeroize_key(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_zeroize_key”h]”jJ)�”}”(hŒhmac_sha224_zeroize_key”h]”hŒhmac_sha224_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´K×ubjÊ)�”}”(hŒ(struct hmac_sha224_key *key)”h]”jÐ)�”}”(hŒstruct hmac_sha224_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj4Âh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj0Âubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAÂh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj0Âubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_key”h]”hŒhmac_sha224_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.hmac_sha224_zeroize_key”†”asbuh1hhj0Âubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrÂh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj0Âubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj€Âh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj0ÂubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj�Âh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj0Â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 hmac_sha224_key structure”h]”hŒ$Zeroize an hmac_sha224_key structure”…”�”}”(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ŒP**Parameters** ``struct hmac_sha224_key *key`` The hmac_sha224_key to zeroize”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Œ>``struct hmac_sha224_key *key`` The hmac_sha224_key to zeroize”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ŒThe hmac_sha224_key to zeroize”h]”hŒThe hmac_sha224_key to zeroize”…”�”}”(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 Œ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”…”�”}”(hjRÃh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjNÃ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&]”uh1j2hjNÃh²hh³j_Ãh´KÝubjD)�”}”(hŒhmac_sha224_ctx”h]”jJ)�”}”(hjLÃh]”hŒhmac_sha224_ctx”…”�”}”(hjrÃh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjnÃubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjNÃ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Œ.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&]”uh1juhjGÃ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§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_ctx { struct __hmac_sha256_ctx ctx; };”h]”hŒ=struct hmac_sha224_ctx { struct __hmac_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¨)�”}”(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´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 Œ$hmac_sha224_zeroize_ctx (C function)”Œc.hmac_sha224_zeroize_ctx”hNt”auh1hþhjɵh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void hmac_sha224_zeroize_ctx (struct hmac_sha224_ctx *ctx)”h]”j)�”}”(hŒ9void hmac_sha224_zeroize_ctx(struct hmac_sha224_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj[Äh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjWÄh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Kèubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjÄh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjWÄh²hh³jiÄh´KèubjD)�”}”(hŒhmac_sha224_zeroize_ctx”h]”jJ)�”}”(hŒhmac_sha224_zeroize_ctx”h]”hŒhmac_sha224_zeroize_ctx”…”�”}”(hj|Äh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxÄubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjWÄh²hh³jiÄh´KèubjÊ)�”}”(hŒ(struct hmac_sha224_ctx *ctx)”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_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”…”�”}”(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ÉhjWÄh²hh³jiÄh´Kèubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjSÄh²hh³jiÄh´Kèubah}”(h]”jNÄah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jiÄh´KèhjPÄh²hubjv)�”}”(hhh]”hï)�”}”(hŒ$Zeroize an hmac_sha224_ctx structure”h]”hŒ$Zeroize an hmac_sha224_ctx structure”…”�”}”(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&]”uh1juhjPÄh²hh³jiÄh´Kèubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j3Åj™j3Åjš‰j›‰jœ‰uh1jh²hhjɵh³Nh´Nubjž)�”}”(hŒX**Parameters** ``struct hmac_sha224_ctx *ctx`` The hmac_sha224_ctx context to zeroize”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ìhj7Åubjì)�”}”(hhh]”jñ)�”}”(hŒF``struct hmac_sha224_ctx *ctx`` The hmac_sha224_ctx context to zeroize”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ühjZÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KîhjVÅubj)�”}”(hhh]”hï)�”}”(hŒ&The hmac_sha224_ctx context to zeroize”h]”hŒ&The hmac_sha224_ctx context to zeroize”…”�”}”(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´KéhjrÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjVÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jqÅh´KîhjSÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj7Å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”…”�”}”(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_preparekey”†”asbuh1hhjïÅubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1Æ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”…”�”}”(hjLÆ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”…”�”}”(hjeÆh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjaÆubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrÆh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjaÆ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_preparekey”†”asbuh1hhjaÆubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡Æh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjaÆubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¯Æh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjaÆubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj¼Æh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjaÆ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_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”…”�”}”(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˜jFÇj™jFÇ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¨)�”}”(hjPÇh]”hŒ Parameters”…”�”}”(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:76: ./include/crypto/sha2.h”h´KõhjJÇ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ý)�”}”(hjoÇh]”hŒstruct hmac_sha224_key *key”…”�”}”(hjqÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjmÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´KòhjiÇ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&]”uh1jhjiÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j„Çh´KòhjfÇ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óhjfÇ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ôhjfÇubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjJÇ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´KöhjJÇ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.”…”�”}”(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´KöhjJÇubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjCÈh]”hŒContext”…”�”}”(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:76: ./include/crypto/sha2.h”h´KùhjJÇubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(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´KùhjJÇ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Œ*”…”�”}”(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_sha224_key *key”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Éubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjRÉh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj3Éubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_Éh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj3Éubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha224_key”h]”hŒhmac_sha224_key”…”�”}”(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_sha224_init”†”asbuh1hhj3Éubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽÉ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Œkey”h]”hŒkey”…”�”}”(hj©Éh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj3É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´MhjïÉ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´MhjÊ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´Mhj*Êubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j)Êh´Mhj Êubjñ)�”}”(hŒ<``const struct hmac_sha224_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha224_key *key``”h]”jý)�”}”(hjMÊh]”hŒ!const struct hmac_sha224_key *key”…”�”}”(hjOÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjKÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MhjGÊubj)�”}”(hhh]”hï)�”}”(hŒthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjfÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jbÊh´MhjcÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjGÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jbÊ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Œ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´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_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´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjðÊh²hh³jËh´MubjD)�”}”(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&]”uh1jIhjËubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjðÊh²hh³jËh´MubjÊ)�”}”(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”…”�”}”(hj1Ë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”…”�”}”(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)�”}”j jËsbŒc.hmac_sha224_init_usingrawkey”†”asbuh1hhj-Ëubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoË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&]”uh1jIhj¾Ëubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jÃËŒmodname”NŒ classname”Nj j)�”}”j]”jkËŒ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Ï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]”jkËŒc.hmac_sha224_init_usingrawkey”†”asbuh1hhjÌubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4Ìh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÌubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjBÌ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´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Œ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”…”�”}”(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´MhjiÌ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ž)�”}”(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´MhjˆÌ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´Mhj§Ì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´MhjÃÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§Ìubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÂÌh´Mhj¤Ì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´MhjàÌ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´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.”…”�”}”(hj8Íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j4Íh´Mhj5Íubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j4Íh´Mhj¤Ìubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjˆÌubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjZÍh]”hŒ Description”…”�”}”(hj\Íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjXÍ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.”…”�”}”(hjpÍ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´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕÍh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÂÍh²hh³jÔÍh´MubjD)�”}”(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´MubjÊ)�”}”(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Œ ”…”�”}”(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_update”†”asbuh1hhjÿÍubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAÎh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÿÍubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjOÎ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”…”�”}”(hjuÎ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Œ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_update”†”asbuh1hhjqÎubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj±Îh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjqÎubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¿Îh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjqÎubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÌÎh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjqÎ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_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´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Œ/Update an HMAC-SHA224 context with message data”h]”hŒ/Update an HMAC-SHA224 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´Mhj;Ïh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj»Íh²hh³jÔÍh´Mubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jVÏj™jVÏ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”…”�”}”(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´M!hjZÏ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´MhjyÏ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´Mhj•Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjyÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j”Ïh´MhjvÏ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”…”�”}”(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Ï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 hjvÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjZÏ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"hjZÏubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hjBÐ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!hjZÏ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:76: ./include/crypto/sha2.h”h´M#hjZÏubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjiÐ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$hjZÏ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´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_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´M-ubjÊ)�”}”(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Œ*”…”�”}”(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”…”�”}”(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ÑŒc.hmac_sha224_final”†”asbuh1hhjCÑubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhÑh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjCÑubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjvÑh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjCÑubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj„Ñh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjCÑubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj‘Ñh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjCÑubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžÑh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjCÑ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_final”†”asbuh1hhjCÑubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÍÑh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjCÑ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-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´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_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”…”�”}”(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´M1hjÒ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ý)�”}”(hj7Òh]”hŒstruct hmac_sha224_ctx *ctx”…”�”}”(hj9Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj5Òubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M.hj1Òubj)�”}”(hhh]”hï)�”}”(hŒ8the HMAC context to finalize; must have been initialized”h]”hŒ8the HMAC context to finalize; must have been initialized”…”�”}”(hjPÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jLÒh´M.hjMÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj1Òubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jLÒ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ý)�”}”(hjpÒh]”hŒ!u8 out[static SHA224_DIGEST_SIZE]”…”�”}”(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Œ((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&]”uh1jhjjÒ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´M1hjÒ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´M0hjÒ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.”…”�”}”(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´M3hjÒ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”…”�”}”(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´M9ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8Óh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj%Óh²hh³j7Óh´M9ubjD)�”}”(hŒ hmac_sha224”h]”jJ)�”}”(hŒ hmac_sha224”h]”hŒ hmac_sha224”…”�”}”(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´M9ubjÊ)�”}”(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”…”�”}”(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Óubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hj�Óh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjbÓubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽÓh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjbÓ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 jLÓsbŒ c.hmac_sha224”†”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Œkey”h]”hŒkey”…”�”}”(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 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”†”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”…”�”}”(hjJÔ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”…”�”}”(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.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&]”uh1jIhjÕ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Œ]”…”�”}”(hj1Õ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³j7Óh´M9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj!Óh²hh³j7Óh´M9ubah}”(h]”jÓah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j7Óh´M9hjÓ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”…”�”}”(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´M9hjWÕh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÓh²hh³j7Óh´M9ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jrÕj™jrÕ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§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=hjvÕ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ý)�”}”(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 SHA224_DIGEST_SIZE]`` (output) the resulting HMAC-SHA224 value ”h]”(j÷)�”}”(hŒ%``u8 out[static SHA224_DIGEST_SIZE]``”h]”jý)�”}”(hjFÖh]”hŒ!u8 out[static SHA224_DIGEST_SIZE]”…”�”}”(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Œ((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ëhjvÕ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?hjvÕ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>hjvÕ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@hjvÕ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´MAhjvÕ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´MHubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjüÖh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjéÖh²hh³jûÖh´MHubjD)�”}”(hŒhmac_sha224_usingrawkey”h]”jJ)�”}”(hŒhmac_sha224_usingrawkey”h]”hŒhmac_sha224_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´MHubjÊ)�”}”(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”…”�”}”(hj*×h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj&×ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7×h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj&×ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(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 j×sbŒ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Œ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]”jd׌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Ï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]”jd׌c.hmac_sha224_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”…”�”}”(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]”jd׌c.hmac_sha224_usingrawkey”†”asbuh1hhjPØubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuØh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjPØubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjƒØh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjPØ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]”jd׌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]”jd׌c.hmac_sha224_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´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Œ0Compute HMAC-SHA224 in one shot, using a raw key”h]”hŒ0Compute HMAC-SHA224 in one shot, using a raw key”…”�”}”(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´MHhjHÙh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjâÖh²hh³jûÖh´MHubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jcÙj™jcÙ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¨)�”}”(hjmÙh]”hŒ Parameters”…”�”}”(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´MLhjgÙ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´MIhj†Ù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´MIhj¢Ùubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj†Ùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¡Ùh´MIhjƒÙ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´MJhj¿Ù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´MJhjÛÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¿Ùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÚÙh´MJhjƒÙ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´MKhjøÙ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´MKhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjøÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÚh´MKhjƒÙubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj7Úh]”hŒsize_t data_len”…”�”}”(hj9Úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj5Úubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MLhj1Úubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjPÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jLÚh´MLhjMÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj1Úubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jLÚh´MLhjƒÙ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ý)�”}”(hjpÚh]”hŒ!u8 out[static SHA224_DIGEST_SIZE]”…”�”}”(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´MMhjjÚ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´MMhj†Úubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjjÚubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j…Úh´MMhjƒÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjgÙ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´MOhjgÙ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´MNhjgÙ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´MQhjgÙ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´MRhjgÙ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´MWubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%Ûh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛh²hh³j$Ûh´MWubjD)�”}”(hŒ sha256_ctx”h]”jJ)�”}”(hjÛh]”hŒ sha256_ctx”…”�”}”(hj7Ûh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj3Ûubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÛh²hh³j$Ûh´MWubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÛh²hh³j$Ûh´MWubah}”(h]”j Ûah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j$Ûh´MWhj Ûh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Context for hashing a message with SHA-256”h]”hŒ*Context for hashing a message with SHA-256”…”�”}”(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´MYhjVÛh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj Ûh²hh³j$Ûh´MWubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jqÛj™jqÛ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§hjyÛubhŒ:”…”�”}”(hjyÛ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]hjuÛ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´M_hjuÛ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´MchjuÛ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´MZhjÀÛ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&]”uh1jhjÀÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÛÛh´MZhj½Ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjuÛ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”…”�”}”(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´Maubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/Üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÜh²hh³j.Üh´MaubjD)�”}”(hŒ sha256_init”h]”jJ)�”}”(hŒ sha256_init”h]”hŒ sha256_init”…”�”}”(hjAÜ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´MaubjÊ)�”}”(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 hjYÜubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjÜh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjYÜubh)�”}”(hhh]”jJ)�”}”(hŒ sha256_ctx”h]”hŒ sha256_ctx”…”�”}”(hj{Üh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j}ÜŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jCÜsbŒ c.sha256_init”†”asbuh1hhjYÜubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›Üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjYÜubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj©Üh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjYÜubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj¶Üh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjYÜubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjUÜubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÜh²hh³j.Üh´Maubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÜh²hh³j.Üh´Maubah}”(h]”jÜah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j.Üh´MahjÜ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´MahjÝÜh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÜh²hh³j.Üh´Maubeh}”(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´MehjüÜubjì)�”}”(hhh]”jñ)�”}”(hŒ5``struct sha256_ctx *ctx`` the context to initialize ”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´MbhjÝ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³j6Ýh´Mbhj7Ýubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j6Ýh´MbhjÝ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§hjZÝubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MdhjüÜubhï)�”}”(hŒEIf you don't need incremental computation, consider sha256() instead.”h]”hŒGIf you don’t need incremental computation, consider sha256() instead.”…”�”}”(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´MchjüÜ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´MehjüÜ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´MfhjüÜ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´Mkubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×Ýh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÄÝh²hh³jÖÝh´MkubjD)�”}”(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´MkubjÊ)�”}”(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”…”�”}”(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_update”†”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ýÝubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjwÞh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjsÞubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„Þh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjsÞ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_update”†”asbuh1hhjsÞubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³Þh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjsÞubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÁÞh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjsÞubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÎÞh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjsÞ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_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´Mkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÀÝh²hh³jÖÝh´Mkubah}”(h]”j»Ýah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÖÝh´Mkhj½Ýh²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a SHA-256 context with message data”h]”hŒ*Update a SHA-256 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´Mkhj=ßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj½Ýh²hh³jÖÝh´Mkubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jXßj™jXß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¨)�”}”(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´Mohj\ß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´Mlhj{ß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´Mlhj—ßubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj{ßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j–ßh´Mlhjxß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´Mmhj´ß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´MmhjÐßubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj´ßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÏßh´Mmhjxß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´Mnhjíß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´Mnhj àubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjíßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jàh´Mnhjxßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj\ßubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj.àh]”hŒ Description”…”�”}”(hj0à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\ßubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(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´Mohj\ßubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjUàh]”hŒContext”…”�”}”(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´Mqhj\ßubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(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´Mrhj\ß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´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_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´M{ubjÊ)�”}”(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Œ*”…”�”}”(hj#áh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÓàubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj0á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”…”�”}”(hjLáh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjIáubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jNáŒmodname”NŒ classname”Nj j)�”}”j]”jáŒc.sha256_final”†”asbuh1hhjEáubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjjáh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjEáubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjxáh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjEáubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj†áh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjEáubj!)�”}”(hjG h]”hŒstatic”…”�”}”(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_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_final”†”asbuh1hhjEáubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjÏáh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjEá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 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´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ž)�”}”(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¨)�”}”(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ŒO``struct sha256_ctx *ctx`` the context to finalize; must have been initialized ”h]”(j÷)�”}”(hŒ``struct sha256_ctx *ctx``”h]”jý)�”}”(hj9âh]”hŒstruct sha256_ctx *ctx”…”�”}”(hj;âh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj7âubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M|hj3âubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hjRâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jNâh´M|hjOâubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3âubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jNâh´M|hj0â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ý)�”}”(hjrâh]”hŒ!u8 out[static SHA256_DIGEST_SIZE]”…”�”}”(hjtâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjpâubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M}hjlâ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´M}hjˆâubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjlâubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j‡âh´M}hj0â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´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 (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”…”�”}”(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³j9ãh´M†ubjD)�”}”(hŒsha256”h]”jJ)�”}”(hŒsha256”h]”hŒsha256”…”�”}”(hjLãh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjHãubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj'ãh²hh³j9ãh´M†ubjÊ)�”}”(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”…”�”}”(hjhãh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjdãubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuãh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjdã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 jNãsbŒc.sha256”†”asbuh1hhjdãubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦ãh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjdãubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj´ãh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjdãubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjÁãh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjdã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”…”�”}”(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 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”†”asbuh1hhjäubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCäh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjäubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjQä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”…”�”}”(hjläh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjäubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyä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”†”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³j9ãh´M†ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj#ãh²hh³j9ãh´M†ubah}”(h]”jãah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j9ãh´M†hj ã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´M†hjÎäh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj ãh²hh³j9ã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** ``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´MŠ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´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 len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hjKåh]”hŒ size_t len”…”�”}”(hjMåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjIåubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MˆhjEåubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjdåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j`åh´Mˆhjaåubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjEåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j`åh´Mˆhj å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´M‰hj~å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´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 (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”…”�”}”(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Œ”(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”…”�”}”(hjAæh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj=æubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNæ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Œ ”…”�”}”(hjiæh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj=æubh)�”}”(hhh]”jJ)�”}”(hŒ sha256_ctx”h]”hŒ sha256_ctx”…”�”}”(hjzæh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjwæubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j|æŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j'æsbŒc.sha256_finup_2x”†”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Ïhj9æ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Œ ”…”�”}”(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Œdata1”h]”hŒdata1”…”�”}”(hj%çh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÊæubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj9æubjÐ)�”}”(hŒconst u8 *data2”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.sha256_finup_2x”†”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Œdata2”h]”hŒdata2”…”�”}”(hj•çh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj:çubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj9æ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Ïhj9æ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”…”�”}”(hj%èh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjòçubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj3è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Œ ”…”�”}”(hjMè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Ïhj9æ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Œ]”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj�èubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj9æ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.”…”�”}”(hjCé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ž)�”}”(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¨)�”}”(hjeéh]”hŒ Parameters”…”�”}”(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”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”…”�”}”(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ŒG``size_t len`` the length of each of **data1** and **data2**, in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj0êh]”hŒ size_t len”…”�”}”(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:76: ./include/crypto/sha2.h”h´M—hj*êubj)�”}”(hhh]”hï)�”}”(hŒ7the length of each of **data1** and **data2**, in bytes”h]”(hŒthe length of each of ”…”�”}”(hjIêh²hh³Nh´Nubj¨)�”}”(hŒ **data1**”h]”hŒdata1”…”�”}”(hjQêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjIêubhŒ and ”…”�”}”(hjIêh²hh³Nh´Nubj¨)�”}”(hŒ **data2**”h]”hŒdata2”…”�”}”(hjcêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjIêubhŒ , in bytes”…”�”}”(hjIêh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jEêh´M—hjFêubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj*êubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jEê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”…”�”}”(hjFëh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjBëh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M£ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUëh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjBëh²hh³jTëh´M£ubjD)�”}”(hŒsha256_finup_2x_is_optimized”h]”jJ)�”}”(hŒsha256_finup_2x_is_optimized”h]”hŒsha256_finup_2x_is_optimized”…”�”}”(hjgëh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjcëubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjBëh²hh³jTë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ÉhjBëh²hh³jTëh´M£ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj>ëh²hh³jTëh´M£ubah}”(h]”j9ëah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jTëh´M£hj;ë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&]”uh1juhj;ëh²hh³jTë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¨)�”}”(hj)ìh]”hŒReturn”…”�”}”(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´KhjÉëubhï)�”}”(hŒtrue if optimized”h]”hŒtrue if optimized”…”�”}”(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¨)�”}”(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:76: ./include/crypto/sha2.h”h´M¨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: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¨)�”}”(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ý)�”}”(hjDíh]”hŒkey”…”�”}”(hjFíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjBí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”…”�”}”(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¯hjZíubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj>íubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jYí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_sha256_zeroize_key (C function)”Œc.hmac_sha256_zeroize_key”hNt”auh1hþhjɵh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void hmac_sha256_zeroize_key (struct hmac_sha256_key *key)”h]”j)�”}”(hŒ9void hmac_sha256_zeroize_key(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_zeroize_key”h]”jJ)�”}”(hŒhmac_sha256_zeroize_key”h]”hŒhmac_sha256_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´MµubjÊ)�”}”(hŒ(struct hmac_sha256_key *key)”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_zeroize_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Œkey”h]”hŒkey”…”�”}”(hj4î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Œ$Zeroize an hmac_sha256_key structure”h]”hŒ$Zeroize an hmac_sha256_key structure”…”�”}”(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˜jvîj™jvîjš‰j›‰jœ‰uh1jh²hhjɵh³Nh´Nubjž)�”}”(hŒP**Parameters** ``struct hmac_sha256_key *key`` The hmac_sha256_key to zeroize”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¹hjzîubjì)�”}”(hhh]”jñ)�”}”(hŒ>``struct hmac_sha256_key *key`` The hmac_sha256_key to zeroize”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ŒThe hmac_sha256_key to zeroize”h]”hŒThe hmac_sha256_key to zeroize”…”�”}”(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–îubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjzî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¾hj8ïh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjîîh²hh³jïh´M»ubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jSïj™jSï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ÂhjWïubjÃ)�”}”(hŒ=struct hmac_sha256_ctx { struct __hmac_sha256_ctx ctx; };”h]”hŒ=struct hmac_sha256_ctx { struct __hmac_sha256_ctx ctx; };”…”�”}”hjxï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ÄhjWï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ÈhjWï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´M¿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´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ëhjWïubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjɵh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha256_zeroize_ctx (C function)”Œc.hmac_sha256_zeroize_ctx”hNt”auh1hþhjɵh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void hmac_sha256_zeroize_ctx (struct hmac_sha256_ctx *ctx)”h]”j)�”}”(hŒ9void hmac_sha256_zeroize_ctx(struct hmac_sha256_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Œhmac_sha256_zeroize_ctx”h]”jJ)�”}”(hŒhmac_sha256_zeroize_ctx”h]”hŒhmac_sha256_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´MÆubjÊ)�”}”(hŒ(struct hmac_sha256_ctx *ctx)”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Œ ”…”�”}”(hjLð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&]”uh1jIhjZð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_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”…”�”}”(hj˜ðh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj;ðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj7ð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Œ$Zeroize an hmac_sha256_ctx structure”h]”hŒ$Zeroize an hmac_sha256_ctx structure”…”�”}”(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ž)�”}”(hŒX**Parameters** ``struct hmac_sha256_ctx *ctx`` The hmac_sha256_ctx context to zeroize”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ŒF``struct hmac_sha256_ctx *ctx`` The hmac_sha256_ctx context to zeroize”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Œ&The hmac_sha256_ctx context to zeroize”h]”hŒ&The hmac_sha256_ctx context to zeroize”…”�”}”(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úð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‘hjYñh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÏubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjlñh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjYñh²hh³jkñ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&]”uh1jIhjzñubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjYñh²hh³jkñ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Œ ”…”�”}”(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_sha256_preparekey”†”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Œraw_key”h]”hŒraw_key”…”�”}”(hjcò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_preparekey”†”asbuh1hhjxòubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�òh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjxòubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hj«òh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxò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´MÏubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjUñh²hh³jkñh´MÏubah}”(h]”jPñah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jkñh´MÏhjRñh²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepare a key for HMAC-SHA256”h]”hŒPrepare a 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&]”uh1juhjRñh²hh³jkñ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¨)�”}”(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_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ý)�”}”(hjOóh]”hŒconst u8 *raw_key”…”�”}”(hjQóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjMóubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÑhjIóubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA256 key”h]”hŒthe raw HMAC-SHA256 key”…”�”}”(hjhóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jdóh´MÑhjeóubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjIóubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jdó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_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.”…”�”}”(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 (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”…”�”}”(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´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”…”�”}”(hjlôh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjhôubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyôh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjhô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 jRôsbŒc.hmac_sha256_init”†”asbuh1hhjhôubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªôh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjhôubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¸ôh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjhôubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÅôh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjhôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjdôubjÐ)�”}”(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¦ôŒc.hmac_sha256_init”†”asbuh1hhjÚôubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5õh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÚôubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjCõh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÚôubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hjPõh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÚôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjdô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”…”�”}”(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´MÝhjwõ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”…”�”}”(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_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²õubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj–õubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj/öh]”hŒ Description”…”�”}”(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: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.”…”�”}”(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´Màhj–õubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjVöh]”hŒContext”…”�”}”(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Œ Any context.”h]”hŒ Any context.”…”�”}”(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–õ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”…”�”}”(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_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”…”�”}”(hj1÷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”…”�”}”(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Œu8”h]”hŒu8”…”�”}”(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÷Œ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Œraw_key”h]”hŒraw_key”…”�”}”(hj¡÷h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjF÷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_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´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¨)�”}”(hj5øh]”hŒ Parameters”…”�”}”(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ð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ý)�”}”(hjTøh]”hŒstruct hmac_sha256_ctx *ctx”…”�”}”(hjVøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjRøubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MîhjNøubj)�”}”(hhh]”hï)�”}”(hŒ'(output) the HMAC context to initialize”h]”hŒ'(output) the HMAC context to initialize”…”�”}”(hjmøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jiøh´Mîhjjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjNøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jiøh´MîhjKø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ïhjKø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ðhjKø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_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”…”�”}”(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_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Æuh1jChjiù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&]”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_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”…”�”}”(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_sha256_update”†”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Œdata”h]”hŒdata”…”�”}”(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 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_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É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Œ/Update an HMAC-SHA256 context with message data”h]”hŒ/Update an HMAC-SHA256 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&]”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ž)�”}”(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¨)�”}”(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_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”…”�”}”(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 message data”h]”hŒthe message data”…”�”}”(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Œ-``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ë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Œ'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´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_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Œ ”…”�”}”(hjNüh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj;üh²hh³jMü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³jMü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 hjxüubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰üh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjxü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 jbüsbŒc.hmac_sha256_final”†”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Œctx”h]”hŒctx”…”�”}”(hjÕüh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjxüubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjtü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_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”…”�”}”(hj8ýh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjêüubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEýh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjêüubh)�”}”(hhh]”jJ)�”}”(hŒSHA256_DIGEST_SIZE”h]”hŒSHA256_DIGEST_SIZE”…”�”}”(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.hmac_sha256_final”†”asbuh1hhjêüubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjtýh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjêüubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjtüubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj;üh²hh³jMüh´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj7üh²hh³jMüh´M ubah}”(h]”j2üah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jMüh´M hj4ü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&]”uh1juhj4üh²hh³jMü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¨)�”}”(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Œ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ý)�”}”(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Œ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 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”…”�”}”(hj0þ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¨)�”}”(hjRþh]”hŒ Description”…”�”}”(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: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 ”…”�”}”(hjhþh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjpþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjhþubhŒ(. So the caller does not need to do it.”…”�”}”(hjhþ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´Mhj¹ý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”…”�”}”(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”h]”jJ)�”}”(hŒ hmac_sha256”h]”hŒ hmac_sha256”…”�”}”(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Œ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Œ ”…”�”}”(hj5ÿh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ÿubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha256_key”h]”hŒhmac_sha256_key”…”�”}”(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)�”}”j jóþsbŒ c.hmac_sha256”†”asbuh1hhj ÿubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjfÿh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj ÿubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjtÿ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]”jbÿŒ 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Œ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]”jbÿŒ c.hmac_sha256”†”asbuh1hhjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubeh}”(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”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjRubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jWŒmodname”NŒ classname”Nj j)�”}”j]”jbÿŒ c.hmac_sha256”†”asbuh1hhjNubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjNubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjNubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjNubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjNubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjNubh)�”}”(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]”jbÿŒ c.hmac_sha256”†”asbuh1hhjNubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjNubeh}”(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Œ5Compute HMAC-SHA256 in one shot, using a prepared key”h]”hŒ5Compute HMAC-SHA256 in one shot, using a prepared key”…”�”}”(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´Mhjþh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÅþh²hh³jÞþh´Mubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jj™jjš‰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´Mhjubjì)�”}”(hhh]”(jñ)�”}”(hŒ<``const struct hmac_sha256_key *key`` the prepared HMAC key ”h]”(j÷)�”}”(hŒ%``const struct hmac_sha256_key *key``”h]”jý)�”}”(hjBh]”hŒ!const struct hmac_sha256_key *key”…”�”}”(hjDh²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 prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jWh´MhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jWh´Mhj9ubjñ)�”}”(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ühjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjuubj)�”}”(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&]”uh1jhjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�h´Mhj9ubjñ)�”}”(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´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´Mhj9ubjñ)�”}”(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”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´Mhj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjubhï)�”}”(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´Mhjubhï)�”}”(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´Mhjubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjOh]”hŒContext”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhjubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjeh²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´Mhjubeh}”(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´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_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´M&ubjÊ)�”}”(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”…”�”}”(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_sha256_usingrawkey”†”asbuh1hhjÍubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²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Œ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”…”�”}”(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.hmac_sha256_usingrawkey”†”asbuh1hhj?ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj?ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjrh²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Œ ”…”�”}”(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_sha256_usingrawkey”†”asbuh1hhj÷ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²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 SHA256_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(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.hmac_sha256_usingrawkey”†”asbuh1hhj?ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj?ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjrh²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_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´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Œ0Compute HMAC-SHA256 in one shot, using a raw key”h]”hŒ0Compute HMAC-SHA256 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³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** ``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¨)�”}”(hjh]”hŒ Parameters”…”�”}”(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:76: ./include/crypto/sha2.h”h´M*hjubjì)�”}”(hhh]”(jñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA256 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj3h]”hŒconst u8 *raw_key”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj1ubah}”(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”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jHh´M'hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jHh´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ý)�”}”(hjlh]”hŒsize_t raw_key_len”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M(hjfubj)�”}”(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&]”uh1jhjfubeh}”(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ý)�”}”(hjh]”hŒ!u8 out[static SHA256_DIGEST_SIZE]”…”�”}”(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Œ((output) the resulting HMAC-SHA256 value”h]”hŒ((output) the resulting HMAC-SHA256 value”…”�”}”(hj0h²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*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjRh]”hŒ Description”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M-hjubhï)�”}”(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.”…”�”}”(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´M,hjubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjyh]”hŒContext”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M/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:76: ./include/crypto/sha2.h”h´M0hjubeh}”(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”…”�”}”(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Œ sha384_ctx”h]”jJ)�”}”(hj¸h]”hŒ sha384_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´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Œ*Context for hashing a message with SHA-384”h]”hŒ*Context for hashing a message with SHA-384”…”�”}”(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´MYhjýh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj³h²hh³jËh´M5ubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jj™jjš‰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´M]hjubjÃ)�”}”(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_hjubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjNh]”hŒMembers”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mchjubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hjmh]”hŒctx”…”�”}”(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´MZhjgubj)�”}”(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&]”uh1jhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j‚h´MZhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjubeh}”(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”…”�”}”(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´Maubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÃh²hh³jÕh´MaubjD)�”}”(hŒ sha384_init”h]”jJ)�”}”(hŒ sha384_init”h]”hŒ 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´MaubjÊ)�”}”(hŒ(struct sha384_ctx *ctx)”h]”jÐ)�”}”(hŒstruct sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubh)�”}”(hhh]”jJ)�”}”(hŒ sha384_ctx”h]”hŒ sha384_ctx”…”�”}”(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.sha384_init”†”asbuh1hhjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjüubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÃh²hh³jÕh´Maubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¿h²hh³jÕh´Maubah}”(h]”jºah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÕh´Mahj¼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´Mahj„h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj¼h²hh³jÕh´Maubeh}”(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´Mehj£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ü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 context to initialize”h]”hŒthe context to initialize”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÝh´MbhjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÂubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÝh´Mbhj¿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´Mdhj£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´Mchj£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´Mehj£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´Mfhj£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”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjk h²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&]”uh1j2hjk h²hh³j} h´MkubjD)�”}”(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Æuh1jChjk h²hh³j} h´MkubjÊ)�”}”(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&]”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_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”…”�”}”(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æ Œc.sha384_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Œdata”h]”hŒdata”…”�”}”(hju 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.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Éhjk h²hh³j} h´Mkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjg h²hh³j} h´Mkubah}”(h]”jb ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j} h´Mkhjd h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Update a SHA-384 context with message data”h]”hŒ*Update a SHA-384 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´Mkhjä h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjd h²hh³j} h´Mkubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÿ j™jÿ 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§hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mohj 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´Mlhj" ubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j= h´Mlhj> ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj" ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j= h´Mlhj ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hja h]”hŒconst u8 *data”…”�”}”(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´Mmhj[ ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjz h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jv h´Mmhjw ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj[ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jv h´Mmhj 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´Mnhj” 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´Mnhj° ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj” ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¯ h´Mnhj 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´Mphj 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´Mohj 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´Mqhj 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´Mrhj 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”…”�”}”(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´M{ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjP h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj= h²hh³jO h´M{ubjD)�”}”(hŒ sha384_final”h]”jJ)�”}”(hŒ sha384_final”h]”hŒ sha384_final”…”�”}”(hjb 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´M{ubjÊ)�”}”(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 hjz ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjz 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 jd sbŒc.sha384_final”†”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Œctx”h]”hŒctx”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjz ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjv 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]”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Œ ”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjì ubh)�”}”(hhh]”jJ)�”}”(hŒSHA384_DIGEST_SIZE”h]”hŒSHA384_DIGEST_SIZE”…”�”}”(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.sha384_final”†”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³jO h´M{ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj9 h²hh³jO h´M{ubah}”(h]”j4 ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jO h´M{hj6 h²hubjv)�”}”(hhh]”hï)�”}”(hŒ)Finish computing a SHA-384 message digest”h]”hŒ)Finish computing a SHA-384 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´M{hjœ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj6 h²hh³jO h´M{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 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¨)�”}”(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ŒO``struct sha384_ctx *ctx`` the context to finalize; 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´M|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´M|hjö ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÚ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jõ h´M|hj× 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ý)�”}”(hjh]”hŒ!u8 out[static SHA384_DIGEST_SIZE]”…”�”}”(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Œ-(output) the resulting SHA-384 message digest”h]”hŒ-(output) the resulting SHA-384 message digest”…”�”}”(hj2h²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× ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj» ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjTh]”hŒ Description”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjRubah}”(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 ”…”�”}”(hjjh²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjjubhŒ(. So the caller does not need to do it.”…”�”}”(hjjh²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 Œ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”…”�”}”(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Œsha384”h]”jJ)�”}”(hŒsha384”h]”hŒ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Œ?(const u8 *data, size_t len, u8 out[static SHA384_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjh²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Œ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.sha384”†”asbuh1hhj ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMh²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”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjubjÐ)�”}”(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]”jIŒc.sha384”†”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ÏhjubjÐ)�”}”(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]”jIŒc.sha384”†”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Œ[”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÅubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjh²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”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j3Œmodname”NŒ classname”Nj j)�”}”j]”jIŒc.sha384”†”asbuh1hhjÅubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÅubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjubeh}”(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 SHA-384 message digest in one shot”h]”hŒ*Compute SHA-384 message digest in one shot”…”�”}”(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†hjuh²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ž)�”}”(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”…”�”}”(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 *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 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”…”�”}”(hj h²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Œ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´M‰hj%ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-384 message digest”h]”hŒ-(output) the resulting SHA-384 message digest”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j@h´M‰hjAubah}”(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¨)�”}”(hjfh]”hŒContext”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjdubah}”(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_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”…”�”}”(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_key”h]”jJ)�”}”(hj¥h]”hŒhmac_sha384_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-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´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˜jj™jjš‰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”…”�”}”(hjh²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_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´M–hj ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hj;h]”hŒMembers”…”�”}”(hj=h²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´Mšhj ubjì)�”}”(hhh]”jñ)�”}”(hŒ``key`` private”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hjZh]”hŒkey”…”�”}”(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Œprivate”h]”hŒprivate”…”�”}”(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’hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³joh´M‘hjQubah}”(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_zeroize_key (C function)”Œc.hmac_sha384_zeroize_key”hNt”auh1hþhjɵh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void hmac_sha384_zeroize_key (struct hmac_sha384_key *key)”h]”j)�”}”(hŒ9void hmac_sha384_zeroize_key(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_zeroize_key”h]”jJ)�”}”(hŒhmac_sha384_zeroize_key”h]”hŒhmac_sha384_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´M˜ubjÊ)�”}”(hŒ(struct hmac_sha384_key *key)”h]”jÐ)�”}”(hŒstruct hmac_sha384_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_sha384_key”h]”hŒhmac_sha384_key”…”�”}”(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.hmac_sha384_zeroize_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Œkey”h]”hŒkey”…”�”}”(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´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Œ$Zeroize an hmac_sha384_key structure”h]”hŒ$Zeroize an hmac_sha384_key structure”…”�”}”(hjth²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˜hjqh²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ž)�”}”(hŒP**Parameters** ``struct hmac_sha384_key *key`` The hmac_sha384_key to zeroize”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Œ>``struct hmac_sha384_key *key`` The hmac_sha384_key to zeroize”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ŒThe hmac_sha384_key to zeroize”h]”hŒThe hmac_sha384_key to zeroize”…”�”}”(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¬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”…”�”}”(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Œ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj h²hh³jh´MžubjD)�”}”(hŒhmac_sha384_ctx”h]”jJ)�”}”(hj h]”hŒhmac_sha384_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³jh´Mžubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjh²hh³jh´Mžubah}”(h]”jah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jh´Mžhjh²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Context for computing HMAC-SHA384 of a message”h]”hŒ.Context for computing HMAC-SHA384 of a message”…”�”}”(hjQh²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¡hjNh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjh²hh³jh´Mžubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jij™jijš‰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”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjqubhŒ:”…”�”}”(hjqh²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¥hjmubjÃ)�”}”(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´M§hjmubhï)�”}”(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«hjmubjì)�”}”(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´M¢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´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ëhjmubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjɵh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha384_zeroize_ctx (C function)”Œc.hmac_sha384_zeroize_ctx”hNt”auh1hþhjɵh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void hmac_sha384_zeroize_ctx (struct hmac_sha384_ctx *ctx)”h]”j)�”}”(hŒ9void hmac_sha384_zeroize_ctx(struct hmac_sha384_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(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´M©ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjh²hh³j&h´M©ubjD)�”}”(hŒhmac_sha384_zeroize_ctx”h]”jJ)�”}”(hŒhmac_sha384_zeroize_ctx”h]”hŒhmac_sha384_zeroize_ctx”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj5ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjh²hh³j&h´M©ubjÊ)�”}”(hŒ(struct hmac_sha384_ctx *ctx)”h]”jÐ)�”}”(hŒstruct hmac_sha384_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjQubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjQubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha384_ctx”h]”hŒhmac_sha384_ctx”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjpubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”juŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j;sbŒc.hmac_sha384_zeroize_ctx”†”asbuh1hhjQubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjQubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjQubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjQubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjMubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjh²hh³j&h´M©ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjh²hh³j&h´M©ubah}”(h]”j ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j&h´M©hj h²hubjv)�”}”(hhh]”hï)�”}”(hŒ$Zeroize an hmac_sha384_ctx structure”h]”hŒ$Zeroize an hmac_sha384_ctx structure”…”�”}”(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ž)�”}”(hŒX**Parameters** ``struct hmac_sha384_ctx *ctx`` The hmac_sha384_ctx context to zeroize”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ŒF``struct hmac_sha384_ctx *ctx`` The hmac_sha384_ctx context to zeroize”h]”(j÷)�”}”(hŒ``struct hmac_sha384_ctx *ctx``”h]”jý)�”}”(hjh]”hŒstruct hmac_sha384_ctx *ctx”…”�”}”(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 hmac_sha384_ctx context to zeroize”h]”hŒ&The hmac_sha384_ctx context to zeroize”…”�”}”(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´Mªhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j.h´M¯hjubah}”(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”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjoh²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&]”uh1j2hjoh²hh³j�h´M²ubjD)�”}”(hŒhmac_sha384_preparekey”h]”jJ)�”}”(hŒhmac_sha384_preparekey”h]”hŒhmac_sha384_preparekey”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjoh²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”…”�”}”(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]”j)�”}”j j–sbŒc.hmac_sha384_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 hjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubh)�”}”(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_sha384_preparekey”†”asbuh1hhjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjubeh}”(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_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Éhjoh²hh³j�h´M²ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjkh²hh³j�h´M²ubah}”(h]”jfah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j�h´M²hjhh²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&]”uh1juhjhh²hh³j�h´M²ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jj™jjš‰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”…”�”}”(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¶hjubjì)�”}”(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”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jAh´M³hjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jAh´M³hj#ubjñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA384 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hjeh]”hŒconst u8 *raw_key”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjcubah}”(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”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jzh´M´hj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jzh´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ëhjubhï)�”}”(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·hjubhï)�”}”(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·hjubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjh]”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ºhjubhï)�”}”(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ºhjubeh}”(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”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjAh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÀubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjAh²hh³jSh´MÀubjD)�”}”(hŒhmac_sha384_init”h]”jJ)�”}”(hŒhmac_sha384_init”h]”hŒhmac_sha384_init”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjbubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjAh²hh³jSh´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Œ ”…”�”}”(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 jhsbŒ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ÏhjzubjÐ)�”}”(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Œ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjðubj!)�”}”(hj$h]”hŒstruct”…”�”}”(hjh²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”…”�”}”(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”†”asbuh1hhjðubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjðubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjYh²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Ïhjzubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjAh²hh³jSh´MÀubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj=h²hh³jSh´MÀubah}”(h]”j8ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jSh´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”…”�”}”(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³jSh´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`` (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¨)�”}”(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 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ü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³jh´MÂhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´MÂhjÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¬ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjEh]”hŒ Description”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjCubah}”(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_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Ãhj¬ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjlh]”hŒContext”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjjubah}”(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_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”…”�”}”(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_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Æuh1jChj­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”…”�”}”(hjGh²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Œ ”…”�”}”(hjmh²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_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_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É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-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&]”uh1juhj¦h²hh³j¿h´MÏubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jAj™jAjš‰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¨)�”}”(hjKh]”hŒ Parameters”…”�”}”(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ÓhjEubjì)�”}”(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ý)�”}”(hjjh]”hŒstruct hmac_sha384_ctx *ctx”…”�”}”(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Œ'(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³jh´MÑhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjdubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jh´MÑhjaubjñ)�”}”(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ü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-SHA384 key”h]”hŒthe raw HMAC-SHA384 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Òhjaubjñ)�”}”(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Óhjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjEubhï)�”}”(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³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÕhjEubhï)�”}”(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ÔhjEubhï)�”}”(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×hjEubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjTh²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ØhjEubeh}”(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‘hjh²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&]”uh1j2hjh²hh³j‘h´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Æuh1jChjh²hh³j‘h´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 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_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”…”�”}”(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”…”�”}”(hj2h²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”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjMubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jRŒmodname”NŒ classname”Nj j)�”}”j]”júŒc.hmac_sha384_update”†”asbuh1hhj.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjnh²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_sha384_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Éhjh²hh³j‘h´MÞubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj{h²hh³j‘h´MÞubah}”(h]”jvah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j‘h´MÞhjxh²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&]”uh1juhjxh²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_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ßhj6 ubj)�”}”(hhh]”hï)�”}”(hŒ6the HMAC context to update; must have been initialized”h]”hŒ6the HMAC context to update; must have been initialized”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jQ h´MßhjR ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jQ h´Mß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:76: ./include/crypto/sha2.h”h´Mà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´Màhj‹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjo ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŠ h´Mà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: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á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´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”…”�”}”(hjU!h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjQ!h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mîubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd!h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjQ!h²hh³jc!h´MîubjD)�”}”(hŒhmac_sha384_final”h]”jJ)�”}”(hŒhmac_sha384_final”h]”hŒhmac_sha384_final”…”�”}”(hjv!h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjr!ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjQ!h²hh³jc!h´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”…”�”}”(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 jx!sbŒc.hmac_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”…”�”}”(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]”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”…”�”}”(hj3"h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj"ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjA"h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj"ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjN"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”…”�”}”(hjl"h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhji"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jn"Œmodname”NŒ classname”Nj j)�”}”j]”jÌ!Œc.hmac_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ÉhjQ!h²hh³jc!h´Mîubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjM!h²hh³jc!h´Mîubah}”(h]”jH!ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jc!h´MîhjJ!h²hubjv)�”}”(hhh]”hï)�”}”(hŒ%Finish computing an HMAC-SHA384 value”h]”hŒ%Finish computing an HMAC-SHA384 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&]”uh1juhjJ!h²hh³jc!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_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”…”�”}”(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ë"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÏ"ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjh#h]”hŒ Description”…”�”}”(hjj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjf#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_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Œ ”…”�”}”(hj0$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Œ ”…”�”}”(hjK$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&]”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”†”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”…”�”}”(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”†”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]”jx$Œ c.hmac_sha384”†”asbuh1hhj%ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA%h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj%ubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjO%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”…”�”}”(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]”jx$Œ c.hmac_sha384”†”asbuh1hhjd%ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰%h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjd%ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj—%h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjd%ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj¥%h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjd%ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj²%h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjd%ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿%h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjd%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]”jx$Œ c.hmac_sha384”†”asbuh1hhjd%ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjî%h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjd%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¨)�”}”(hj9&h]”hŒ Parameters”…”�”}”(hj;&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj7&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mþhj3&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ý)�”}”(hjX&h]”hŒ!const struct hmac_sha384_key *key”…”�”}”(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Œthe prepared HMAC key”h]”hŒthe prepared HMAC key”…”�”}”(hjq&h²hh³Nh´Nubah}”(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ûhjO&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ühjO&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ýhjO&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þhjO&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj3&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´Mhj3&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().”…”�”}”(hjT'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ÿhj3&ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hje'h]”hŒContext”…”�”}”(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´Mhj3&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´Mhj3&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”…”�”}”(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_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Æuh1jChj¦'h²hh³j¸'h´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Œ*”…”�”}”(hj3(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&]”uh1jIhjY(ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j^(Œmodname”NŒ classname”Nj j)�”}”j]”j!(Œc.hmac_sha384_usingrawkey”†”asbuh1hhjU(ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz(h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjU(ubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjˆ(h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjU(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_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Œ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_sha384_usingrawkey”†”asbuh1hhj )ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2)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&]”uh1jIhjY)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j^)Œmodname”NŒ classname”Nj j)�”}”j]”j!(Œc.hmac_sha384_usingrawkey”†”asbuh1hhjU)ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz)h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjU)ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hjˆ)h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjU)ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj–)h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjU)ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj£)h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjU)ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°)h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjU)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_usingrawkey”†”asbuh1hhjU)ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjß)h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjU)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Œ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³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** ``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ý)�”}”(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:76: ./include/crypto/sha2.h”h´M hjC*ubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA384 key”h]”hŒthe raw HMAC-SHA384 key”…”�”}”(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@*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 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´Mhj'+ubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA384 value”h]”hŒ((output) the resulting HMAC-SHA384 value”…”�”}”(hjF+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jB+h´MhjC+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj'+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jB+h´Mhj@*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj$*ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjh+h]”hŒ Description”…”�”}”(hjj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjf+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_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´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 Œ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´Mubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ+h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÐ+h²hh³já+h´MubjD)�”}”(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´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-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´Mhj,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 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§hj6,ubhŒ:”…”�”}”(hj6,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´Mhj2,ubjÃ)�”}”(hŒ3struct sha512_ctx { struct __sha512_ctx ctx; };”h]”hŒ3struct sha512_ctx { struct __sha512_ctx ctx; };”…”�”}”hjS,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 hj2,ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjd,h]”hŒMembers”…”�”}”(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´M$hj2,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´Mhj},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´Mhj™,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj},ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j˜,h´Mhjz,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj2,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”…”�”}”(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.sha512_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-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”…”�”}”(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ž)�”}”(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§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 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ë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Œ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$hj¹-ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj@.h]”hŒContext”…”�”}”(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´M&hj¹-ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(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´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_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”…”�”}”(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_update”h]”jJ)�”}”(hŒ sha512_update”h]”hŒ sha512_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Œ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 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_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”…”�”}”(hj4/h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj0/ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjA/h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj0/ubh)�”}”(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]”jü.Œc.sha512_update”†”asbuh1hhj0/ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp/h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj0/ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj~/h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj0/ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj‹/h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj0/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.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Ï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]”jx.ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j“.h´M,hjz.h²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&]”uh1juhjz.h²hh³j“.h´M,ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j0j™j0jš‰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¨)�”}”(hj0h]”hŒ Parameters”…”�”}”(hj!0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M0hj0ubjì)�”}”(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>0h]”hŒstruct sha512_ctx *ctx”…”�”}”(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:76: ./include/crypto/sha2.h”h´M-hj80ubj)�”}”(hhh]”hï)�”}”(hŒ1the context to update; must have been initialized”h]”hŒ1the context to update; must have been initialized”…”�”}”(hjW0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jS0h´M-hjT0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj80ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jS0h´M-hj50ubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjw0h]”hŒconst u8 *data”…”�”}”(hjy0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühju0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M.hjq0ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŒ0h´M.hj�0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjq0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jŒ0h´M.hj50ubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj°0h]”hŒ size_t len”…”�”}”(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:76: ./include/crypto/sha2.h”h´M/hjª0ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjÉ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÅ0h´M/hjÆ0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjª0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÅ0h´M/hj50ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj0ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjë0h]”hŒ Description”…”�”}”(hjí0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjé0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M1hj0ubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hj1h²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´M0hj0ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj1h]”hŒContext”…”�”}”(hj1h²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´M2hj0ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj(1h²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´M3hj0ubeh}”(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”…”�”}”(hjW1h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjS1h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M<ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjS1h²hh³je1h´M<ubjD)�”}”(hŒ sha512_final”h]”jJ)�”}”(hŒ sha512_final”h]”hŒ sha512_final”…”�”}”(hjx1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjt1ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjS1h²hh³je1h´M<ubjÊ)�”}”(hŒ;(struct sha512_ctx *ctx, u8 out[static SHA512_DIGEST_SIZE])”h]”(jÐ)�”}”(hŒstruct sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj”1h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj�1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�1ubh)�”}”(hhh]”jJ)�”}”(hŒ sha512_ctx”h]”hŒ sha512_ctx”…”�”}”(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]”j)�”}”j jz1sbŒc.sha512_final”†”asbuh1hhj�1ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒ1h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj�1ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjà1h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj�1ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjí1h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj�1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŒ1ubjÐ)�”}”(hŒ!u8 out[static SHA512_DIGEST_SIZE]”h]”(h)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hj 2h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j 2Œmodname”NŒ classname”Nj j)�”}”j]”jÎ1Œc.sha512_final”†”asbuh1hhj2ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'2h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj2ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj52h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj2ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hjC2h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj2ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hjP2h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj2ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]2h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj2ubh)�”}”(hhh]”jJ)�”}”(hŒSHA512_DIGEST_SIZE”h]”hŒSHA512_DIGEST_SIZE”…”�”}”(hjn2h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjk2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jp2Œmodname”NŒ classname”Nj j)�”}”j]”jÎ1Œc.sha512_final”†”asbuh1hhj2ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hjŒ2h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjŒ1ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjS1h²hh³je1h´M<ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjO1h²hh³je1h´M<ubah}”(h]”jJ1ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³je1h´M<hjL1h²hubjv)�”}”(hhh]”hï)�”}”(hŒ)Finish computing a SHA-512 message digest”h]”hŒ)Finish computing a SHA-512 message digest”…”�”}”(hjµ2h²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²2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjL1h²hh³je1h´M<ubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜jÍ2j™jÍ2jš‰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×2h]”hŒ Parameters”…”�”}”(hjÙ2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjÕ2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M@hjÑ2ubjì)�”}”(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ö2h]”hŒstruct sha512_ctx *ctx”…”�”}”(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´M=hjð2ubj)�”}”(hhh]”hï)�”}”(hŒ3the context to finalize; must have been initialized”h]”hŒ3the context to finalize; must have been initialized”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j 3h´M=hj 3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjð2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j 3h´M=hjí2ubjñ)�”}”(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/3h]”hŒ!u8 out[static SHA512_DIGEST_SIZE]”…”�”}”(hj13h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj-3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M>hj)3ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-512 message digest”h]”hŒ-(output) the resulting SHA-512 message digest”…”�”}”(hjH3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jD3h´M>hjE3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj)3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jD3h´M>hjí2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÑ2ubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjj3h]”hŒ Description”…”�”}”(hjl3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjh3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M@hjÑ2ubhï)�”}”(hŒNAfter finishing, this zeroizes **ctx**. So the caller does not need to do it.”h]”(hŒAfter finishing, this zeroizes ”…”�”}”(hj€3h²hh³Nh´Nubj¨)�”}”(hŒ**ctx**”h]”hŒctx”…”�”}”(hjˆ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj€3ubhŒ(. So the caller does not need to do it.”…”�”}”(hj€3h²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Ñ2ubhï)�”}”(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´MAhjÑ2ubhï)�”}”(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:76: ./include/crypto/sha2.h”h´MBhjÑ2ubeh}”(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è3h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjä3h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MGubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷3h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjä3h²hh³jö3h´MGubjD)�”}”(hŒsha512”h]”jJ)�”}”(hŒsha512”h]”hŒsha512”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj4ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjä3h²hh³jö3h´MGubjÊ)�”}”(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%4h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj!4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj24h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj!4ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjC4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj@4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jE4Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j j 4sbŒc.sha512”†”asbuh1hhj!4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj!4ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjq4h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj!4ubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hj~4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj!4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj4ubjÐ)�”}”(hŒ size_t len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(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_4Œc.sha512”†”asbuh1hhj“4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸4h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj“4ubjJ)�”}”(hŒlen”h]”hŒlen”…”�”}”(hjÆ4h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj“4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj4ubjÐ)�”}”(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_4Œc.sha512”†”asbuh1hhjÛ4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛ4ubjJ)�”}”(hŒout”h]”hŒout”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÛ4ubj*)�”}”(hj9 h]”hŒ[”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÛ4ubj!)�”}”(hjG h]”hŒstatic”…”�”}”(hj)5h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÛ4ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj65h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÛ4ubh)�”}”(hhh]”jJ)�”}”(hŒSHA512_DIGEST_SIZE”h]”hŒSHA512_DIGEST_SIZE”…”�”}”(hjG5h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjD5ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jI5Œmodname”NŒ classname”Nj j)�”}”j]”j_4Œc.sha512”†”asbuh1hhjÛ4ubj*)�”}”(hj„ h]”hŒ]”…”�”}”(hje5h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÛ4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhj4ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjä3h²hh³jö3h´MGubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjà3h²hh³jö3h´MGubah}”(h]”jÛ3ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jö3h´MGhjÝ3h²hubjv)�”}”(hhh]”hï)�”}”(hŒ*Compute SHA-512 message digest in one shot”h]”hŒ*Compute SHA-512 message digest in one shot”…”�”}”(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´MGhj‹5h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÝ3h²hh³jö3h´MGubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¦5j™j¦5jš‰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¨)�”}”(hj°5h]”hŒ Parameters”…”�”}”(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ª5ubjì)�”}”(hhh]”(jñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjÏ5h]”hŒconst u8 *data”…”�”}”(hjÑ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÍ5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MHhjÉ5ubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjè5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jä5h´MHhjå5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÉ5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jä5h´MHhjÆ5ubjñ)�”}”(hŒ(``size_t len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t len``”h]”jý)�”}”(hj6h]”hŒ size_t len”…”�”}”(hj 6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MIhj6ubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj!6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j6h´MIhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j6h´MIhjÆ5ubjñ)�”}”(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ý)�”}”(hjA6h]”hŒ!u8 out[static SHA512_DIGEST_SIZE]”…”�”}”(hjC6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj?6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MJhj;6ubj)�”}”(hhh]”hï)�”}”(hŒ-(output) the resulting SHA-512 message digest”h]”hŒ-(output) the resulting SHA-512 message digest”…”�”}”(hjZ6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jV6h´MJhjW6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jV6h´MJhjÆ5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjª5ubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj|6h]”hŒContext”…”�”}”(hj~6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjz6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MLhjª5ubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj’6h²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ª5ubeh}”(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Á6h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj½6h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MQubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏ6h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj½6h²hh³jÎ6h´MQubjD)�”}”(hŒhmac_sha512_key”h]”jJ)�”}”(hj»6h]”hŒhmac_sha512_key”…”�”}”(hjá6h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÝ6ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj½6h²hh³jÎ6h´MQubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj¹6h²hh³jÎ6h´MQubah}”(h]”j´6ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jÎ6h´MQhj¶6h²hubjv)�”}”(hhh]”hï)�”}”(hŒPrepared key for HMAC-SHA512”h]”hŒPrepared key for HMAC-SHA512”…”�”}”(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´MQhj7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj¶6h²hh³jÎ6h´MQubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j7j™j7jš‰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'7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj#7ubhŒ:”…”�”}”(hj#7h²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´MUhj7ubjÃ)�”}”(hŒ=struct hmac_sha512_key { struct __hmac_sha512_key key; };”h]”hŒ=struct hmac_sha512_key { struct __hmac_sha512_key key; };”…”�”}”hj@7sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MWhj7ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjQ7h]”hŒMembers”…”�”}”(hjS7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjO7ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M[hj7ubjì)�”}”(hhh]”jñ)�”}”(hŒ``key`` private”h]”(j÷)�”}”(hŒ``key``”h]”jý)�”}”(hjp7h]”hŒkey”…”�”}”(hjr7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjn7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MRhjj7ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(hj‰7h²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†7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j…7h´MRhjg7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj7ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjɵh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha512_zeroize_key (C function)”Œc.hmac_sha512_zeroize_key”hNt”auh1hþhjɵh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void hmac_sha512_zeroize_key (struct hmac_sha512_key *key)”h]”j)�”}”(hŒ9void hmac_sha512_zeroize_key(struct hmac_sha512_key *key)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÊ7h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÆ7h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MYubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ7h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÆ7h²hh³jØ7h´MYubjD)�”}”(hŒhmac_sha512_zeroize_key”h]”jJ)�”}”(hŒhmac_sha512_zeroize_key”h]”hŒhmac_sha512_zeroize_key”…”�”}”(hjë7h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjç7ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÆ7h²hh³jØ7h´MYubjÊ)�”}”(hŒ(struct hmac_sha512_key *key)”h]”jÐ)�”}”(hŒstruct hmac_sha512_key *key”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj8ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj8ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_key”h]”hŒhmac_sha512_key”…”�”}”(hj%8h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj"8ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j'8Œmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jí7sbŒc.hmac_sha512_zeroize_key”†”asbuh1hhj8ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjE8h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj8ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjS8h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj8ubjJ)�”}”(hŒkey”h]”hŒkey”…”�”}”(hj`8h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj8ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÿ7ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhjÆ7h²hh³jØ7h´MYubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjÂ7h²hh³jØ7h´MYubah}”(h]”j½7ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³jØ7h´MYhj¿7h²hubjv)�”}”(hhh]”hï)�”}”(hŒ$Zeroize an hmac_sha512_key structure”h]”hŒ$Zeroize an hmac_sha512_key structure”…”�”}”(hjŠ8h²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´MYhj‡8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj¿7h²hh³jØ7h´MYubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j¢8j™j¢8jš‰j›‰jœ‰uh1jh²hhjɵh³Nh´Nubjž)�”}”(hŒP**Parameters** ``struct hmac_sha512_key *key`` The hmac_sha512_key to zeroize”h]”(hï)�”}”(hŒ**Parameters**”h]”j¨)�”}”(hj¬8h]”hŒ Parameters”…”�”}”(hj®8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjª8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M]hj¦8ubjì)�”}”(hhh]”jñ)�”}”(hŒ>``struct hmac_sha512_key *key`` The hmac_sha512_key to zeroize”h]”(j÷)�”}”(hŒ``struct hmac_sha512_key *key``”h]”jý)�”}”(hjË8h]”hŒstruct hmac_sha512_key *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:76: ./include/crypto/sha2.h”h´M_hjÅ8ubj)�”}”(hhh]”hï)�”}”(hŒThe hmac_sha512_key to zeroize”h]”hŒThe hmac_sha512_key to zeroize”…”�”}”(hjä8h²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´MZhjá8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÅ8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jà8h´M_hjÂ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¦8ubeh}”(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%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Œ ”…”�”}”(hj39h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj!9h²hh³j29h´M_ubjD)�”}”(hŒhmac_sha512_ctx”h]”jJ)�”}”(hj9h]”hŒhmac_sha512_ctx”…”�”}”(hjE9h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjA9ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj!9h²hh³j29h´M_ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj9h²hh³j29h´M_ubah}”(h]”j9ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j29h´M_hj9h²hubjv)�”}”(hhh]”hï)�”}”(hŒ.Context for computing HMAC-SHA512 of a message”h]”hŒ.Context for computing HMAC-SHA512 of a message”…”�”}”(hjg9h²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´Mbhjd9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj9h²hh³j29h´M_ubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜j9j™j9jš‰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‹9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj‡9ubhŒ:”…”�”}”(hj‡9h²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´Mfhjƒ9ubjÃ)�”}”(hŒ=struct hmac_sha512_ctx { struct __hmac_sha512_ctx ctx; };”h]”hŒ=struct hmac_sha512_ctx { struct __hmac_sha512_ctx ctx; };”…”�”}”hj¤9sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Mhhjƒ9ubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjµ9h]”hŒMembers”…”�”}”(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:76: ./include/crypto/sha2.h”h´Mlhjƒ9ubjì)�”}”(hhh]”jñ)�”}”(hŒ``ctx`` private”h]”(j÷)�”}”(hŒ``ctx``”h]”jý)�”}”(hjÔ9h]”hŒctx”…”�”}”(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:76: ./include/crypto/sha2.h”h´MchjÎ9ubj)�”}”(hhh]”hï)�”}”(hŒprivate”h]”hŒprivate”…”�”}”(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´Mdhjê9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÎ9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jé9h´MchjË9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjƒ9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjɵh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œ$hmac_sha512_zeroize_ctx (C function)”Œc.hmac_sha512_zeroize_ctx”hNt”auh1hþhjɵh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ:void hmac_sha512_zeroize_ctx (struct hmac_sha512_ctx *ctx)”h]”j)�”}”(hŒ9void hmac_sha512_zeroize_ctx(struct hmac_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´Mjubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj*:h²hh³j<:h´MjubjD)�”}”(hŒhmac_sha512_zeroize_ctx”h]”jJ)�”}”(hŒhmac_sha512_zeroize_ctx”h]”hŒhmac_sha512_zeroize_ctx”…”�”}”(hjO:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjK:ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj*:h²hh³j<:h´MjubjÊ)�”}”(hŒ(struct hmac_sha512_ctx *ctx)”h]”jÐ)�”}”(hŒstruct hmac_sha512_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjk:h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjg:ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjx:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjg: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 jQ:sbŒc.hmac_sha512_zeroize_ctx”†”asbuh1hhjg:ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj©:h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjg:ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj·:h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjg:ubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hjÄ:h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjg:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjc:ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj*:h²hh³j<:h´Mjubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj&:h²hh³j<:h´Mjubah}”(h]”j!:ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j<:h´Mjhj#:h²hubjv)�”}”(hhh]”hï)�”}”(hŒ$Zeroize an hmac_sha512_ctx structure”h]”hŒ$Zeroize an hmac_sha512_ctx structure”…”�”}”(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´Mjhjë:h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj#:h²hh³j<:h´Mjubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j;j™j;jš‰j›‰jœ‰uh1jh²hhjɵh³Nh´Nubjž)�”}”(hŒX**Parameters** ``struct hmac_sha512_ctx *ctx`` The hmac_sha512_ctx context to zeroize”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´Mnhj ;ubjì)�”}”(hhh]”jñ)�”}”(hŒF``struct hmac_sha512_ctx *ctx`` The hmac_sha512_ctx context to zeroize”h]”(j÷)�”}”(hŒ``struct hmac_sha512_ctx *ctx``”h]”jý)�”}”(hj/;h]”hŒstruct hmac_sha512_ctx *ctx”…”�”}”(hj1;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´Mphj);ubj)�”}”(hhh]”hï)�”}”(hŒ&The hmac_sha512_ctx context to zeroize”h]”hŒ&The hmac_sha512_ctx context to zeroize”…”�”}”(hjH;•Lh²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´MkhjE;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj);ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jD;h´Mphj&;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´Msubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜;h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj…;h²hh³j—;h´MsubjD)�”}”(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´MsubjÊ)�”}”(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”…”�”}”(hj8<h²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj4<ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjE<h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4<ubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(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.hmac_sha512_preparekey”†”asbuh1hhj4<ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjt<h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj4<ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj‚<h²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hj4<ubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hj�<h²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj4<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´Msubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj�;h²hh³j—;h´Msubah}”(h]”j|;ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j—;h´Mshj~;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´Mshjþ<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj~;h²hh³j—;h´Msubeh}”(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´Mwhj=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ý)�”}”(hjB=h]”hŒstruct hmac_sha512_key *key”…”�”}”(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:76: ./include/crypto/sha2.h”h´Mthj<=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³jW=h´MthjX=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jW=h´Mthj9=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ühjy=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´Muhju=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´Muhj‘=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhju=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j�=h´Muhj9=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´Mvhj®=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´MvhjÊ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj®=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÉ=h´Mvhj9=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´Mxhj=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´Mxhj=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 (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”…”�”}”(hj[>h²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjW>h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M�ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj>h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjW>h²hh³ji>h´M�ubjD)�”}”(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&]”uh1jIhjx>ubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjW>h²hh³ji>h´M�ubjÊ)�”}”(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Œ ”…”�”}”(hj2?h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj?ubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_key”h]”hŒhmac_sha512_key”…”�”}”(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_sha512_init”†”asbuh1hhj?ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hja?h²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj?ubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjo?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ÉhjW>h²hh³ji>h´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihjS>h²hh³ji>h´M�ubah}”(h]”jN>ah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³ji>h´M�hjP>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´M�hj£?h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjP>h²hh³ji>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_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´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_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”…”�”}”(hj9@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j5@h´Mƒhj6@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j5@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§hjY@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.”…”�”}”(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´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´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_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´M�ubjÊ)�”}”(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”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjAubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjAubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_ctx”h]”hŒhmac_sha512_ctx”…”�”}”(hj"Ah²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjAubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”j$AŒmodname”NŒ classname”Nj j)�”}”j]”j)�”}”j jê@sbŒc.hmac_sha512_init_usingrawkey”†”asbuh1hhjAubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBAh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjAubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjPAh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjAubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj]Ah²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjü@ubjÐ)�”}”(hŒconst u8 *raw_key”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjvAh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjrAubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒAh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjrAubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(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>AŒc.hmac_sha512_init_usingrawkey”†”asbuh1hhjrAubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²Ah²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjrAubj*)�”}”(hj-h]”hŒ*”…”�”}”(hjÀAh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjrAubjJ)�”}”(hŒraw_key”h]”hŒraw_key”…”�”}”(hjÍAh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjrAubeh}”(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é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>AŒc.hmac_sha512_init_usingrawkey”†”asbuh1hhjâAubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjâAubjJ)�”}”(hŒ raw_key_len”h]”hŒ raw_key_len”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjâAubeh}”(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Œ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”…”�”}”(hj?Bh²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(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ÖCh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjÒCubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãCh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÒCubh)�”}”(hhh]”jJ)�”}”(hŒhmac_sha512_ctx”h]”hŒhmac_sha512_ctx”…”�”}”(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]”j)�”}”j j¼CsbŒc.hmac_sha512_update”†”asbuh1hhjÒCubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÒCubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj"Dh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjÒCubjJ)�”}”(hŒctx”h]”hŒctx”…”�”}”(hj/Dh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjÒCubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÎCubjÐ)�”}”(hŒconst u8 *data”h]”(j!)�”}”(hjæh]”hŒconst”…”�”}”(hjHDh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjDDubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUDh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjDDubh)�”}”(hhh]”jJ)�”}”(hŒu8”h]”hŒu8”…”�”}”(hjfDh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjcDubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j’Œreftype”j Œ reftarget”jhDŒmodname”NŒ classname”Nj j)�”}”j]”jDŒc.hmac_sha512_update”†”asbuh1hhjDDubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„Dh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjDDubj*)�”}”(hj-h]”hŒ*”…”�”}”(hj’Dh²hh³Nh´Nubah}”(h]”h ]”j6ah"]”h$]”h&]”uh1j)hjDDubjJ)�”}”(hŒdata”h]”hŒdata”…”�”}”(hjŸDh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhjDDubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÎCubjÐ)�”}”(hŒsize_t data_len”h]”(h)�”}”(hhh]”jJ)�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(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]”jDŒc.hmac_sha512_update”†”asbuh1hhj´Dubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙDh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj´DubjJ)�”}”(hŒdata_len”h]”hŒdata_len”…”�”}”(hjçDh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj´Dubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjÎCubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj•Ch²hh³j§Ch´MŸubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj‘Ch²hh³j§Ch´MŸubah}”(h]”jŒCah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j§Ch´MŸhjŽCh²hubjv)�”}”(hhh]”hï)�”}”(hŒ/Update an HMAC-SHA512 context with message data”h]”hŒ/Update an HMAC-SHA512 context with message data”…”�”}”(hjEh²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ŸhjEh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjŽCh²hh³j§Ch´MŸubeh}”(h]”h ]”(j’Œfunction”eh"]”h$]”h&]”j—j’j˜j)Ej™j)Ejš‰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¨)�”}”(hj3Eh]”hŒ Parameters”…”�”}”(hj5Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj1Eubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M£hj-Eubjì)�”}”(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ý)�”}”(hjREh]”hŒstruct hmac_sha512_ctx *ctx”…”�”}”(hjTEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjPEubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M hjLEubj)�”}”(hhh]”hï)�”}”(hŒ6the HMAC context to update; must have been initialized”h]”hŒ6the HMAC context to update; must have been initialized”…”�”}”(hjkEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jgEh´M hjhEubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjLEubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jgEh´M hjIEubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hj‹Eh]”hŒconst u8 *data”…”�”}”(hj�Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj‰Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¡hj…Eubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hj¤Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j Eh´M¡hj¡Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j Eh´M¡hjIEubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hjÄEh]”hŒsize_t data_len”…”�”}”(hjÆEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÂEubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¢hj¾Eubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hjÝEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÙEh´M¢hjÚEubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¾Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jÙEh´M¢hjIEubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj-Eubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjÿEh]”hŒ Description”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjýEubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¤hj-Eubhï)�”}”(hŒ'This can be called any number of times.”h]”hŒ'This can be called any number of times.”…”�”}”(hjFh²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-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³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´M¥hj-Eubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÎhj:Oubjì)�”}”(hhh]”(jñ)�”}”(hŒ.``const u8 *raw_key`` the raw HMAC-SHA512 key ”h]”(j÷)�”}”(hŒ``const u8 *raw_key``”h]”jý)�”}”(hj_Oh]”hŒconst u8 *raw_key”…”�”}”(hjaOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj]Oubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MËhjYOubj)�”}”(hhh]”hï)�”}”(hŒthe raw HMAC-SHA512 key”h]”hŒthe raw HMAC-SHA512 key”…”�”}”(hjxOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jtOh´MËhjuOubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jtOh´MËhjVOubjñ)�”}”(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˜Oh]”hŒsize_t raw_key_len”…”�”}”(hjšOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj–Oubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÌhj’Oubj)�”}”(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±Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j­Oh´MÌhj®Oubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’Oubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j­Oh´MÌhjVOubjñ)�”}”(hŒ$``const u8 *data`` the message data ”h]”(j÷)�”}”(hŒ``const u8 *data``”h]”jý)�”}”(hjÑOh]”hŒconst u8 *data”…”�”}”(hjÓOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjÏOubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÍhjËOubj)�”}”(hhh]”hï)�”}”(hŒthe message data”h]”hŒthe message data”…”�”}”(hjêOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jæOh´MÍhjçOubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjËOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jæOh´MÍhjVOubjñ)�”}”(hŒ-``size_t data_len`` the data length in bytes ”h]”(j÷)�”}”(hŒ``size_t data_len``”h]”jý)�”}”(hj Ph]”hŒsize_t data_len”…”�”}”(hj Ph²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´MÎhjPubj)�”}”(hhh]”hï)�”}”(hŒthe data length in bytes”h]”hŒthe data length in bytes”…”�”}”(hj#Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jPh´MÎhj Pubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jPh´MÎhjVOubjñ)�”}”(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ý)�”}”(hjCPh]”hŒ!u8 out[static SHA512_DIGEST_SIZE]”…”�”}”(hjEPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjAPubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÏhj=Pubj)�”}”(hhh]”hï)�”}”(hŒ((output) the resulting HMAC-SHA512 value”h]”hŒ((output) the resulting HMAC-SHA512 value”…”�”}”(hj\Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jXPh´MÏhjYPubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj=Pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jXPh´MÏhjVOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhj:Oubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hj~Ph]”hŒ Description”…”�”}”(hj€Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj|Pubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÑhj:Oubhï)�”}”(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”Ph²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:Oubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hj¥Ph]”hŒContext”…”�”}”(hj§Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj£Pubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ[/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:76: ./include/crypto/sha2.h”h´MÓhj:Oubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj»Ph²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:Oubeh}”(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ÜPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÙPh²hh³hÇh´KOubhï)�”}”(hŒ+The SHA-3 API is documented in :ref:`sha3`.”h]”(hŒThe SHA-3 API is documented in ”…”�”}”(hjêPh²hh³Nh´Nubh)�”}”(hŒ :ref:`sha3`”h]”hŒinline”“”)�”}”(hjôPh]”hŒsha3”…”�”}”(hjøPh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jöPhjòPubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œcrypto/libcrypto-hash”Œ refdomain”jQŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆŒ reftarget”Œsha3”uh1hh³hÇh´KQhjêPubhŒ.”…”�”}”(hjêPh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KQhjÙPh²hubeh}”(h]”Œsha-3”ah ]”h"]”Œsha-3”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KOubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSipHash”h]”hŒSipHash”…”�”}”(hj,Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj)Qh²hh³hÇh´KTubhï)�”}”(hŒDThe SipHash API is documented in Documentation/security/siphash.rst.”h]”hŒDThe SipHash API is documented in Documentation/security/siphash.rst.”…”�”}”(hj:Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KVhj)Qh²hubeh}”(h]”Œsiphash”ah ]”h"]”Œsiphash”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KTubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSM3”h]”hŒSM3”…”�”}”(hjSQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjPQh²hh³hÇh´KYubhï)�”}”(hŒBThis API provides support for the SM3 cryptographic hash function.”h]”hŒBThis API provides support for the SM3 cryptographic hash function.”…”�”}”(hjaQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K[hjPQh²hubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsm3_ctx (C struct)”Œ c.sm3_ctx”hNt”auh1hþhjPQh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒsm3_ctx”h]”j)�”}”(hŒstruct sm3_ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hjˆQh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hj„Qh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´Kubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Qh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hj„Qh²hh³j•Qh´KubjD)�”}”(hŒsm3_ctx”h]”jJ)�”}”(hj‚Qh]”hŒsm3_ctx”…”�”}”(hj¨Qh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj¤Qubah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChj„Qh²hh³j•Qh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjgˆuh1jjhjihj€Qh²hh³j•Qh´Kubah}”(h]”j{Qah ]”(jmjneh"]”h$]”h&]”jrˆjs)jthuh1jh³j•Qh´Khj}Qh²hubjv)�”}”(hhh]”hï)�”}”(hŒ&Context for hashing a message with SM3”h]”hŒ&Context for hashing a message with SM3”…”�”}”(hjÊQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K"hjÇQh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1juhj}Qh²hh³j•Qh´Kubeh}”(h]”h ]”(j’Œstruct”eh"]”h$]”h&]”j—j’j˜jâQj™jâQjš‰j›‰jœ‰uh1jh²hhjPQh³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îQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjêQubhŒ:”…”�”}”(hjêQh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K&hjæQubjÃ)�”}”(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]; };”…”�”•’}”hjRsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÂh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K(hjæQubhï)�”}”(hŒ **Members**”h]”j¨)�”}”(hjRh]”hŒMembers”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K.hjæQubjì)�”}”(hhh]”(jñ)�”}”(hŒ)``state`` the compression function state ”h]”(j÷)�”}”(hŒ ``state``”h]”jý)�”}”(hj7Rh]”hŒstate”…”�”}”(hj9Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj5Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K$hj1Rubj)�”}”(hhh]”hï)�”}”(hŒthe compression function state”h]”hŒthe compression function state”…”�”}”(hjPRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jLRh´K$hjMRubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj1Rubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jLRh´K$hj.Rubjñ)�”}”(hŒ/``bytecount`` number of bytes processed so far ”h]”(j÷)�”}”(hŒ ``bytecount``”h]”jý)�”}”(hjpRh]”hŒ bytecount”…”�”}”(hjrRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühjnRubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K%hjjRubj)�”}”(hhh]”hï)�”}”(hŒ number of bytes processed so far”h]”hŒ number of bytes processed so far”…”�”}”(hj‰Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j…Rh´K%hj†Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j…Rh´K%hj.Rubjñ)�”}”(hŒH``buf`` partial block buffer; bytecount % SM3_BLOCK_SIZE bytes are valid”h]”(j÷)�”}”(hŒ``buf``”h]”jý)�”}”(hj©Rh]”hŒbuf”…”�”}”(hj«Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj§Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K%hj£Rubj)�”}”(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ÂRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K&hj¿Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj£Rubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³j¾Rh´K%hj.Rubeh}”(h]”h ]”h"]”h$]”h&]”uh1jëhjæQubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j�hjPQh²hh³Nh´Nubhÿ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j Œsm3_zeroize_ctx (C function)”Œc.sm3_zeroize_ctx”hNt”auh1hþhjPQh²hh³Nh´Nubj)�”}”(hhh]”(j)�”}”(hŒ*void sm3_zeroize_ctx (struct sm3_ctx *ctx)”h]”j)�”}”(hŒ)void sm3_zeroize_ctx(struct sm3_ctx *ctx)”h]”(j’)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jžah"]”h$]”h&]”uh1j‘hjÿRh²hh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K.ubj3)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j?ah"]”h$]”h&]”uh1j2hjÿRh²hh³jSh´K.ubjD)�”}”(hŒsm3_zeroize_ctx”h]”jJ)�”}”(hŒsm3_zeroize_ctx”h]”hŒsm3_zeroize_ctx”…”�”}”(hj$Sh²hh³Nh´Nubah}”(h]”h ]”jUah"]”h$]”h&]”uh1jIhj Subah}”(h]”h ]”(j\j]eh"]”h$]”h&]”hÅhÆuh1jChjÿRh²hh³jSh´K.ubjÊ)�”}”(hŒ(struct sm3_ctx *ctx)”h]”jÐ)�”}”(hŒstruct sm3_ctx *ctx”h]”(j!)�”}”(hj$h]”hŒstruct”…”�”}”(hj@Sh²hh³Nh´Nubah}”(h]”h ]”j-ah"]”h$]”h&]”uh1j hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K;hj:Uubjì)�”}”(hhh]”jñ)�”}”(hŒ2``struct sm3_ctx *ctx`` the context to initialize ”h]”(j÷)�”}”(hŒ``struct sm3_ctx *ctx``”h]”jý)�”}”(hj_Uh]”hŒstruct sm3_ctx *ctx”…”�”}”(hjaUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jühj]Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jöh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K8hjYUubj)�”}”(hhh]”hï)�”}”(hŒthe context to initialize”h]”hŒthe context to initialize”…”�”}”(hjxUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jtUh´K8hjuUubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjYUubeh}”(h]”h ]”h"]”h$]”h&]”uh1jðh³jtUh´K8hjVUubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj:Uubhï)�”}”(hŒ**Description**”h]”j¨)�”}”(hjšUh]”hŒ Description”…”�”}”(hjœUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj˜Uubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K:hj:Uubhï)�”}”(hŒBIf you don't need incremental computation, consider sm3() instead.”h]”hŒDIf you don’t need incremental computation, consider sm3() instead.”…”�”}”(hj°Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K9hj:Uubhï)�”}”(hŒ **Context**”h]”j¨)�”}”(hjÁUh]”hŒContext”…”�”}”(hjÃUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hj¿Uubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K;hj:Uubhï)�”}”(hŒ Any context.”h]”hŒ Any context.”…”�”}”(hj×Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ŒZ/var/lib/git/docbuild/linux/Documentation/crypto/libcrypto-hash:93: ./include/crypto/sm3.h”h´K£jC£jª¥j¯¥j|¨j�¨jN«jS«jß­jä­j£±j¨±jÓPjɵjôµjùµjý¶j·j¥¸jª¸jw»j|»j¾j ¾jáÀjæÀjêÁjïÁjEÃjJÃjNÄjSÄj©Åj®Åj{Èj€ÈjçÊjìÊj¹Íj¾Íj‹Ðj�ÐjÓj!ÓjàÖjåÖj ÛjÛjÜjÜj»ÝjÀÝj�àj’àjãj#ãj÷åjüåj9ëj>ëjˆìj�ìj‘íj–íjìîjñîjõïjúïjPñjUñj"ôj'ôjŽöj“öj`ùjeùj2üj7üjÃþjÈþj‡jŒj±j¶jºj¿jb jg j4 j9 jÅjÊjžj£j§j¬jjj jjfjkj8j=j¤j©jvj{jH!jM!jÙ#jÞ#j�'j¢'jÇ+jÌ+jÐ,jÕ,jx.j}.jJ1jO1jÛ3jà3j´6j¹6j½7jÂ7j9j9j!:j&:j|;j�;jN>jS>jº@j¿@jŒCj‘Cj^FjcFjïHjôHj³Lj¸Lj#QjÙPjJQj)Qj+^jPQj{Qj€QjöRjûRjQTjVTjùUjþUjËXjÐXj\[ja[uŒ 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.