Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions t/padding.t
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@ use Test::More;

use Crypt::OpenSSL::Random;
use Crypt::OpenSSL::RSA;
use Crypt::OpenSSL::Guess qw(openssl_version);
use Crypt::OpenSSL::Guess qw(openssl_version find_openssl_prefix find_openssl_exec);

my ($major, $minor, $patch) = openssl_version;
my $is_libressl = (`"@{[find_openssl_exec(find_openssl_prefix())]}" version` =~ /LibreSSL/);

BEGIN {
plan tests => 124 + ( UNIVERSAL::can( "Crypt::OpenSSL::RSA", "use_sha512_hash" ) ? 4 * 5 : 0 );
Expand Down Expand Up @@ -82,10 +83,10 @@ is( $rsa_priv->decrypt( $rsa_priv->encrypt($plaintext) ), $plaintext, "private k
my $rsa_pub = Crypt::OpenSSL::RSA->new_public_key($public_key_string);

$plaintext .= $plaintext x 5;
# sslv23 is unsupported on OpenSSL 3.x
# sslv23 is unsupported on OpenSSL 3.x but LibreSSL still supports it
SKIP: {
skip "OpenSSL version less than 3.0 supports sslv23", 2
if $major lt '3.0';
skip "sslv23 is available on OpenSSL < 3.0 and LibreSSL", 2
if $major lt '3.0' || $is_libressl;
eval {
$rsa->use_sslv23_padding;
};
Expand Down
8 changes: 5 additions & 3 deletions t/pkcs1_sign.t
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ use Test::More;
use Crypt::OpenSSL::Random;
use Crypt::OpenSSL::RSA;

use Crypt::OpenSSL::Guess qw(openssl_version);
use Crypt::OpenSSL::Guess qw(openssl_version find_openssl_prefix find_openssl_exec);

my ($major, $minor, $patch) = openssl_version();
my $is_libressl = (`"@{[find_openssl_exec(find_openssl_prefix())]}" version` =~ /LibreSSL/);

# Regression tests for PKCS#1 v1.5 signing (RSASSA-PKCS1-v1_5).
# Issue #146: PKCS#1 v1.5 was disabled entirely in v0.35 to mitigate
Expand Down Expand Up @@ -62,9 +63,10 @@ SKIP: {
}

# --- Cross-padding: sign with PKCS1, verify with PSS must fail ---
# On pre-3.x and LibreSSL, RSA_verify ignores the padding mode setting
SKIP: {
skip "sign uses pkcs1_padding only on OpenSSL < 3.x", 1
if $major < 3;
skip "cross-padding test requires OpenSSL 3.x (not LibreSSL)", 1
if $major < 3 || $is_libressl;
$rsa->use_pkcs1_padding();
$rsa->use_sha256_hash();
my $sig = $rsa->sign("cross-padding test");
Expand Down
Loading