Loading test/build.info +2 −2 Original line number Diff line number Diff line Loading @@ -103,11 +103,11 @@ IF[{- !$disabled{tests} -}] INCLUDE[sha1test]=../include DEPEND[sha1test]=../libcrypto SOURCE[sha256t]=sha256t.c SOURCE[sha256t]=sha256t.c testutil.c test_main.c INCLUDE[sha256t]=../include DEPEND[sha256t]=../libcrypto SOURCE[sha512t]=sha512t.c SOURCE[sha512t]=sha512t.c testutil.c test_main.c INCLUDE[sha512t]=../include DEPEND[sha512t]=../libcrypto Loading test/sha256t.c +104 −113 Original line number Diff line number Diff line /* * Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2004-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy Loading @@ -7,13 +7,12 @@ * https://www.openssl.org/source/license.html */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <openssl/sha.h> #include <openssl/evp.h> #include "test_main.h" #include "testutil.h" static const unsigned char app_b1[SHA256_DIGEST_LENGTH] = { 0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea, 0x41, 0x41, 0x40, 0xde, 0x5d, 0xae, 0x22, 0x23, Loading Loading @@ -56,46 +55,32 @@ static const unsigned char addenum_3[SHA224_DIGEST_LENGTH] = { 0x4e, 0xe7, 0xad, 0x67 }; int main(int argc, char **argv) static int test_sha256_short(void) { unsigned char md[SHA256_DIGEST_LENGTH]; int i; EVP_MD_CTX *evp; fprintf(stdout, "Testing SHA-256 "); if (!TEST_true(EVP_Digest("abc", 3, md, NULL, EVP_sha256(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_b1, sizeof(app_b1)); } if (!EVP_Digest("abc", 3, md, NULL, EVP_sha256(), NULL)) goto err; if (memcmp(md, app_b1, sizeof(app_b1))) { fflush(stdout); fprintf(stderr, "\nTEST 1 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); static int test_sha256_long(void) { unsigned char md[SHA256_DIGEST_LENGTH]; if (!EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk" if (!TEST_true(EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk" "ijkljklm" "klmnlmno" "mnopnopq", 56, md, NULL, EVP_sha256(), NULL)) goto err; if (memcmp(md, app_b2, sizeof(app_b2))) { fflush(stdout); fprintf(stderr, "\nTEST 2 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); evp = EVP_MD_CTX_new(); if (evp == NULL) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed. (malloc failure)\n"); return 1; NULL, EVP_sha256(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_b2, sizeof(app_b2)); } if (!EVP_DigestInit_ex(evp, EVP_sha256(), NULL)) goto err; for (i = 0; i < 1000000; i += 288) { if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" static int test_sha256_multi(void) { unsigned char md[SHA256_DIGEST_LENGTH]; int i, testresult = 0; EVP_MD_CTX *evp; static const char *updstr = "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" Loading @@ -103,75 +88,81 @@ int main(int argc, char **argv) "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 288 ? 1000000 - i : 288)) goto err; "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"; evp = EVP_MD_CTX_new(); if (!TEST_ptr(evp)) return 0; if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha256(), NULL))) goto end; for (i = 0; i < 1000000; i += 288) if (!TEST_true(EVP_DigestUpdate(evp, updstr, (1000000 - i) < 288 ? 1000000 - i : 288))) goto end; if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL)) || !TEST_mem_eq(md, sizeof(md), app_b3, sizeof(app_b3))) goto end; testresult = 1; end: EVP_MD_CTX_free(evp); return testresult; } if (!EVP_DigestFinal_ex(evp, md, NULL)) goto err; if (memcmp(md, app_b3, sizeof(app_b3))) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); fprintf(stdout, " passed.\n"); fflush(stdout); fprintf(stdout, "Testing SHA-224 "); if (!EVP_Digest("abc", 3, md, NULL, EVP_sha224(), NULL)) goto err; if (memcmp(md, addenum_1, sizeof(addenum_1))) { fflush(stdout); fprintf(stderr, "\nTEST 1 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); if (!EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk" "ijkljklm" "klmnlmno" "mnopnopq", 56, md, NULL, EVP_sha224(), NULL)) goto err; if (memcmp(md, addenum_2, sizeof(addenum_2))) { fflush(stdout); fprintf(stderr, "\nTEST 2 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); EVP_MD_CTX_reset(evp); if (!EVP_DigestInit_ex(evp, EVP_sha224(), NULL)) goto err; for (i = 0; i < 1000000; i += 64) { if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 64 ? 1000000 - i : 64)) goto err; static int test_sha224_short(void) { unsigned char md[SHA224_DIGEST_LENGTH]; if (!TEST_true(EVP_Digest("abc", 3, md, NULL, EVP_sha224(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), addenum_1, sizeof(addenum_1)); } if (!EVP_DigestFinal_ex(evp, md, NULL)) goto err; EVP_MD_CTX_free(evp); if (memcmp(md, addenum_3, sizeof(addenum_3))) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); static int test_sha224_long(void) { unsigned char md[SHA224_DIGEST_LENGTH]; fprintf(stdout, " passed.\n"); fflush(stdout); if (!TEST_true(EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk" "ijkljklm" "klmnlmno" "mnopnopq", 56, md, NULL, EVP_sha224(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), addenum_2, sizeof(addenum_2)); } static int test_sha224_multi(void) { unsigned char md[SHA224_DIGEST_LENGTH]; int i, testresult = 0; EVP_MD_CTX *evp; static const char *updstr = "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"; evp = EVP_MD_CTX_new(); if (!TEST_ptr(evp)) return 0; if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha224(), NULL))) goto end; for (i = 0; i < 1000000; i += 64) if (!TEST_true(EVP_DigestUpdate(evp, updstr, (1000000 - i) < 64 ? 1000000 - i : 64))) goto end; if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL)) || !TEST_mem_eq(md, sizeof(md), addenum_3, sizeof(addenum_3))) goto end; testresult = 1; end: EVP_MD_CTX_free(evp); return testresult; } err: fprintf(stderr, "Fatal EVP error!\n"); return 1; void register_tests(void) { ADD_TEST(test_sha256_short); ADD_TEST(test_sha256_long); ADD_TEST(test_sha256_multi); ADD_TEST(test_sha224_short); ADD_TEST(test_sha224_long); ADD_TEST(test_sha224_multi); } test/sha512t.c +108 −117 Original line number Diff line number Diff line /* * Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2004-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy Loading @@ -7,13 +7,11 @@ * https://www.openssl.org/source/license.html */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <openssl/sha.h> #include <openssl/evp.h> #include <openssl/crypto.h> #include "test_main.h" #include "testutil.h" static const unsigned char app_c1[SHA512_DIGEST_LENGTH] = { 0xdd, 0xaf, 0x35, 0xa1, 0x93, 0x61, 0x7a, 0xba, Loading Loading @@ -75,47 +73,34 @@ static const unsigned char app_d3[SHA384_DIGEST_LENGTH] = { 0xae, 0x97, 0xdd, 0xd8, 0x7f, 0x3d, 0x89, 0x85 }; int main(int argc, char **argv) static int test_sha512_short(void) { unsigned char md[SHA512_DIGEST_LENGTH]; int i; EVP_MD_CTX *evp; fprintf(stdout, "Testing SHA-512 "); if (!TEST_true(EVP_Digest("abc", 3, md, NULL, EVP_sha512(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_c1, sizeof(app_c1)); } if (!EVP_Digest("abc", 3, md, NULL, EVP_sha512(), NULL)) goto err; if (memcmp(md, app_c1, sizeof(app_c1))) { fflush(stdout); fprintf(stderr, "\nTEST 1 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); static int test_sha512_long(void) { unsigned char md[SHA512_DIGEST_LENGTH]; if (!EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk" if (!TEST_true(EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk" "efghijkl" "fghijklm" "ghijklmn" "hijklmno" "ijklmnop" "jklmnopq" "klmnopqr" "lmnopqrs" "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha512(), NULL)) goto err; if (memcmp(md, app_c2, sizeof(app_c2))) { fflush(stdout); fprintf(stderr, "\nTEST 2 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); evp = EVP_MD_CTX_new(); if (evp == NULL) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed. (malloc failure)\n"); return 1; "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha512(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_c2, sizeof(app_c2)); } if (!EVP_DigestInit_ex(evp, EVP_sha512(), NULL)) goto err; for (i = 0; i < 1000000; i += 288) { if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" static int test_sha512_multi(void) { unsigned char md[SHA512_DIGEST_LENGTH]; int i, testresult = 0; EVP_MD_CTX *evp; static const char *updstr = "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" Loading @@ -123,77 +108,83 @@ int main(int argc, char **argv) "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 288 ? 1000000 - i : 288)) goto err; "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"; evp = EVP_MD_CTX_new(); if (!TEST_ptr(evp)) return 0; if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha512(), NULL))) goto end; for (i = 0; i < 1000000; i += 288) if (!TEST_true(EVP_DigestUpdate(evp, updstr, (1000000 - i) < 288 ? 1000000 - i : 288))) goto end; if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL)) || !TEST_mem_eq(md, sizeof(md), app_c3, sizeof(app_c3))) goto end; testresult = 1; end: EVP_MD_CTX_free(evp); return testresult; } if (!EVP_DigestFinal_ex(evp, md, NULL)) goto err; EVP_MD_CTX_reset(evp); if (memcmp(md, app_c3, sizeof(app_c3))) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); fprintf(stdout, " passed.\n"); fflush(stdout); fprintf(stdout, "Testing SHA-384 "); if (!EVP_Digest("abc", 3, md, NULL, EVP_sha384(), NULL)) goto err; if (memcmp(md, app_d1, sizeof(app_d1))) { fflush(stdout); fprintf(stderr, "\nTEST 1 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); if (!EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk" static int test_sha384_short(void) { unsigned char md[SHA384_DIGEST_LENGTH]; if (!TEST_true(EVP_Digest("abc", 3, md, NULL, EVP_sha384(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_d1, sizeof(app_d1)); } static int test_sha384_long(void) { unsigned char md[SHA384_DIGEST_LENGTH]; if (!TEST_true(EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk" "efghijkl" "fghijklm" "ghijklmn" "hijklmno" "ijklmnop" "jklmnopq" "klmnopqr" "lmnopqrs" "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha384(), NULL)) goto err; if (memcmp(md, app_d2, sizeof(app_d2))) { fflush(stdout); fprintf(stderr, "\nTEST 2 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); if (!EVP_DigestInit_ex(evp, EVP_sha384(), NULL)) goto err; for (i = 0; i < 1000000; i += 64) { if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 64 ? 1000000 - i : 64)) goto err; "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha384(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_d2, sizeof(app_d2)); } if (!EVP_DigestFinal_ex(evp, md, NULL)) goto err; EVP_MD_CTX_free(evp); if (memcmp(md, app_d3, sizeof(app_d3))) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); fprintf(stdout, " passed.\n"); fflush(stdout); static int test_sha384_multi(void) { unsigned char md[SHA384_DIGEST_LENGTH]; int i, testresult = 0; EVP_MD_CTX *evp; static const char *updstr = "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"; evp = EVP_MD_CTX_new(); if (!TEST_ptr(evp)) return 0; if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha384(), NULL))) goto end; for (i = 0; i < 1000000; i += 64) if (!TEST_true(EVP_DigestUpdate(evp, updstr, (1000000 - i) < 64 ? 1000000 - i : 64))) goto end; if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL)) || !TEST_mem_eq(md, sizeof(md), app_d3, sizeof(app_d3))) goto end; testresult = 1; end: EVP_MD_CTX_free(evp); return testresult; } err: fflush(stdout); fprintf(stderr, "\nFatal EVP error!\n"); return 1; void register_tests(void) { ADD_TEST(test_sha512_short); ADD_TEST(test_sha512_long); ADD_TEST(test_sha512_multi); ADD_TEST(test_sha384_short); ADD_TEST(test_sha384_long); ADD_TEST(test_sha384_multi); } Loading
test/build.info +2 −2 Original line number Diff line number Diff line Loading @@ -103,11 +103,11 @@ IF[{- !$disabled{tests} -}] INCLUDE[sha1test]=../include DEPEND[sha1test]=../libcrypto SOURCE[sha256t]=sha256t.c SOURCE[sha256t]=sha256t.c testutil.c test_main.c INCLUDE[sha256t]=../include DEPEND[sha256t]=../libcrypto SOURCE[sha512t]=sha512t.c SOURCE[sha512t]=sha512t.c testutil.c test_main.c INCLUDE[sha512t]=../include DEPEND[sha512t]=../libcrypto Loading
test/sha256t.c +104 −113 Original line number Diff line number Diff line /* * Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2004-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy Loading @@ -7,13 +7,12 @@ * https://www.openssl.org/source/license.html */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <openssl/sha.h> #include <openssl/evp.h> #include "test_main.h" #include "testutil.h" static const unsigned char app_b1[SHA256_DIGEST_LENGTH] = { 0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea, 0x41, 0x41, 0x40, 0xde, 0x5d, 0xae, 0x22, 0x23, Loading Loading @@ -56,46 +55,32 @@ static const unsigned char addenum_3[SHA224_DIGEST_LENGTH] = { 0x4e, 0xe7, 0xad, 0x67 }; int main(int argc, char **argv) static int test_sha256_short(void) { unsigned char md[SHA256_DIGEST_LENGTH]; int i; EVP_MD_CTX *evp; fprintf(stdout, "Testing SHA-256 "); if (!TEST_true(EVP_Digest("abc", 3, md, NULL, EVP_sha256(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_b1, sizeof(app_b1)); } if (!EVP_Digest("abc", 3, md, NULL, EVP_sha256(), NULL)) goto err; if (memcmp(md, app_b1, sizeof(app_b1))) { fflush(stdout); fprintf(stderr, "\nTEST 1 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); static int test_sha256_long(void) { unsigned char md[SHA256_DIGEST_LENGTH]; if (!EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk" if (!TEST_true(EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk" "ijkljklm" "klmnlmno" "mnopnopq", 56, md, NULL, EVP_sha256(), NULL)) goto err; if (memcmp(md, app_b2, sizeof(app_b2))) { fflush(stdout); fprintf(stderr, "\nTEST 2 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); evp = EVP_MD_CTX_new(); if (evp == NULL) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed. (malloc failure)\n"); return 1; NULL, EVP_sha256(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_b2, sizeof(app_b2)); } if (!EVP_DigestInit_ex(evp, EVP_sha256(), NULL)) goto err; for (i = 0; i < 1000000; i += 288) { if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" static int test_sha256_multi(void) { unsigned char md[SHA256_DIGEST_LENGTH]; int i, testresult = 0; EVP_MD_CTX *evp; static const char *updstr = "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" Loading @@ -103,75 +88,81 @@ int main(int argc, char **argv) "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 288 ? 1000000 - i : 288)) goto err; "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"; evp = EVP_MD_CTX_new(); if (!TEST_ptr(evp)) return 0; if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha256(), NULL))) goto end; for (i = 0; i < 1000000; i += 288) if (!TEST_true(EVP_DigestUpdate(evp, updstr, (1000000 - i) < 288 ? 1000000 - i : 288))) goto end; if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL)) || !TEST_mem_eq(md, sizeof(md), app_b3, sizeof(app_b3))) goto end; testresult = 1; end: EVP_MD_CTX_free(evp); return testresult; } if (!EVP_DigestFinal_ex(evp, md, NULL)) goto err; if (memcmp(md, app_b3, sizeof(app_b3))) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); fprintf(stdout, " passed.\n"); fflush(stdout); fprintf(stdout, "Testing SHA-224 "); if (!EVP_Digest("abc", 3, md, NULL, EVP_sha224(), NULL)) goto err; if (memcmp(md, addenum_1, sizeof(addenum_1))) { fflush(stdout); fprintf(stderr, "\nTEST 1 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); if (!EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk" "ijkljklm" "klmnlmno" "mnopnopq", 56, md, NULL, EVP_sha224(), NULL)) goto err; if (memcmp(md, addenum_2, sizeof(addenum_2))) { fflush(stdout); fprintf(stderr, "\nTEST 2 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); EVP_MD_CTX_reset(evp); if (!EVP_DigestInit_ex(evp, EVP_sha224(), NULL)) goto err; for (i = 0; i < 1000000; i += 64) { if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 64 ? 1000000 - i : 64)) goto err; static int test_sha224_short(void) { unsigned char md[SHA224_DIGEST_LENGTH]; if (!TEST_true(EVP_Digest("abc", 3, md, NULL, EVP_sha224(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), addenum_1, sizeof(addenum_1)); } if (!EVP_DigestFinal_ex(evp, md, NULL)) goto err; EVP_MD_CTX_free(evp); if (memcmp(md, addenum_3, sizeof(addenum_3))) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); static int test_sha224_long(void) { unsigned char md[SHA224_DIGEST_LENGTH]; fprintf(stdout, " passed.\n"); fflush(stdout); if (!TEST_true(EVP_Digest("abcdbcde" "cdefdefg" "efghfghi" "ghijhijk" "ijkljklm" "klmnlmno" "mnopnopq", 56, md, NULL, EVP_sha224(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), addenum_2, sizeof(addenum_2)); } static int test_sha224_multi(void) { unsigned char md[SHA224_DIGEST_LENGTH]; int i, testresult = 0; EVP_MD_CTX *evp; static const char *updstr = "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"; evp = EVP_MD_CTX_new(); if (!TEST_ptr(evp)) return 0; if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha224(), NULL))) goto end; for (i = 0; i < 1000000; i += 64) if (!TEST_true(EVP_DigestUpdate(evp, updstr, (1000000 - i) < 64 ? 1000000 - i : 64))) goto end; if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL)) || !TEST_mem_eq(md, sizeof(md), addenum_3, sizeof(addenum_3))) goto end; testresult = 1; end: EVP_MD_CTX_free(evp); return testresult; } err: fprintf(stderr, "Fatal EVP error!\n"); return 1; void register_tests(void) { ADD_TEST(test_sha256_short); ADD_TEST(test_sha256_long); ADD_TEST(test_sha256_multi); ADD_TEST(test_sha224_short); ADD_TEST(test_sha224_long); ADD_TEST(test_sha224_multi); }
test/sha512t.c +108 −117 Original line number Diff line number Diff line /* * Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2004-2017 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy Loading @@ -7,13 +7,11 @@ * https://www.openssl.org/source/license.html */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <openssl/sha.h> #include <openssl/evp.h> #include <openssl/crypto.h> #include "test_main.h" #include "testutil.h" static const unsigned char app_c1[SHA512_DIGEST_LENGTH] = { 0xdd, 0xaf, 0x35, 0xa1, 0x93, 0x61, 0x7a, 0xba, Loading Loading @@ -75,47 +73,34 @@ static const unsigned char app_d3[SHA384_DIGEST_LENGTH] = { 0xae, 0x97, 0xdd, 0xd8, 0x7f, 0x3d, 0x89, 0x85 }; int main(int argc, char **argv) static int test_sha512_short(void) { unsigned char md[SHA512_DIGEST_LENGTH]; int i; EVP_MD_CTX *evp; fprintf(stdout, "Testing SHA-512 "); if (!TEST_true(EVP_Digest("abc", 3, md, NULL, EVP_sha512(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_c1, sizeof(app_c1)); } if (!EVP_Digest("abc", 3, md, NULL, EVP_sha512(), NULL)) goto err; if (memcmp(md, app_c1, sizeof(app_c1))) { fflush(stdout); fprintf(stderr, "\nTEST 1 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); static int test_sha512_long(void) { unsigned char md[SHA512_DIGEST_LENGTH]; if (!EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk" if (!TEST_true(EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk" "efghijkl" "fghijklm" "ghijklmn" "hijklmno" "ijklmnop" "jklmnopq" "klmnopqr" "lmnopqrs" "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha512(), NULL)) goto err; if (memcmp(md, app_c2, sizeof(app_c2))) { fflush(stdout); fprintf(stderr, "\nTEST 2 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); evp = EVP_MD_CTX_new(); if (evp == NULL) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed. (malloc failure)\n"); return 1; "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha512(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_c2, sizeof(app_c2)); } if (!EVP_DigestInit_ex(evp, EVP_sha512(), NULL)) goto err; for (i = 0; i < 1000000; i += 288) { if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" static int test_sha512_multi(void) { unsigned char md[SHA512_DIGEST_LENGTH]; int i, testresult = 0; EVP_MD_CTX *evp; static const char *updstr = "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" Loading @@ -123,77 +108,83 @@ int main(int argc, char **argv) "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 288 ? 1000000 - i : 288)) goto err; "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"; evp = EVP_MD_CTX_new(); if (!TEST_ptr(evp)) return 0; if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha512(), NULL))) goto end; for (i = 0; i < 1000000; i += 288) if (!TEST_true(EVP_DigestUpdate(evp, updstr, (1000000 - i) < 288 ? 1000000 - i : 288))) goto end; if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL)) || !TEST_mem_eq(md, sizeof(md), app_c3, sizeof(app_c3))) goto end; testresult = 1; end: EVP_MD_CTX_free(evp); return testresult; } if (!EVP_DigestFinal_ex(evp, md, NULL)) goto err; EVP_MD_CTX_reset(evp); if (memcmp(md, app_c3, sizeof(app_c3))) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); fprintf(stdout, " passed.\n"); fflush(stdout); fprintf(stdout, "Testing SHA-384 "); if (!EVP_Digest("abc", 3, md, NULL, EVP_sha384(), NULL)) goto err; if (memcmp(md, app_d1, sizeof(app_d1))) { fflush(stdout); fprintf(stderr, "\nTEST 1 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); if (!EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk" static int test_sha384_short(void) { unsigned char md[SHA384_DIGEST_LENGTH]; if (!TEST_true(EVP_Digest("abc", 3, md, NULL, EVP_sha384(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_d1, sizeof(app_d1)); } static int test_sha384_long(void) { unsigned char md[SHA384_DIGEST_LENGTH]; if (!TEST_true(EVP_Digest("abcdefgh" "bcdefghi" "cdefghij" "defghijk" "efghijkl" "fghijklm" "ghijklmn" "hijklmno" "ijklmnop" "jklmnopq" "klmnopqr" "lmnopqrs" "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha384(), NULL)) goto err; if (memcmp(md, app_d2, sizeof(app_d2))) { fflush(stdout); fprintf(stderr, "\nTEST 2 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); if (!EVP_DigestInit_ex(evp, EVP_sha384(), NULL)) goto err; for (i = 0; i < 1000000; i += 64) { if (!EVP_DigestUpdate(evp, "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa", (1000000 - i) < 64 ? 1000000 - i : 64)) goto err; "mnopqrst" "nopqrstu", 112, md, NULL, EVP_sha384(), NULL))) return 0; return TEST_mem_eq(md, sizeof(md), app_d2, sizeof(app_d2)); } if (!EVP_DigestFinal_ex(evp, md, NULL)) goto err; EVP_MD_CTX_free(evp); if (memcmp(md, app_d3, sizeof(app_d3))) { fflush(stdout); fprintf(stderr, "\nTEST 3 of 3 failed.\n"); return 1; } else fprintf(stdout, "."); fflush(stdout); fprintf(stdout, " passed.\n"); fflush(stdout); static int test_sha384_multi(void) { unsigned char md[SHA384_DIGEST_LENGTH]; int i, testresult = 0; EVP_MD_CTX *evp; static const char *updstr = "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa" "aaaaaaaa"; evp = EVP_MD_CTX_new(); if (!TEST_ptr(evp)) return 0; if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha384(), NULL))) goto end; for (i = 0; i < 1000000; i += 64) if (!TEST_true(EVP_DigestUpdate(evp, updstr, (1000000 - i) < 64 ? 1000000 - i : 64))) goto end; if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL)) || !TEST_mem_eq(md, sizeof(md), app_d3, sizeof(app_d3))) goto end; testresult = 1; end: EVP_MD_CTX_free(evp); return testresult; } err: fflush(stdout); fprintf(stderr, "\nFatal EVP error!\n"); return 1; void register_tests(void) { ADD_TEST(test_sha512_short); ADD_TEST(test_sha512_long); ADD_TEST(test_sha512_multi); ADD_TEST(test_sha384_short); ADD_TEST(test_sha384_long); ADD_TEST(test_sha384_multi); }