521
552
<p>The most commonly used hash functions are MD5 and SHA1. Unfortunately,
522
553
both these fail the collision-resistance requirement; cryptologists have
523
found ways to construct colliding inputs. The recommended hash function
524
for new applications is SHA256, even though it uses a structure similar
525
to MD5 and SHA1. Constructing better hash functions is an urgent research
528
<h4 class="subsection">6.1.1 <acronym>MD5</acronym></h4>
554
found ways to construct colliding inputs. The recommended hash functions
555
for new applications are SHA2 (with main variants SHA256 and SHA512). At
556
the time of this writing (December 2012), the winner of the NIST SHA3
557
competition has recently been announced, and the new SHA3 (earlier known
558
as Keccak) and other top SHA3 candidates may also be reasonable
562
<li><a accesskey="1" href="#Recommended-hash-functions">Recommended hash functions</a>
563
<li><a accesskey="2" href="#Legacy-hash-functions">Legacy hash functions</a>
564
<li><a accesskey="3" href="#nettle_005fhash-abstraction">nettle_hash abstraction</a>
568
<a name="Recommended-hash-functions"></a>
570
Next: <a rel="next" accesskey="n" href="#Legacy-hash-functions">Legacy hash functions</a>,
571
Up: <a rel="up" accesskey="u" href="#Hash-functions">Hash functions</a>
575
<!-- node-name, next, previous, up -->
576
<h4 class="subsection">6.1.1 Recommended hash functions</h4>
578
<p>The following hash functions have no known weaknesses, and are suitable
579
for new applications. The SHA2 family of hash functions were specified
580
by <dfn>NIST</dfn>, intended as a replacement for <acronym>SHA1</acronym>.
582
<h5 class="subsubsection">6.1.1.1 <acronym>SHA256</acronym></h5>
584
<p>SHA256 is a member of the SHA2 family. It outputs hash values of 256
585
bits, or 32 octets. Nettle defines SHA256 in <samp><span class="file"><nettle/sha2.h></span></samp>.
588
— Context struct: <b>struct sha256_ctx</b><var><a name="index-struct-sha256_005fctx-4"></a></var><br>
592
— Constant: <b>SHA256_DIGEST_SIZE</b><var><a name="index-SHA256_005fDIGEST_005fSIZE-5"></a></var><br>
593
<blockquote><p>The size of a SHA256 digest, i.e. 32.
594
</p></blockquote></div>
597
— Constant: <b>SHA256_DATA_SIZE</b><var><a name="index-SHA256_005fDATA_005fSIZE-6"></a></var><br>
598
<blockquote><p>The internal block size of SHA256. Useful for some special constructions,
599
in particular HMAC-SHA256.
600
</p></blockquote></div>
603
— Function: void <b>sha256_init</b> (<var>struct sha256_ctx *ctx</var>)<var><a name="index-sha256_005finit-7"></a></var><br>
604
<blockquote><p>Initialize the SHA256 state.
605
</p></blockquote></div>
608
— Function: void <b>sha256_update</b> (<var>struct sha256_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha256_005fupdate-8"></a></var><br>
609
<blockquote><p>Hash some more data.
610
</p></blockquote></div>
613
— Function: void <b>sha256_digest</b> (<var>struct sha256_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha256_005fdigest-9"></a></var><br>
614
<blockquote><p>Performs final processing and extracts the message digest, writing it
615
to <var>digest</var>. <var>length</var> may be smaller than
616
<code>SHA256_DIGEST_SIZE</code>, in which case only the first <var>length</var>
617
octets of the digest are written.
619
<p>This function also resets the context in the same way as
620
<code>sha256_init</code>.
621
</p></blockquote></div>
623
<p>Earlier versions of nettle defined SHA256 in the header file
624
<samp><span class="file"><nettle/sha.h></span></samp>, which is now deprecated, but kept for
627
<h5 class="subsubsection">6.1.1.2 <acronym>SHA224</acronym></h5>
629
<p>SHA224 is a variant of SHA256, with a different initial state, and with
630
the output truncated to 224 bits, or 28 octets. Nettle defines SHA224 in
631
<samp><span class="file"><nettle/sha2.h></span></samp> (and in <samp><span class="file"><nettle/sha.h></span></samp>, for backwards
635
— Context struct: <b>struct sha224_ctx</b><var><a name="index-struct-sha224_005fctx-10"></a></var><br>
639
— Constant: <b>SHA224_DIGEST_SIZE</b><var><a name="index-SHA224_005fDIGEST_005fSIZE-11"></a></var><br>
640
<blockquote><p>The size of a SHA224 digest, i.e. 28.
641
</p></blockquote></div>
644
— Constant: <b>SHA224_DATA_SIZE</b><var><a name="index-SHA224_005fDATA_005fSIZE-12"></a></var><br>
645
<blockquote><p>The internal block size of SHA224. Useful for some special constructions,
646
in particular HMAC-SHA224.
647
</p></blockquote></div>
650
— Function: void <b>sha224_init</b> (<var>struct sha224_ctx *ctx</var>)<var><a name="index-sha224_005finit-13"></a></var><br>
651
<blockquote><p>Initialize the SHA224 state.
652
</p></blockquote></div>
655
— Function: void <b>sha224_update</b> (<var>struct sha224_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha224_005fupdate-14"></a></var><br>
656
<blockquote><p>Hash some more data.
657
</p></blockquote></div>
660
— Function: void <b>sha224_digest</b> (<var>struct sha224_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha224_005fdigest-15"></a></var><br>
661
<blockquote><p>Performs final processing and extracts the message digest, writing it
662
to <var>digest</var>. <var>length</var> may be smaller than
663
<code>SHA224_DIGEST_SIZE</code>, in which case only the first <var>length</var>
664
octets of the digest are written.
666
<p>This function also resets the context in the same way as
667
<code>sha224_init</code>.
668
</p></blockquote></div>
670
<h5 class="subsubsection">6.1.1.3 <acronym>SHA512</acronym></h5>
672
<p>SHA512 is a larger sibling to SHA256, with a very similar structure but
673
with both the output and the internal variables of twice the size. The
674
internal variables are 64 bits rather than 32, making it significantly
675
slower on 32-bit computers. It outputs hash values of 512 bits, or 64
676
octets. Nettle defines SHA512 in <samp><span class="file"><nettle/sha2.h></span></samp> (and in
677
<samp><span class="file"><nettle/sha.h></span></samp>, for backwards compatibility).
680
— Context struct: <b>struct sha512_ctx</b><var><a name="index-struct-sha512_005fctx-16"></a></var><br>
684
— Constant: <b>SHA512_DIGEST_SIZE</b><var><a name="index-SHA512_005fDIGEST_005fSIZE-17"></a></var><br>
685
<blockquote><p>The size of a SHA512 digest, i.e. 64.
686
</p></blockquote></div>
689
— Constant: <b>SHA512_DATA_SIZE</b><var><a name="index-SHA512_005fDATA_005fSIZE-18"></a></var><br>
690
<blockquote><p>The internal block size of SHA512. Useful for some special constructions,
691
in particular HMAC-SHA512.
692
</p></blockquote></div>
695
— Function: void <b>sha512_init</b> (<var>struct sha512_ctx *ctx</var>)<var><a name="index-sha512_005finit-19"></a></var><br>
696
<blockquote><p>Initialize the SHA512 state.
697
</p></blockquote></div>
700
— Function: void <b>sha512_update</b> (<var>struct sha512_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha512_005fupdate-20"></a></var><br>
701
<blockquote><p>Hash some more data.
702
</p></blockquote></div>
705
— Function: void <b>sha512_digest</b> (<var>struct sha512_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha512_005fdigest-21"></a></var><br>
706
<blockquote><p>Performs final processing and extracts the message digest, writing it
707
to <var>digest</var>. <var>length</var> may be smaller than
708
<code>SHA512_DIGEST_SIZE</code>, in which case only the first <var>length</var>
709
octets of the digest are written.
711
<p>This function also resets the context in the same way as
712
<code>sha512_init</code>.
713
</p></blockquote></div>
715
<h5 class="subsubsection">6.1.1.4 <acronym>SHA384</acronym></h5>
717
<p>SHA384 is a variant of SHA512, with a different initial state, and with
718
the output truncated to 384 bits, or 48 octets. Nettle defines SHA384 in
719
<samp><span class="file"><nettle/sha2.h></span></samp> (and in <samp><span class="file"><nettle/sha.h></span></samp>, for backwards
723
— Context struct: <b>struct sha384_ctx</b><var><a name="index-struct-sha384_005fctx-22"></a></var><br>
727
— Constant: <b>SHA384_DIGEST_SIZE</b><var><a name="index-SHA384_005fDIGEST_005fSIZE-23"></a></var><br>
728
<blockquote><p>The size of a SHA384 digest, i.e. 48.
729
</p></blockquote></div>
732
— Constant: <b>SHA384_DATA_SIZE</b><var><a name="index-SHA384_005fDATA_005fSIZE-24"></a></var><br>
733
<blockquote><p>The internal block size of SHA384. Useful for some special constructions,
734
in particular HMAC-SHA384.
735
</p></blockquote></div>
738
— Function: void <b>sha384_init</b> (<var>struct sha384_ctx *ctx</var>)<var><a name="index-sha384_005finit-25"></a></var><br>
739
<blockquote><p>Initialize the SHA384 state.
740
</p></blockquote></div>
743
— Function: void <b>sha384_update</b> (<var>struct sha384_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha384_005fupdate-26"></a></var><br>
744
<blockquote><p>Hash some more data.
745
</p></blockquote></div>
748
— Function: void <b>sha384_digest</b> (<var>struct sha384_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha384_005fdigest-27"></a></var><br>
749
<blockquote><p>Performs final processing and extracts the message digest, writing it
750
to <var>digest</var>. <var>length</var> may be smaller than
751
<code>SHA384_DIGEST_SIZE</code>, in which case only the first <var>length</var>
752
octets of the digest are written.
754
<p>This function also resets the context in the same way as
755
<code>sha384_init</code>.
756
</p></blockquote></div>
758
<h5 class="subsubsection">6.1.1.5 <acronym>SHA3-224</acronym></h5>
760
<p>The SHA3 hash functions were specified by NIST in repsonse to weaknesses
761
in SHA1, and doubts about SHA2 hash functions which structurally are
762
very similar to SHA1. The standard is a result of a competition, where
763
the winner, also known as Keccak, was designed by Guido Bertoni, Joan
764
Daemen, Michaƫl Peeters and Gilles Van Assche. It is structurally very
765
different from all widely used earlier hash functions. Like SHA2, there
766
are several variants, with output sizes of 224, 256, 384 and 512 bits
767
(28, 32, 48 and 64 octets, respectively).
769
<p>Nettle defines SHA3-224 in <samp><span class="file"><nettle/sha3.h></span></samp>.
772
— Context struct: <b>struct sha3_224_ctx</b><var><a name="index-struct-sha3_005f224_005fctx-28"></a></var><br>
776
— Constant: <b>SHA3_224_DIGEST_SIZE</b><var><a name="index-SHA3_005f224_005fDIGEST_005fSIZE-29"></a></var><br>
777
<blockquote><p>The size of a SHA3_224 digest, i.e., 28.
778
</p></blockquote></div>
781
— Constant: <b>SHA3_224_DATA_SIZE</b><var><a name="index-SHA3_005f224_005fDATA_005fSIZE-30"></a></var><br>
782
<blockquote><p>The internal block size of SHA3_224.
783
</p></blockquote></div>
786
— Function: void <b>sha3_224_init</b> (<var>struct sha3_224_ctx *ctx</var>)<var><a name="index-sha3_005f224_005finit-31"></a></var><br>
787
<blockquote><p>Initialize the SHA3-224 state.
788
</p></blockquote></div>
791
— Function: void <b>sha3_224_update</b> (<var>struct sha3_224_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha3_005f224_005fupdate-32"></a></var><br>
792
<blockquote><p>Hash some more data.
793
</p></blockquote></div>
796
— Function: void <b>sha3_224_digest</b> (<var>struct sha3_224_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha3_005f224_005fdigest-33"></a></var><br>
797
<blockquote><p>Performs final processing and extracts the message digest, writing it
798
to <var>digest</var>. <var>length</var> may be smaller than
799
<code>SHA3_224_DIGEST_SIZE</code>, in which case only the first <var>length</var>
800
octets of the digest are written.
802
<p>This function also resets the context.
803
</p></blockquote></div>
805
<h5 class="subsubsection">6.1.1.6 <acronym>SHA3-256</acronym></h5>
807
<p>This is SHA3 with 256-bit output size, and possibly the most useful
808
of the SHA3 hash functions.
810
<p>Nettle defines SHA3-256 in <samp><span class="file"><nettle/sha3.h></span></samp>.
813
— Context struct: <b>struct sha3_256_ctx</b><var><a name="index-struct-sha3_005f256_005fctx-34"></a></var><br>
817
— Constant: <b>SHA3_256_DIGEST_SIZE</b><var><a name="index-SHA3_005f256_005fDIGEST_005fSIZE-35"></a></var><br>
818
<blockquote><p>The size of a SHA3_256 digest, i.e., 32.
819
</p></blockquote></div>
822
— Constant: <b>SHA3_256_DATA_SIZE</b><var><a name="index-SHA3_005f256_005fDATA_005fSIZE-36"></a></var><br>
823
<blockquote><p>The internal block size of SHA3_256.
824
</p></blockquote></div>
827
— Function: void <b>sha3_256_init</b> (<var>struct sha3_256_ctx *ctx</var>)<var><a name="index-sha3_005f256_005finit-37"></a></var><br>
828
<blockquote><p>Initialize the SHA3-256 state.
829
</p></blockquote></div>
832
— Function: void <b>sha3_256_update</b> (<var>struct sha3_256_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha3_005f256_005fupdate-38"></a></var><br>
833
<blockquote><p>Hash some more data.
834
</p></blockquote></div>
837
— Function: void <b>sha3_256_digest</b> (<var>struct sha3_256_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha3_005f256_005fdigest-39"></a></var><br>
838
<blockquote><p>Performs final processing and extracts the message digest, writing it
839
to <var>digest</var>. <var>length</var> may be smaller than
840
<code>SHA3_256_DIGEST_SIZE</code>, in which case only the first <var>length</var>
841
octets of the digest are written.
843
<p>This function also resets the context.
844
</p></blockquote></div>
846
<h5 class="subsubsection">6.1.1.7 <acronym>SHA3-384</acronym></h5>
848
<p>This is SHA3 with 384-bit output size.
850
<p>Nettle defines SHA3-384 in <samp><span class="file"><nettle/sha3.h></span></samp>.
853
— Context struct: <b>struct sha3_384_ctx</b><var><a name="index-struct-sha3_005f384_005fctx-40"></a></var><br>
857
— Constant: <b>SHA3_384_DIGEST_SIZE</b><var><a name="index-SHA3_005f384_005fDIGEST_005fSIZE-41"></a></var><br>
858
<blockquote><p>The size of a SHA3_384 digest, i.e., 48.
859
</p></blockquote></div>
862
— Constant: <b>SHA3_384_DATA_SIZE</b><var><a name="index-SHA3_005f384_005fDATA_005fSIZE-42"></a></var><br>
863
<blockquote><p>The internal block size of SHA3_384.
864
</p></blockquote></div>
867
— Function: void <b>sha3_384_init</b> (<var>struct sha3_384_ctx *ctx</var>)<var><a name="index-sha3_005f384_005finit-43"></a></var><br>
868
<blockquote><p>Initialize the SHA3-384 state.
869
</p></blockquote></div>
872
— Function: void <b>sha3_384_update</b> (<var>struct sha3_384_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha3_005f384_005fupdate-44"></a></var><br>
873
<blockquote><p>Hash some more data.
874
</p></blockquote></div>
877
— Function: void <b>sha3_384_digest</b> (<var>struct sha3_384_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha3_005f384_005fdigest-45"></a></var><br>
878
<blockquote><p>Performs final processing and extracts the message digest, writing it
879
to <var>digest</var>. <var>length</var> may be smaller than
880
<code>SHA3_384_DIGEST_SIZE</code>, in which case only the first <var>length</var>
881
octets of the digest are written.
883
<p>This function also resets the context.
884
</p></blockquote></div>
886
<h5 class="subsubsection">6.1.1.8 <acronym>SHA3-512</acronym></h5>
888
<p>This is SHA3 with 512-bit output size.
890
<p>Nettle defines SHA3-512 in <samp><span class="file"><nettle/sha3.h></span></samp>.
893
— Context struct: <b>struct sha3_512_ctx</b><var><a name="index-struct-sha3_005f512_005fctx-46"></a></var><br>
897
— Constant: <b>SHA3_512_DIGEST_SIZE</b><var><a name="index-SHA3_005f512_005fDIGEST_005fSIZE-47"></a></var><br>
898
<blockquote><p>The size of a SHA3_512 digest, i.e. 64.
899
</p></blockquote></div>
902
— Constant: <b>SHA3_512_DATA_SIZE</b><var><a name="index-SHA3_005f512_005fDATA_005fSIZE-48"></a></var><br>
903
<blockquote><p>The internal block size of SHA3_512.
904
</p></blockquote></div>
907
— Function: void <b>sha3_512_init</b> (<var>struct sha3_512_ctx *ctx</var>)<var><a name="index-sha3_005f512_005finit-49"></a></var><br>
908
<blockquote><p>Initialize the SHA3-512 state.
909
</p></blockquote></div>
912
— Function: void <b>sha3_512_update</b> (<var>struct sha3_512_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha3_005f512_005fupdate-50"></a></var><br>
913
<blockquote><p>Hash some more data.
914
</p></blockquote></div>
917
— Function: void <b>sha3_512_digest</b> (<var>struct sha3_512_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha3_005f512_005fdigest-51"></a></var><br>
918
<blockquote><p>Performs final processing and extracts the message digest, writing it
919
to <var>digest</var>. <var>length</var> may be smaller than
920
<code>SHA3_512_DIGEST_SIZE</code>, in which case only the first <var>length</var>
921
octets of the digest are written.
923
<p>This function also resets the context.
924
</p></blockquote></div>
927
<a name="Legacy-hash-functions"></a>
929
Next: <a rel="next" accesskey="n" href="#nettle_005fhash-abstraction">nettle_hash abstraction</a>,
930
Previous: <a rel="previous" accesskey="p" href="#Recommended-hash-functions">Recommended hash functions</a>,
931
Up: <a rel="up" accesskey="u" href="#Hash-functions">Hash functions</a>
935
<!-- node-name, next, previous, up -->
936
<h4 class="subsection">6.1.2 Legacy hash functions</h4>
938
<p>The hash functions in this section all have some known weaknesses, and
939
should be avoided for new applications. These hash functions are mainly
940
useful for compatibility with old applications and protocols. Some are
941
still considered safe as building blocks for particular constructions,
942
e.g., there seems to be no known attacks against HMAC-SHA1 or even
943
HMAC-MD5. In some important cases, use of a “legacy” hash function
944
does not in itself make the application insecure; if a known weakness is
945
relevant depends on how the hash function is used, and on the threat
948
<h5 class="subsubsection">6.1.2.1 <acronym>MD5</acronym></h5>
530
950
<p>MD5 is a message digest function constructed by Ronald Rivest, and
531
951
described in <cite>RFC 1321</cite>. It outputs message digests of 128 bits, or
532
952
16 octets. Nettle defines MD5 in <samp><span class="file"><nettle/md5.h></span></samp>.
534
954
<div class="defun">
535
— Context struct: <b>struct md5_ctx</b><var><a name="index-struct-md5_005fctx-4"></a></var><br>
955
— Context struct: <b>struct md5_ctx</b><var><a name="index-struct-md5_005fctx-52"></a></var><br>
538
958
<div class="defun">
539
— Constant: <b>MD5_DIGEST_SIZE</b><var><a name="index-MD5_005fDIGEST_005fSIZE-5"></a></var><br>
959
— Constant: <b>MD5_DIGEST_SIZE</b><var><a name="index-MD5_005fDIGEST_005fSIZE-53"></a></var><br>
540
960
<blockquote><p>The size of an MD5 digest, i.e. 16.
541
961
</p></blockquote></div>
543
963
<div class="defun">
544
— Constant: <b>MD5_DATA_SIZE</b><var><a name="index-MD5_005fDATA_005fSIZE-6"></a></var><br>
964
— Constant: <b>MD5_DATA_SIZE</b><var><a name="index-MD5_005fDATA_005fSIZE-54"></a></var><br>
545
965
<blockquote><p>The internal block size of MD5. Useful for some special constructions,
546
966
in particular HMAC-MD5.
547
967
</p></blockquote></div>
549
969
<div class="defun">
550
— Function: void <b>md5_init</b> (<var>struct md5_ctx *ctx</var>)<var><a name="index-md5_005finit-7"></a></var><br>
970
— Function: void <b>md5_init</b> (<var>struct md5_ctx *ctx</var>)<var><a name="index-md5_005finit-55"></a></var><br>
551
971
<blockquote><p>Initialize the MD5 state.
552
972
</p></blockquote></div>
554
974
<div class="defun">
555
— Function: void <b>md5_update</b> (<var>struct md5_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-md5_005fupdate-8"></a></var><br>
975
— Function: void <b>md5_update</b> (<var>struct md5_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-md5_005fupdate-56"></a></var><br>
556
976
<blockquote><p>Hash some more data.
557
977
</p></blockquote></div>
559
979
<div class="defun">
560
— Function: void <b>md5_digest</b> (<var>struct md5_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-md5_005fdigest-9"></a></var><br>
980
— Function: void <b>md5_digest</b> (<var>struct md5_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-md5_005fdigest-57"></a></var><br>
561
981
<blockquote><p>Performs final processing and extracts the message digest, writing it
562
982
to <var>digest</var>. <var>length</var> may be smaller than
563
983
<code>MD5_DIGEST_SIZE</code>, in which case only the first <var>length</var>
746
1165
<code>sha1_init</code>.
747
1166
</p></blockquote></div>
749
<h4 class="subsection">6.1.6 <acronym>SHA256</acronym></h4>
751
<p>SHA256 is another hash function specified by <dfn>NIST</dfn>, intended as a
752
replacement for <acronym>SHA1</acronym>, generating larger digests. It outputs
753
hash values of 256 bits, or 32 octets. Nettle defines SHA256 in
754
<samp><span class="file"><nettle/sha.h></span></samp>.
756
<p>The functions are analogous to the MD5 ones.
759
— Context struct: <b>struct sha256_ctx</b><var><a name="index-struct-sha256_005fctx-34"></a></var><br>
763
— Constant: <b>SHA256_DIGEST_SIZE</b><var><a name="index-SHA256_005fDIGEST_005fSIZE-35"></a></var><br>
764
<blockquote><p>The size of an SHA256 digest, i.e. 32.
765
</p></blockquote></div>
768
— Constant: <b>SHA256_DATA_SIZE</b><var><a name="index-SHA256_005fDATA_005fSIZE-36"></a></var><br>
769
<blockquote><p>The internal block size of SHA256. Useful for some special constructions,
770
in particular HMAC-SHA256.
771
</p></blockquote></div>
774
— Function: void <b>sha256_init</b> (<var>struct sha256_ctx *ctx</var>)<var><a name="index-sha256_005finit-37"></a></var><br>
775
<blockquote><p>Initialize the SHA256 state.
776
</p></blockquote></div>
779
— Function: void <b>sha256_update</b> (<var>struct sha256_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha256_005fupdate-38"></a></var><br>
780
<blockquote><p>Hash some more data.
781
</p></blockquote></div>
784
— Function: void <b>sha256_digest</b> (<var>struct sha256_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha256_005fdigest-39"></a></var><br>
785
<blockquote><p>Performs final processing and extracts the message digest, writing it
786
to <var>digest</var>. <var>length</var> may be smaller than
787
<code>SHA256_DIGEST_SIZE</code>, in which case only the first <var>length</var>
788
octets of the digest are written.
790
<p>This function also resets the context in the same way as
791
<code>sha256_init</code>.
792
</p></blockquote></div>
794
<h4 class="subsection">6.1.7 <acronym>SHA224</acronym></h4>
796
<p>SHA224 is a variant of SHA256, with a different initial state, and with
797
the output truncated to 224 bits, or 28 octets. Nettle defines SHA224 in
798
<samp><span class="file"><nettle/sha.h></span></samp>.
800
<p>The functions are analogous to the MD5 ones.
803
— Context struct: <b>struct sha224_ctx</b><var><a name="index-struct-sha224_005fctx-40"></a></var><br>
807
— Constant: <b>SHA224_DIGEST_SIZE</b><var><a name="index-SHA224_005fDIGEST_005fSIZE-41"></a></var><br>
808
<blockquote><p>The size of an SHA224 digest, i.e. 28.
809
</p></blockquote></div>
812
— Constant: <b>SHA224_DATA_SIZE</b><var><a name="index-SHA224_005fDATA_005fSIZE-42"></a></var><br>
813
<blockquote><p>The internal block size of SHA224. Useful for some special constructions,
814
in particular HMAC-SHA224.
815
</p></blockquote></div>
818
— Function: void <b>sha224_init</b> (<var>struct sha224_ctx *ctx</var>)<var><a name="index-sha224_005finit-43"></a></var><br>
819
<blockquote><p>Initialize the SHA224 state.
820
</p></blockquote></div>
823
— Function: void <b>sha224_update</b> (<var>struct sha224_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha224_005fupdate-44"></a></var><br>
824
<blockquote><p>Hash some more data.
825
</p></blockquote></div>
828
— Function: void <b>sha224_digest</b> (<var>struct sha224_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha224_005fdigest-45"></a></var><br>
829
<blockquote><p>Performs final processing and extracts the message digest, writing it
830
to <var>digest</var>. <var>length</var> may be smaller than
831
<code>SHA224_DIGEST_SIZE</code>, in which case only the first <var>length</var>
832
octets of the digest are written.
834
<p>This function also resets the context in the same way as
835
<code>sha224_init</code>.
836
</p></blockquote></div>
838
<h4 class="subsection">6.1.8 <acronym>SHA512</acronym></h4>
840
<p>SHA512 is a larger sibling to SHA256, with a very similar structure but
841
with both the output and the internal variables of twice the size. The
842
internal variables are 64 bits rather than 32, making it significantly
843
slower on 32-bit computers. It outputs hash values of 512 bits, or 64
844
octets. Nettle defines SHA512 in <samp><span class="file"><nettle/sha.h></span></samp>.
846
<p>The functions are analogous to the MD5 ones.
849
— Context struct: <b>struct sha512_ctx</b><var><a name="index-struct-sha512_005fctx-46"></a></var><br>
853
— Constant: <b>SHA512_DIGEST_SIZE</b><var><a name="index-SHA512_005fDIGEST_005fSIZE-47"></a></var><br>
854
<blockquote><p>The size of an SHA512 digest, i.e. 64.
855
</p></blockquote></div>
858
— Constant: <b>SHA512_DATA_SIZE</b><var><a name="index-SHA512_005fDATA_005fSIZE-48"></a></var><br>
859
<blockquote><p>The internal block size of SHA512. Useful for some special constructions,
860
in particular HMAC-SHA512.
861
</p></blockquote></div>
864
— Function: void <b>sha512_init</b> (<var>struct sha512_ctx *ctx</var>)<var><a name="index-sha512_005finit-49"></a></var><br>
865
<blockquote><p>Initialize the SHA512 state.
866
</p></blockquote></div>
869
— Function: void <b>sha512_update</b> (<var>struct sha512_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha512_005fupdate-50"></a></var><br>
870
<blockquote><p>Hash some more data.
871
</p></blockquote></div>
874
— Function: void <b>sha512_digest</b> (<var>struct sha512_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha512_005fdigest-51"></a></var><br>
875
<blockquote><p>Performs final processing and extracts the message digest, writing it
876
to <var>digest</var>. <var>length</var> may be smaller than
877
<code>SHA512_DIGEST_SIZE</code>, in which case only the first <var>length</var>
878
octets of the digest are written.
880
<p>This function also resets the context in the same way as
881
<code>sha512_init</code>.
882
</p></blockquote></div>
884
<h4 class="subsection">6.1.9 <acronym>SHA384</acronym></h4>
886
<p>SHA384 is a variant of SHA512, with a different initial state, and with
887
the output truncated to 384 bits, or 48 octets. Nettle defines SHA384 in
888
<samp><span class="file"><nettle/sha.h></span></samp>.
890
<p>The functions are analogous to the MD5 ones.
893
— Context struct: <b>struct sha384_ctx</b><var><a name="index-struct-sha384_005fctx-52"></a></var><br>
897
— Constant: <b>SHA384_DIGEST_SIZE</b><var><a name="index-SHA384_005fDIGEST_005fSIZE-53"></a></var><br>
898
<blockquote><p>The size of an SHA384 digest, i.e. 48.
899
</p></blockquote></div>
902
— Constant: <b>SHA384_DATA_SIZE</b><var><a name="index-SHA384_005fDATA_005fSIZE-54"></a></var><br>
903
<blockquote><p>The internal block size of SHA384. Useful for some special constructions,
904
in particular HMAC-SHA384.
905
</p></blockquote></div>
908
— Function: void <b>sha384_init</b> (<var>struct sha384_ctx *ctx</var>)<var><a name="index-sha384_005finit-55"></a></var><br>
909
<blockquote><p>Initialize the SHA384 state.
910
</p></blockquote></div>
913
— Function: void <b>sha384_update</b> (<var>struct sha384_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-sha384_005fupdate-56"></a></var><br>
914
<blockquote><p>Hash some more data.
915
</p></blockquote></div>
918
— Function: void <b>sha384_digest</b> (<var>struct sha384_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-sha384_005fdigest-57"></a></var><br>
919
<blockquote><p>Performs final processing and extracts the message digest, writing it
920
to <var>digest</var>. <var>length</var> may be smaller than
921
<code>SHA384_DIGEST_SIZE</code>, in which case only the first <var>length</var>
922
octets of the digest are written.
924
<p>This function also resets the context in the same way as
925
<code>sha384_init</code>.
926
</p></blockquote></div>
928
<h4 class="subsection">6.1.10 <code>struct nettle_hash</code></h4>
1168
<h5 class="subsubsection">6.1.2.6 <acronym>GOSTHASH94</acronym></h5>
1170
<p>The GOST94 or GOST R 34.11-94 hash algorithm is a Soviet-era algorithm
1171
used in Russian government standards (see <cite>RFC 4357</cite>).
1172
It outputs message digests of 256 bits, or 32 octets.
1173
Nettle defines GOSTHASH94 in <samp><span class="file"><nettle/gosthash94.h></span></samp>.
1176
— Context struct: <b>struct gosthash94_ctx</b><var><a name="index-struct-gosthash94_005fctx-82"></a></var><br>
1180
— Constant: <b>GOSTHASH94_DIGEST_SIZE</b><var><a name="index-GOSTHASH94_005fDIGEST_005fSIZE-83"></a></var><br>
1181
<blockquote><p>The size of a GOSTHASH94 digest, i.e. 32.
1182
</p></blockquote></div>
1185
— Constant: <b>GOSTHASH94_DATA_SIZE</b><var><a name="index-GOSTHASH94_005fDATA_005fSIZE-84"></a></var><br>
1186
<blockquote><p>The internal block size of GOSTHASH94, i.e., 32.
1187
</p></blockquote></div>
1190
— Function: void <b>gosthash94_init</b> (<var>struct gosthash94_ctx *ctx</var>)<var><a name="index-gosthash94_005finit-85"></a></var><br>
1191
<blockquote><p>Initialize the GOSTHASH94 state.
1192
</p></blockquote></div>
1195
— Function: void <b>gosthash94_update</b> (<var>struct gosthash94_ctx *ctx, unsigned length, const uint8_t *data</var>)<var><a name="index-gosthash94_005fupdate-86"></a></var><br>
1196
<blockquote><p>Hash some more data.
1197
</p></blockquote></div>
1200
— Function: void <b>gosthash94_digest</b> (<var>struct gosthash94_ctx *ctx, unsigned length, uint8_t *digest</var>)<var><a name="index-gosthash94_005fdigest-87"></a></var><br>
1201
<blockquote><p>Performs final processing and extracts the message digest, writing it
1202
to <var>digest</var>. <var>length</var> may be smaller than
1203
<code>GOSTHASH94_DIGEST_SIZE</code>, in which case only the first <var>length</var>
1204
octets of the digest are written.
1206
<p>This function also resets the context in the same way as
1207
<code>gosthash94_init</code>.
1208
</p></blockquote></div>
1211
<a name="nettle_hash-abstraction"></a>
1212
<a name="nettle_005fhash-abstraction"></a>
1214
Previous: <a rel="previous" accesskey="p" href="#Legacy-hash-functions">Legacy hash functions</a>,
1215
Up: <a rel="up" accesskey="u" href="#Hash-functions">Hash functions</a>
1219
<!-- node-name, next, previous, up -->
1220
<h4 class="subsection">6.1.3 The nettle_hash abstraction</h4>
930
1222
<p>Nettle includes a struct including information about the supported hash
931
1223
functions. It is defined in <samp><span class="file"><nettle/nettle-meta.h></span></samp>, and is used
932
1224
by Nettle's implementation of <acronym>HMAC</acronym> (see <a href="#Keyed-hash-functions">Keyed hash functions</a>).
934
1226
<div class="defun">
935
— Meta struct: <code>struct nettle_hash</code><var> name context_size digest_size block_size init update digest<a name="index-g_t_0040code_007bstruct-nettle_005fhash_007d-58"></a></var><br>
1227
— Meta struct: <code>struct nettle_hash</code><var> name context_size digest_size block_size init update digest<a name="index-g_t_0040code_007bstruct-nettle_005fhash_007d-88"></a></var><br>
936
1228
<blockquote><p>The last three attributes are function pointers, of types
937
1229
<code>nettle_hash_init_func</code>, <code>nettle_hash_update_func</code>, and
938
1230
<code>nettle_hash_digest_func</code>. The first argument to these functions is
3678
4064
<h2 class="unnumbered">Function and Concept Index</h2>
3680
4066
<ul class="index-cp" compact>
3681
<li><a href="#index-aes_005fdecrypt-81"><code>aes_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3682
<li><a href="#index-aes_005fencrypt-80"><code>aes_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3683
<li><a href="#index-aes_005finvert_005fkey-79"><code>aes_invert_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3684
<li><a href="#index-aes_005fset_005fdecrypt_005fkey-78"><code>aes_set_decrypt_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3685
<li><a href="#index-aes_005fset_005fencrypt_005fkey-77"><code>aes_set_encrypt_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3686
<li><a href="#index-arcfour_005fcrypt-87"><code>arcfour_crypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3687
<li><a href="#index-arcfour_005fset_005fkey-86"><code>arcfour_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3688
<li><a href="#index-arctwo_005fdecrypt-97"><code>arctwo_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3689
<li><a href="#index-arctwo_005fencrypt-96"><code>arctwo_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3690
<li><a href="#index-arctwo_005fset_005fkey-94"><code>arctwo_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3691
<li><a href="#index-arctwo_005fset_005fkey_005fekb-93"><code>arctwo_set_key_ekb</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3692
<li><a href="#index-arctwo_005fset_005fkey_005fgutmann-95"><code>arctwo_set_key_gutmann</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3693
<li><a href="#index-base16_005fdecode_005ffinal-335"><code>base16_decode_final</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3694
<li><a href="#index-base16_005fdecode_005finit-331"><code>base16_decode_init</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3695
<li><a href="#index-BASE16_005fDECODE_005fLENGTH-333"><code>BASE16_DECODE_LENGTH</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3696
<li><a href="#index-base16_005fdecode_005fsingle-332"><code>base16_decode_single</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3697
<li><a href="#index-base16_005fdecode_005fupdate-334"><code>base16_decode_update</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3698
<li><a href="#index-BASE16_005fENCODE_005fLENGTH-328"><code>BASE16_ENCODE_LENGTH</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3699
<li><a href="#index-base16_005fencode_005fsingle-327"><code>base16_encode_single</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3700
<li><a href="#index-base16_005fencode_005fupdate-329"><code>base16_encode_update</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3701
<li><a href="#index-base64_005fdecode_005ffinal-326"><code>base64_decode_final</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3702
<li><a href="#index-base64_005fdecode_005finit-322"><code>base64_decode_init</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3703
<li><a href="#index-BASE64_005fDECODE_005fLENGTH-324"><code>BASE64_DECODE_LENGTH</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3704
<li><a href="#index-base64_005fdecode_005fsingle-323"><code>base64_decode_single</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3705
<li><a href="#index-base64_005fdecode_005fupdate-325"><code>base64_decode_update</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3706
<li><a href="#index-base64_005fencode_005ffinal-320"><code>base64_encode_final</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3707
<li><a href="#index-base64_005fencode_005finit-315"><code>base64_encode_init</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3708
<li><a href="#index-BASE64_005fENCODE_005fLENGTH-317"><code>BASE64_ENCODE_LENGTH</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3709
<li><a href="#index-base64_005fencode_005fsingle-316"><code>base64_encode_single</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3710
<li><a href="#index-base64_005fencode_005fupdate-318"><code>base64_encode_update</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
3711
<li><a href="#index-Block-Cipher-70">Block Cipher</a>: <a href="#Cipher-functions">Cipher functions</a></li>
3712
<li><a href="#index-blowfish_005fdecrypt-105"><code>blowfish_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3713
<li><a href="#index-blowfish_005fencrypt-104"><code>blowfish_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3714
<li><a href="#index-blowfish_005fset_005fkey-103"><code>blowfish_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3715
<li><a href="#index-camellia_005fcrypt-114"><code>camellia_crypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3716
<li><a href="#index-camellia_005finvert_005fkey-113"><code>camellia_invert_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3717
<li><a href="#index-camellia_005fset_005fdecrypt_005fkey-112"><code>camellia_set_decrypt_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3718
<li><a href="#index-camellia_005fset_005fencrypt_005fkey-111"><code>camellia_set_encrypt_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3719
<li><a href="#index-cast128_005fdecrypt-122"><code>cast128_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3720
<li><a href="#index-cast128_005fencrypt-121"><code>cast128_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3721
<li><a href="#index-cast128_005fset_005fkey-120"><code>cast128_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3722
<li><a href="#index-CBC-Mode-183">CBC Mode</a>: <a href="#CBC">CBC</a></li>
3723
<li><a href="#index-CBC_005fCTX-186"><code>CBC_CTX</code></a>: <a href="#CBC">CBC</a></li>
3724
<li><a href="#index-CBC_005fDECRYPT-189"><code>CBC_DECRYPT</code></a>: <a href="#CBC">CBC</a></li>
3725
<li><a href="#index-cbc_005fdecrypt-185"><code>cbc_decrypt</code></a>: <a href="#CBC">CBC</a></li>
3726
<li><a href="#index-CBC_005fENCRYPT-188"><code>CBC_ENCRYPT</code></a>: <a href="#CBC">CBC</a></li>
3727
<li><a href="#index-cbc_005fencrypt-184"><code>cbc_encrypt</code></a>: <a href="#CBC">CBC</a></li>
3728
<li><a href="#index-CBC_005fSET_005fIV-187"><code>CBC_SET_IV</code></a>: <a href="#CBC">CBC</a></li>
3729
<li><a href="#index-Cipher-69">Cipher</a>: <a href="#Cipher-functions">Cipher functions</a></li>
3730
<li><a href="#index-Cipher-Block-Chaining-182">Cipher Block Chaining</a>: <a href="#CBC">CBC</a></li>
4067
<li><a href="#index-aes_005fdecrypt-113"><code>aes_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4068
<li><a href="#index-aes_005fencrypt-112"><code>aes_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4069
<li><a href="#index-aes_005finvert_005fkey-111"><code>aes_invert_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4070
<li><a href="#index-aes_005fset_005fdecrypt_005fkey-110"><code>aes_set_decrypt_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4071
<li><a href="#index-aes_005fset_005fencrypt_005fkey-109"><code>aes_set_encrypt_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4072
<li><a href="#index-arcfour_005fcrypt-119"><code>arcfour_crypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4073
<li><a href="#index-arcfour_005fset_005fkey-118"><code>arcfour_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4074
<li><a href="#index-arctwo_005fdecrypt-129"><code>arctwo_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4075
<li><a href="#index-arctwo_005fencrypt-128"><code>arctwo_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4076
<li><a href="#index-arctwo_005fset_005fkey-126"><code>arctwo_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4077
<li><a href="#index-arctwo_005fset_005fkey_005fekb-125"><code>arctwo_set_key_ekb</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4078
<li><a href="#index-arctwo_005fset_005fkey_005fgutmann-127"><code>arctwo_set_key_gutmann</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4079
<li><a href="#index-base16_005fdecode_005ffinal-376"><code>base16_decode_final</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4080
<li><a href="#index-base16_005fdecode_005finit-372"><code>base16_decode_init</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4081
<li><a href="#index-BASE16_005fDECODE_005fLENGTH-374"><code>BASE16_DECODE_LENGTH</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4082
<li><a href="#index-base16_005fdecode_005fsingle-373"><code>base16_decode_single</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4083
<li><a href="#index-base16_005fdecode_005fupdate-375"><code>base16_decode_update</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4084
<li><a href="#index-BASE16_005fENCODE_005fLENGTH-369"><code>BASE16_ENCODE_LENGTH</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4085
<li><a href="#index-base16_005fencode_005fsingle-368"><code>base16_encode_single</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4086
<li><a href="#index-base16_005fencode_005fupdate-370"><code>base16_encode_update</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4087
<li><a href="#index-base64_005fdecode_005ffinal-367"><code>base64_decode_final</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4088
<li><a href="#index-base64_005fdecode_005finit-363"><code>base64_decode_init</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4089
<li><a href="#index-BASE64_005fDECODE_005fLENGTH-365"><code>BASE64_DECODE_LENGTH</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4090
<li><a href="#index-base64_005fdecode_005fsingle-364"><code>base64_decode_single</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4091
<li><a href="#index-base64_005fdecode_005fupdate-366"><code>base64_decode_update</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4092
<li><a href="#index-base64_005fencode_005ffinal-361"><code>base64_encode_final</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4093
<li><a href="#index-base64_005fencode_005finit-356"><code>base64_encode_init</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4094
<li><a href="#index-BASE64_005fENCODE_005fLENGTH-358"><code>BASE64_ENCODE_LENGTH</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4095
<li><a href="#index-base64_005fencode_005fsingle-357"><code>base64_encode_single</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4096
<li><a href="#index-base64_005fencode_005fupdate-359"><code>base64_encode_update</code></a>: <a href="#Ascii-encoding">Ascii encoding</a></li>
4097
<li><a href="#index-Block-Cipher-102">Block Cipher</a>: <a href="#Cipher-functions">Cipher functions</a></li>
4098
<li><a href="#index-blowfish_005fdecrypt-137"><code>blowfish_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4099
<li><a href="#index-blowfish_005fencrypt-136"><code>blowfish_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4100
<li><a href="#index-blowfish_005fset_005fkey-135"><code>blowfish_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4101
<li><a href="#index-camellia_005fcrypt-146"><code>camellia_crypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4102
<li><a href="#index-camellia_005finvert_005fkey-145"><code>camellia_invert_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4103
<li><a href="#index-camellia_005fset_005fdecrypt_005fkey-144"><code>camellia_set_decrypt_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4104
<li><a href="#index-camellia_005fset_005fencrypt_005fkey-143"><code>camellia_set_encrypt_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4105
<li><a href="#index-cast128_005fdecrypt-154"><code>cast128_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4106
<li><a href="#index-cast128_005fencrypt-153"><code>cast128_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4107
<li><a href="#index-cast128_005fset_005fkey-152"><code>cast128_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4108
<li><a href="#index-CBC-Mode-215">CBC Mode</a>: <a href="#CBC">CBC</a></li>
4109
<li><a href="#index-CBC_005fCTX-218"><code>CBC_CTX</code></a>: <a href="#CBC">CBC</a></li>
4110
<li><a href="#index-CBC_005fDECRYPT-221"><code>CBC_DECRYPT</code></a>: <a href="#CBC">CBC</a></li>
4111
<li><a href="#index-cbc_005fdecrypt-217"><code>cbc_decrypt</code></a>: <a href="#CBC">CBC</a></li>
4112
<li><a href="#index-CBC_005fENCRYPT-220"><code>CBC_ENCRYPT</code></a>: <a href="#CBC">CBC</a></li>
4113
<li><a href="#index-cbc_005fencrypt-216"><code>cbc_encrypt</code></a>: <a href="#CBC">CBC</a></li>
4114
<li><a href="#index-CBC_005fSET_005fIV-219"><code>CBC_SET_IV</code></a>: <a href="#CBC">CBC</a></li>
4115
<li><a href="#index-Cipher-101">Cipher</a>: <a href="#Cipher-functions">Cipher functions</a></li>
4116
<li><a href="#index-Cipher-Block-Chaining-214">Cipher Block Chaining</a>: <a href="#CBC">CBC</a></li>
3731
4117
<li><a href="#index-Collision_002dresistant-3">Collision-resistant</a>: <a href="#Hash-functions">Hash functions</a></li>
3732
<li><a href="#index-Conditional-entropy-299">Conditional entropy</a>: <a href="#Randomness">Randomness</a></li>
3733
<li><a href="#index-Counter-Mode-190">Counter Mode</a>: <a href="#CTR">CTR</a></li>
3734
<li><a href="#index-CTR-Mode-191">CTR Mode</a>: <a href="#CTR">CTR</a></li>
3735
<li><a href="#index-CTR_005fCRYPT-195"><code>CTR_CRYPT</code></a>: <a href="#CTR">CTR</a></li>
3736
<li><a href="#index-ctr_005fcrypt-192"><code>ctr_crypt</code></a>: <a href="#CTR">CTR</a></li>
3737
<li><a href="#index-CTR_005fCTX-193"><code>CTR_CTX</code></a>: <a href="#CTR">CTR</a></li>
3738
<li><a href="#index-CTR_005fSET_005fCOUNTER-194"><code>CTR_SET_COUNTER</code></a>: <a href="#CTR">CTR</a></li>
3739
<li><a href="#index-des3_005fdecrypt-136"><code>des3_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3740
<li><a href="#index-des3_005fencrypt-135"><code>des3_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3741
<li><a href="#index-des3_005fset_005fkey-134"><code>des3_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3742
<li><a href="#index-des_005fcheck_005fparity-129"><code>des_check_parity</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3743
<li><a href="#index-des_005fdecrypt-128"><code>des_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3744
<li><a href="#index-des_005fencrypt-127"><code>des_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3745
<li><a href="#index-des_005ffix_005fparity-130"><code>des_fix_parity</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3746
<li><a href="#index-des_005fset_005fkey-126"><code>des_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3747
<li><a href="#index-dsa_005fgenerate_005fkeypair-296"><code>dsa_generate_keypair</code></a>: <a href="#DSA">DSA</a></li>
3748
<li><a href="#index-dsa_005fprivate_005fkey_005fclear-284"><code>dsa_private_key_clear</code></a>: <a href="#DSA">DSA</a></li>
3749
<li><a href="#index-dsa_005fprivate_005fkey_005finit-282"><code>dsa_private_key_init</code></a>: <a href="#DSA">DSA</a></li>
3750
<li><a href="#index-dsa_005fpublic_005fkey_005fclear-283"><code>dsa_public_key_clear</code></a>: <a href="#DSA">DSA</a></li>
3751
<li><a href="#index-dsa_005fpublic_005fkey_005finit-281"><code>dsa_public_key_init</code></a>: <a href="#DSA">DSA</a></li>
3752
<li><a href="#index-dsa_005fsha1_005fsign-288"><code>dsa_sha1_sign</code></a>: <a href="#DSA">DSA</a></li>
3753
<li><a href="#index-dsa_005fsha1_005fsign_005fdigest-289"><code>dsa_sha1_sign_digest</code></a>: <a href="#DSA">DSA</a></li>
3754
<li><a href="#index-dsa_005fsha1_005fverify-292"><code>dsa_sha1_verify</code></a>: <a href="#DSA">DSA</a></li>
3755
<li><a href="#index-dsa_005fsha1_005fverify_005fdigest-293"><code>dsa_sha1_verify_digest</code></a>: <a href="#DSA">DSA</a></li>
3756
<li><a href="#index-dsa_005fsha256_005fsign-290"><code>dsa_sha256_sign</code></a>: <a href="#DSA">DSA</a></li>
3757
<li><a href="#index-dsa_005fsha256_005fsign_005fdigest-291"><code>dsa_sha256_sign_digest</code></a>: <a href="#DSA">DSA</a></li>
3758
<li><a href="#index-dsa_005fsha256_005fverify-294"><code>dsa_sha256_verify</code></a>: <a href="#DSA">DSA</a></li>
3759
<li><a href="#index-dsa_005fsha256_005fverify_005fdigest-295"><code>dsa_sha256_verify_digest</code></a>: <a href="#DSA">DSA</a></li>
3760
<li><a href="#index-dsa_005fsignature_005fclear-287"><code>dsa_signature_clear</code></a>: <a href="#DSA">DSA</a></li>
3761
<li><a href="#index-dsa_005fsignature_005finit-286"><code>dsa_signature_init</code></a>: <a href="#DSA">DSA</a></li>
3762
<li><a href="#index-Entropy-298">Entropy</a>: <a href="#Randomness">Randomness</a></li>
3763
<li><a href="#index-Galois-Counter-Mode-196">Galois Counter Mode</a>: <a href="#GCM">GCM</a></li>
3764
<li><a href="#index-GCM-197">GCM</a>: <a href="#GCM">GCM</a></li>
3765
<li><a href="#index-gcm_005faes_005fdecrypt-220"><code>gcm_aes_decrypt</code></a>: <a href="#GCM">GCM</a></li>
3766
<li><a href="#index-gcm_005faes_005fdigest-221"><code>gcm_aes_digest</code></a>: <a href="#GCM">GCM</a></li>
3767
<li><a href="#index-gcm_005faes_005fencrypt-219"><code>gcm_aes_encrypt</code></a>: <a href="#GCM">GCM</a></li>
3768
<li><a href="#index-gcm_005faes_005fset_005fiv-217"><code>gcm_aes_set_iv</code></a>: <a href="#GCM">GCM</a></li>
3769
<li><a href="#index-gcm_005faes_005fset_005fkey-216"><code>gcm_aes_set_key</code></a>: <a href="#GCM">GCM</a></li>
3770
<li><a href="#index-gcm_005faes_005fupdate-218"><code>gcm_aes_update</code></a>: <a href="#GCM">GCM</a></li>
3771
<li><a href="#index-GCM_005fCTX-208"><code>GCM_CTX</code></a>: <a href="#GCM">GCM</a></li>
3772
<li><a href="#index-GCM_005fDECRYPT-213"><code>GCM_DECRYPT</code></a>: <a href="#GCM">GCM</a></li>
3773
<li><a href="#index-gcm_005fdecrypt-206"><code>gcm_decrypt</code></a>: <a href="#GCM">GCM</a></li>
3774
<li><a href="#index-GCM_005fDIGEST-214"><code>GCM_DIGEST</code></a>: <a href="#GCM">GCM</a></li>
3775
<li><a href="#index-gcm_005fdigest-207"><code>gcm_digest</code></a>: <a href="#GCM">GCM</a></li>
3776
<li><a href="#index-GCM_005fENCRYPT-212"><code>GCM_ENCRYPT</code></a>: <a href="#GCM">GCM</a></li>
3777
<li><a href="#index-gcm_005fencrypt-205"><code>gcm_encrypt</code></a>: <a href="#GCM">GCM</a></li>
3778
<li><a href="#index-GCM_005fSET_005fIV-210"><code>GCM_SET_IV</code></a>: <a href="#GCM">GCM</a></li>
3779
<li><a href="#index-gcm_005fset_005fiv-203"><code>gcm_set_iv</code></a>: <a href="#GCM">GCM</a></li>
3780
<li><a href="#index-GCM_005fSET_005fKEY-209"><code>GCM_SET_KEY</code></a>: <a href="#GCM">GCM</a></li>
3781
<li><a href="#index-gcm_005fset_005fkey-202"><code>gcm_set_key</code></a>: <a href="#GCM">GCM</a></li>
3782
<li><a href="#index-GCM_005fUPDATE-211"><code>GCM_UPDATE</code></a>: <a href="#GCM">GCM</a></li>
3783
<li><a href="#index-gcm_005fupdate-204"><code>gcm_update</code></a>: <a href="#GCM">GCM</a></li>
4118
<li><a href="#index-Conditional-entropy-340">Conditional entropy</a>: <a href="#Randomness">Randomness</a></li>
4119
<li><a href="#index-Counter-Mode-222">Counter Mode</a>: <a href="#CTR">CTR</a></li>
4120
<li><a href="#index-CTR-Mode-223">CTR Mode</a>: <a href="#CTR">CTR</a></li>
4121
<li><a href="#index-CTR_005fCRYPT-227"><code>CTR_CRYPT</code></a>: <a href="#CTR">CTR</a></li>
4122
<li><a href="#index-ctr_005fcrypt-224"><code>ctr_crypt</code></a>: <a href="#CTR">CTR</a></li>
4123
<li><a href="#index-CTR_005fCTX-225"><code>CTR_CTX</code></a>: <a href="#CTR">CTR</a></li>
4124
<li><a href="#index-CTR_005fSET_005fCOUNTER-226"><code>CTR_SET_COUNTER</code></a>: <a href="#CTR">CTR</a></li>
4125
<li><a href="#index-des3_005fdecrypt-168"><code>des3_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4126
<li><a href="#index-des3_005fencrypt-167"><code>des3_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4127
<li><a href="#index-des3_005fset_005fkey-166"><code>des3_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4128
<li><a href="#index-des_005fcheck_005fparity-161"><code>des_check_parity</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4129
<li><a href="#index-des_005fdecrypt-160"><code>des_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4130
<li><a href="#index-des_005fencrypt-159"><code>des_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4131
<li><a href="#index-des_005ffix_005fparity-162"><code>des_fix_parity</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4132
<li><a href="#index-des_005fset_005fkey-158"><code>des_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4133
<li><a href="#index-dsa_005fgenerate_005fkeypair-337"><code>dsa_generate_keypair</code></a>: <a href="#DSA">DSA</a></li>
4134
<li><a href="#index-dsa_005fprivate_005fkey_005fclear-325"><code>dsa_private_key_clear</code></a>: <a href="#DSA">DSA</a></li>
4135
<li><a href="#index-dsa_005fprivate_005fkey_005finit-323"><code>dsa_private_key_init</code></a>: <a href="#DSA">DSA</a></li>
4136
<li><a href="#index-dsa_005fpublic_005fkey_005fclear-324"><code>dsa_public_key_clear</code></a>: <a href="#DSA">DSA</a></li>
4137
<li><a href="#index-dsa_005fpublic_005fkey_005finit-322"><code>dsa_public_key_init</code></a>: <a href="#DSA">DSA</a></li>
4138
<li><a href="#index-dsa_005fsha1_005fsign-329"><code>dsa_sha1_sign</code></a>: <a href="#DSA">DSA</a></li>
4139
<li><a href="#index-dsa_005fsha1_005fsign_005fdigest-330"><code>dsa_sha1_sign_digest</code></a>: <a href="#DSA">DSA</a></li>
4140
<li><a href="#index-dsa_005fsha1_005fverify-333"><code>dsa_sha1_verify</code></a>: <a href="#DSA">DSA</a></li>
4141
<li><a href="#index-dsa_005fsha1_005fverify_005fdigest-334"><code>dsa_sha1_verify_digest</code></a>: <a href="#DSA">DSA</a></li>
4142
<li><a href="#index-dsa_005fsha256_005fsign-331"><code>dsa_sha256_sign</code></a>: <a href="#DSA">DSA</a></li>
4143
<li><a href="#index-dsa_005fsha256_005fsign_005fdigest-332"><code>dsa_sha256_sign_digest</code></a>: <a href="#DSA">DSA</a></li>
4144
<li><a href="#index-dsa_005fsha256_005fverify-335"><code>dsa_sha256_verify</code></a>: <a href="#DSA">DSA</a></li>
4145
<li><a href="#index-dsa_005fsha256_005fverify_005fdigest-336"><code>dsa_sha256_verify_digest</code></a>: <a href="#DSA">DSA</a></li>
4146
<li><a href="#index-dsa_005fsignature_005fclear-328"><code>dsa_signature_clear</code></a>: <a href="#DSA">DSA</a></li>
4147
<li><a href="#index-dsa_005fsignature_005finit-327"><code>dsa_signature_init</code></a>: <a href="#DSA">DSA</a></li>
4148
<li><a href="#index-Entropy-339">Entropy</a>: <a href="#Randomness">Randomness</a></li>
4149
<li><a href="#index-Galois-Counter-Mode-228">Galois Counter Mode</a>: <a href="#GCM">GCM</a></li>
4150
<li><a href="#index-GCM-229">GCM</a>: <a href="#GCM">GCM</a></li>
4151
<li><a href="#index-gcm_005faes_005fdecrypt-252"><code>gcm_aes_decrypt</code></a>: <a href="#GCM">GCM</a></li>
4152
<li><a href="#index-gcm_005faes_005fdigest-253"><code>gcm_aes_digest</code></a>: <a href="#GCM">GCM</a></li>
4153
<li><a href="#index-gcm_005faes_005fencrypt-251"><code>gcm_aes_encrypt</code></a>: <a href="#GCM">GCM</a></li>
4154
<li><a href="#index-gcm_005faes_005fset_005fiv-249"><code>gcm_aes_set_iv</code></a>: <a href="#GCM">GCM</a></li>
4155
<li><a href="#index-gcm_005faes_005fset_005fkey-248"><code>gcm_aes_set_key</code></a>: <a href="#GCM">GCM</a></li>
4156
<li><a href="#index-gcm_005faes_005fupdate-250"><code>gcm_aes_update</code></a>: <a href="#GCM">GCM</a></li>
4157
<li><a href="#index-GCM_005fCTX-240"><code>GCM_CTX</code></a>: <a href="#GCM">GCM</a></li>
4158
<li><a href="#index-GCM_005fDECRYPT-245"><code>GCM_DECRYPT</code></a>: <a href="#GCM">GCM</a></li>
4159
<li><a href="#index-gcm_005fdecrypt-238"><code>gcm_decrypt</code></a>: <a href="#GCM">GCM</a></li>
4160
<li><a href="#index-GCM_005fDIGEST-246"><code>GCM_DIGEST</code></a>: <a href="#GCM">GCM</a></li>
4161
<li><a href="#index-gcm_005fdigest-239"><code>gcm_digest</code></a>: <a href="#GCM">GCM</a></li>
4162
<li><a href="#index-GCM_005fENCRYPT-244"><code>GCM_ENCRYPT</code></a>: <a href="#GCM">GCM</a></li>
4163
<li><a href="#index-gcm_005fencrypt-237"><code>gcm_encrypt</code></a>: <a href="#GCM">GCM</a></li>
4164
<li><a href="#index-GCM_005fSET_005fIV-242"><code>GCM_SET_IV</code></a>: <a href="#GCM">GCM</a></li>
4165
<li><a href="#index-gcm_005fset_005fiv-235"><code>gcm_set_iv</code></a>: <a href="#GCM">GCM</a></li>
4166
<li><a href="#index-GCM_005fSET_005fKEY-241"><code>GCM_SET_KEY</code></a>: <a href="#GCM">GCM</a></li>
4167
<li><a href="#index-gcm_005fset_005fkey-234"><code>gcm_set_key</code></a>: <a href="#GCM">GCM</a></li>
4168
<li><a href="#index-GCM_005fUPDATE-243"><code>GCM_UPDATE</code></a>: <a href="#GCM">GCM</a></li>
4169
<li><a href="#index-gcm_005fupdate-236"><code>gcm_update</code></a>: <a href="#GCM">GCM</a></li>
4170
<li><a href="#index-gosthash94_005fdigest-87"><code>gosthash94_digest</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4171
<li><a href="#index-gosthash94_005finit-85"><code>gosthash94_init</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4172
<li><a href="#index-gosthash94_005fupdate-86"><code>gosthash94_update</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
3784
4173
<li><a href="#index-Hash-function-1">Hash function</a>: <a href="#Hash-functions">Hash functions</a></li>
3785
<li><a href="#index-HMAC_005fCTX-228"><code>HMAC_CTX</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3786
<li><a href="#index-HMAC_005fDIGEST-230"><code>HMAC_DIGEST</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3787
<li><a href="#index-hmac_005fdigest-227"><code>hmac_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3788
<li><a href="#index-hmac_005fmd5_005fdigest-234"><code>hmac_md5_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3789
<li><a href="#index-hmac_005fmd5_005fset_005fkey-232"><code>hmac_md5_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3790
<li><a href="#index-hmac_005fmd5_005fupdate-233"><code>hmac_md5_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3791
<li><a href="#index-hmac_005fripemd160_005fdigest-238"><code>hmac_ripemd160_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3792
<li><a href="#index-hmac_005fripemd160_005fset_005fkey-236"><code>hmac_ripemd160_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3793
<li><a href="#index-hmac_005fripemd160_005fupdate-237"><code>hmac_ripemd160_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3794
<li><a href="#index-HMAC_005fSET_005fKEY-229"><code>HMAC_SET_KEY</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3795
<li><a href="#index-hmac_005fset_005fkey-225"><code>hmac_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3796
<li><a href="#index-hmac_005fsha1_005fdigest-242"><code>hmac_sha1_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3797
<li><a href="#index-hmac_005fsha1_005fset_005fkey-240"><code>hmac_sha1_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3798
<li><a href="#index-hmac_005fsha1_005fupdate-241"><code>hmac_sha1_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3799
<li><a href="#index-hmac_005fsha256_005fdigest-246"><code>hmac_sha256_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3800
<li><a href="#index-hmac_005fsha256_005fset_005fkey-244"><code>hmac_sha256_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3801
<li><a href="#index-hmac_005fsha256_005fupdate-245"><code>hmac_sha256_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3802
<li><a href="#index-hmac_005fsha512_005fdigest-250"><code>hmac_sha512_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3803
<li><a href="#index-hmac_005fsha512_005fset_005fkey-248"><code>hmac_sha512_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3804
<li><a href="#index-hmac_005fsha512_005fupdate-249"><code>hmac_sha512_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3805
<li><a href="#index-hmac_005fupdate-226"><code>hmac_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3806
<li><a href="#index-Keyed-Hash-Function-222">Keyed Hash Function</a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3807
<li><a href="#index-MAC-224">MAC</a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3808
<li><a href="#index-md2_005fdigest-15"><code>md2_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3809
<li><a href="#index-md2_005finit-13"><code>md2_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3810
<li><a href="#index-md2_005fupdate-14"><code>md2_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3811
<li><a href="#index-md4_005fdigest-21"><code>md4_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3812
<li><a href="#index-md4_005finit-19"><code>md4_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3813
<li><a href="#index-md4_005fupdate-20"><code>md4_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3814
<li><a href="#index-md5_005fdigest-9"><code>md5_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3815
<li><a href="#index-md5_005finit-7"><code>md5_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3816
<li><a href="#index-md5_005fupdate-8"><code>md5_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3817
<li><a href="#index-memxor-336"><code>memxor</code></a>: <a href="#Miscellaneous-functions">Miscellaneous functions</a></li>
3818
<li><a href="#index-Message-Authentication-Code-223">Message Authentication Code</a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4174
<li><a href="#index-HMAC_005fCTX-260"><code>HMAC_CTX</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4175
<li><a href="#index-HMAC_005fDIGEST-262"><code>HMAC_DIGEST</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4176
<li><a href="#index-hmac_005fdigest-259"><code>hmac_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4177
<li><a href="#index-hmac_005fmd5_005fdigest-266"><code>hmac_md5_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4178
<li><a href="#index-hmac_005fmd5_005fset_005fkey-264"><code>hmac_md5_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4179
<li><a href="#index-hmac_005fmd5_005fupdate-265"><code>hmac_md5_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4180
<li><a href="#index-hmac_005fripemd160_005fdigest-270"><code>hmac_ripemd160_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4181
<li><a href="#index-hmac_005fripemd160_005fset_005fkey-268"><code>hmac_ripemd160_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4182
<li><a href="#index-hmac_005fripemd160_005fupdate-269"><code>hmac_ripemd160_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4183
<li><a href="#index-HMAC_005fSET_005fKEY-261"><code>HMAC_SET_KEY</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4184
<li><a href="#index-hmac_005fset_005fkey-257"><code>hmac_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4185
<li><a href="#index-hmac_005fsha1_005fdigest-274"><code>hmac_sha1_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4186
<li><a href="#index-hmac_005fsha1_005fset_005fkey-272"><code>hmac_sha1_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4187
<li><a href="#index-hmac_005fsha1_005fupdate-273"><code>hmac_sha1_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4188
<li><a href="#index-hmac_005fsha256_005fdigest-278"><code>hmac_sha256_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4189
<li><a href="#index-hmac_005fsha256_005fset_005fkey-276"><code>hmac_sha256_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4190
<li><a href="#index-hmac_005fsha256_005fupdate-277"><code>hmac_sha256_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4191
<li><a href="#index-hmac_005fsha512_005fdigest-282"><code>hmac_sha512_digest</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4192
<li><a href="#index-hmac_005fsha512_005fset_005fkey-280"><code>hmac_sha512_set_key</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4193
<li><a href="#index-hmac_005fsha512_005fupdate-281"><code>hmac_sha512_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4194
<li><a href="#index-hmac_005fupdate-258"><code>hmac_update</code></a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4195
<li><a href="#index-KDF-286">KDF</a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4196
<li><a href="#index-Key-Derivation-Function-283">Key Derivation Function</a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4197
<li><a href="#index-Keyed-Hash-Function-254">Keyed Hash Function</a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4198
<li><a href="#index-MAC-256">MAC</a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
4199
<li><a href="#index-md2_005fdigest-63"><code>md2_digest</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4200
<li><a href="#index-md2_005finit-61"><code>md2_init</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4201
<li><a href="#index-md2_005fupdate-62"><code>md2_update</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4202
<li><a href="#index-md4_005fdigest-69"><code>md4_digest</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4203
<li><a href="#index-md4_005finit-67"><code>md4_init</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4204
<li><a href="#index-md4_005fupdate-68"><code>md4_update</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4205
<li><a href="#index-md5_005fdigest-57"><code>md5_digest</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4206
<li><a href="#index-md5_005finit-55"><code>md5_init</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4207
<li><a href="#index-md5_005fupdate-56"><code>md5_update</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4208
<li><a href="#index-memxor-377"><code>memxor</code></a>: <a href="#Miscellaneous-functions">Miscellaneous functions</a></li>
4209
<li><a href="#index-Message-Authentication-Code-255">Message Authentication Code</a>: <a href="#Keyed-hash-functions">Keyed hash functions</a></li>
3819
4210
<li><a href="#index-One_002dway-2">One-way</a>: <a href="#Hash-functions">Hash functions</a></li>
3820
<li><a href="#index-One_002dway-function-252">One-way function</a>: <a href="#Public_002dkey-algorithms">Public-key algorithms</a></li>
3821
<li><a href="#index-Public-Key-Cryptography-251">Public Key Cryptography</a>: <a href="#Public_002dkey-algorithms">Public-key algorithms</a></li>
3822
<li><a href="#index-Randomness-297">Randomness</a>: <a href="#Randomness">Randomness</a></li>
3823
<li><a href="#index-ripemd160_005fdigest-27"><code>ripemd160_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3824
<li><a href="#index-ripemd160_005finit-25"><code>ripemd160_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3825
<li><a href="#index-ripemd160_005fupdate-26"><code>ripemd160_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3826
<li><a href="#index-rsa_005fcompute_005froot-277"><code>rsa_compute_root</code></a>: <a href="#RSA">RSA</a></li>
3827
<li><a href="#index-rsa_005fgenerate_005fkeypair-278"><code>rsa_generate_keypair</code></a>: <a href="#RSA">RSA</a></li>
3828
<li><a href="#index-rsa_005fmd5_005fsign-261"><code>rsa_md5_sign</code></a>: <a href="#RSA">RSA</a></li>
3829
<li><a href="#index-rsa_005fmd5_005fsign_005fdigest-265"><code>rsa_md5_sign_digest</code></a>: <a href="#RSA">RSA</a></li>
3830
<li><a href="#index-rsa_005fmd5_005fverify-269"><code>rsa_md5_verify</code></a>: <a href="#RSA">RSA</a></li>
3831
<li><a href="#index-rsa_005fmd5_005fverify_005fdigest-273"><code>rsa_md5_verify_digest</code></a>: <a href="#RSA">RSA</a></li>
3832
<li><a href="#index-rsa_005fprivate_005fkey_005fclear-258"><code>rsa_private_key_clear</code></a>: <a href="#RSA">RSA</a></li>
3833
<li><a href="#index-rsa_005fprivate_005fkey_005finit-256"><code>rsa_private_key_init</code></a>: <a href="#RSA">RSA</a></li>
3834
<li><a href="#index-rsa_005fprivate_005fkey_005fprepare-260"><code>rsa_private_key_prepare</code></a>: <a href="#RSA">RSA</a></li>
3835
<li><a href="#index-rsa_005fpublic_005fkey_005fclear-257"><code>rsa_public_key_clear</code></a>: <a href="#RSA">RSA</a></li>
3836
<li><a href="#index-rsa_005fpublic_005fkey_005finit-255"><code>rsa_public_key_init</code></a>: <a href="#RSA">RSA</a></li>
3837
<li><a href="#index-rsa_005fpublic_005fkey_005fprepare-259"><code>rsa_public_key_prepare</code></a>: <a href="#RSA">RSA</a></li>
3838
<li><a href="#index-rsa_005fsha1_005fsign-262"><code>rsa_sha1_sign</code></a>: <a href="#RSA">RSA</a></li>
3839
<li><a href="#index-rsa_005fsha1_005fsign_005fdigest-266"><code>rsa_sha1_sign_digest</code></a>: <a href="#RSA">RSA</a></li>
3840
<li><a href="#index-rsa_005fsha1_005fverify-270"><code>rsa_sha1_verify</code></a>: <a href="#RSA">RSA</a></li>
3841
<li><a href="#index-rsa_005fsha1_005fverify_005fdigest-274"><code>rsa_sha1_verify_digest</code></a>: <a href="#RSA">RSA</a></li>
3842
<li><a href="#index-rsa_005fsha256_005fsign-263"><code>rsa_sha256_sign</code></a>: <a href="#RSA">RSA</a></li>
3843
<li><a href="#index-rsa_005fsha256_005fsign_005fdigest-267"><code>rsa_sha256_sign_digest</code></a>: <a href="#RSA">RSA</a></li>
3844
<li><a href="#index-rsa_005fsha256_005fverify-271"><code>rsa_sha256_verify</code></a>: <a href="#RSA">RSA</a></li>
3845
<li><a href="#index-rsa_005fsha256_005fverify_005fdigest-275"><code>rsa_sha256_verify_digest</code></a>: <a href="#RSA">RSA</a></li>
3846
<li><a href="#index-rsa_005fsha512_005fsign-264"><code>rsa_sha512_sign</code></a>: <a href="#RSA">RSA</a></li>
3847
<li><a href="#index-rsa_005fsha512_005fsign_005fdigest-268"><code>rsa_sha512_sign_digest</code></a>: <a href="#RSA">RSA</a></li>
3848
<li><a href="#index-rsa_005fsha512_005fverify-272"><code>rsa_sha512_verify</code></a>: <a href="#RSA">RSA</a></li>
3849
<li><a href="#index-rsa_005fsha512_005fverify_005fdigest-276"><code>rsa_sha512_verify_digest</code></a>: <a href="#RSA">RSA</a></li>
3850
<li><a href="#index-salsa20_005fcrypt-145"><code>salsa20_crypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3851
<li><a href="#index-salsa20_005fset_005fiv-144"><code>salsa20_set_iv</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3852
<li><a href="#index-salsa20_005fset_005fkey-143"><code>salsa20_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3853
<li><a href="#index-serpent_005fdecrypt-153"><code>serpent_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3854
<li><a href="#index-serpent_005fencrypt-152"><code>serpent_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3855
<li><a href="#index-serpent_005fset_005fkey-151"><code>serpent_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3856
<li><a href="#index-sha1_005fdigest-33"><code>sha1_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3857
<li><a href="#index-sha1_005finit-31"><code>sha1_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3858
<li><a href="#index-sha1_005fupdate-32"><code>sha1_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3859
<li><a href="#index-sha224_005fdigest-45"><code>sha224_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3860
<li><a href="#index-sha224_005finit-43"><code>sha224_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3861
<li><a href="#index-sha224_005fupdate-44"><code>sha224_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3862
<li><a href="#index-sha256_005fdigest-39"><code>sha256_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3863
<li><a href="#index-sha256_005finit-37"><code>sha256_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3864
<li><a href="#index-sha256_005fupdate-38"><code>sha256_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3865
<li><a href="#index-sha384_005fdigest-57"><code>sha384_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3866
<li><a href="#index-sha384_005finit-55"><code>sha384_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3867
<li><a href="#index-sha384_005fupdate-56"><code>sha384_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3868
<li><a href="#index-sha512_005fdigest-51"><code>sha512_digest</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3869
<li><a href="#index-sha512_005finit-49"><code>sha512_init</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3870
<li><a href="#index-sha512_005fupdate-50"><code>sha512_update</code></a>: <a href="#Hash-functions">Hash functions</a></li>
3871
<li><a href="#index-Stream-Cipher-71">Stream Cipher</a>: <a href="#Cipher-functions">Cipher functions</a></li>
3872
<li><a href="#index-twofish_005fdecrypt-161"><code>twofish_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3873
<li><a href="#index-twofish_005fencrypt-160"><code>twofish_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3874
<li><a href="#index-twofish_005fset_005fkey-159"><code>twofish_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
3875
<li><a href="#index-yarrow256_005ffast_005freseed-309"><code>yarrow256_fast_reseed</code></a>: <a href="#Randomness">Randomness</a></li>
3876
<li><a href="#index-yarrow256_005finit-303"><code>yarrow256_init</code></a>: <a href="#Randomness">Randomness</a></li>
3877
<li><a href="#index-yarrow256_005fis_005fseeded-307"><code>yarrow256_is_seeded</code></a>: <a href="#Randomness">Randomness</a></li>
3878
<li><a href="#index-yarrow256_005fneeded_005fsources-308"><code>yarrow256_needed_sources</code></a>: <a href="#Randomness">Randomness</a></li>
3879
<li><a href="#index-yarrow256_005frandom-306"><code>yarrow256_random</code></a>: <a href="#Randomness">Randomness</a></li>
3880
<li><a href="#index-yarrow256_005fseed-304"><code>yarrow256_seed</code></a>: <a href="#Randomness">Randomness</a></li>
3881
<li><a href="#index-yarrow256_005fslow_005freseed-310"><code>yarrow256_slow_reseed</code></a>: <a href="#Randomness">Randomness</a></li>
3882
<li><a href="#index-yarrow256_005fupdate-305"><code>yarrow256_update</code></a>: <a href="#Randomness">Randomness</a></li>
3883
<li><a href="#index-yarrow_005fkey_005fevent_005festimate-313"><code>yarrow_key_event_estimate</code></a>: <a href="#Randomness">Randomness</a></li>
3884
<li><a href="#index-yarrow_005fkey_005fevent_005finit-312"><code>yarrow_key_event_init</code></a>: <a href="#Randomness">Randomness</a></li>
4211
<li><a href="#index-One_002dway-function-293">One-way function</a>: <a href="#Public_002dkey-algorithms">Public-key algorithms</a></li>
4212
<li><a href="#index-Password-Based-Key-Derivation-Function-284">Password Based Key Derivation Function</a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4213
<li><a href="#index-PBKDF-287">PBKDF</a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4214
<li><a href="#index-PBKDF2-289"><code>PBKDF2</code></a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4215
<li><a href="#index-pbkdf2-288"><code>pbkdf2</code></a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4216
<li><a href="#index-pbkdf2_005fhmac_005fsha1-290"><code>pbkdf2_hmac_sha1</code></a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4217
<li><a href="#index-pbkdf2_005fhmac_005fsha256-291"><code>pbkdf2_hmac_sha256</code></a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4218
<li><a href="#index-PKCS-_00235-285">PKCS #5</a>: <a href="#Key-derivation-functions">Key derivation functions</a></li>
4219
<li><a href="#index-Public-Key-Cryptography-292">Public Key Cryptography</a>: <a href="#Public_002dkey-algorithms">Public-key algorithms</a></li>
4220
<li><a href="#index-Randomness-338">Randomness</a>: <a href="#Randomness">Randomness</a></li>
4221
<li><a href="#index-ripemd160_005fdigest-75"><code>ripemd160_digest</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4222
<li><a href="#index-ripemd160_005finit-73"><code>ripemd160_init</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4223
<li><a href="#index-ripemd160_005fupdate-74"><code>ripemd160_update</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4224
<li><a href="#index-rsa_005fcompute_005froot-318"><code>rsa_compute_root</code></a>: <a href="#RSA">RSA</a></li>
4225
<li><a href="#index-rsa_005fgenerate_005fkeypair-319"><code>rsa_generate_keypair</code></a>: <a href="#RSA">RSA</a></li>
4226
<li><a href="#index-rsa_005fmd5_005fsign-302"><code>rsa_md5_sign</code></a>: <a href="#RSA">RSA</a></li>
4227
<li><a href="#index-rsa_005fmd5_005fsign_005fdigest-306"><code>rsa_md5_sign_digest</code></a>: <a href="#RSA">RSA</a></li>
4228
<li><a href="#index-rsa_005fmd5_005fverify-310"><code>rsa_md5_verify</code></a>: <a href="#RSA">RSA</a></li>
4229
<li><a href="#index-rsa_005fmd5_005fverify_005fdigest-314"><code>rsa_md5_verify_digest</code></a>: <a href="#RSA">RSA</a></li>
4230
<li><a href="#index-rsa_005fprivate_005fkey_005fclear-299"><code>rsa_private_key_clear</code></a>: <a href="#RSA">RSA</a></li>
4231
<li><a href="#index-rsa_005fprivate_005fkey_005finit-297"><code>rsa_private_key_init</code></a>: <a href="#RSA">RSA</a></li>
4232
<li><a href="#index-rsa_005fprivate_005fkey_005fprepare-301"><code>rsa_private_key_prepare</code></a>: <a href="#RSA">RSA</a></li>
4233
<li><a href="#index-rsa_005fpublic_005fkey_005fclear-298"><code>rsa_public_key_clear</code></a>: <a href="#RSA">RSA</a></li>
4234
<li><a href="#index-rsa_005fpublic_005fkey_005finit-296"><code>rsa_public_key_init</code></a>: <a href="#RSA">RSA</a></li>
4235
<li><a href="#index-rsa_005fpublic_005fkey_005fprepare-300"><code>rsa_public_key_prepare</code></a>: <a href="#RSA">RSA</a></li>
4236
<li><a href="#index-rsa_005fsha1_005fsign-303"><code>rsa_sha1_sign</code></a>: <a href="#RSA">RSA</a></li>
4237
<li><a href="#index-rsa_005fsha1_005fsign_005fdigest-307"><code>rsa_sha1_sign_digest</code></a>: <a href="#RSA">RSA</a></li>
4238
<li><a href="#index-rsa_005fsha1_005fverify-311"><code>rsa_sha1_verify</code></a>: <a href="#RSA">RSA</a></li>
4239
<li><a href="#index-rsa_005fsha1_005fverify_005fdigest-315"><code>rsa_sha1_verify_digest</code></a>: <a href="#RSA">RSA</a></li>
4240
<li><a href="#index-rsa_005fsha256_005fsign-304"><code>rsa_sha256_sign</code></a>: <a href="#RSA">RSA</a></li>
4241
<li><a href="#index-rsa_005fsha256_005fsign_005fdigest-308"><code>rsa_sha256_sign_digest</code></a>: <a href="#RSA">RSA</a></li>
4242
<li><a href="#index-rsa_005fsha256_005fverify-312"><code>rsa_sha256_verify</code></a>: <a href="#RSA">RSA</a></li>
4243
<li><a href="#index-rsa_005fsha256_005fverify_005fdigest-316"><code>rsa_sha256_verify_digest</code></a>: <a href="#RSA">RSA</a></li>
4244
<li><a href="#index-rsa_005fsha512_005fsign-305"><code>rsa_sha512_sign</code></a>: <a href="#RSA">RSA</a></li>
4245
<li><a href="#index-rsa_005fsha512_005fsign_005fdigest-309"><code>rsa_sha512_sign_digest</code></a>: <a href="#RSA">RSA</a></li>
4246
<li><a href="#index-rsa_005fsha512_005fverify-313"><code>rsa_sha512_verify</code></a>: <a href="#RSA">RSA</a></li>
4247
<li><a href="#index-rsa_005fsha512_005fverify_005fdigest-317"><code>rsa_sha512_verify_digest</code></a>: <a href="#RSA">RSA</a></li>
4248
<li><a href="#index-salsa20_005fcrypt-177"><code>salsa20_crypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4249
<li><a href="#index-salsa20_005fset_005fiv-176"><code>salsa20_set_iv</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4250
<li><a href="#index-salsa20_005fset_005fkey-175"><code>salsa20_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4251
<li><a href="#index-serpent_005fdecrypt-185"><code>serpent_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4252
<li><a href="#index-serpent_005fencrypt-184"><code>serpent_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4253
<li><a href="#index-serpent_005fset_005fkey-183"><code>serpent_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4254
<li><a href="#index-sha1_005fdigest-81"><code>sha1_digest</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4255
<li><a href="#index-sha1_005finit-79"><code>sha1_init</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4256
<li><a href="#index-sha1_005fupdate-80"><code>sha1_update</code></a>: <a href="#Legacy-hash-functions">Legacy hash functions</a></li>
4257
<li><a href="#index-sha224_005fdigest-15"><code>sha224_digest</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4258
<li><a href="#index-sha224_005finit-13"><code>sha224_init</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4259
<li><a href="#index-sha224_005fupdate-14"><code>sha224_update</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4260
<li><a href="#index-sha256_005fdigest-9"><code>sha256_digest</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4261
<li><a href="#index-sha256_005finit-7"><code>sha256_init</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4262
<li><a href="#index-sha256_005fupdate-8"><code>sha256_update</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4263
<li><a href="#index-sha384_005fdigest-27"><code>sha384_digest</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4264
<li><a href="#index-sha384_005finit-25"><code>sha384_init</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4265
<li><a href="#index-sha384_005fupdate-26"><code>sha384_update</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4266
<li><a href="#index-sha3_005f224_005fdigest-33"><code>sha3_224_digest</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4267
<li><a href="#index-sha3_005f224_005finit-31"><code>sha3_224_init</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4268
<li><a href="#index-sha3_005f224_005fupdate-32"><code>sha3_224_update</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4269
<li><a href="#index-sha3_005f256_005fdigest-39"><code>sha3_256_digest</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4270
<li><a href="#index-sha3_005f256_005finit-37"><code>sha3_256_init</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4271
<li><a href="#index-sha3_005f256_005fupdate-38"><code>sha3_256_update</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4272
<li><a href="#index-sha3_005f384_005fdigest-45"><code>sha3_384_digest</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4273
<li><a href="#index-sha3_005f384_005finit-43"><code>sha3_384_init</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4274
<li><a href="#index-sha3_005f384_005fupdate-44"><code>sha3_384_update</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4275
<li><a href="#index-sha3_005f512_005fdigest-51"><code>sha3_512_digest</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4276
<li><a href="#index-sha3_005f512_005finit-49"><code>sha3_512_init</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4277
<li><a href="#index-sha3_005f512_005fupdate-50"><code>sha3_512_update</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4278
<li><a href="#index-sha512_005fdigest-21"><code>sha512_digest</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4279
<li><a href="#index-sha512_005finit-19"><code>sha512_init</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4280
<li><a href="#index-sha512_005fupdate-20"><code>sha512_update</code></a>: <a href="#Recommended-hash-functions">Recommended hash functions</a></li>
4281
<li><a href="#index-Stream-Cipher-103">Stream Cipher</a>: <a href="#Cipher-functions">Cipher functions</a></li>
4282
<li><a href="#index-twofish_005fdecrypt-193"><code>twofish_decrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4283
<li><a href="#index-twofish_005fencrypt-192"><code>twofish_encrypt</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4284
<li><a href="#index-twofish_005fset_005fkey-191"><code>twofish_set_key</code></a>: <a href="#Cipher-functions">Cipher functions</a></li>
4285
<li><a href="#index-yarrow256_005ffast_005freseed-350"><code>yarrow256_fast_reseed</code></a>: <a href="#Randomness">Randomness</a></li>
4286
<li><a href="#index-yarrow256_005finit-344"><code>yarrow256_init</code></a>: <a href="#Randomness">Randomness</a></li>
4287
<li><a href="#index-yarrow256_005fis_005fseeded-348"><code>yarrow256_is_seeded</code></a>: <a href="#Randomness">Randomness</a></li>
4288
<li><a href="#index-yarrow256_005fneeded_005fsources-349"><code>yarrow256_needed_sources</code></a>: <a href="#Randomness">Randomness</a></li>
4289
<li><a href="#index-yarrow256_005frandom-347"><code>yarrow256_random</code></a>: <a href="#Randomness">Randomness</a></li>
4290
<li><a href="#index-yarrow256_005fseed-345"><code>yarrow256_seed</code></a>: <a href="#Randomness">Randomness</a></li>
4291
<li><a href="#index-yarrow256_005fslow_005freseed-351"><code>yarrow256_slow_reseed</code></a>: <a href="#Randomness">Randomness</a></li>
4292
<li><a href="#index-yarrow256_005fupdate-346"><code>yarrow256_update</code></a>: <a href="#Randomness">Randomness</a></li>
4293
<li><a href="#index-yarrow_005fkey_005fevent_005festimate-354"><code>yarrow_key_event_estimate</code></a>: <a href="#Randomness">Randomness</a></li>
4294
<li><a href="#index-yarrow_005fkey_005fevent_005finit-353"><code>yarrow_key_event_init</code></a>: <a href="#Randomness">Randomness</a></li>
3885
4295
</ul><div class="footnote">
3887
<a name="texinfo-footnotes-in-document"></a><h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> Actually, the computation is not done like this, it is
4297
<a name="texinfo-footnotes-in-document"></a><h4>Fotnoter</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> Actually, the computation is not done like this, it is
3888
4298
done more efficiently using <code>p</code>, <code>q</code> and the Chinese remainder
3889
4299
theorem (<acronym>CRT</acronym>). But the result is the same.</p>