diff options
Diffstat (limited to 'test/asn1_decode_test.c')
| -rw-r--r-- | test/asn1_decode_test.c | 85 |
1 files changed, 52 insertions, 33 deletions
diff --git a/test/asn1_decode_test.c b/test/asn1_decode_test.c index 04d73f350983..7796968c2389 100644 --- a/test/asn1_decode_test.c +++ b/test/asn1_decode_test.c @@ -18,16 +18,16 @@ #include "testutil.h" #ifdef __GNUC__ -# pragma GCC diagnostic ignored "-Wunused-function" +#pragma GCC diagnostic ignored "-Wunused-function" #endif #ifdef __clang__ -# pragma clang diagnostic ignored "-Wunused-function" +#pragma clang diagnostic ignored "-Wunused-function" #endif /* Badly coded ASN.1 INTEGER zero wrapped in a sequence */ static unsigned char t_invalid_zero[] = { - 0x30, 0x02, /* SEQUENCE tag + length */ - 0x02, 0x00 /* INTEGER tag + length */ + 0x30, 0x02, /* SEQUENCE tag + length */ + 0x02, 0x00 /* INTEGER tag + length */ }; #ifndef OPENSSL_NO_DEPRECATED_3_0 @@ -41,17 +41,16 @@ ASN1_SEQUENCE(ASN1_LONG_DATA) = { ASN1_EMBED(ASN1_LONG_DATA, test_long, LONG), } static_ASN1_SEQUENCE_END(ASN1_LONG_DATA) -IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_LONG_DATA) + IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_LONG_DATA) IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_LONG_DATA) static int test_long(void) { const unsigned char *p = t_invalid_zero; - ASN1_LONG_DATA *dectst = - d2i_ASN1_LONG_DATA(NULL, &p, sizeof(t_invalid_zero)); + ASN1_LONG_DATA *dectst = d2i_ASN1_LONG_DATA(NULL, &p, sizeof(t_invalid_zero)); if (dectst == NULL) - return 0; /* Fail */ + return 0; /* Fail */ ASN1_LONG_DATA_free(dectst); return 1; @@ -68,17 +67,16 @@ ASN1_SEQUENCE(ASN1_INT32_DATA) = { ASN1_EMBED(ASN1_INT32_DATA, test_int32, INT32), } static_ASN1_SEQUENCE_END(ASN1_INT32_DATA) -IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_INT32_DATA) + IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_INT32_DATA) IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_INT32_DATA) static int test_int32(void) { const unsigned char *p = t_invalid_zero; - ASN1_INT32_DATA *dectst = - d2i_ASN1_INT32_DATA(NULL, &p, sizeof(t_invalid_zero)); + ASN1_INT32_DATA *dectst = d2i_ASN1_INT32_DATA(NULL, &p, sizeof(t_invalid_zero)); if (dectst == NULL) - return 0; /* Fail */ + return 0; /* Fail */ ASN1_INT32_DATA_free(dectst); return 1; @@ -94,17 +92,16 @@ ASN1_SEQUENCE(ASN1_UINT32_DATA) = { ASN1_EMBED(ASN1_UINT32_DATA, test_uint32, UINT32), } static_ASN1_SEQUENCE_END(ASN1_UINT32_DATA) -IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_UINT32_DATA) + IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_UINT32_DATA) IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_UINT32_DATA) static int test_uint32(void) { const unsigned char *p = t_invalid_zero; - ASN1_UINT32_DATA *dectst = - d2i_ASN1_UINT32_DATA(NULL, &p, sizeof(t_invalid_zero)); + ASN1_UINT32_DATA *dectst = d2i_ASN1_UINT32_DATA(NULL, &p, sizeof(t_invalid_zero)); if (dectst == NULL) - return 0; /* Fail */ + return 0; /* Fail */ ASN1_UINT32_DATA_free(dectst); return 1; @@ -120,17 +117,16 @@ ASN1_SEQUENCE(ASN1_INT64_DATA) = { ASN1_EMBED(ASN1_INT64_DATA, test_int64, INT64), } static_ASN1_SEQUENCE_END(ASN1_INT64_DATA) -IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_INT64_DATA) + IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_INT64_DATA) IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_INT64_DATA) static int test_int64(void) { const unsigned char *p = t_invalid_zero; - ASN1_INT64_DATA *dectst = - d2i_ASN1_INT64_DATA(NULL, &p, sizeof(t_invalid_zero)); + ASN1_INT64_DATA *dectst = d2i_ASN1_INT64_DATA(NULL, &p, sizeof(t_invalid_zero)); if (dectst == NULL) - return 0; /* Fail */ + return 0; /* Fail */ ASN1_INT64_DATA_free(dectst); return 1; @@ -146,17 +142,16 @@ ASN1_SEQUENCE(ASN1_UINT64_DATA) = { ASN1_EMBED(ASN1_UINT64_DATA, test_uint64, UINT64), } static_ASN1_SEQUENCE_END(ASN1_UINT64_DATA) -IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_UINT64_DATA) + IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(ASN1_UINT64_DATA) IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(ASN1_UINT64_DATA) static int test_uint64(void) { const unsigned char *p = t_invalid_zero; - ASN1_UINT64_DATA *dectst = - d2i_ASN1_UINT64_DATA(NULL, &p, sizeof(t_invalid_zero)); + ASN1_UINT64_DATA *dectst = d2i_ASN1_UINT64_DATA(NULL, &p, sizeof(t_invalid_zero)); if (dectst == NULL) - return 0; /* Fail */ + return 0; /* Fail */ ASN1_UINT64_DATA_free(dectst); return 1; @@ -168,8 +163,21 @@ static int test_gentime(void) { /* Underflowing GeneralizedTime 161208193400Z (YYMMDDHHMMSSZ) */ const unsigned char der[] = { - 0x18, 0x0d, 0x31, 0x36, 0x31, 0x32, 0x30, 0x38, 0x31, - 0x39, 0x33, 0x34, 0x30, 0x30, 0x5a, + 0x18, + 0x0d, + 0x31, + 0x36, + 0x31, + 0x32, + 0x30, + 0x38, + 0x31, + 0x39, + 0x33, + 0x34, + 0x30, + 0x30, + 0x5a, }; const unsigned char *p; int der_len, rc = 1; @@ -192,8 +200,19 @@ static int test_utctime(void) { /* Underflowing UTCTime 0205104700Z (MMDDHHMMSSZ) */ const unsigned char der[] = { - 0x17, 0x0b, 0x30, 0x32, 0x30, 0x35, 0x31, 0x30, - 0x34, 0x37, 0x30, 0x30, 0x5a, + 0x17, + 0x0b, + 0x30, + 0x32, + 0x30, + 0x35, + 0x31, + 0x30, + 0x34, + 0x37, + 0x30, + 0x30, + 0x5a, }; const unsigned char *p; int der_len, rc = 1; @@ -224,20 +243,20 @@ ASN1_SEQUENCE(INVALIDTEMPLATE) = { ASN1_IMP(INVALIDTEMPLATE, invalidDirString, DIRECTORYSTRING, 12) } static_ASN1_SEQUENCE_END(INVALIDTEMPLATE) -IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(INVALIDTEMPLATE) + IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(INVALIDTEMPLATE) IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(INVALIDTEMPLATE) /* Empty sequence for invalid template test */ static unsigned char t_invalid_template[] = { - 0x30, 0x03, /* SEQUENCE tag + length */ - 0x0c, 0x01, 0x41 /* UTF8String, length 1, "A" */ + 0x30, 0x03, /* SEQUENCE tag + length */ + 0x0c, 0x01, 0x41 /* UTF8String, length 1, "A" */ }; static int test_invalid_template(void) { const unsigned char *p = t_invalid_template; INVALIDTEMPLATE *tmp = d2i_INVALIDTEMPLATE(NULL, &p, - sizeof(t_invalid_template)); + sizeof(t_invalid_template)); /* We expect a NULL pointer return */ if (TEST_ptr_null(tmp)) @@ -260,7 +279,7 @@ static int test_reuse_asn1_object(void) /* Create an object that owns dynamically allocated 'sn' and 'ln' fields */ if (!TEST_ptr(obj = ASN1_OBJECT_create(NID_undef, cn_der, sizeof(cn_der), - "C", "countryName"))) + "C", "countryName"))) goto err; /* reuse obj - this should not leak sn and ln */ if (!TEST_ptr(d2i_ASN1_OBJECT(&obj, &p, sizeof(oid_der)))) |
