diff options
author | Robert Sloan <varomodt@google.com> | 2017-07-17 07:08:26 -0700 |
---|---|---|
committer | Robert Sloan <varomodt@google.com> | 2017-07-17 07:09:27 -0700 |
commit | a12bf4695c4916207f946efafd9728eb941e3f0a (patch) | |
tree | 400d82d79f6c1c00e115546ab5893840169aa347 /src/crypto/x509v3 | |
parent | f6200e70eccb73d7a8a6940d081918f5a2b98fad (diff) | |
download | boringssl-a12bf4695c4916207f946efafd9728eb941e3f0a.tar.gz |
external/boringssl: Sync to 14308731e5446a73ac2258688a9688b524483cb6.
This includes the following changes:
https://boringssl.googlesource.com/boringssl/+log/ee7aa02744a78bf4630913b1c83d0fe36aa45efc..14308731e5446a73ac2258688a9688b524483cb6
Test: BoringSSL CTS Presubmits.
Change-Id: I73bf80fa018c2a65ca9842f1c2f95d64586bdffc
Diffstat (limited to 'src/crypto/x509v3')
-rw-r--r-- | src/crypto/x509v3/CMakeLists.txt | 22 | ||||
-rw-r--r-- | src/crypto/x509v3/ext_dat.h | 8 | ||||
-rw-r--r-- | src/crypto/x509v3/tab_test.cc (renamed from src/crypto/x509v3/tab_test.c) | 56 | ||||
-rw-r--r-- | src/crypto/x509v3/v3name_test.cc (renamed from src/crypto/x509v3/v3name_test.c) | 30 |
4 files changed, 31 insertions, 85 deletions
diff --git a/src/crypto/x509v3/CMakeLists.txt b/src/crypto/x509v3/CMakeLists.txt index cf2474a4..b2eb6189 100644 --- a/src/crypto/x509v3/CMakeLists.txt +++ b/src/crypto/x509v3/CMakeLists.txt @@ -42,25 +42,3 @@ add_library( v3_sxnet.c v3_utl.c ) - -add_executable( - v3name_test - - v3name_test.c - - $<TARGET_OBJECTS:test_support> -) - -target_link_libraries(v3name_test crypto) -add_dependencies(all_tests v3name_test) - -add_executable( - tab_test - - tab_test.c - - $<TARGET_OBJECTS:test_support> -) - -target_link_libraries(tab_test crypto) -add_dependencies(all_tests tab_test) diff --git a/src/crypto/x509v3/ext_dat.h b/src/crypto/x509v3/ext_dat.h index 9ece19c5..78fa7936 100644 --- a/src/crypto/x509v3/ext_dat.h +++ b/src/crypto/x509v3/ext_dat.h @@ -56,6 +56,10 @@ /* This file contains a table of "standard" extensions */ +#if defined(__cplusplus) +extern "C" { +#endif + extern const X509V3_EXT_METHOD v3_bcons, v3_nscert, v3_key_usage, v3_ext_ku; extern const X509V3_EXT_METHOD v3_pkey_usage_period, v3_sxnet, v3_info, v3_sinfo; @@ -133,3 +137,7 @@ static const X509V3_EXT_METHOD *const standard_exts[] = { /* Number of standard extensions */ #define STANDARD_EXTENSION_COUNT (sizeof(standard_exts)/sizeof(X509V3_EXT_METHOD *)) + +#if defined(__cplusplus) +} /* extern C */ +#endif diff --git a/src/crypto/x509v3/tab_test.c b/src/crypto/x509v3/tab_test.cc index 19005474..bf91a265 100644 --- a/src/crypto/x509v3/tab_test.c +++ b/src/crypto/x509v3/tab_test.cc @@ -57,52 +57,22 @@ * */ -/* - * Simple program to check the ext_dat.h is correct and print out problems if - * it is not. - */ +#if !defined(BORINGSSL_SHARED_LIBRARY) -#include <stdio.h> +#include <gtest/gtest.h> -#include <openssl/base.h> -#include <openssl/crypto.h> -#include <openssl/obj.h> #include <openssl/x509v3.h> -#if !defined(BORINGSSL_SHARED_LIBRARY) -# include "ext_dat.h" -#endif +#include "../internal.h" +#include "ext_dat.h" -int main(void) -{ -#if !defined(BORINGSSL_SHARED_LIBRARY) - unsigned i; - int prev = -1, bad = 0; - const X509V3_EXT_METHOD *const *tmp; - CRYPTO_library_init(); - i = sizeof(standard_exts) / sizeof(X509V3_EXT_METHOD *); - if (i != STANDARD_EXTENSION_COUNT) - fprintf(stderr, "Extension number invalid expecting %d\n", i); - tmp = standard_exts; - for (i = 0; i < STANDARD_EXTENSION_COUNT; i++, tmp++) { - if ((*tmp)->ext_nid < prev) - bad = 1; - prev = (*tmp)->ext_nid; - - } - if (bad) { - tmp = standard_exts; - fprintf(stderr, "Extensions out of order!\n"); - for (i = 0; i < STANDARD_EXTENSION_COUNT; i++, tmp++) - printf("%d : %s\n", (*tmp)->ext_nid, OBJ_nid2sn((*tmp)->ext_nid)); - return 1; - } else { - printf("PASS\n"); - return 0; - } -#else - /* TODO(davidben): Fix this test in the shared library build. */ - printf("PASS\n"); - return 0; -#endif +// Check ext_data.h is correct. +TEST(X509V3Test, TabTest) { + EXPECT_EQ(OPENSSL_ARRAY_SIZE(standard_exts), STANDARD_EXTENSION_COUNT); + for (size_t i = 1; i < OPENSSL_ARRAY_SIZE(standard_exts); i++) { + SCOPED_TRACE(i); + EXPECT_LT(standard_exts[i-1]->ext_nid, standard_exts[i]->ext_nid); + } } + +#endif // !BORINGSSL_SHARED_LIBRARY diff --git a/src/crypto/x509v3/v3name_test.c b/src/crypto/x509v3/v3name_test.cc index 959b924d..0736120f 100644 --- a/src/crypto/x509v3/v3name_test.c +++ b/src/crypto/x509v3/v3name_test.cc @@ -57,6 +57,8 @@ #include <stdarg.h> #include <string.h> +#include <gtest/gtest.h> + #include <openssl/crypto.h> #include <openssl/mem.h> #include <openssl/x509.h> @@ -335,7 +337,7 @@ static void run_cert(X509 *crt, const char *nameincert, while (*pname) { int samename = OPENSSL_strcasecmp(nameincert, *pname) == 0; size_t namelen = strlen(*pname); - char *name = malloc(namelen); + char *name = (char *)malloc(namelen); int match, ret; OPENSSL_memcpy(name, *pname, namelen); @@ -383,31 +385,19 @@ static void run_cert(X509 *crt, const char *nameincert, } } -int main(void) -{ - CRYPTO_library_init(); - +// TOOD(davidben): Convert this test to GTest more thoroughly. +TEST(X509V3Test, NameTest) { const struct set_name_fn *pfn = name_fns; while (pfn->name) { const char *const *pname = names; while (*pname) { - X509 *crt = make_cert(); - if (crt == NULL) { - fprintf(stderr, "make_cert failed\n"); - return 1; - } - if (!pfn->fn(crt, *pname)) { - fprintf(stderr, "X509 name setting failed\n"); - return 1; - } - run_cert(crt, *pname, pfn); - X509_free(crt); + bssl::UniquePtr<X509> crt(make_cert()); + ASSERT_TRUE(crt); + ASSERT_TRUE(pfn->fn(crt.get(), *pname)); + run_cert(crt.get(), *pname, pfn); ++pname; } ++pfn; } - if (errors == 0) { - printf("PASS\n"); - } - return errors > 0 ? 1 : 0; + EXPECT_EQ(0, errors); } |