1 /* 2 * Copyright 2017-2020 The OpenSSL Project Authors. All Rights Reserved. 3 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. 4 * 5 * Licensed under the Apache License 2.0 (the "License"). You may not use 6 * this file except in compliance with the License. You can obtain a copy 7 * in the file LICENSE in the source distribution or at 8 * https://www.openssl.org/source/license.html 9 */ 10 11 #include <stdio.h> 12 #include <openssl/err.h> 13 #include <openssl/x509_vfy.h> 14 15 #include "testutil.h" 16 17 static int test_509_dup_cert(int n) 18 { 19 int ret = 0; 20 X509_STORE_CTX *sctx = NULL; 21 X509_STORE *store = NULL; 22 X509_LOOKUP *lookup = NULL; 23 const char *cert_f = test_get_argument(n); 24 25 if (TEST_ptr(store = X509_STORE_new()) 26 && TEST_ptr(lookup = X509_STORE_add_lookup(store, X509_LOOKUP_file())) 27 && TEST_true(X509_load_cert_file(lookup, cert_f, X509_FILETYPE_PEM)) 28 && TEST_true(X509_load_cert_file(lookup, cert_f, X509_FILETYPE_PEM))) 29 ret = 1; 30 31 X509_STORE_CTX_free(sctx); 32 X509_STORE_free(store); 33 return ret; 34 } 35 36 OPT_TEST_DECLARE_USAGE("cert.pem...\n") 37 38 int setup_tests(void) 39 { 40 size_t n; 41 42 if (!test_skip_common_options()) { 43 TEST_error("Error parsing test options\n"); 44 return 0; 45 } 46 47 n = test_get_argument_count(); 48 if (!TEST_int_gt(n, 0)) 49 return 0; 50 51 ADD_ALL_TESTS(test_509_dup_cert, n); 52 return 1; 53 } 54