{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1752656239,
"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":"9acb2809e30f84153ee47d7bf5801068",
"commit": {"type":"commit",
"time": 1495245202,
"time_ofs": 60,
"oid_tree": { "oid": "6c66b6a6068666421201d7150837a9be237a54d8", "alias": []},
"oid":{ "oid": "7b22334f3a6043d0c673e5c2cc7a5f75e19886ce", "alias": []},
"msg": "Add test support for \u0022oneshot\u0022 versions EVP_DigestSign, EVP_DigestVerify.",
"sig_commit": { "git_time": { "time": 1495245202, "offset": 60 }, "name": "Dr. Stephen Henson", "email": "steve@openssl.org", "md5": "fb4026c8240f7577a612418c24e54343" },
"sig_author": { "git_time": { "time": 1494880063, "offset": 60 }, "name": "Dr. Stephen Henson", "email": "steve@openssl.org", "md5": "fb4026c8240f7577a612418c24e54343" }},
"body": "Add test support for \u0022oneshot\u0022 versions EVP_DigestSign, EVP_DigestVerify.\n\nReviewed-by: Rich Salz \u003crsalz@openssl.org\u003e\n(Merged from https://github.com/openssl/openssl/pull/3500)"
,
"diff": "diff --git a/test/evp_test.c b/test/evp_test.c\nindex 643ac55..c86d3be 100644\n--- a/test/evp_test.c\n+++ b/test/evp_test.c\n@@ -406,6 +406,8 @@ static const EVP_TEST_METHOD kdf_test_method;\n static const EVP_TEST_METHOD keypair_test_method;\n static const EVP_TEST_METHOD digestsign_test_method;\n static const EVP_TEST_METHOD digestverify_test_method;\n+static const EVP_TEST_METHOD oneshot_digestsign_test_method;\n+static const EVP_TEST_METHOD oneshot_digestverify_test_method;\n \n static const EVP_TEST_METHOD *evp_test_list[] \u003d {\n \u0026digest_test_method,\n@@ -422,6 +424,8 @@ static const EVP_TEST_METHOD *evp_test_list[] \u003d {\n \u0026keypair_test_method,\n \u0026digestsign_test_method,\n \u0026digestverify_test_method,\n+ \u0026oneshot_digestsign_test_method,\n+ \u0026oneshot_digestverify_test_method,\n NULL\n };\n \n@@ -2202,20 +2206,27 @@ static const EVP_TEST_METHOD keypair_test_method \u003d {\n };\n \n typedef struct {\n+ /* Set to 1 if verifying */\n int is_verify;\n+ /* Set to 1 for one shot operation */\n+ int is_oneshot;\n /* Digest to use */\n const EVP_MD *md;\n /* Digest context */\n EVP_MD_CTX *ctx;\n EVP_PKEY_CTX *pctx;\n- /* Input data */\n+ /* Input data: streaming */\n STACK_OF(EVP_TEST_BUFFER) *input;\n+ /* Input data if one shot */\n+ unsigned char *osin;\n+ size_t osin_len;\n /* Expected output */\n unsigned char *output;\n size_t output_len;\n } DIGESTSIGN_DATA;\n \n-static int digestsigver_test_init(EVP_TEST *t, const char *alg, int is_verify)\n+static int digestsigver_test_init(EVP_TEST *t, const char *alg, int is_verify,\n+ int is_oneshot)\n {\n const EVP_MD *md \u003d NULL;\n DIGESTSIGN_DATA *mdat;\n@@ -2238,13 +2249,14 @@ static int digestsigver_test_init(EVP_TEST *t, const char *alg, int is_verify)\n return 0;\n }\n mdat-\u003eis_verify \u003d is_verify;\n+ mdat-\u003eis_oneshot \u003d is_oneshot;\n t-\u003edata \u003d mdat;\n return 1;\n }\n \n static int digestsign_test_init(EVP_TEST *t, const char *alg)\n {\n- return digestsigver_test_init(t, alg, 0);\n+ return digestsigver_test_init(t, alg, 0, 0);\n }\n \n static void digestsigver_test_cleanup(EVP_TEST *t)\n@@ -2253,6 +2265,7 @@ static void digestsigver_test_cleanup(EVP_TEST *t)\n \n EVP_MD_CTX_free(mdata-\u003ectx);\n sk_EVP_TEST_BUFFER_pop_free(mdata-\u003einput, evp_test_buffer_free);\n+ OPENSSL_free(mdata-\u003eosin);\n OPENSSL_free(mdata-\u003eoutput);\n OPENSSL_free(mdata);\n t-\u003edata \u003d NULL;\n@@ -2287,14 +2300,20 @@ static int digestsigver_test_parse(EVP_TEST *t,\n return 1;\n }\n \n- if (strcmp(keyword, \u0022Input\u0022) \u003d\u003d 0)\n+ if (strcmp(keyword, \u0022Input\u0022) \u003d\u003d 0) {\n+ if (mdata-\u003eis_oneshot)\n+ return test_bin(value, \u0026mdata-\u003eosin, \u0026mdata-\u003eosin_len);\n return evp_test_buffer_append(value, \u0026mdata-\u003einput);\n+ }\n if (strcmp(keyword, \u0022Output\u0022) \u003d\u003d 0)\n return test_bin(value, \u0026mdata-\u003eoutput, \u0026mdata-\u003eoutput_len);\n- if (strcmp(keyword, \u0022Count\u0022) \u003d\u003d 0)\n- return evp_test_buffer_set_count(value, mdata-\u003einput);\n- if (strcmp(keyword, \u0022Ncopy\u0022) \u003d\u003d 0)\n- return evp_test_buffer_ncopy(value, mdata-\u003einput);\n+\n+ if (!mdata-\u003eis_oneshot) {\n+ if (strcmp(keyword, \u0022Count\u0022) \u003d\u003d 0)\n+ return evp_test_buffer_set_count(value, mdata-\u003einput);\n+ if (strcmp(keyword, \u0022Ncopy\u0022) \u003d\u003d 0)\n+ return evp_test_buffer_ncopy(value, mdata-\u003einput);\n+ }\n if (strcmp(keyword, \u0022Ctrl\u0022) \u003d\u003d 0) {\n if (mdata-\u003epctx \u003d\u003d NULL)\n return 0;\n@@ -2352,7 +2371,7 @@ static const EVP_TEST_METHOD digestsign_test_method \u003d {\n \n static int digestverify_test_init(EVP_TEST *t, const char *alg)\n {\n- return digestsigver_test_init(t, alg, 1);\n+ return digestsigver_test_init(t, alg, 1, 0);\n }\n \n static int digestverify_update_fn(void *ctx, const unsigned char *buf,\n@@ -2384,6 +2403,72 @@ static const EVP_TEST_METHOD digestverify_test_method \u003d {\n digestverify_test_run\n };\n \n+static int oneshot_digestsign_test_init(EVP_TEST *t, const char *alg)\n+{\n+ return digestsigver_test_init(t, alg, 0, 1);\n+}\n+\n+static int oneshot_digestsign_test_run(EVP_TEST *t)\n+{\n+ DIGESTSIGN_DATA *mdata \u003d t-\u003edata;\n+ unsigned char *buf \u003d NULL;\n+ size_t buflen;\n+\n+ if (!EVP_DigestSign(mdata-\u003ectx, NULL, \u0026buflen, mdata-\u003eosin,\n+ mdata-\u003eosin_len)) {\n+ t-\u003eerr \u003d \u0022DIGESTSIGN_LENGTH_ERROR\u0022;\n+ goto err;\n+ }\n+ if (!TEST_ptr(buf \u003d OPENSSL_malloc(buflen))) {\n+ t-\u003eerr \u003d \u0022MALLOC_FAILURE\u0022;\n+ goto err;\n+ }\n+ if (!EVP_DigestSign(mdata-\u003ectx, buf, \u0026buflen, mdata-\u003eosin,\n+ mdata-\u003eosin_len)) {\n+ t-\u003eerr \u003d \u0022DIGESTSIGN_ERROR\u0022;\n+ goto err;\n+ }\n+ if (!compare_mem(mdata-\u003eoutput, mdata-\u003eoutput_len, buf, buflen)) {\n+ t-\u003eerr \u003d \u0022SIGNATURE_MISMATCH\u0022;\n+ goto err;\n+ }\n+\n+ err:\n+ OPENSSL_free(buf);\n+ return 1;\n+}\n+\n+static const EVP_TEST_METHOD oneshot_digestsign_test_method \u003d {\n+ \u0022OneShotDigestSign\u0022,\n+ oneshot_digestsign_test_init,\n+ digestsigver_test_cleanup,\n+ digestsigver_test_parse,\n+ oneshot_digestsign_test_run\n+};\n+\n+static int oneshot_digestverify_test_init(EVP_TEST *t, const char *alg)\n+{\n+ return digestsigver_test_init(t, alg, 1, 1);\n+}\n+\n+static int oneshot_digestverify_test_run(EVP_TEST *t)\n+{\n+ DIGESTSIGN_DATA *mdata \u003d t-\u003edata;\n+\n+ if (EVP_DigestVerify(mdata-\u003ectx, mdata-\u003eoutput, mdata-\u003eoutput_len,\n+ mdata-\u003eosin, mdata-\u003eosin_len) \u003c\u003d 0)\n+ t-\u003eerr \u003d \u0022VERIFY_ERROR\u0022;\n+ return 1;\n+}\n+\n+static const EVP_TEST_METHOD oneshot_digestverify_test_method \u003d {\n+ \u0022OneShotDigestVerify\u0022,\n+ oneshot_digestverify_test_init,\n+ digestsigver_test_cleanup,\n+ digestsigver_test_parse,\n+ oneshot_digestverify_test_run\n+};\n+\n static int do_test_file(const char *testfile)\n {\n BIO *in;\n","s":{"c":1752656239,"u": 31360}}
],"g": 32595,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}