Home | History | Annotate | Line # | Download | only in test
      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