1 /* 2 * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 /* Internal tests for the x509 and x509v3 modules */ 11 12 #include <stdio.h> 13 #include <string.h> 14 15 #include <openssl/x509.h> 16 #include <openssl/x509v3.h> 17 #include "testutil.h" 18 #include "internal/nelem.h" 19 20 /********************************************************************** 21 * 22 * Test of x509v3 23 * 24 ***/ 25 26 #ifdef __VMS 27 # pragma names save 28 # pragma names as_is,shortened 29 #endif 30 31 #include "../crypto/x509v3/ext_dat.h" 32 #include "../crypto/x509v3/standard_exts.h" 33 34 #ifdef __VMS 35 # pragma names restore 36 #endif 37 test_standard_exts(void)38static int test_standard_exts(void) 39 { 40 size_t i; 41 int prev = -1, good = 1; 42 const X509V3_EXT_METHOD **tmp; 43 44 tmp = standard_exts; 45 for (i = 0; i < OSSL_NELEM(standard_exts); i++, tmp++) { 46 if ((*tmp)->ext_nid < prev) 47 good = 0; 48 prev = (*tmp)->ext_nid; 49 50 } 51 if (!good) { 52 tmp = standard_exts; 53 TEST_error("Extensions out of order!"); 54 for (i = 0; i < STANDARD_EXTENSION_COUNT; i++, tmp++) 55 TEST_note("%d : %s", (*tmp)->ext_nid, OBJ_nid2sn((*tmp)->ext_nid)); 56 } 57 return good; 58 } 59 setup_tests(void)60int setup_tests(void) 61 { 62 ADD_TEST(test_standard_exts); 63 return 1; 64 } 65