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