summaryrefslogtreecommitdiff
path: root/tests/pkcs1-digest-info.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pkcs1-digest-info.c')
-rw-r--r--tests/pkcs1-digest-info.c141
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);
}
}
-