xref: /freebsd/crypto/openssl/test/recipes/15-test_rsax931.t (revision e7be843b4a162e68651d3911f0357ed464915629)
1*e7be843bSPierre Pronchery#! /usr/bin/env perl
2*e7be843bSPierre Pronchery# Copyright 2023 The OpenSSL Project Authors. All Rights Reserved.
3*e7be843bSPierre Pronchery#
4*e7be843bSPierre Pronchery# Licensed under the Apache License 2.0 (the "License").  You may not use
5*e7be843bSPierre Pronchery# this file except in compliance with the License.  You can obtain a copy
6*e7be843bSPierre Pronchery# in the file LICENSE in the source distribution or at
7*e7be843bSPierre Pronchery# https://www.openssl.org/source/license.html
8*e7be843bSPierre Pronchery
9*e7be843bSPierre Proncheryuse strict;
10*e7be843bSPierre Proncheryuse warnings;
11*e7be843bSPierre Pronchery
12*e7be843bSPierre Proncheryuse OpenSSL::Test qw(:DEFAULT srctop_file);
13*e7be843bSPierre Proncheryuse OpenSSL::Test::Utils;
14*e7be843bSPierre Pronchery
15*e7be843bSPierre ProncheryBEGIN {
16*e7be843bSPierre Pronchery    setup("test_rsax931");
17*e7be843bSPierre Pronchery}
18*e7be843bSPierre Pronchery
19*e7be843bSPierre Proncheryplan tests => 6;
20*e7be843bSPierre Pronchery
21*e7be843bSPierre Proncherymy $infile = srctop_file("test", "certs", "sm2.key");
22*e7be843bSPierre Proncherymy $inkey = srctop_file("test", "testrsa2048.pem");
23*e7be843bSPierre Pronchery
24*e7be843bSPierre Proncheryok(run(app(['openssl', 'pkeyutl', '-in', $infile, '-rawin', '-inkey', $inkey,
25*e7be843bSPierre Pronchery            '-digest', 'SHA256',
26*e7be843bSPierre Pronchery            '-pkeyopt', 'pad-mode:x931',
27*e7be843bSPierre Pronchery            '-sign',
28*e7be843bSPierre Pronchery            '-out', 'sigx931.txt'])),
29*e7be843bSPierre Pronchery  "RSA Sign with x931 padding using SHA256");
30*e7be843bSPierre Pronchery
31*e7be843bSPierre Proncheryok(run(app(['openssl', 'pkeyutl', '-in', $infile, '-rawin', '-inkey', $inkey,
32*e7be843bSPierre Pronchery            '-digest', 'SHA256',
33*e7be843bSPierre Pronchery            '-pkeyopt', 'pad-mode:x931',
34*e7be843bSPierre Pronchery            '-verify',
35*e7be843bSPierre Pronchery            '-sigfile', 'sigx931.txt'])),
36*e7be843bSPierre Pronchery  "RSA Verify with x931 padding using SHA256");
37*e7be843bSPierre Pronchery
38*e7be843bSPierre Proncheryok(!run(app(['openssl', 'pkeyutl', '-in', $infile, '-rawin', '-inkey', $inkey,
39*e7be843bSPierre Pronchery             '-digest', 'SHA512',
40*e7be843bSPierre Pronchery             '-pkeyopt', 'pad-mode:x931',
41*e7be843bSPierre Pronchery             '-verify',
42*e7be843bSPierre Pronchery             '-sigfile', 'sigx931.txt'])),
43*e7be843bSPierre Pronchery  "RSA Verify with x931 padding fails if digest is different");
44*e7be843bSPierre Pronchery
45*e7be843bSPierre Proncheryok(!run(app(['openssl', 'pkeyutl', '-in', $infile, '-rawin', '-inkey', $inkey,
46*e7be843bSPierre Pronchery             '-digest', 'SHA512-256',
47*e7be843bSPierre Pronchery             '-pkeyopt', 'pad-mode:x931',
48*e7be843bSPierre Pronchery             '-sign'])),
49*e7be843bSPierre Pronchery  "RSA Sign with x931 padding using unsupported digest should fail");
50*e7be843bSPierre Pronchery
51*e7be843bSPierre Proncheryok(run(app(['openssl', 'pkeyutl', '-in', $infile, '-rawin', '-inkey', $inkey,
52*e7be843bSPierre Pronchery            '-digest', 'SHA256',
53*e7be843bSPierre Pronchery            '-pkeyopt', 'pad-mode:oaep',
54*e7be843bSPierre Pronchery            '-sign',
55*e7be843bSPierre Pronchery            '-out', 'sigoaep.txt'])),
56*e7be843bSPierre Pronchery  "RSA Sign with oaep padding using SHA256");
57*e7be843bSPierre Pronchery
58*e7be843bSPierre Proncheryok(!run(app(['openssl', 'pkeyutl', '-in', $infile, '-rawin', '-inkey', $inkey,
59*e7be843bSPierre Pronchery             '-digest', 'SHA256',
60*e7be843bSPierre Pronchery             '-pkeyopt', 'pad-mode:x931',
61*e7be843bSPierre Pronchery             '-verify',
62*e7be843bSPierre Pronchery             '-sigfile', 'sigoaep.txt'])),
63*e7be843bSPierre Pronchery  "RSA Verify with x931 padding using data signed with oaep padding should fail");
64