Warmcat homepage andy@warmcat.com
libwebsockets
{"schema":"libjg2-1", "vpath":"/git/", "avatar":"/git/avatar/", "alang":"", "gen_ut":1753411293, "reponame":"openssl", "desc":"OpenSSL", "owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://warmcat.com/repo/openssl", "f":3, "items": [ {"schema":"libjg2-1", "cid":"bd32927113dc0d04381fd5c4ca912c17", "commit": {"type":"commit", "time": 1491986327, "time_ofs": 60, "oid_tree": { "oid": "5c819111e13d7a1f21f342044f66a329359d48b9", "alias": []}, "oid":{ "oid": "f46074c7b9d03235e2968546c28a6057db9f8725", "alias": []}, "msg": " Update sha256t and sha512t to use the test infrastructure", "sig_commit": { "git_time": { "time": 1491986327, "offset": 60 }, "name": "Matt Caswell", "email": "matt@openssl.org", "md5": "10f7b441a32d5790efad9fc68cae4af2" }, "sig_author": { "git_time": { "time": 1491779689, "offset": 600 }, "name": "Pauli", "email": "paul.dale@oracle.com", "md5": "4616f8cb80bd6ce4dab75d05e07cd125" }}, "body": " Update sha256t and sha512t to use the test infrastructure\n\nReviewed-by: Rich Salz \u003crsalz@openssl.org\u003e\nReviewed-by: Matt Caswell \u003cmatt@openssl.org\u003e\n(Merged from https://github.com/openssl/openssl/pull/3168)" , "diff": "diff --git a/test/build.info b/test/build.info\nindex d712b71..cc0820d 100644\n--- a/test/build.info\n+++ b/test/build.info\n@@ -103,11 +103,11 @@ IF[{- !$disabled{tests} -}]\n INCLUDE[sha1test]\u003d../include\n DEPEND[sha1test]\u003d../libcrypto\n \n- SOURCE[sha256t]\u003dsha256t.c\n+ SOURCE[sha256t]\u003dsha256t.c testutil.c test_main.c\n INCLUDE[sha256t]\u003d../include\n DEPEND[sha256t]\u003d../libcrypto\n \n- SOURCE[sha512t]\u003dsha512t.c\n+ SOURCE[sha512t]\u003dsha512t.c testutil.c test_main.c\n INCLUDE[sha512t]\u003d../include\n DEPEND[sha512t]\u003d../libcrypto\n \ndiff --git a/test/sha256t.c b/test/sha256t.c\nindex 90262d9..29e65d5 100644\n--- a/test/sha256t.c\n+++ b/test/sha256t.c\n@@ -1,5 +1,5 @@\n /*\n- * Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.\n+ * Copyright 2004-2017 The OpenSSL Project Authors. All Rights Reserved.\n *\n * Licensed under the OpenSSL license (the \u0022License\u0022). You may not use\n * this file except in compliance with the License. You can obtain a copy\n@@ -7,13 +7,12 @@\n * https://www.openssl.org/source/license.html\n */\n \n-#include \u003cstdio.h\u003e\n-#include \u003cstring.h\u003e\n-#include \u003cstdlib.h\u003e\n-\n #include \u003copenssl/sha.h\u003e\n #include \u003copenssl/evp.h\u003e\n \n+#include \u0022test_main.h\u0022\n+#include \u0022testutil.h\u0022\n+\n static const unsigned char app_b1[SHA256_DIGEST_LENGTH] \u003d {\n 0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea,\n 0x41, 0x41, 0x40, 0xde, 0x5d, 0xae, 0x22, 0x23,\n@@ -56,122 +55,114 @@ static const unsigned char addenum_3[SHA224_DIGEST_LENGTH] \u003d {\n 0x4e, 0xe7, 0xad, 0x67\n };\n \n-int main(int argc, char **argv)\n+static int test_sha256_short(void)\n+{\n+ unsigned char md[SHA256_DIGEST_LENGTH];\n+\n+ if (!TEST_true(EVP_Digest(\u0022abc\u0022, 3, md, NULL, EVP_sha256(), NULL)))\n+ return 0;\n+ return TEST_mem_eq(md, sizeof(md), app_b1, sizeof(app_b1));\n+}\n+\n+static int test_sha256_long(void)\n {\n unsigned char md[SHA256_DIGEST_LENGTH];\n- int i;\n- EVP_MD_CTX *evp;\n \n- fprintf(stdout, \u0022Testing SHA-256 \u0022);\n-\n- if (!EVP_Digest(\u0022abc\u0022, 3, md, NULL, EVP_sha256(), NULL))\n- goto err;\n- if (memcmp(md, app_b1, sizeof(app_b1))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 1 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n-\n- if (!EVP_Digest(\u0022abcdbcde\u0022 \u0022cdefdefg\u0022 \u0022efghfghi\u0022 \u0022ghijhijk\u0022\n- \u0022ijkljklm\u0022 \u0022klmnlmno\u0022 \u0022mnopnopq\u0022, 56, md,\n- NULL, EVP_sha256(), NULL))\n- goto err;\n- if (memcmp(md, app_b2, sizeof(app_b2))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 2 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n+ if (!TEST_true(EVP_Digest(\u0022abcdbcde\u0022 \u0022cdefdefg\u0022 \u0022efghfghi\u0022 \u0022ghijhijk\u0022\n+ \u0022ijkljklm\u0022 \u0022klmnlmno\u0022 \u0022mnopnopq\u0022, 56, md,\n+ NULL, EVP_sha256(), NULL)))\n+ return 0;\n+ return TEST_mem_eq(md, sizeof(md), app_b2, sizeof(app_b2));\n+}\n+\n+static int test_sha256_multi(void)\n+{\n+ unsigned char md[SHA256_DIGEST_LENGTH];\n+ int i, testresult \u003d 0;\n+ EVP_MD_CTX *evp;\n+ static const char *updstr \u003d \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022;\n \n evp \u003d EVP_MD_CTX_new();\n- if (evp \u003d\u003d NULL) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 3 of 3 failed. (malloc failure)\u005cn\u0022);\n- return 1;\n- }\n- if (!EVP_DigestInit_ex(evp, EVP_sha256(), NULL))\n- goto err;\n- for (i \u003d 0; i \u003c 1000000; i +\u003d 288) {\n- if (!EVP_DigestUpdate(evp, \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022,\n- (1000000 - i) \u003c 288 ? 1000000 - i : 288))\n- goto err;\n- }\n- if (!EVP_DigestFinal_ex(evp, md, NULL))\n- goto err;\n-\n- if (memcmp(md, app_b3, sizeof(app_b3))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 3 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n-\n- fprintf(stdout, \u0022 passed.\u005cn\u0022);\n- fflush(stdout);\n-\n- fprintf(stdout, \u0022Testing SHA-224 \u0022);\n-\n- if (!EVP_Digest(\u0022abc\u0022, 3, md, NULL, EVP_sha224(), NULL))\n- goto err;\n- if (memcmp(md, addenum_1, sizeof(addenum_1))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 1 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n-\n- if (!EVP_Digest(\u0022abcdbcde\u0022 \u0022cdefdefg\u0022 \u0022efghfghi\u0022 \u0022ghijhijk\u0022\n- \u0022ijkljklm\u0022 \u0022klmnlmno\u0022 \u0022mnopnopq\u0022, 56, md,\n- NULL, EVP_sha224(), NULL))\n- goto err;\n- if (memcmp(md, addenum_2, sizeof(addenum_2))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 2 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n-\n- EVP_MD_CTX_reset(evp);\n- if (!EVP_DigestInit_ex(evp, EVP_sha224(), NULL))\n- goto err;\n- for (i \u003d 0; i \u003c 1000000; i +\u003d 64) {\n- if (!EVP_DigestUpdate(evp, \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022,\n- (1000000 - i) \u003c 64 ? 1000000 - i : 64))\n- goto err;\n- }\n- if (!EVP_DigestFinal_ex(evp, md, NULL))\n- goto err;\n+ if (!TEST_ptr(evp))\n+ return 0;\n+ if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha256(), NULL)))\n+ goto end;\n+ for (i \u003d 0; i \u003c 1000000; i +\u003d 288)\n+ if (!TEST_true(EVP_DigestUpdate(evp, updstr,\n+ (1000000 - i) \u003c 288 ? 1000000 - i\n+ : 288)))\n+ goto end;\n+ if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL))\n+ || !TEST_mem_eq(md, sizeof(md), app_b3, sizeof(app_b3)))\n+ goto end;\n+\n+ testresult \u003d 1;\n+ end:\n EVP_MD_CTX_free(evp);\n+ return testresult;\n+}\n \n- if (memcmp(md, addenum_3, sizeof(addenum_3))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 3 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n+static int test_sha224_short(void)\n+{\n+ unsigned char md[SHA224_DIGEST_LENGTH];\n \n- fprintf(stdout, \u0022 passed.\u005cn\u0022);\n- fflush(stdout);\n+ if (!TEST_true(EVP_Digest(\u0022abc\u0022, 3, md, NULL, EVP_sha224(), NULL)))\n+ return 0;\n+ return TEST_mem_eq(md, sizeof(md), addenum_1, sizeof(addenum_1));\n+}\n \n- return 0;\n+static int test_sha224_long(void)\n+{\n+ unsigned char md[SHA224_DIGEST_LENGTH];\n \n- err:\n- fprintf(stderr, \u0022Fatal EVP error!\u005cn\u0022);\n- return 1;\n+ if (!TEST_true(EVP_Digest(\u0022abcdbcde\u0022 \u0022cdefdefg\u0022 \u0022efghfghi\u0022 \u0022ghijhijk\u0022\n+ \u0022ijkljklm\u0022 \u0022klmnlmno\u0022 \u0022mnopnopq\u0022, 56, md,\n+ NULL, EVP_sha224(), NULL)))\n+ return 0;\n+ return TEST_mem_eq(md, sizeof(md), addenum_2, sizeof(addenum_2));\n+}\n+\n+static int test_sha224_multi(void)\n+{\n+ unsigned char md[SHA224_DIGEST_LENGTH];\n+ int i, testresult \u003d 0;\n+ EVP_MD_CTX *evp;\n+ static const char *updstr \u003d \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022;\n+\n+ evp \u003d EVP_MD_CTX_new();\n+ if (!TEST_ptr(evp))\n+ return 0;\n+ if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha224(), NULL)))\n+ goto end;\n+ for (i \u003d 0; i \u003c 1000000; i +\u003d 64)\n+ if (!TEST_true(EVP_DigestUpdate(evp, updstr,\n+ (1000000 - i) \u003c 64 ? 1000000 - i : 64)))\n+ goto end;\n+ if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL))\n+ || !TEST_mem_eq(md, sizeof(md), addenum_3, sizeof(addenum_3)))\n+ goto end;\n+\n+ testresult \u003d 1;\n+ end:\n+ EVP_MD_CTX_free(evp);\n+ return testresult;\n+}\n+\n+void register_tests(void)\n+{\n+ ADD_TEST(test_sha256_short);\n+ ADD_TEST(test_sha256_long);\n+ ADD_TEST(test_sha256_multi);\n+ ADD_TEST(test_sha224_short);\n+ ADD_TEST(test_sha224_long);\n+ ADD_TEST(test_sha224_multi);\n }\ndiff --git a/test/sha512t.c b/test/sha512t.c\nindex 18cdf39..91efa32 100644\n--- a/test/sha512t.c\n+++ b/test/sha512t.c\n@@ -1,5 +1,5 @@\n /*\n- * Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.\n+ * Copyright 2004-2017 The OpenSSL Project Authors. All Rights Reserved.\n *\n * Licensed under the OpenSSL license (the \u0022License\u0022). You may not use\n * this file except in compliance with the License. You can obtain a copy\n@@ -7,13 +7,11 @@\n * https://www.openssl.org/source/license.html\n */\n \n-#include \u003cstdio.h\u003e\n-#include \u003cstring.h\u003e\n-#include \u003cstdlib.h\u003e\n-\n #include \u003copenssl/sha.h\u003e\n #include \u003copenssl/evp.h\u003e\n-#include \u003copenssl/crypto.h\u003e\n+\n+#include \u0022test_main.h\u0022\n+#include \u0022testutil.h\u0022\n \n static const unsigned char app_c1[SHA512_DIGEST_LENGTH] \u003d {\n 0xdd, 0xaf, 0x35, 0xa1, 0x93, 0x61, 0x7a, 0xba,\n@@ -75,125 +73,118 @@ static const unsigned char app_d3[SHA384_DIGEST_LENGTH] \u003d {\n 0xae, 0x97, 0xdd, 0xd8, 0x7f, 0x3d, 0x89, 0x85\n };\n \n-int main(int argc, char **argv)\n+static int test_sha512_short(void)\n {\n unsigned char md[SHA512_DIGEST_LENGTH];\n- int i;\n- EVP_MD_CTX *evp;\n \n- fprintf(stdout, \u0022Testing SHA-512 \u0022);\n-\n- if (!EVP_Digest(\u0022abc\u0022, 3, md, NULL, EVP_sha512(), NULL))\n- goto err;\n- if (memcmp(md, app_c1, sizeof(app_c1))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 1 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n-\n- if (!EVP_Digest(\u0022abcdefgh\u0022 \u0022bcdefghi\u0022 \u0022cdefghij\u0022 \u0022defghijk\u0022\n- \u0022efghijkl\u0022 \u0022fghijklm\u0022 \u0022ghijklmn\u0022 \u0022hijklmno\u0022\n- \u0022ijklmnop\u0022 \u0022jklmnopq\u0022 \u0022klmnopqr\u0022 \u0022lmnopqrs\u0022\n- \u0022mnopqrst\u0022 \u0022nopqrstu\u0022, 112, md, NULL, EVP_sha512(), NULL))\n- goto err;\n- if (memcmp(md, app_c2, sizeof(app_c2))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 2 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n+ if (!TEST_true(EVP_Digest(\u0022abc\u0022, 3, md, NULL, EVP_sha512(), NULL)))\n+ return 0;\n+ return TEST_mem_eq(md, sizeof(md), app_c1, sizeof(app_c1));\n+}\n+\n+static int test_sha512_long(void)\n+{\n+ unsigned char md[SHA512_DIGEST_LENGTH];\n+\n+ if (!TEST_true(EVP_Digest(\u0022abcdefgh\u0022 \u0022bcdefghi\u0022 \u0022cdefghij\u0022 \u0022defghijk\u0022\n+ \u0022efghijkl\u0022 \u0022fghijklm\u0022 \u0022ghijklmn\u0022 \u0022hijklmno\u0022\n+ \u0022ijklmnop\u0022 \u0022jklmnopq\u0022 \u0022klmnopqr\u0022 \u0022lmnopqrs\u0022\n+ \u0022mnopqrst\u0022 \u0022nopqrstu\u0022, 112, md, NULL,\n+ EVP_sha512(), NULL)))\n+ return 0;\n+ return TEST_mem_eq(md, sizeof(md), app_c2, sizeof(app_c2));\n+}\n+\n+static int test_sha512_multi(void)\n+{\n+ unsigned char md[SHA512_DIGEST_LENGTH];\n+ int i, testresult \u003d 0;\n+ EVP_MD_CTX *evp;\n+ static const char *updstr \u003d \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022;\n \n evp \u003d EVP_MD_CTX_new();\n- if (evp \u003d\u003d NULL) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 3 of 3 failed. (malloc failure)\u005cn\u0022);\n- return 1;\n- }\n- if (!EVP_DigestInit_ex(evp, EVP_sha512(), NULL))\n- goto err;\n- for (i \u003d 0; i \u003c 1000000; i +\u003d 288) {\n- if (!EVP_DigestUpdate(evp, \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022,\n- (1000000 - i) \u003c 288 ? 1000000 - i : 288))\n- goto err;\n- }\n- if (!EVP_DigestFinal_ex(evp, md, NULL))\n- goto err;\n- EVP_MD_CTX_reset(evp);\n-\n- if (memcmp(md, app_c3, sizeof(app_c3))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 3 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n-\n- fprintf(stdout, \u0022 passed.\u005cn\u0022);\n- fflush(stdout);\n-\n- fprintf(stdout, \u0022Testing SHA-384 \u0022);\n-\n- if (!EVP_Digest(\u0022abc\u0022, 3, md, NULL, EVP_sha384(), NULL))\n- goto err;\n- if (memcmp(md, app_d1, sizeof(app_d1))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 1 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n-\n- if (!EVP_Digest(\u0022abcdefgh\u0022 \u0022bcdefghi\u0022 \u0022cdefghij\u0022 \u0022defghijk\u0022\n- \u0022efghijkl\u0022 \u0022fghijklm\u0022 \u0022ghijklmn\u0022 \u0022hijklmno\u0022\n- \u0022ijklmnop\u0022 \u0022jklmnopq\u0022 \u0022klmnopqr\u0022 \u0022lmnopqrs\u0022\n- \u0022mnopqrst\u0022 \u0022nopqrstu\u0022, 112, md, NULL, EVP_sha384(), NULL))\n- goto err;\n- if (memcmp(md, app_d2, sizeof(app_d2))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 2 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n-\n- if (!EVP_DigestInit_ex(evp, EVP_sha384(), NULL))\n- goto err;\n- for (i \u003d 0; i \u003c 1000000; i +\u003d 64) {\n- if (!EVP_DigestUpdate(evp, \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n- \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022,\n- (1000000 - i) \u003c 64 ? 1000000 - i : 64))\n- goto err;\n- }\n- if (!EVP_DigestFinal_ex(evp, md, NULL))\n- goto err;\n+ if (!TEST_ptr(evp))\n+ return 0;\n+ if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha512(), NULL)))\n+ goto end;\n+ for (i \u003d 0; i \u003c 1000000; i +\u003d 288)\n+ if (!TEST_true(EVP_DigestUpdate(evp, updstr,\n+ (1000000 - i) \u003c 288 ? 1000000 - i\n+ : 288)))\n+ goto end;\n+ if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL))\n+ || !TEST_mem_eq(md, sizeof(md), app_c3, sizeof(app_c3)))\n+ goto end;\n+\n+ testresult \u003d 1;\n+ end:\n EVP_MD_CTX_free(evp);\n+ return testresult;\n+}\n \n- if (memcmp(md, app_d3, sizeof(app_d3))) {\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnTEST 3 of 3 failed.\u005cn\u0022);\n- return 1;\n- } else\n- fprintf(stdout, \u0022.\u0022);\n- fflush(stdout);\n+static int test_sha384_short(void)\n+{\n+ unsigned char md[SHA384_DIGEST_LENGTH];\n \n- fprintf(stdout, \u0022 passed.\u005cn\u0022);\n- fflush(stdout);\n+ if (!TEST_true(EVP_Digest(\u0022abc\u0022, 3, md, NULL, EVP_sha384(), NULL)))\n+ return 0;\n+ return TEST_mem_eq(md, sizeof(md), app_d1, sizeof(app_d1));\n+}\n \n- return 0;\n+static int test_sha384_long(void)\n+{\n+ unsigned char md[SHA384_DIGEST_LENGTH];\n+\n+ if (!TEST_true(EVP_Digest(\u0022abcdefgh\u0022 \u0022bcdefghi\u0022 \u0022cdefghij\u0022 \u0022defghijk\u0022\n+ \u0022efghijkl\u0022 \u0022fghijklm\u0022 \u0022ghijklmn\u0022 \u0022hijklmno\u0022\n+ \u0022ijklmnop\u0022 \u0022jklmnopq\u0022 \u0022klmnopqr\u0022 \u0022lmnopqrs\u0022\n+ \u0022mnopqrst\u0022 \u0022nopqrstu\u0022, 112, md, NULL,\n+ EVP_sha384(), NULL)))\n+ return 0;\n+ return TEST_mem_eq(md, sizeof(md), app_d2, sizeof(app_d2));\n+}\n \n- err:\n- fflush(stdout);\n- fprintf(stderr, \u0022\u005cnFatal EVP error!\u005cn\u0022);\n- return 1;\n+static int test_sha384_multi(void)\n+{\n+ unsigned char md[SHA384_DIGEST_LENGTH];\n+ int i, testresult \u003d 0;\n+ EVP_MD_CTX *evp;\n+ static const char *updstr \u003d \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022\n+ \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022 \u0022aaaaaaaa\u0022;\n+\n+ evp \u003d EVP_MD_CTX_new();\n+ if (!TEST_ptr(evp))\n+ return 0;\n+ if (!TEST_true(EVP_DigestInit_ex(evp, EVP_sha384(), NULL)))\n+ goto end;\n+ for (i \u003d 0; i \u003c 1000000; i +\u003d 64)\n+ if (!TEST_true(EVP_DigestUpdate(evp, updstr,\n+ (1000000 - i) \u003c 64 ? 1000000 - i : 64)))\n+ goto end;\n+ if (!TEST_true(EVP_DigestFinal_ex(evp, md, NULL))\n+ || !TEST_mem_eq(md, sizeof(md), app_d3, sizeof(app_d3)))\n+ goto end;\n+\n+ testresult \u003d 1;\n+ end:\n+ EVP_MD_CTX_free(evp);\n+ return testresult;\n+}\n+\n+void register_tests(void)\n+{\n+ ADD_TEST(test_sha512_short);\n+ ADD_TEST(test_sha512_long);\n+ ADD_TEST(test_sha512_multi);\n+ ADD_TEST(test_sha384_short);\n+ ADD_TEST(test_sha384_long);\n+ ADD_TEST(test_sha384_multi);\n }\n","s":{"c":1753411293,"u": 30571}} ],"g": 32775,"chitpc": 0,"ehitpc": 0,"indexed":0 , "ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}