Skip to content

Commit 223ecd2

Browse files
authored
Merge pull request #730 from libtom/pr/blake3
BLAKE3
2 parents dc77d92 + 075342e commit 223ecd2

16 files changed

Lines changed: 786 additions & 9 deletions

doc/crypt.tex

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3093,6 +3093,7 @@ \subsection{Hash Registration}
30933093
\hline KECCAK256 & \code{keccak256\_desc} & 32 & 30 \\
30943094
\hline SHAKE128 & \code{shake128\_desc} & 32 & 34 \\
30953095
\hline SM3 & \code{sm3\_desc} & 32 & 36 \\
3096+
\hline BLAKE3 & \code{blake3\_desc} & 32 & 37 \\
30963097
\hline SHA224 & \code{sha224\_desc} & 28 & 10 \\
30973098
\hline SHA512-224 & \code{sha512\_224\_desc} & 28 & 15 \\
30983099
\hline SHA3-224 & \code{sha3\_224\_desc} & 28 & 17 \\
@@ -3203,6 +3204,82 @@ \subsection{Hash Registration}
32033204
}
32043205
\end{verbatim}
32053206

3207+
\mysection{BLAKE3}
3208+
\index{BLAKE3}
3209+
BLAKE3 is a cryptographic hash function that also supports keyed hashing (MAC/PRF) and key derivation.
3210+
The standard unkeyed hash uses the normal hash descriptor interface:
3211+
3212+
\begin{verbatim}
3213+
int blake3_init(hash_state *md);
3214+
int blake3_process(hash_state *md, const unsigned char *in,
3215+
unsigned long inlen);
3216+
int blake3_done(hash_state *md, unsigned char *out);
3217+
\end{verbatim}
3218+
3219+
The default output is 32 bytes (256 bits).
3220+
To enable BLAKE3, define \texttt{LTC\_BLAKE3} in \textit{tomcrypt\_custom.h}.
3221+
3222+
\subsection{BLAKE3 Keyed Hash}
3223+
\index{blake3\_keyed\_init()}
3224+
BLAKE3 keyed hashing can be used as a MAC or PRF with a 32-byte key. It replaces the need for a
3225+
separate HMAC construction.
3226+
3227+
\begin{verbatim}
3228+
int blake3_keyed_init(hash_state *md, const unsigned char *key,
3229+
unsigned long keylen);
3230+
\end{verbatim}
3231+
3232+
The \textit{keylen} parameter must be exactly 32. After initialization, use the standard
3233+
\texttt{blake3\_process()} and \texttt{blake3\_done()} to hash data and obtain the tag.
3234+
3235+
\subsection{BLAKE3 Key Derivation}
3236+
\index{blake3\_derive\_key\_init()}
3237+
BLAKE3 key derivation uses a two-pass construction: first the application-specific context string is
3238+
hashed internally, then the resulting context key is used to hash the input key material.
3239+
3240+
\begin{verbatim}
3241+
int blake3_derive_key_init(hash_state *md,
3242+
const unsigned char *context,
3243+
unsigned long contextlen);
3244+
\end{verbatim}
3245+
3246+
The \textit{context} should be a globally unique, application-specific string (e.g.\
3247+
\texttt{"myapp 2024-01-01 session-key"}). After initialization, feed the input key material via
3248+
\texttt{blake3\_process()} and retrieve the derived key via \texttt{blake3\_done()}.
3249+
3250+
\subsection{BLAKE3 Example code}
3251+
3252+
\begin{small}
3253+
\begin{verbatim}
3254+
#include <tomcrypt.h>
3255+
int main(void)
3256+
{
3257+
hash_state md;
3258+
unsigned char out[32];
3259+
const unsigned char key[32] = "whats the Elvish word for friend";
3260+
const unsigned char msg[] = "hello";
3261+
3262+
/* Unkeyed hash */
3263+
blake3_init(&md);
3264+
blake3_process(&md, msg, 5);
3265+
blake3_done(&md, out);
3266+
3267+
/* Keyed hash (MAC) */
3268+
blake3_keyed_init(&md, key, 32);
3269+
blake3_process(&md, msg, 5);
3270+
blake3_done(&md, out);
3271+
3272+
/* Key derivation */
3273+
blake3_derive_key_init(&md,
3274+
(const unsigned char *)"myapp 2024-01-01 session-key", 28);
3275+
blake3_process(&md, key, 32); /* input key material */
3276+
blake3_done(&md, out); /* derived key */
3277+
3278+
return 0;
3279+
}
3280+
\end{verbatim}
3281+
\end{small}
3282+
32063283
\mysection{Extendable Output Functions (XOF)}
32073284
Some algorithms provide a special XOF (Extendable Output Functions) mode which allow to generate message digests of an arbitrary length.
32083285

libtomcrypt_VS2008.vcproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,6 +823,10 @@
823823
RelativePath="src\hashes\blake2s.c"
824824
>
825825
</File>
826+
<File
827+
RelativePath="src\hashes\blake3.c"
828+
>
829+
</File>
826830
<File
827831
RelativePath="src\hashes\md2.c"
828832
>

makefile.mingw

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ src/encauth/ocb3/ocb3_decrypt_verify_memory.o src/encauth/ocb3/ocb3_done.o \
6262
src/encauth/ocb3/ocb3_encrypt.o src/encauth/ocb3/ocb3_encrypt_authenticate_memory.o \
6363
src/encauth/ocb3/ocb3_encrypt_last.o src/encauth/ocb3/ocb3_init.o src/encauth/ocb3/ocb3_int_ntz.o \
6464
src/encauth/ocb3/ocb3_int_xor_blocks.o src/encauth/ocb3/ocb3_test.o src/encauth/siv/siv.o \
65-
src/hashes/blake2b.o src/hashes/blake2s.o src/hashes/chc/chc.o src/hashes/helper/hash_file.o \
66-
src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
65+
src/hashes/blake2b.o src/hashes/blake2s.o src/hashes/blake3.o src/hashes/chc/chc.o \
66+
src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
6767
src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o src/hashes/md5.o \
6868
src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o src/hashes/sha1.o \
6969
src/hashes/sha1_desc.o src/hashes/sha1_x86.o src/hashes/sha2/sha224.o src/hashes/sha2/sha224_desc.o \

makefile.msvc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ src/encauth/ocb3/ocb3_decrypt_verify_memory.obj src/encauth/ocb3/ocb3_done.obj \
5555
src/encauth/ocb3/ocb3_encrypt.obj src/encauth/ocb3/ocb3_encrypt_authenticate_memory.obj \
5656
src/encauth/ocb3/ocb3_encrypt_last.obj src/encauth/ocb3/ocb3_init.obj src/encauth/ocb3/ocb3_int_ntz.obj \
5757
src/encauth/ocb3/ocb3_int_xor_blocks.obj src/encauth/ocb3/ocb3_test.obj src/encauth/siv/siv.obj \
58-
src/hashes/blake2b.obj src/hashes/blake2s.obj src/hashes/chc/chc.obj src/hashes/helper/hash_file.obj \
59-
src/hashes/helper/hash_filehandle.obj src/hashes/helper/hash_memory.obj \
58+
src/hashes/blake2b.obj src/hashes/blake2s.obj src/hashes/blake3.obj src/hashes/chc/chc.obj \
59+
src/hashes/helper/hash_file.obj src/hashes/helper/hash_filehandle.obj src/hashes/helper/hash_memory.obj \
6060
src/hashes/helper/hash_memory_multi.obj src/hashes/md2.obj src/hashes/md4.obj src/hashes/md5.obj \
6161
src/hashes/rmd128.obj src/hashes/rmd160.obj src/hashes/rmd256.obj src/hashes/rmd320.obj src/hashes/sha1.obj \
6262
src/hashes/sha1_desc.obj src/hashes/sha1_x86.obj src/hashes/sha2/sha224.obj src/hashes/sha2/sha224_desc.obj \

makefile.unix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ src/encauth/ocb3/ocb3_decrypt_verify_memory.o src/encauth/ocb3/ocb3_done.o \
7676
src/encauth/ocb3/ocb3_encrypt.o src/encauth/ocb3/ocb3_encrypt_authenticate_memory.o \
7777
src/encauth/ocb3/ocb3_encrypt_last.o src/encauth/ocb3/ocb3_init.o src/encauth/ocb3/ocb3_int_ntz.o \
7878
src/encauth/ocb3/ocb3_int_xor_blocks.o src/encauth/ocb3/ocb3_test.o src/encauth/siv/siv.o \
79-
src/hashes/blake2b.o src/hashes/blake2s.o src/hashes/chc/chc.o src/hashes/helper/hash_file.o \
80-
src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
79+
src/hashes/blake2b.o src/hashes/blake2s.o src/hashes/blake3.o src/hashes/chc/chc.o \
80+
src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
8181
src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o src/hashes/md5.o \
8282
src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o src/hashes/sha1.o \
8383
src/hashes/sha1_desc.o src/hashes/sha1_x86.o src/hashes/sha2/sha224.o src/hashes/sha2/sha224_desc.o \

makefile_include.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,8 +247,8 @@ src/encauth/ocb3/ocb3_decrypt_verify_memory.o src/encauth/ocb3/ocb3_done.o \
247247
src/encauth/ocb3/ocb3_encrypt.o src/encauth/ocb3/ocb3_encrypt_authenticate_memory.o \
248248
src/encauth/ocb3/ocb3_encrypt_last.o src/encauth/ocb3/ocb3_init.o src/encauth/ocb3/ocb3_int_ntz.o \
249249
src/encauth/ocb3/ocb3_int_xor_blocks.o src/encauth/ocb3/ocb3_test.o src/encauth/siv/siv.o \
250-
src/hashes/blake2b.o src/hashes/blake2s.o src/hashes/chc/chc.o src/hashes/helper/hash_file.o \
251-
src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
250+
src/hashes/blake2b.o src/hashes/blake2s.o src/hashes/blake3.o src/hashes/chc/chc.o \
251+
src/hashes/helper/hash_file.o src/hashes/helper/hash_filehandle.o src/hashes/helper/hash_memory.o \
252252
src/hashes/helper/hash_memory_multi.o src/hashes/md2.o src/hashes/md4.o src/hashes/md5.o \
253253
src/hashes/rmd128.o src/hashes/rmd160.o src/hashes/rmd256.o src/hashes/rmd320.o src/hashes/sha1.o \
254254
src/hashes/sha1_desc.o src/hashes/sha1_x86.o src/hashes/sha2/sha224.o src/hashes/sha2/sha224_desc.o \

notes/hash_tv.txt

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4660,6 +4660,137 @@ Hash: blake2b-512
46604660
255: 5B21C5FD8868367612474FA2E70E9CFA2201FFEEE8FAFAB5797AD58FEFA17C9B5B107DA4A3DB6320BAAF2C8617D5A51DF914AE88DA3867C2D41F0CC14FA67928
46614661
256: 1ECC896F34D3F9CAC484C73F75F6A5FB58EE6784BE41B35F46067B9C65C63A6794D3D744112C653F73DD7DEB6666204C5A9BFA5B46081FC10FDBE7884FA5CBF8
46624662

4663+
Hash: blake3
4664+
0: AF1349B9F5F9A1A6A0404DEA36DCC9499BCB25C9ADC112B7CC9A93CAE41F3262
4665+
1: 2D3ADEDFF11B61F14C886E35AFA036736DCD87A74D27B5C1510225D0F592E213
4666+
2: 7B7015BB92CF0B318037702A6CDD81DEE41224F734684C2C122CD6359CB1EE63
4667+
3: E1BE4D7A8AB5560AA4199EEA339849BA8E293D55CA0A81006726D184519E647F
4668+
4: F30F5AB28FE047904037F77B6DA4FEA1E27241C5D132638D8BEDCE9D40494F32
4669+
5: B40B44DFD97E7A84A996A91AF8B85188C66C126940BA7AAD2E7AE6B385402AA2
4670+
6: 06C4E8FFB6872FAD96F9AACA5EEE1553EB62AED0AD7198CEF42E87F6A616C844
4671+
7: 3F8770F387FAAD08FAA9D8414E9F449AC68E6FF0417F673F602A646A891419FE
4672+
8: 2351207D04FC16ADE43CCAB08600939C7C1FA70A5C0AACA76063D04C3228EAEB
4673+
9: A0FC27E5D7318B723207637BDEEBA4F7DCB22F7F9EC3E8B6F3588DDCD4FDF861
4674+
10: 87FCF07CAC5BE3C91735B34E535C67286E4E7A63BF152D95F2CF4CD1A244758B
4675+
11: 02662E12EA8B243F0A8E970EFE19D8955FCC71EA7DC10F7FDA89492D07CD9730
4676+
12: 46771FD4C72C26DE414671D8C8634B327FD12BA240E3739E011B4E64BFBB898C
4677+
13: E1C0BBB02CB1622397CED750A9F712A2D5EF5B1E17E7CC01A3DABCF448613A51
4678+
14: CBFA77A4531D0D07800518C49CAD65E7130CB2C225AFC718BECFEA56904870D1
4679+
15: 163475FC98871015D19097D29536653BDEAC6A9C3A18AD4B3A629CFAA1BBF32E
4680+
16: A6A492965517A830CB75FDB713465AA465F2F098233896FEA44C1D98268BF9E3
4681+
17: 8462AA7BE93B09FDA7B93CF9F9CDDB703F6DD2CC0C8EDD5F9EEE092EDF8ABF0C
4682+
18: 66A671E4FB354B7FA37D12B506D557F9170C8247494DF4591B6A38C4C1ED8CD2
4683+
19: 9F9CC8084631848151B09AA51B05A96A5CF674DB8BE5D1C5E8054BAA87A3B3F8
4684+
20: A418FAEC67BAAEB5177880C3673A125F1C1123AA18370B007C3E707EF9A7946C
4685+
21: 7FE1802DDAC5BBAFE5BA26848B95252590EECC4937CCFB9C55F3B6EAD2DC56B7
4686+
22: 2E4D3DCDF0702C936D4E90BA664DED539B53190006CA17A010744B4AD97CA4F5
4687+
23: 3F3123529EB4B83D3D38A4E79C7A1B6F4176F7A9B435254D402162EFBE74DB47
4688+
24: 0B3AB94011D18786D51ED60C6B3FA6CE1B10B14D66D594836B2CC38451F7A8D6
4689+
25: EDF54F99CAD804C52DFC45C54524982D9F0F16A3E193143EF7AF1A3105CB78DE
4690+
26: 2B001B01373DB4C2E8F790CB1CA9372FB53A2818C391224CE9A24B3428025EB6
4691+
27: 630AF0542832B93F6F9C9A4299C04E06CC89F0609796CBAD0714CEC5B97A21B7
4692+
28: 4D7694418F33D099AD643D743D98FC1E5BF71EA979B7DCAE3E19BC2AE8732436
4693+
29: 0A8B04B4686B2D211E13F630B22CB2846D38610B9668619B8C94948DE6A86075
4694+
30: 4A370926EFD1807A3D7699EFDE168C9A4D128AC5367B95755DB2BE230A085D00
4695+
31: BDA80C7FE2DB38BE6387B35C870BD7728D67B7B6CC5EB9B0E5C7DCB21EA754C2
4696+
32: E528E95798037DF410543D9F31E396ECDD458D71B157D6014398BAE32FB56C65
4697+
33: 4F4E6C1DFFD3A6C9959876D15AA96B5FB0DA8632B995F6CA2E30503F2829FA29
4698+
34: 0DBEFE45C10F3E35DCA05C85DE406E1DAD035B28A1C70E8476D2FCFCA744CE96
4699+
35: B1153AB473AFB31831AC2CD78167ED9B49C4EA1AE05A16D4CEFC111CA1D40885
4700+
36: 02B34DC75E6E7DFB3B020188C7A5C277C7171417B75F91540F34E112B7F3552C
4701+
37: B86799BC285A4A9FF30B36425FA164DEC196DC403A0C62C27EBDDDB6DC4FA40A
4702+
38: D78545492EFD467E227662AA5BFDFBE4327D1C9DC18116CD493F157BE42BDE1C
4703+
39: 6742AD3231B1D91EC920D04F911F8B2CD10AEDADBCB13EF1FD24B7DB4761027F
4704+
40: 9563A50F070B26EEAA1EE0A6AC95B8BA9168C32B1AF71AF2FE55A8B4E268CE5E
4705+
41: F0DBD489DFB0FB6A9206F1F7B9D6FBB6C81350DA461E88812CD4F15C93853ED5
4706+
42: B4CDEEB0E5B83AD41753011E1B56D497B3CA9785AA0A606610E91B97172A7928
4707+
43: 051978D4083545DBA07983654DB5C3C82A7A982A53B6005304A1BACBF0684ADB
4708+
44: 062C1BCE7948A70DB0D55355F0E74F13E54A022E8FFFCEAB06FE71041D0AAD47
4709+
45: 304ACD11CA45BEFA2B9CD55D2AB9C7CF0A75C4301BB8813728F180E31D25696F
4710+
46: F420058BEF32C43E2090BD112A2379FEDFAB0B2BD12737374391A3FC44BFE91E
4711+
47: 39DA10BF36C8498FA071067532BE53492CAE29F6CCAFDCB7E77552E0406A1A60
4712+
48: 5E9902524B30F4F4CFD5D2180FD357BBF881221A603C84C119580E8BC422911E
4713+
49: B78309B3D5FC5765EA4F02A6DC1DFB63370190470011F1025362DC691E178895
4714+
50: 475438FC7B1BFBEEBFFC69882E18C7D0C6B505312484EA2B9ADD451ACEF2D743
4715+
51: C98AAD8B112985E7D532D6F48F93FB0B26BFE90DF5A161FB3CE4FED674991911
4716+
52: D9B171EEE2809CF0A020E7367FC83413EC7C2A2E46A400D81297D98EBCA3464D
4717+
53: 0F4245901611D426CA9BA9700E64F267DBCD36221CA20C3B9643F5DFE38C8EDE
4718+
54: 6FE71231259609F9D0A6F799F983DF408A6104A1510E69D0050C6E4DBF63980C
4719+
55: D04EC5F6F5E7DAF5CED7A1671FBE912580A56576C8BF6A2ED4B80E35548F9C13
4720+
56: 60F238116F2936698A88CDA03D8DF79D7431249373B048EE7A063849FE6E9742
4721+
57: AE097943D385BC9B2CD9369D91ED13A97C59B9B654B04514CD87C74BF4B9A80C
4722+
58: CA204CEB059EA73A688A2C7D485418C3BB3BE97756E5FA1583D3A0FB582AB966
4723+
59: 4F174ACAFF29FF88AAA4DDE9404634FDCAE5A895F90DD5D610F91595C042D751
4724+
60: FE59BA0025B061E837DB84910371240D9B417DB56C14DDFF68D4AFE36DC39658
4725+
61: 86A2CF17CE886A3BE084862AE3C2AACF64F50E88B7334E675AFB34365CB9A5BF
4726+
62: 1F5EBF4B2ABEA4E78C2AB709D5AB298E13F494F9237F6DD19C8B90B3B7C83A13
4727+
63: E9BC37A594DAAD83BE9470DF7F7B3798297C3D834CE80BA85D6E207627B7DB7B
4728+
64: 4EED7141EA4A5CD4B788606BD23F46E212AF9CACEBACDC7D1F4C6DC7F2511B98
4729+
65: DE1E5FA0BE70DF6D2BE8FFFD0E99CEAA8EB6E8C93A63F2D8D1C30ECB6B263DEE
4730+
66: 191625E0BE4C2B741C2FEDABF54031AAA6E1991C95ACF95DECA48B925110F7E4
4731+
67: 810943751089482736CA4A0E7E04D4CE0244008F7ED6332D82AAB40AA1976EA2
4732+
68: 8720B909015D7A29AF3DD7A06F78729449F07BBCB56DF6954C032C0920491406
4733+
69: 0F0DB3C00DA61EAE613F02881890C3B896C5EEBFD94CD0DC385CE4002D4349E0
4734+
70: B0AE0E326C4BE7A0E1306C6C24DDAB88D01611863BCD6780B39D932227AC8510
4735+
71: 1E8633CB3FBA5DEDC5D22549E27CFAB03C8AC37884305EF25E9937A6F5F52E93
4736+
72: 028EB97D80291FC1F4AB846657FB2277CAE9D7EDA639C09BD220A9C869F0E9E6
4737+
73: EF0DE8AF9F7EB55976C1E97C2B5B2B61BD449BAD7B4D2F6C0C1D395DB1B0F247
4738+
74: C5BBC18015106771C91226EF36B7B1BC3849F92BB3D007F5AF78862677A27FD5
4739+
75: C730688E8971293A5F824E3B33AE03CC93A8790599C195F613FDF2124AC35520
4740+
76: CFCC0C08E078C3A7932293976A901A95C8CB0F2F75112D1C0BC45AC7ACBFAD9C
4741+
77: 5EF9C11ABD40A9FEB17F524FC574F1834C009841FEFCD75086970CC7B812BD34
4742+
78: FC6AB94E91AC711546E915926ACB19C1B2E12A60FABFA99B4AA375A28301F3E1
4743+
79: 28B11E5D82FD3FB24CADD8110715134DDA8485E0314C163558A30A81C665D67B
4744+
80: 4A6847EF66BCE6C14CA05EC8F8AD7383BF2931F4BCFD0373C18E059E93F9DEF6
4745+
81: B17155C79EE1E856F9264C526C7E2BC7EE4CB29AC0F4EEEA5F5351D7EA571C0C
4746+
82: B96458DAF30EE72C5140B45774A981A13E847AF40DB3217EE2998773F3587EDC
4747+
83: 0B7AD6C45101C2146728C4419691CDC8AFCADD7B2BD76F38818AB136BADE4224
4748+
84: A377584849A6890B585DDA9E9DC594DFCC91FB60FD4D00808D34AE379DCDB456
4749+
85: 3D173931FD3D576785D9FD8FA7179AB4C0768E2C2D264E193B1EC9EB9B01EE0E
4750+
86: 34B9CC80478E5665EF5BF79B7DAC4B85F74E8768CADEC19AEAE6323DE332FE2A
4751+
87: 672D2D2E6E995CFF226475999449BE91A43DF70F7CDEFF4CD39B6CAE60ACFD67
4752+
88: 87D03D704A84FFC46F5BB2A8000BD15743FAA303D2C59E2CEC61F3F7CC9EC2E5
4753+
89: D90E8853272707ABF2A7C7CF54233085D8D05140E433F94F27BDA873EF265F31
4754+
90: 2A9770A82D76F371336FD4FBE9999216F2B3C28C90FA25B1D42323691BC7F3EC
4755+
91: 27D3BF094C5083D31AE11F855239116D6220AE1C113FA74AEE4560C4888598F6
4756+
92: 6C883E2335A2F69DF61B92046069BF5D8FE0EB5DD255F2BAA5FC230F7EC37968
4757+
93: B9A19A0E32E5D04C7110F0771C652D0406ED152C3474AAAC198ABD3EC7C8BCA2
4758+
94: 00F92A5B63E1FB1B3D3ED08CA14389C8BCACEE494B1F80FA839A7CD64339E7B0
4759+
95: 45376CE6418ED3454D301CC373671D35BFF7447860D86C545D380C8ACEB8B65B
4760+
96: FD3748482969397A57DC96FA5646AF44BB4928DCBEBB795BE6D61975C3766BD6
4761+
97: 8A06220CAED39C22D8889B73351488D6550C43D4B4A777BFFA9FAB4F2074A4AF
4762+
98: C0828951F49A694C8D807B2997BF0BF2D0123BE7D10B3DF23FA3D642DD67AEE8
4763+
99: A2C85460E965626580E9CFA7A8AEF6047720EE48EFDD0EF27613ED358425E57A
4764+
100: 8E2EB1BBA3040B8F611A1240A0E111C74B45CFC9CAED10B95F6372DB1C40B8B5
4765+
101: 8F5BA69BF1882498FA92515D3105FC580EF070D2A4213580F0279D70B7406D38
4766+
102: 9DB10F45A5CA40F4502316DAB6ACC63A4C5F8A1B95BF76B05C3E7896368AE24F
4767+
103: 7BF6852F77BC98DC83DAFCC4165933C9D600669406415653501D2C32E4CBE395
4768+
104: 49F7F1D30B977E3F9D07C54B2A0DAD64513045B5942B634374B05365BBF4AF1D
4769+
105: 04FA0B7C1592B3F19E1D4981871E5E69DA3CAECFB07F11929ECC0CFAC34146E5
4770+
106: 4E57D05348408846A3EA0D5C3D189CAD70FDD7DCCAC390CB52CAB05508E22E90
4771+
107: E539064D0DE3B8698A336FBDEFA2B6E534AF90B37D7C8D8CB7054F2EB6403290
4772+
108: 5F13A0F0307C6000C5AE6C5FEF866E4952517DD3BB824CB1D41E4326898E987E
4773+
109: E26DEA917FE9AB2CB7AD7FE19092160A630976EF0BBD809B5FCBE63609DF5978
4774+
110: 5A2464499E08A48FCAE32B408B8BB608254E19A5758C66D9F77BA63CCAF81005
4775+
111: 929DCDAF9B6A6E500A34978B5C9206D0258BC190F38C9E8E42FB19A4820B2171
4776+
112: C881A3C5BA84905A418F3DA19726541B5BACD9E3438A741FFD980E00865FE13C
4777+
113: A2B62D6E7C7314E92E01DE6C10643B7B0BFC2C780670D243E676763D7C41E390
4778+
114: 6D543DD890F0694C149B0E974730F05BADCAE792D50865744FAAB9005FF36DBC
4779+
115: 028C05BFF2A54FD6F85427EDB0CFFD878105602F7F72075E7DD60C3A252C1691
4780+
116: 957DB4F3CED7164C7F23081A8B332C2C3738D292732D2D5809CD8DB522E2C4C2
4781+
117: 2CDDF24AA6075E12E81AD2E5FE81F6A1DAB64660B5821B441E4F6A35C45DB8F5
4782+
118: 4F3EC99446A61A12091364F8F542CB4940120A44B4448E13E696C5FE7583439D
4783+
119: 82878AA8005C85F2B3E847DA4B825891409A00D2950AAFE87D39BF07F8FA1077
4784+
120: 1C5F22834AD113CFBCA3CFDB2884327061DBC873924AB2A35C8EE470594F074B
4785+
121: B94206155D4D699CC65E1D81D67F26CB50DB0170127FBFB6D300E2B521CC1C6A
4786+
122: A1DC94BFB2389377402CC7DE5AEEC1CE0B306265B57C0BD145255CE1DBAFB758
4787+
123: 790451D31FF33EB38F077906A26D5A6C096814E8BDA984291E57315D1BBDA82C
4788+
124: AD8129C5BDF91F2B8932311CA036558EEBA072C70255D8917B13527E0C6BB6CF
4789+
125: B3FDB34BF7F8B89DC3031ED06310EFB3D92CE11749F7B4601684D7AC5B857CB6
4790+
126: 67CB8BF7A00ADDC70A4947D055558A500802F9A2CF685CAA1A38A577CD308325
4791+
127: D81293FDA863F008C09E92FC382A81F5A0B4A1251CBA1634016A0F86A6BD640D
4792+
128: F17E570564B26578C33BB7F44643F539624B05DF1A76C81F30ACD548C44B45EF
4793+
46634794
Hash: keccak224
46644795
0: F71837502BA8E10837BDD8D365ADB85591895602FC552B48B7390ABD
46654796
1: B7E52D015AFB9BB56C19955720964F1A68B1ABA96A7A9454472927BE

notes/hashsum_tv.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ blake2s-128: 7e1f9b6de11a3c597308f9d8aacd7321 *tests/test.key
66
blake2s-160: 3d1c9ae1a0afe8a6ef8b61d5380de7b061cd353c *tests/test.key
77
blake2s-224: 95dacd83d0421b2d69a52d92ee54143bb97c91a61450d917a88d4388 *tests/test.key
88
blake2s-256: 92ac6dc88b9ce4a75b2a54783435a37919303f713396db0e9ccd976d8c55f1cf *tests/test.key
9+
blake3: 634ba3ee0627293fe3ef89fe7200434fdbf2c40b08266e0fd09708bfd486af0c *tests/test.key
910
chc_hash: d50da1ea9b53c0b891c8bcb0a4c6e5e0 *tests/test.key
1011
keccak224: c056b64ec1d8066aeb148d38aded0ff96cdb1e17eecaaca407b3bf66 *tests/test.key
1112
keccak256: af91c0982f5f79d51df0f6ccb28c7f0075ef330e09371cbefa660119a74f28c3 *tests/test.key

0 commit comments

Comments
 (0)