assertEqualInt(archive_entry_is_encrypted(ae), 0);
assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED);
+ /* md5digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\x09\x98\xec\xf8\x42\x7e",
+ 16);
+
+ /* rmd160digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/rmd160file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_RMD160),
+ "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90"
+ "\xaf\xd8\x07\x09", 20);
+
+ /* sha1digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/sha1file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA1),
+ "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90"
+ "\xaf\xd8\x07\x09", 20);
+
+ /* sha256digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/sha256file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA256),
+ "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24"
+ "\x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55",
+ 32);
+
+ /* sha384digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/sha384file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA384),
+ "\x38\xb0\x60\xa7\x51\xac\x96\x38\x4c\xd9\x32\x7e\xb1\xb1\xe3\x6a"
+ "\x21\xfd\xb7\x11\x14\xbe\x07\x43\x4c\x0c\xc7\xbf\x63\xf6\xe1\xda"
+ "\x27\x4e\xde\xbf\xe7\x6f\x65\xfb\xd5\x1a\xd2\xf1\x48\x98\xb9\x5b",
+ 48);
+
+ /* sha512digest */
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/sha512file");
+ assertEqualMem(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_SHA512),
+ "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd\xf1\x54\x28\x50\xd6\x6d\x80\x07"
+ "\xd6\x20\xe4\x05\x0b\x57\x15\xdc\x83\xf4\xa9\x21\xd3\x6c\xe9\xce"
+ "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0\xff\x83\x18\xd2\x87\x7e\xec\x2f"
+ "\x63\xb9\x31\xbd\x47\x41\x7a\x81\xa5\x38\x32\x7a\xf9\x27\xda\x3e",
+ 64);
+
+ /* md5 digest is too short */
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5tooshort");
+ assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ 16, 0x00);
+
+ /* md5 digest is too long */
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5toolong");
+ assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ 16, 0x00);
+
+ /* md5 digest is uppercase hex */
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5caphex");
+ assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ 16, 0x00);
+
+ /* md5 digest is not hex */
+ assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
+ assertEqualString(archive_entry_pathname(ae), "dir2/md5nothex");
+ assertMemoryFilledWith(archive_entry_digest(ae, ARCHIVE_ENTRY_DIGEST_MD5),
+ 16, 0x00);
+
assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
- assertEqualInt(20, archive_file_count(a));
+ assertEqualInt(30, archive_file_count(a));
assertEqualInt(ARCHIVE_OK, archive_read_close(a));
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
}
M:6QE('1Y<&4]9FEL92!S:7IE/3DR,C,S-S(P,S8X-30W-S4X,#@*9&ER,B]V
M97)Y;VQD9FEL92!T>7!E/69I;&4@=&EM93TM.3(R,S,W,C`S-C@U-#<W-3@P
M.`ID:7(R+W1O;V]L9&9I;&4@='EP93UF:6QE('1I;64]+3DR,C,S-S(P,S8X
-*-30W-S4X,#D*"@``
+M-30W-S4X,#D*9&ER,B]M9#5F:6QE('1Y<&4]9FEL92!M9#5D:6=E<W0]9#0Q
+M9#AC9#DX9C`P8C(P-&4Y.#`P.3DX96-F.#0R-V4@("`@("`@("`@("`@("`*
+M9&ER,B]R;60Q-C!F:6QE('1Y<&4]9FEL92!R;60Q-C!D:6=E<W0]9&$S.6$S
+M964U939B-&(P9#,R-35B9F5F.34V,#$X.3!A9F0X,#<P.2`@("`@("`@(`ID
+M:7(R+W-H83%F:6QE('1Y<&4]9FEL92!S:&$Q9&EG97-T/61A,SEA,V5E-64V
+M8C1B,&0S,C4U8F9E9CDU-C`Q.#DP869D.#`W,#D@("`@(`ID:7(R+W-H83(U
+M-F9I;&4@='EP93UF:6QE('-H83(U-F1I9V5S=#UE,V(P8S0T,CDX9F,Q8S$T
+M.6%F8F8T8S@Y.39F8CDR-#(W864T,64T-C0Y8CDS-&-A-#DU.3DQ8C<X-3)B
+M.#4U"F1I<C(O<VAA,S@T9FEL92!T>7!E/69I;&4@<VAA,S@T9&EG97-T/3,X
+M8C`V,&$W-3%A8SDV,S@T8V0Y,S(W96(Q8C%E,S9A,C%F9&(W,3$Q-&)E,#<T
+M,S1C,&-C-V)F-C-F-F4Q9&$R-S1E9&5B9F4W-F8V-69B9#4Q860R9C$T.#DX
+M8CDU8@ID:7(R+W-H834Q,F9I;&4@='EP93UF:6QE('-H834Q,F1I9V5S=#UC
+M9C@S93$S-3=E969B.&)D9C$U-#(X-3!D-C9D.#`P-V0V,C!E-#`U,&(U-S$U
+M9&,X,V8T83DR,60S-F-E.6-E-#=D,&0Q,V,U9#@U9C)B,&9F.#,Q.&0R.#<W
+M965C,F8V,V(Y,S%B9#0W-#$W83@Q834S.#,R-V%F.3(W9&$S90ID:7(R+VUD
+M-71O;W-H;W)T('1Y<&4]9FEL92!M9#5D:6=E<W0]9#0Q9#AC9#DX9C`P8C(P
+M-&4Y.#`P.3DX96-F.#0R-PID:7(R+VUD-71O;VQO;F<@='EP93UF:6QE(&UD
+M-61I9V5S=#UD-#%D.&-D.3AF,#!B,C`T93DX,#`Y.3AE8V8X-#(W96$*9&ER
+M,B]M9#5C87!H97@@='EP93UF:6QE(&UD-61I9V5S=#U$-#%$.$-$.3A&,#!"
+M,C`T13DX,#`Y.3A%0T8X-#(W10ID:7(R+VUD-6YO=&AE>"!T>7!E/69I;&4@
+K;60U9&EG97-T/7$T,60X8V0Y.&8P,&(R,#1E.3@P,#DY.&5C9C@T,C=E"@``
`
end