Warmcat homepage andy@warmcat.com
libwebsockets
{"schema":"libjg2-1", "vpath":"/git/", "avatar":"/git/avatar/", "alang":"", "gen_ut":1752655785, "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":"32565f801645f78fadda0f980880de14", "commit": {"type":"commit", "time": 1491987913, "time_ofs": 60, "oid_tree": { "oid": "121e24a68389f37ad51204ed58341a5983b0ccd9", "alias": []}, "oid":{ "oid": "48f1739600f33c92387debce2002acec6e365f1d", "alias": []}, "msg": "Convert RSA tests to new framework", "sig_commit": { "git_time": { "time": 1491987913, "offset": 60 }, "name": "Matt Caswell", "email": "matt@openssl.org", "md5": "10f7b441a32d5790efad9fc68cae4af2" }, "sig_author": { "git_time": { "time": 1491892940, "offset": 600 }, "name": "Jon Spillett", "email": "jon.spillett@oracle.com", "md5": "36e7b18227d7137582a9a85e8c5931cf" }}, "body": "Convert RSA tests to new framework\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/3179)" , "diff": "diff --git a/test/build.info b/test/build.info\nindex 2f9ea8d..9b816ef 100644\n--- a/test/build.info\n+++ b/test/build.info\n@@ -147,7 +147,7 @@ IF[{- !$disabled{tests} -}]\n INCLUDE[exptest]\u003d../include\n DEPEND[exptest]\u003d../libcrypto\n \n- SOURCE[rsa_test]\u003drsa_test.c\n+ SOURCE[rsa_test]\u003drsa_test.c testutil.c test_main.c\n INCLUDE[rsa_test]\u003d.. ../include\n DEPEND[rsa_test]\u003d../libcrypto\n \ndiff --git a/test/rsa_test.c b/test/rsa_test.c\nindex a38be33..af912eb 100644\n--- a/test/rsa_test.c\n+++ b/test/rsa_test.c\n@@ -18,11 +18,14 @@\n #include \u003copenssl/err.h\u003e\n #include \u003copenssl/rand.h\u003e\n #include \u003copenssl/bn.h\u003e\n+\n+#include \u0022test_main.h\u0022\n+#include \u0022testutil.h\u0022\n+\n #ifdef OPENSSL_NO_RSA\n-int main(int argc, char *argv[])\n+void register_tests(void)\n {\n- printf(\u0022No RSA support\u005cn\u0022);\n- return (0);\n+ /* No tests */\n }\n #else\n # include \u003copenssl/rsa.h\u003e\n@@ -220,10 +223,9 @@ static int pad_unknown(void)\n static const char rnd_seed[] \u003d\n \u0022string to make the random number generator think it has entropy\u0022;\n \n-int main(int argc, char *argv[])\n+static int test_rsa_pkcs1(int idx)\n {\n- int err \u003d 0;\n- int v;\n+ int ret \u003d 0;\n RSA *key;\n unsigned char ptext[256];\n unsigned char ctext[256];\n@@ -232,109 +234,115 @@ int main(int argc, char *argv[])\n int plen;\n int clen \u003d 0;\n int num;\n- int n;\n \n- CRYPTO_set_mem_debug(1);\n- CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);\n+ plen \u003d sizeof(ptext_ex) - 1;\n+\n+ key \u003d RSA_new();\n+ switch (idx) {\n+ case 0:\n+ clen \u003d key1(key, ctext_ex);\n+ break;\n+ case 1:\n+ clen \u003d key2(key, ctext_ex);\n+ break;\n+ case 2:\n+ clen \u003d key3(key, ctext_ex);\n+ break;\n+ }\n+\n+ num \u003d RSA_public_encrypt(plen, ptext_ex, ctext, key,\n+ RSA_PKCS1_PADDING);\n+ if (!TEST_int_eq(num, clen))\n+ goto err;\n+\n+ num \u003d RSA_private_decrypt(num, ctext, ptext, key, RSA_PKCS1_PADDING);\n+ if (!TEST_mem_eq(ptext, num, ptext_ex, plen))\n+ goto err;\n+\n+ ret \u003d 1;\n+err:\n+ RSA_free(key);\n+ return ret;\n+}\n+\n+static int test_rsa_oaep(int idx)\n+{\n+ int ret \u003d 0;\n+ RSA *key;\n+ unsigned char ptext[256];\n+ unsigned char ctext[256];\n+ static unsigned char ptext_ex[] \u003d \u0022\u005cx54\u005cx85\u005cx9b\u005cx34\u005cx2c\u005cx49\u005cxea\u005cx2a\u0022;\n+ unsigned char ctext_ex[256];\n+ int plen;\n+ int clen \u003d 0;\n+ int num;\n+ int n;\n \n RAND_seed(rnd_seed, sizeof rnd_seed); /* or OAEP may fail */\n \n plen \u003d sizeof(ptext_ex) - 1;\n \n- for (v \u003d 0; v \u003c 3; v++) {\n- key \u003d RSA_new();\n- switch (v) {\n- case 0:\n- clen \u003d key1(key, ctext_ex);\n- break;\n- case 1:\n- clen \u003d key2(key, ctext_ex);\n- break;\n- case 2:\n- clen \u003d key3(key, ctext_ex);\n- break;\n- }\n-\n- num \u003d RSA_public_encrypt(plen, ptext_ex, ctext, key,\n- RSA_PKCS1_PADDING);\n- if (num !\u003d clen) {\n- printf(\u0022PKCS#1 v1.5 encryption failed!\u005cn\u0022);\n- err \u003d 1;\n- goto oaep;\n- }\n-\n- num \u003d RSA_private_decrypt(num, ctext, ptext, key, RSA_PKCS1_PADDING);\n- if (num !\u003d plen || memcmp(ptext, ptext_ex, num) !\u003d 0) {\n- printf(\u0022PKCS#1 v1.5 decryption failed!\u005cn\u0022);\n- err \u003d 1;\n- } else\n- printf(\u0022PKCS #1 v1.5 encryption/decryption ok\u005cn\u0022);\n-\n- oaep:\n- ERR_clear_error();\n- num \u003d RSA_public_encrypt(plen, ptext_ex, ctext, key,\n- RSA_PKCS1_OAEP_PADDING);\n- if (num \u003d\u003d -1 \u0026\u0026 pad_unknown()) {\n- printf(\u0022No OAEP support\u005cn\u0022);\n- goto next;\n- }\n- if (num !\u003d clen) {\n- printf(\u0022OAEP encryption failed!\u005cn\u0022);\n- err \u003d 1;\n- goto next;\n- }\n-\n- num \u003d RSA_private_decrypt(num, ctext, ptext, key,\n- RSA_PKCS1_OAEP_PADDING);\n- if (num !\u003d plen || memcmp(ptext, ptext_ex, num) !\u003d 0) {\n- printf(\u0022OAEP decryption (encrypted data) failed!\u005cn\u0022);\n- err \u003d 1;\n- } else if (memcmp(ctext, ctext_ex, num) \u003d\u003d 0)\n- printf(\u0022OAEP test vector %d passed!\u005cn\u0022, v);\n-\n- /* Different ciphertexts. Try decrypting ctext_ex */\n- num \u003d RSA_private_decrypt(clen, ctext_ex, ptext, key,\n- RSA_PKCS1_OAEP_PADDING);\n+ key \u003d RSA_new();\n+ switch (idx) {\n+ case 0:\n+ clen \u003d key1(key, ctext_ex);\n+ break;\n+ case 1:\n+ clen \u003d key2(key, ctext_ex);\n+ break;\n+ case 2:\n+ clen \u003d key3(key, ctext_ex);\n+ break;\n+ }\n \n- if (num !\u003d plen || memcmp(ptext, ptext_ex, num) !\u003d 0) {\n- printf(\u0022OAEP decryption (test vector data) failed!\u005cn\u0022);\n- err \u003d 1;\n- } else\n- printf(\u0022OAEP encryption/decryption ok\u005cn\u0022);\n-\n- /* Try decrypting corrupted ciphertexts. */\n- for (n \u003d 0; n \u003c clen; ++n) {\n- ctext[n] ^\u003d 1;\n- num \u003d RSA_private_decrypt(clen, ctext, ptext, key,\n- RSA_PKCS1_OAEP_PADDING);\n- if (num \u003e 0) {\n- printf(\u0022Corrupt data decrypted!\u005cn\u0022);\n- err \u003d 1;\n- break;\n- }\n- ctext[n] ^\u003d 1;\n- }\n-\n- /* Test truncated ciphertexts, as well as negative length. */\n- for (n \u003d -1; n \u003c clen; ++n) {\n- num \u003d RSA_private_decrypt(n, ctext, ptext, key,\n+ num \u003d RSA_public_encrypt(plen, ptext_ex, ctext, key,\n+ RSA_PKCS1_OAEP_PADDING);\n+ if (num \u003d\u003d -1 \u0026\u0026 pad_unknown()) {\n+ TEST_info(\u0022Skipping: No OAEP support\u0022);\n+ ret \u003d 1;\n+ goto err;\n+ }\n+ if (!TEST_int_eq(num, clen))\n+ goto err;\n+\n+ num \u003d RSA_private_decrypt(num, ctext, ptext, key,\n+ RSA_PKCS1_OAEP_PADDING);\n+ if (!TEST_mem_eq(ptext, num, ptext_ex, plen))\n+ goto err;\n+\n+ /* Different ciphertexts. Try decrypting ctext_ex */\n+ num \u003d RSA_private_decrypt(clen, ctext_ex, ptext, key,\n+ RSA_PKCS1_OAEP_PADDING);\n+ if (!TEST_mem_eq(ptext, num, ptext_ex, plen))\n+ goto err;\n+\n+ /* Try decrypting corrupted ciphertexts. */\n+ for (n \u003d 0; n \u003c clen; ++n) {\n+ ctext[n] ^\u003d 1;\n+ num \u003d RSA_private_decrypt(clen, ctext, ptext, key,\n RSA_PKCS1_OAEP_PADDING);\n- if (num \u003e 0) {\n- printf(\u0022Truncated data decrypted!\u005cn\u0022);\n- err \u003d 1;\n- break;\n- }\n- }\n-\n- next:\n- RSA_free(key);\n+ if (!TEST_int_le(num, 0))\n+ goto err;\n+ ctext[n] ^\u003d 1;\n }\n \n-#ifndef OPENSSL_NO_CRYPTO_MDEBUG\n- if (CRYPTO_mem_leaks_fp(stderr) \u003c\u003d 0)\n- err \u003d 1;\n-#endif\n+ /* Test truncated ciphertexts, as well as negative length. */\n+ for (n \u003d -1; n \u003c clen; ++n) {\n+ num \u003d RSA_private_decrypt(n, ctext, ptext, key,\n+ RSA_PKCS1_OAEP_PADDING);\n+ if (!TEST_int_le(num, 0))\n+ goto err;\n+ }\n+\n+ ret \u003d 1;\n+err:\n+ RSA_free(key);\n+ return ret;\n+}\n \n- return err;\n+void register_tests(void)\n+{\n+ ADD_ALL_TESTS(test_rsa_pkcs1, 3);\n+ ADD_ALL_TESTS(test_rsa_oaep, 3);\n }\n #endif\n","s":{"c":1752655785,"u": 28363}} ],"g": 30580,"chitpc": 0,"ehitpc": 0,"indexed":0 , "ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}