1#! /usr/bin/env perl 2# Copyright 2015-2023 The OpenSSL Project Authors. All Rights Reserved. 3# 4# Licensed under the Apache License 2.0 (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 10use strict; 11use warnings; 12 13use File::Spec; 14use OpenSSL::Test qw/:DEFAULT srctop_file/; 15use OpenSSL::Test::Utils; 16 17setup("test_rsa"); 18 19plan tests => 14; 20 21require_ok(srctop_file('test', 'recipes', 'tconversion.pl')); 22 23ok(run(test(["rsa_test"])), "running rsatest"); 24 25run_rsa_tests("pkey"); 26 27run_rsa_tests("rsa"); 28 29sub run_rsa_tests { 30 my $cmd = shift; 31 32 ok(run(app([ 'openssl', $cmd, '-check', '-in', srctop_file('test', 'testrsa.pem'), '-noout'])), 33 "$cmd -check" ); 34 35 SKIP: { 36 skip "Skipping Deprecated rsa_x931_test", 1 if disabled("deprecated-3.0"); 37 ok(run(test(['rsa_x931_test'])), "RSA X931 test"); 38 }; 39 40 SKIP: { 41 skip "Skipping $cmd conversion test", 3 42 if disabled("rsa"); 43 44 subtest "$cmd conversions -- private key" => sub { 45 tconversion( -type => $cmd, -prefix => "$cmd-priv", 46 -in => srctop_file("test", "testrsa.pem") ); 47 }; 48 subtest "$cmd conversions -- private key PKCS#8" => sub { 49 tconversion( -type => $cmd, -prefix => "$cmd-pkcs8", 50 -in => srctop_file("test", "testrsa.pem"), 51 -args => ["pkey"] ); 52 }; 53 } 54 55 SKIP: { 56 skip "Skipping msblob conversion test", 1 57 if disabled($cmd) || $cmd eq 'pkey'; 58 59 subtest "$cmd conversions -- public key" => sub { 60 tconversion( -type => 'msb', -prefix => "$cmd-msb-pub", 61 -in => srctop_file("test", "testrsapub.pem"), 62 -args => ["rsa", "-pubin", "-pubout"] ); 63 }; 64 } 65 SKIP: { 66 skip "Skipping PVK conversion test", 1 67 if disabled($cmd) || $cmd eq 'pkey' || disabled("rc4") 68 || disabled ("legacy"); 69 70 subtest "$cmd conversions -- private key" => sub { 71 tconversion( -type => 'pvk', -prefix => "$cmd-pvk", 72 -in => srctop_file("test", "testrsa.pem"), 73 -args => ["rsa", "-passin", "pass:testpass", 74 "-passout", "pass:testpass", 75 "-provider", "default", 76 "-provider", "legacy"] ); 77 }; 78 } 79} 80