2003-02-22 Havoc Pennington <hp@pobox.com>

* dbus/dbus-message.c (dbus_message_iter_get_string_array):
	(dbus_message_iter_get_byte_array): Fix up doxygen warnings

	* dbus/dbus-sha.c: add implementation of SHA-1 algorithm

	* dbus/test/data/sha-1: add US government test suite for SHA-1
This commit is contained in:
Havoc Pennington 2003-02-22 17:29:48 +00:00
parent 92f7d50b3b
commit 6c07098c5e
14 changed files with 9059 additions and 8 deletions

View file

@ -1,3 +1,12 @@
2003-02-22 Havoc Pennington <hp@pobox.com>
* dbus/dbus-message.c (dbus_message_iter_get_string_array):
(dbus_message_iter_get_byte_array): Fix up doxygen warnings
* dbus/dbus-sha.c: add implementation of SHA-1 algorithm
* dbus/test/data/sha-1: add US government test suite for SHA-1
2003-02-21 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-marshal.c: (_dbus_demarshal_string_array):

View file

@ -44,6 +44,8 @@ libdbus_1_la_SOURCES= \
dbus-server-debug.h \
dbus-server-unix.c \
dbus-server-unix.h \
dbus-sha.c \
dbus-sha.h \
dbus-test.c \
dbus-test.h \
dbus-timeout.c \

View file

@ -53,12 +53,16 @@
* @{
*/
/** The maximum time a key can be alive before we switch to a
* new one. This isn't super-reliably enforced, since
* system clocks can change or be wrong, but we make
* a best effort to only use keys for a short time.
/** The maximum age of a key before we create a new key to use in
* challenges. This isn't super-reliably enforced, since system
* clocks can change or be wrong, but we make a best effort to only
* use keys for a short time.
*/
#define MAX_KEY_LIFETIME_SECONDS (60*5)
#define NEW_KEY_TIMEOUT (60*5)
/**
* The time after which we drop a key from the secrets file
*/
#define EXPIRE_KEYS_TIMEOUT (NEW_KEY_TIMEOUT + (60*2))
typedef struct
{
@ -432,7 +436,7 @@ find_recent_key (DBusKeyring *keyring)
{
DBusKey *key = &keyring->keys[i];
if (tv_sec - MAX_KEY_LIFETIME_SECONDS < key->creation_time)
if (tv_sec - NEW_KEY_TIMEOUT < key->creation_time)
return key;
++i;

View file

@ -41,7 +41,7 @@
/**
* @defgroup DBusMD5 MD5 implementation
* @ingroup DBusInternals
* @brief DBusMD5 interface
* @brief MD5 hash
*
* Types and functions related to computing MD5 sums.
*/

View file

@ -1885,6 +1885,7 @@ dbus_message_iter_get_double_array (DBusMessageIter *iter,
* to a byte array prior to using this function.
*
* @param iter the iterator
* @param value return location for array values
* @param len return location for length of byte array
* @returns the byte array
*/
@ -1909,7 +1910,13 @@ dbus_message_iter_get_byte_array (DBusMessageIter *iter,
* Note that you need to check that the iterator points
* to a byte array prior to using this function.
*
* The returned value is a #NULL-terminated array of strings.
* Each string is a separate malloc block, and the array
* itself is a malloc block. You can free this type of
* string array with dbus_free_string_array().
*
* @param iter the iterator
* @param value return location for string values
* @param len return location for length of byte array
* @returns the byte array
*/

1004
dbus/dbus-sha.c Normal file

File diff suppressed because it is too large Load diff

52
dbus/dbus-sha.h Normal file
View file

@ -0,0 +1,52 @@
/* -*- mode: C; c-file-style: "gnu" -*- */
/* dbus-sha.h SHA-1 implementation
*
* Copyright (C) 2003 Red Hat Inc.
*
* Licensed under the Academic Free License version 1.2
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef DBUS_SHA_H
#define DBUS_SHA_H
#include <dbus/dbus-macros.h>
#include <dbus/dbus-errors.h>
#include <dbus/dbus-string.h>
DBUS_BEGIN_DECLS;
typedef struct DBusSHAContext DBusSHAContext;
struct DBusSHAContext
{
dbus_uint32_t digest[5]; /**< Message digest */
dbus_uint32_t count_lo; /**< 64-bit bit count */
dbus_uint32_t count_hi;
dbus_uint32_t data[16]; /**< SHA data buffer */
};
void _dbus_sha_init (DBusSHAContext *context);
void _dbus_sha_update (DBusSHAContext *context,
const DBusString *data);
dbus_bool_t _dbus_sha_final (DBusSHAContext *context,
DBusString *results);
dbus_bool_t _dbus_sha_compute (const DBusString *data,
DBusString *ascii_output);
DBUS_END_DECLS;
#endif /* DBUS_SHA_H */

View file

@ -1,7 +1,7 @@
/* -*- mode: C; c-file-style: "gnu" -*- */
/* dbus-test.c Program to run all tests
*
* Copyright (C) 2002 Red Hat Inc.
* Copyright (C) 2002, 2003 Red Hat Inc.
*
* Licensed under the Academic Free License version 1.2
*
@ -62,6 +62,10 @@ dbus_internal_do_not_use_run_tests (const char *test_data_dir)
printf ("%s: running md5 tests\n", "dbus-test");
if (!_dbus_md5_test ())
die ("md5");
printf ("%s: running SHA-1 tests\n", "dbus-test");
if (!_dbus_sha_test (test_data_dir))
die ("SHA-1");
printf ("%s: running auth tests\n", "dbus-test");
if (!_dbus_auth_test (test_data_dir))

View file

@ -44,6 +44,7 @@ dbus_bool_t _dbus_address_test (void);
dbus_bool_t _dbus_message_test (const char *test_data_dir);
dbus_bool_t _dbus_auth_test (const char *test_data_dir);
dbus_bool_t _dbus_md5_test (void);
dbus_bool_t _dbus_sha_test (const char *test_data_dir);
void dbus_internal_do_not_use_run_tests (const char *test_data_dir);
dbus_bool_t dbus_internal_do_not_use_try_message_file (const DBusString *filename,

View file

@ -0,0 +1,83 @@
Test suite from http://csrc.nist.gov/cryptval/shs.html
Sample Vectors for SHA-1 Testing
This file describes tests and vectors that can be used in verifying the correctness of
an SHA-1 implementation. However, use of these vectors does not take the place of validation
obtained through the Cryptographic Module Validation Program.
There are three areas of the Secure Hash Standard for which test vectors are supplied:
short messages of varying length, selected long messages, and pseudorandomly generated messages.
Since it is possible for an implementation to correctly handle the hashing of byte-oriented
messages (and not messages of a non-byte length), the SHS tests each come in two flavors. For
both byte oriented and bit oriented messages, the message lengths are given in bits.
Type I Test: Messages of Varying Length
An implementation of the SHS must be able to correctly generate message digests for
messages of arbitrary length. This functionality can be tested by supplying the implementation
with 1025 pseudorandomly generated messages with lengths from 0 to 1024 bits (for an implementation
that only hashes byte-oriented data correctly, 129 messages of length 0, 8, 16, 24,...,1024 bits
will be supplied).
Type II Test: Selected Long Messages
Additional testing of an implementation can be performed by testing that the implementation
can correctly generate digests for longer messages. A list of 100 messages, each of length > 1024,
is supplied. These can be used to verify the hashing of longer message lengths. For bit oriented
testing the messages are from 1025 to 103425 bits long (length=1025+i*1024, where 0<=i<100). For
byte oriented testing the messages are from 1032 to 103432 (length=1032+i*1024, where 0<=i<100).
Type III Test: Pseudorandomly Generated Messages
This test determines whether the implementation can compute message digests for messages
that are generated using a given seed. A sequence of 100 message digests is generated using this
seed. The digests are generated according to the following pseudocode:
procedure MonteCarlo(string SEED)
{
integer i, j, a;
string M;
M := SEED;
for j = 0 to 99 do {
for i = 1 to 50000 do {
for a = 1 to (j/4*8 + 24) do M := M || 0; /*0' is the binary zero bit. */
M := M || i; /* Here, the value for i is expressed as a 32-bit word
and concatenated with M. The first bit
concatenated with M is the most significant bit of
this 32-bit word. */
M := SHA(M);
}
print(M);
}
}
NOTE: In the above procedure, || denotes concatenation. Also, M || i denotes appending the 32-bit
word representing the value i, as defined in section 2 of the SHS. Within the procedure, M is a string
of variable length. The initial length of 416 bits ensures that the length of M never exceeds 512 bits
during execution of the above procedure, and it ensures that messages will be of a byte length. Each
element printed should be 160 bits in length.
File formats:
There are two files included for each test type (bit-oriented and byte-oriented). One file contains
the messages and the other file contains the hashes.
The message files provided use "compact strings" to store the message values. Compact strings are
used to represented the messages in a compact form. A compact string has the form
z || b || n(1) || n(2) || ... || n(z)
where z>=0 that represents the number of n, b is either 0 or 1, and each n(i) is a decimal integer
representing a positive number. The length of the compact string is given by the summation of the n(i).
The compact string is interpreted as the representation of the bit string consisting of b repeated n(1) times,
followed by 1-b repeated n(2) times, followed by b repeated n(3) times, and so on.
Example:
M = 5 1 7 13 5 1 2
where z = 5 and b = 1. Then the compact string M represents the bit string
1111111000000000000011111011
where 1 is repeated 7 times, 0 is repeated 13 times, 1 is repeated 5 times,
0 is repeated 1 time, and 1 is repeated 2 times.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,343 @@
# Configuration information for "SHA-1 Test"
# SHA tests are configured for BYTE oriented implementations
H>SHS Type 1 Hashes<H
D>
DA39A3EE5E6B4B0D3255BFEF95601890AFD80709 ^
3CDF2936DA2FC556BFA533AB1EB59CE710AC80E5 ^
19C1E2048FA7393CFBF2D310AD8209EC11D996E5 ^
CA775D8C80FAA6F87FA62BECA6CA6089D63B56E5 ^
71AC973D0E4B50AE9E5043FF4D615381120A25A0 ^
A6B5B9F854CFB76701C3BDDBF374B3094EA49CBA ^
D87A0EE74E4B9AD72E6847C87BDEEB3D07844380 ^
1976B8DD509FE66BF09C9A8D33534D4EF4F63BFD ^
5A78F439B6DB845BB8A558E4CEB106CD7B7FF783 ^
F871BCE62436C1E280357416695EE2EF9B83695C ^
62B243D1B780E1D31CF1BA2DE3F01C72AEEA0E47 ^
1698994A273404848E56E7FDA4457B5900DE1342 ^
056F4CDC02791DA7ED1EB2303314F7667518DEEF ^
9FE2DA967BD8441EEA1C32DF68DDAA9DC1FC8E4B ^
73A31777B4ACE9384EFA8BBEAD45C51A71ABA6DD ^
3F9D7C4E2384EDDABFF5DD8A31E23DE3D03F42AC ^
4814908F72B93FFD011135BEE347DE9A08DA838F ^
0978374B67A412A3102C5AA0B10E1A6596FC68EB ^
44AD6CB618BD935460D46D3F921D87B99AB91C1E ^
02DC989AF265B09CF8485640842128DCF95E9F39 ^
67507B8D497B35D6E99FC01976D73F54AECA75CF ^
1EAE0373C1317CB60C36A42A867B716039D441F5 ^
9C3834589E5BFFAC9F50950E0199B3EC2620BEC8 ^
209F7ABC7F3B878EE46CDF3A1FBB9C21C3474F32 ^
05FC054B00D97753A9B3E2DA8FBBA3EE808CEF22 ^
0C4980EA3A46C757DFBFC5BAA38AC6C8E72DDCE7 ^
96A460D2972D276928B69864445BEA353BDCFFD2 ^
F3EF04D8FA8C6FA9850F394A4554C080956FA64B ^
F2A31D875D1D7B30874D416C4D2EA6BAF0FFBAFE ^
F4942D3B9E9588DCFDC6312A84DF75D05F111C20 ^
310207DF35B014E4676D30806FA34424813734DD ^
4DA1955B2FA7C7E74E3F47D7360CE530BBF57CA3 ^
74C4BC5B26FB4A08602D40CCEC6C6161B6C11478 ^
0B103CE297338DFC7395F7715EE47539B556DDB6 ^
EFC72D99E3D2311CE14190C0B726BDC68F4B0821 ^
660EDAC0A8F4CE33DA0D8DBAE597650E97687250 ^
FE0A55A988B3B93946A63EB36B23785A5E6EFC3E ^
0CBDF2A5781C59F907513147A0DE3CC774B54BF3 ^
663E40FEE5A44BFCB1C99EA5935A6B5BC9F583B0 ^
00162134256952DD9AE6B51EFB159B35C3C138C7 ^
CEB88E4736E354416E2010FC1061B3B53B81664B ^
A6A2C4B6BCC41DDC67278F3DF4D8D0B9DD7784EF ^
C23D083CD8820B57800A869F5F261D45E02DC55D ^
E8AC31927B78DDEC41A31CA7A44EB7177165E7AB ^
E864EC5DBAB0F9FF6984AB6AD43A8C9B81CC9F9C ^
CFED6269069417A84D6DE2347220F4B858BCD530 ^
D9217BFB46C96348722C3783D29D4B1A3FEDA38C ^
DEC24E5554F79697218D317315FA986229CE3350 ^
83A099DF7071437BA5495A5B0BFBFEFE1C0EF7F3 ^
AA3198E30891A83E33CE3BFA0587D86A197D4F80 ^
9B6ACBEB4989CBEE7015C7D515A75672FFDE3442 ^
B021EB08A436B02658EAA7BA3C88D49F1219C035 ^
CAE36DAB8AEA29F62E0855D9CB3CD8E7D39094B1 ^
02DE8BA699F3C1B0CB5AD89A01F2346E630459D7 ^
88021458847DD39B4495368F7254941859FAD44B ^
91A165295C666FE85C2ADBC5A10329DAF0CB81A0 ^
4B31312EAF8B506811151A9DBD162961F7548C4B ^
3FE70971B20558F7E9BAC303ED2BC14BDE659A62 ^
93FB769D5BF49D6C563685954E2AECC024DC02D6 ^
BC8827C3E614D515E83DEA503989DEA4FDA6EA13 ^
E83868DBE4A389AB48E61CFC4ED894F32AE112AC ^
55C95459CDE4B33791B4B2BCAAF840930AF3F3BD ^
36BB0E2BA438A3E03214D9ED2B28A4D5C578FCAA ^
3ACBF874199763EBA20F3789DFC59572ACA4CF33 ^
86BE037C4D509C9202020767D860DAB039CADACE ^
51B57D7080A87394EEC3EB2E0B242E553F2827C9 ^
1EFBFA78866315CE6A71E457F3A750A38FACAB41 ^
57D6CB41AEEC20236F365B3A490C61D0CFA39611 ^
C532CB64B4BA826372BCCF2B4B5793D5B88BB715 ^
15833B5631032663E783686A209C6A2B47A1080E ^
D04F2043C96E10CD83B574B1E1C217052CD4A6B2 ^
E8882627C64DB743F7DB8B4413DD033FC63BEB20 ^
CD2D32286B8867BC124A0AF2236FC74BE3622199 ^
019B70D745375091ED5C7B218445EC986D0F5A82 ^
E5FF5FEC1DADBAED02BF2DAD4026BE6A96B3F2AF ^
6F4E23B3F2E2C068D13921FE4E5E053FFED4E146 ^
25E179602A575C915067566FBA6DA930E97F8678 ^
67DED0E68E235C8A523E051E86108EEB757EFBFD ^
AF78536EA83C822796745556D62A3EE82C7BE098 ^
64D7AC52E47834BE72455F6C64325F9C358B610D ^
9D4866BAA3639C13E541F250FFA3D8BC157A491F ^
2E258811961D3EB876F30E7019241A01F9517BEC ^
8E0EBC487146F83BC9077A1630E0FB3AB3C89E63 ^
CE8953741FFF3425D2311FBBF4AB481B669DEF70 ^
789D1D2DAB52086BD90C0E137E2515ED9C6B59B5 ^
B76CE7472700DD68D6328B7AA8437FB051D15745 ^
F218669B596C5FFB0B1C14BD03C467FC873230A0 ^
1FF3BDBE0D504CB0CDFAB17E6C37ABA6B3CFFDED ^
2F3CBACBB14405A4652ED52793C1814FD8C4FCE0 ^
982C8AB6CE164F481915AF59AAED9FFF2A391752 ^
5CD92012D488A07ECE0E47901D0E083B6BD93E3F ^
69603FEC02920851D4B3B8782E07B92BB2963009 ^
3E90F76437B1EA44CF98A08D83EA24CECF6E6191 ^
34C09F107C42D990EB4881D4BF2DDDCAB01563AE ^
474BE0E5892EB2382109BFC5E3C8249A9283B03D ^
A04B4F75051786682483252438F6A75BF4705EC6 ^
BE88A6716083EB50ED9416719D6A247661299383 ^
C67E38717FEE1A5F65EC6C7C7C42AFC00CD37F04 ^
959AC4082388E19E9BE5DE571C047EF10C174A8D ^
BAA7AA7B7753FA0ABDC4A541842B5D238D949F0A ^
351394DCEBC08155D100FCD488578E6AE71D0E9C ^
AB8BE94C5AF60D9477EF1252D604E58E27B2A9EE ^
3429EC74A695FDD3228F152564952308AFE0680A ^
907FA46C029BC67EAA8E4F46E3C2A232F85BD122 ^
2644C87D1FBBBC0FC8D65F64BCA2492DA15BAAE4 ^
110A3EEB408756E2E81ABAF4C5DCD4D4C6AFCF6D ^
CD4FDC35FAC7E1ADB5DE40F47F256EF74D584959 ^
8E6E273208AC256F9ECCF296F3F5A37BC8A0F9F7 ^
FE0606100BDBC268DB39B503E0FDFE3766185828 ^
6C63C3E58047BCDB35A17F74EEBA4E9B14420809 ^
BCC2BD305F0BCDA8CF2D478EF9FE080486CB265F ^
CE5223FD3DD920A3B666481D5625B16457DCB5E8 ^
948886776E42E4F5FAE1B2D0C906AC3759E3F8B0 ^
4C12A51FCFE242F832E3D7329304B11B75161EFB ^
C54BDD2050504D92F551D378AD5FC72C9ED03932 ^
8F53E8FA79EA09FD1B682AF5ED1515ECA965604C ^
2D7E17F6294524CE78B33EAB72CDD08E5FF6E313 ^
64582B4B57F782C9302BFE7D07F74AA176627A3A ^
6D88795B71D3E386BBD1EB830FB9F161BA98869F ^
86AD34A6463F12CEE6DE9596ABA72F0DF1397FD1 ^
7EB46685A57C0D466152DC339C8122548C757ED1 ^
E7A98FB0692684054407CC221ABC60C199D6F52A ^
34DF1306662206FD0A5FC2969A4BEEC4EB0197F7 ^
56CF7EBF08D10F0CB9FE7EE3B63A5C3A02BCB450 ^
3BAE5CB8226642088DA760A6F78B0CF8EDDEA9F1 ^
6475DF681E061FA506672C27CBABFA9AA6DDFF62 ^
79D81991FA4E4957C8062753439DBFD47BBB277D ^
BAE224477B20302E881F5249F52EC6C34DA8ECEF ^
EDE4DEB4293CFE4138C2C056B7C46FF821CC0ACC ^
<D
H>SHS Type 2 Hashes<H
D>
A771FA5C812BD0C9596D869EC99E4F4AC988B13F ^
E99D566212BBBCEEE903946F6100C9C96039A8F4 ^
B48CE6B1D13903E3925AE0C88CB931388C013F9C ^
E647D5BAF670D4BF3AFC0A6B72A2424B0C64F194 ^
65C1CD932A06B05CD0B43AFB3BC7891F6BCEF45C ^
70FFAE353A5CD0F8A65A8B2746D0F16281B25EC7 ^
CC8221F2B829B8CF39646BF46888317C3EB378EA ^
26ACCC2D6D51FF7BF3E5895588907765111BB69B ^
01072915B8E868D9B28E759CF2BC1AEA4BB92165 ^
3016115711D74236ADF0C371E47992F87A428598 ^
BF30417999C1368F008C1F19FECA4D18A5E1C3C9 ^
62BA49087185F2742C26E1C1F4844112178BF673 ^
E1F6B9536F384DD3098285BBFD495A474140DC5A ^
B522DAE1D67726EBA7C4136D4E2F6D6D645AC43E ^
E9A021C3EB0B9F2C710554D4BF21B19F78E09478 ^
DF13573188F3BF705E697A3E1F580145F2183377 ^
188835CFE52ECFA0C4135C2825F245DC29973970 ^
41B615A34EE2CEC9D84A91B141CFAB115821950B ^
AB3DD6221D2AFE6613B815DA1C389EEC74AA0337 ^
0706D414B4AA7FB4A9051AA70D6856A7264054FB ^
3CBF8151F3A00B1D5A809CBB8C4F3135055A6BD1 ^
DA5D6A0319272BBCCEA63ACFA6799756FFDA6840 ^
FB4429C95F6277B346D3B389413758DFFFEEDC98 ^
2C6E30D9C895B42DCCCFC84C906EC88C09B20DE1 ^
3DE3189A5E19F225CDCE254DFF23DACD22C61363 ^
93530A9BC9A817F6922518A73A1505C411D05DA2 ^
E31354345F832D31E05C1B842D405D4BD4588EC8 ^
3FF76957E80B60CF74D015AD431FCA147B3AF232 ^
34AE3B806BE143A84DCE82E4B830EB7D3D2BAC69 ^
D7447E53D66BB5E4C26E8B41F83EFD107BF4ADDA ^
77DD2A4482705BC2E9DC96EC0A13395771AC850C ^
EAA1465DB1F59DE3F25EB8629602B568E693BB57 ^
9329D5B40E0DC43AA25FED69A0FA9C211A948411 ^
E94C0B6AA62AA08C625FAF817DDF8F51EC645273 ^
7FF02B909D82AD668E31E547E0FB66CB8E213771 ^
5BB3570858FA1744123BAC2873B0BB9810F53FA1 ^
905F43940B3591CE39D1145ACB1ECA80AB5E43CD ^
336C79FBD82F33E490C577E3F791C3CBFE842AFF ^
5C6D07A6B44F7A75A64F6CE592F3BAE91E022210 ^
7E0D3E9D33127F4A30EB8D9C134A58409FA8695B ^
9A5F50DFCFB19286206C229019F0ABF25283028C ^
DCA737E269F9D8626D488988C996E06B352C0708 ^
B8FFC1D4972FCE63241E0E77850AC46DDE75DBFA ^
E9C9BF41C8549354151B977003CE1D830BE667DB ^
0942908960B54F96CB43452E583F4F9CB66E398A ^
FCE34051C34D4B81B85DDC4B543CDE8007E284B3 ^
61E8916532503627F4024D13884640A46F1D61D4 ^
F008D5D7853B6A17B7466CD9E18BD135E520FAF4 ^
BD8D2E873CF659B5C77AAC1616827EF8A3B1A3B3 ^
B25A04DD425302ED211A1C2412D2410FA10C63B6 ^
A404E21588123E0893718B4B44E91414A785B91F ^
A1E13BC55BF6DAD83CF3AABDA3287AD68681EA64 ^
D5FD35FFABED6733C92365929DF0FB4CAE864D15 ^
C12E9C280EE9C079E0506FF89F9B20536E0A83EF ^
E22769DC00748A9BBD6C05BBC8E81F2CD1DC4E2D ^
F29835A93475740E888E8C14318F3CA45A3C8606 ^
1A1D77C6D0F97C4B620FAA90F3F8644408E4B13D ^
4EC84870E9BDD25F523C6DFB6EDD605052CA4EAA ^
D689513FED08B80C39B67371959BC4E3FECB0537 ^
C4FED58F209FC3C34AD19F86A6DACADC86C04D33 ^
051888C6D00029C176DE792B84DECE2DC1C74B00 ^
1A3540BEE05518505827954F58B751C475AEECE0 ^
DFA19180359D5A7A38E842F172359CAF4208FC05 ^
7B0FA84EBBCFF7D7F4500F73D79660C4A3431B67 ^
9E886081C9ACAAD0F97B10810D1DE6FCDCE6B5F4 ^
A4D46E4BA0AE4B012F75B1B50D0534D578AE9CB6 ^
6342B199EE64C7B2C9CBCD4F2DCB65ACEF51516F ^
AABFD63688EB678357869130083E1B52F6EA861D ^
F732B7372DAF44801F81EFFE3108726239837936 ^
5E9347FE4574CDCB80281ED092191199BADD7B42 ^
D5776B7DFFF75C1358ABDBBB3F27A20BB6CA7C55 ^
022B7ADA472FB7A9DA9219621C9C5F563D3792F6 ^
7F1DE4ECA20362DA624653D225A5B3F7964A9FF2 ^
CA0F2B1BFB4469C11ED006A994734F0F2F5EFD17 ^
833D63F5C2EA0CD43EC15F2B9DD97FF12B030479 ^
14FD356190416C00592B86FF7CA50B622F85593A ^
4AB6B57EDDEF1CE935622F935C1619AE7C1667D6 ^
B456A6A968ACD66CAA974F96A9A916E700AA3C5D ^
FD1C257FE046B2A27E2F0CD55ED2DECA845F01D7 ^
66E0D01780F1063E2929EAAD74826BC64060E38C ^
A8478DF406F179FD4EF97F4574D7F99EA1CE9EB8 ^
248E58CF09A372114FC2F93B09C5FC14F3D0059E ^
F15767DE91796A6816977EFA4FCED4B7FD9B8A57 ^
36A6BC5E680E15675D9696338C88B36248BBBAF4 ^
4DEA6251B2A6DF017A8093AB066EE3863A4EC369 ^
D30E70E357D57E3D82CA554B8A3D58DFF528FA94 ^
70CA84D827F7FD61446233F88CF2F990B0F3E2AA ^
8D500C9CFDE0288530A2106B70BED39326C52C3C ^
F3D4D139EDFC24596377BC97A96FB7621F27FFC7 ^
5509BAFFAC6D507860CEFC5AB5832CB63CD4B687 ^
0C0AEA0C2FD7A620C77866B1A177481E26B4F592 ^
149176007FEE58A591E3F00F8DB658B605F8390C ^
17C0D7B0256159F3626786FFDB20237AE154FA84 ^
741A58618ABEB1D983D67AFDCBC49AA397A3B8E0 ^
B738D6B3409EB9ED2F1719B84D13F7C36169CDEC ^
3D33DE31F64055D3B128AC9A6AA3F92DFD4F5330 ^
B6925F4DF94949B8844C867428BA3DEDF4CF2B51 ^
CF5E7256292ABEC431D8E8B9CBEAF22AF072377E ^
975DCE94902923977F129C0E4ACF40AD28DDB9AA ^
333B0259B18CE64D6B52CF563DD3041E5F63A516 ^
<D
H>SHS Type 3 Hashes<H
D>
80E044703A880C20EC41F645120A8A5B5D194ECE ^
E142829CA08FC9787F17AA16CE727396169B2713 ^
6A2BAF62469D311F9257A0727F52C7EAA87CCEB4 ^
362E3E7136CA611D7FBF687D3BBDC54CDA64843F ^
F5900ADC6223A5D24A7526ABFC60FA8E2D59A5AB ^
AD0CAC6A21D5B10833DDE7FA85927D74EDA142A9 ^
47AD337EAFFDC177AAF7CBD035BE6F398B9D0536 ^
9CF58595DF80872535BCC7C056E223546F0BB4EE ^
7151CEB1918278CED2902B1D663D596F8D1B986F ^
ADDC9F09AA4026EF6C4B7F1A84D3A13B4CDC65B3 ^
921FE78A863A317B1FA1FB3CA3BE1948DE7EF754 ^
64BE10732D71D52CE8A486DA23E6B453DF7C6FBD ^
4A450659470DD759ABFAE1D73972A6D2E63AC16C ^
0D665E4BBF30B7EAB955BDE84759E185EECAB4CB ^
0C1B8EE94D61CDD0837EAED9FE33DE4A8334B596 ^
D93BFE2A6227A4BF9B7C61EBCE4A8CDE131593FE ^
BDA883F804B470C90BD6AC490DFC34EBC27F9648 ^
46A0969373552213632591C52030C38E5DBDC49E ^
4781289E48B910C550DC23CA7D3AF5324C03532D ^
693A34CFCDDED0F3AC72E7197FCE9BB66A8E3981 ^
AE088AF1D8865140963B3ABFB63E32E04CD1506F ^
ADF0F8F1D85CA97586F5DC6DC5FD11FA39270F55 ^
E484F5AD86C5F4D09E366ADF6E0DE73449F97B28 ^
81C49842BA3D7072FB42288E03CE737A2672C091 ^
F6CC71AD897C23A16835490DED289BFD45500AB0 ^
23E71AED62FE8E28F34F58E7FE5594EC5EB0486C ^
92BA7934AA5867EE52960F4E0EDFB90AA7B69305 ^
C3D1CC8CBD1B6FFEE0D90CE962CD9C09AB1548AA ^
3CE37A583B71A6A77BE325066A0F00C5D11DFC3E ^
76EF5D236E1042D356A3234A422C092F86003064 ^
8C3F703436C6C882E60263540A8E4C3E5646DC15 ^
6138F9F3AB43B988DD3857422CCB304352459F40 ^
B812DE98775B4690B4FC2ECFCAB61C73C7271DC7 ^
06660985CD80D48E7B9F88455B4233924C3B64BB ^
76AB4B6378D6F63499A94EB67EB1CB31AFF8D775 ^
F31F6B0BE7AB059A1F59A46481967E88392979E6 ^
0C1638498FBB7DB9600B98B4B22EF85E0FE245FB ^
5607C6AF600939736795AC523FA43B736F41A118 ^
8A03244866BDD21B9D8A82E98436C894FAD86ECC ^
8A75BFD911AF87303B9B8FB7A1A47CCA52D3D98A ^
16F0F3B5D37411236A1E3D6B1EDAB74CDA25ED4B ^
AC72BF45477481F58A302628DC5299FFA32E7C9F ^
74CFFD5881F75AC20726E1447DCF7F47024380EF ^
5BFBECEECBC27DA05729C4D1AC8C1286EA6DCEC9 ^
012AACBC0579FA4CB4F107E9A9AD1A86AD2F6A4D ^
F7D552CBC5EF90F1A579388B5A8A9EC71EB67681 ^
10C70115C4C34753274BFED477DF01440A67A361 ^
078D2FACD293B6B6219D89899C16AA1AA8E3DE82 ^
83C6BF9FB0D3091ADF374EBFA0A69916F17E6D26 ^
2CDB1924DA62AB64C007C6505FF657E4ADDEA9C1 ^
E95D209BCB9864B076FF4DFCA8F8BD75D62D1B48 ^
632824CF5025F8F90AD2923BDDF449550D64C0F5 ^
02B1C0B41FC27EC5A32E586F1AC480BF0061E56A ^
28156BC6769AE390BF32C6512C46169181E1536D ^
F730E6E287D992E7F3E013B6F1E088F0B9C41598 ^
B056A6A832FA5FE964EF77FF3E0BE1C32E0D58C0 ^
D5B3D19AFBB48FB56BA6D44A82DE6BD08DB208DE ^
0215AD79BD6B8023C05FD2F8966211897DF6337A ^
EC4CF38C244EB6526A44F70570925247145DA8CA ^
C0D931262ECE93DA5A6ABC89CD6AD3162EA6B09E ^
6BB48FAC26AA2B4859BBDEFCFB53AE4D1D9A0340 ^
58611D43741E67A7F0DA9CB337A59DCD1EBE758E ^
7C2AEC216AF231509E47B7EED06BB17859812B7E ^
F60EE5DBF4A7A676EC98B3DDB1CDD6CDF3CDA33B ^
0492E59B1F4C94E97F29A26C3EE7D57E1B0FDD72 ^
4FCF549D902D9BE1101A756DB9E45415FB61BCD2 ^
95C71D26AD6B38CC771376B4A4F962F12E1E3D4F ^
F6A2449E773C72FB886B3C43E2B30EC2A1B7454A ^
CDE86695E00AEC9A5DB6FDDB5D5A5934448D58E0 ^
502318A758FABFF6AC53844E9E2BCD159C678510 ^
589D295148F95F75DAE964DD743FE981FA236D4E ^
7973DD33AE3599A556BACC77E8656E782E029EFF ^
9F5BE43AADD43C6DB3883C9DA4B52E1A50257AEE ^
454289D8FFB237A56D5214EAE88F0A9D328FEA1A ^
7E686B36595BEB4C0D4528FF960EDB55088A028D ^
F9789D1EF19A0084AC0E9F43A4BC0EE0478939EF ^
2F32B0E7CC8BE19C325545C816E77056D7BBE70F ^
6B1617746F073CFCD2CEBCAFBBE6FD0E28ED2D56 ^
CF8D2EA3888AD76761799383E5A15979F6DB7A88 ^
557AF6D9D5947203C60E98C9A79B92B8BD085E2B ^
C61A217423DE68ED6CD34C91756C8DD3A650A2A2 ^
73F3F79C151B6C1BD9369EDB26B932C2362B0593 ^
364141E5FBCDE83F210C5BBBEB6810F6299DE14B ^
F806BECD025D264FD59E93D9E3606A674C40F216 ^
E0C761A57F00CBFB07D49BCB034C36A7122F4C5B ^
5D3831044B9E0032FBE3C3425FFD13698F413B33 ^
7EB1AB41E9997753C5D530DF118E71E72D7B86FC ^
CC053EA1556269D7E8BCBA30B208FCBF0EE2EE64 ^
A57739B1DD41E7DC0C40D6B6159A7E73CE2748AA ^
90DA527C9DB9ACC2FD530D560A2F1191A80D0567 ^
6AC1F2A0B8CA0E5ABC9FDF1ADCE588FBDF5CC53E ^
43C1A0A0EE4163EC929726989F92B03639B233AB ^
8927F299462413AC29A74080E54D8EE2DB7165E7 ^
0C8D7E22226D91B423E781B508F31517EAAB607B ^
7286E20D7F08D18A893254FBD3CC833F7973DCAF ^
0CB8C235928B8E936C43B8F29EF3758B9FD54A7B ^
F67C24CC23E440CA3F206CEEB5504ECA54CD5CA3 ^
D78A25DEAA1E7ADADDB3C145ED0E5263BA4F2910 ^
00AA68174D29492C578AC853FFCD55908292D41A ^
D5570EEDB09A62A5948F7F311F7ED5EF247F9AD9 ^
<D

File diff suppressed because it is too large Load diff