diff options
Diffstat (limited to 'tests/pkcs1-digest-info.c')
-rw-r--r-- | tests/pkcs1-digest-info.c | 141 |
1 files changed, 87 insertions, 54 deletions
diff --git a/tests/pkcs1-digest-info.c b/tests/pkcs1-digest-info.c index 7557dd7680..f137361c66 100644 --- a/tests/pkcs1-digest-info.c +++ b/tests/pkcs1-digest-info.c @@ -22,7 +22,7 @@ /* Parts copied from GnuTLS example programs. */ #ifdef HAVE_CONFIG_H -#include <config.h> +# include <config.h> #endif #include <stdio.h> @@ -35,7 +35,8 @@ #include "utils.h" -static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const gnutls_datum_t *raw, const gnutls_datum_t *expected) +static void encode(const char *test_name, gnutls_digest_algorithm_t hash, + const gnutls_datum_t * raw, const gnutls_datum_t * expected) { int ret; gnutls_datum_t out; @@ -45,11 +46,12 @@ static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const ret = gnutls_encode_ber_digest_info(hash, raw, &out); if (ret < 0) { - fail("%s: gnutls_encode_ber_digest_info: %s\n", test_name, gnutls_strerror(ret)); + fail("%s: gnutls_encode_ber_digest_info: %s\n", test_name, + gnutls_strerror(ret)); exit(1); } - if (expected->size!=out.size) { + if (expected->size != out.size) { hexprint(out.data, out.size); fail("%s: gnutls_encode_ber_digest_info: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, expected->size); exit(1); @@ -64,7 +66,8 @@ static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const digest_size = sizeof(digest); ret = gnutls_decode_ber_digest_info(&out, &thash, digest, &digest_size); if (ret < 0) { - fail("%s: gnutls_decode_ber_digest_info: %s\n", test_name, gnutls_strerror(ret)); + fail("%s: gnutls_decode_ber_digest_info: %s\n", test_name, + gnutls_strerror(ret)); exit(1); } @@ -73,7 +76,7 @@ static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const exit(1); } - if (raw->size!=digest_size) { + if (raw->size != digest_size) { fail("%s: gnutls_decode_ber_digest_info: output has incorrect size (%d, expected %d)\n", test_name, digest_size, raw->size); exit(1); } @@ -88,7 +91,9 @@ static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const return; } -static void decode(const char *test_name, gnutls_digest_algorithm_t hash, const gnutls_datum_t *raw, const gnutls_datum_t *di, int res) +static void decode(const char *test_name, gnutls_digest_algorithm_t hash, + const gnutls_datum_t * raw, const gnutls_datum_t * di, + int res) { int ret; uint8_t digest[128]; @@ -98,7 +103,8 @@ static void decode(const char *test_name, gnutls_digest_algorithm_t hash, const digest_size = sizeof(digest); ret = gnutls_decode_ber_digest_info(di, &thash, digest, &digest_size); if (res != ret) { - fail("%s: gnutls_decode_ber_digest_info: %s\n", test_name, gnutls_strerror(ret)); + fail("%s: gnutls_decode_ber_digest_info: %s\n", test_name, + gnutls_strerror(ret)); exit(1); } @@ -111,7 +117,7 @@ static void decode(const char *test_name, gnutls_digest_algorithm_t hash, const exit(1); } - if (raw->size!=digest_size) { + if (raw->size != digest_size) { fail("%s: gnutls_decode_ber_digest_info: output has incorrect size (%d, expected %d)\n", test_name, digest_size, raw->size); exit(1); } @@ -133,17 +139,25 @@ struct encode_tests_st { struct encode_tests_st encode_tests[] = { { - .name = "rnd1", - .hash = GNUTLS_DIG_SHA1, - .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12", 20}, - .di = {(void*)"\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12",35} - }, + .name = "rnd1", + .hash = GNUTLS_DIG_SHA1, + .raw = {(void *) + "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12", + 20}, + .di = {(void *) + "\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12", + 35} + }, { - .name = "rnd2", - .hash = GNUTLS_DIG_SHA256, - .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32}, - .di = {(void*)"\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",51} - } + .name = "rnd2", + .hash = GNUTLS_DIG_SHA256, + .raw = {(void *) + "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", + 32}, + .di = {(void *) + "\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", + 51} + } }; struct decode_tests_st { @@ -156,52 +170,71 @@ struct decode_tests_st { struct decode_tests_st decode_tests[] = { { - .name = "dec-rnd1", - .hash = GNUTLS_DIG_SHA1, - .di = {(void*)"\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12",35}, - .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12", 20}, - .res = 0, - }, + .name = "dec-rnd1", + .hash = GNUTLS_DIG_SHA1, + .di = {(void *) + "\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12", + 35}, + .raw = {(void *) + "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12", + 20}, + .res = 0, + }, { - .name = "dec-rnd2", - .hash = GNUTLS_DIG_SHA256, - .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32}, - .di = {(void*)"\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",51}, - .res = 0, - }, + .name = "dec-rnd2", + .hash = GNUTLS_DIG_SHA256, + .raw = {(void *) + "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", + 32}, + .di = {(void *) + "\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", + 51}, + .res = 0, + }, { - .name = "dec-wrong-tag", - .hash = GNUTLS_DIG_SHA256, - .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32}, - .di = {(void*)"\x31\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",51}, - .res = GNUTLS_E_ASN1_TAG_ERROR - }, + .name = "dec-wrong-tag", + .hash = GNUTLS_DIG_SHA256, + .raw = {(void *) + "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", + 32}, + .di = {(void *) + "\x31\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", + 51}, + .res = GNUTLS_E_ASN1_TAG_ERROR}, { - .name = "dec-wrong-der", - .hash = GNUTLS_DIG_SHA256, - .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32}, - .di = {(void*)"\x30\x31\x30\x0c\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x86\xe3\xf9\x25",51}, - .res = GNUTLS_E_ASN1_DER_ERROR - }, + .name = "dec-wrong-der", + .hash = GNUTLS_DIG_SHA256, + .raw = {(void *) + "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", + 32}, + .di = {(void *) + "\x30\x31\x30\x0c\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x86\xe3\xf9\x25", + 51}, + .res = GNUTLS_E_ASN1_DER_ERROR}, { - .name = "dec-wrong-hash", - .hash = GNUTLS_DIG_SHA256, - .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32}, - .di = {(void*)"\x30\x31\x30\x0d\x06\x09\x61\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x86\xe3\xf9\x25",51}, - .res = GNUTLS_E_UNKNOWN_HASH_ALGORITHM - }, + .name = "dec-wrong-hash", + .hash = GNUTLS_DIG_SHA256, + .raw = {(void *) + "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", + 32}, + .di = {(void *) + "\x30\x31\x30\x0d\x06\x09\x61\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x86\xe3\xf9\x25", + 51}, + .res = GNUTLS_E_UNKNOWN_HASH_ALGORITHM}, }; void doit(void) { unsigned i; - for (i=0;i<sizeof(encode_tests)/sizeof(encode_tests[0]);i++) { - encode(encode_tests[i].name, encode_tests[i].hash, &encode_tests[i].raw, &encode_tests[i].di); + for (i = 0; i < sizeof(encode_tests) / sizeof(encode_tests[0]); i++) { + encode(encode_tests[i].name, encode_tests[i].hash, + &encode_tests[i].raw, &encode_tests[i].di); } - for (i=0;i<sizeof(decode_tests)/sizeof(decode_tests[0]);i++) { - decode(decode_tests[i].name, decode_tests[i].hash, &decode_tests[i].raw, &decode_tests[i].di, decode_tests[i].res); + for (i = 0; i < sizeof(decode_tests) / sizeof(decode_tests[0]); i++) { + decode(decode_tests[i].name, decode_tests[i].hash, + &decode_tests[i].raw, &decode_tests[i].di, + decode_tests[i].res); } } - |