1*e0c4386eSCy Schubert#! /usr/bin/env perl 2*e0c4386eSCy Schubert# Copyright 2017-2021 The OpenSSL Project Authors. All Rights Reserved. 3*e0c4386eSCy Schubert# 4*e0c4386eSCy Schubert# Licensed under the Apache License 2.0 (the "License"). You may not use 5*e0c4386eSCy Schubert# this file except in compliance with the License. You can obtain a copy 6*e0c4386eSCy Schubert# in the file LICENSE in the source distribution or at 7*e0c4386eSCy Schubert# https://www.openssl.org/source/license.html 8*e0c4386eSCy Schubert 9*e0c4386eSCy Schubert 10*e0c4386eSCy Schubertuse OpenSSL::Test qw/:DEFAULT srctop_file/; 11*e0c4386eSCy Schubertuse OpenSSL::Test::Utils; 12*e0c4386eSCy Schubert 13*e0c4386eSCy Schubertsetup("test_x509_check_cert_pkey"); 14*e0c4386eSCy Schubert 15*e0c4386eSCy Schubertplan tests => 11; 16*e0c4386eSCy Schubert 17*e0c4386eSCy Schubertsub src_file { 18*e0c4386eSCy Schubert return srctop_file("test", "certs", shift); 19*e0c4386eSCy Schubert} 20*e0c4386eSCy Schubert 21*e0c4386eSCy Schubertsub test_PEM_X509_INFO_read { 22*e0c4386eSCy Schubert my $file = shift; 23*e0c4386eSCy Schubert my $num = shift; 24*e0c4386eSCy Schubert ok(run(test(["x509_check_cert_pkey_test", src_file($file), $num])), 25*e0c4386eSCy Schubert "test_PEM_X509_INFO_read $file"); 26*e0c4386eSCy Schubert} 27*e0c4386eSCy Schubert 28*e0c4386eSCy Schubert# rsa 29*e0c4386eSCy Schubertok(run(test(["x509_check_cert_pkey_test", 30*e0c4386eSCy Schubert src_file("servercert.pem"), 31*e0c4386eSCy Schubert src_file("serverkey.pem"), "cert", "ok"]))); 32*e0c4386eSCy Schubert# mismatched rsa 33*e0c4386eSCy Schubertok(run(test(["x509_check_cert_pkey_test", 34*e0c4386eSCy Schubert src_file("servercert.pem"), 35*e0c4386eSCy Schubert src_file("wrongkey.pem"), "cert", "failed"]))); 36*e0c4386eSCy SchubertSKIP: { 37*e0c4386eSCy Schubert skip "DSA disabled", 1, if disabled("dsa"); 38*e0c4386eSCy Schubert # dsa 39*e0c4386eSCy Schubert ok(run(test(["x509_check_cert_pkey_test", 40*e0c4386eSCy Schubert src_file("server-dsa-cert.pem"), 41*e0c4386eSCy Schubert src_file("server-dsa-key.pem"), "cert", "ok"]))); 42*e0c4386eSCy Schubert} 43*e0c4386eSCy Schubert# ecc 44*e0c4386eSCy SchubertSKIP: { 45*e0c4386eSCy Schubert skip "EC disabled", 2 if disabled("ec"); 46*e0c4386eSCy Schubert ok(run(test(["x509_check_cert_pkey_test", 47*e0c4386eSCy Schubert src_file("server-ecdsa-cert.pem"), 48*e0c4386eSCy Schubert src_file("server-ecdsa-key.pem"), "cert", "ok"]))); 49*e0c4386eSCy Schubert 50*e0c4386eSCy Schubert test_PEM_X509_INFO_read("ec_privkey_with_chain.pem", "5"); 51*e0c4386eSCy Schubert 52*e0c4386eSCy Schubert} 53*e0c4386eSCy Schubert# certificate request (rsa) 54*e0c4386eSCy Schubertok(run(test(["x509_check_cert_pkey_test", 55*e0c4386eSCy Schubert src_file("x509-check.csr"), 56*e0c4386eSCy Schubert src_file("x509-check-key.pem"), "req", "ok"]))); 57*e0c4386eSCy Schubert# mismatched certificate request (rsa) 58*e0c4386eSCy Schubertok(run(test(["x509_check_cert_pkey_test", 59*e0c4386eSCy Schubert src_file("x509-check.csr"), 60*e0c4386eSCy Schubert src_file("wrongkey.pem"), "req", "failed"]))); 61*e0c4386eSCy Schubert 62*e0c4386eSCy Schuberttest_PEM_X509_INFO_read("root-cert.pem", "1"); 63*e0c4386eSCy Schuberttest_PEM_X509_INFO_read("root-key.pem", "1"); 64*e0c4386eSCy Schuberttest_PEM_X509_INFO_read("key-pass-12345.pem", "1"); 65*e0c4386eSCy Schuberttest_PEM_X509_INFO_read("cyrillic_crl.utf8", "1"); 66