summaryrefslogtreecommitdiff
path: root/src/crypto/x509v3
diff options
context:
space:
mode:
authorRobert Sloan <varomodt@google.com>2017-07-17 07:08:26 -0700
committerRobert Sloan <varomodt@google.com>2017-07-17 07:09:27 -0700
commita12bf4695c4916207f946efafd9728eb941e3f0a (patch)
tree400d82d79f6c1c00e115546ab5893840169aa347 /src/crypto/x509v3
parentf6200e70eccb73d7a8a6940d081918f5a2b98fad (diff)
downloadboringssl-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.txt22
-rw-r--r--src/crypto/x509v3/ext_dat.h8
-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);
}