mirror of https://github.com/openssl/openssl.git
Compare commits
3 Commits
95a59fc8fe
...
a4e0c31a7e
Author | SHA1 | Date |
---|---|---|
|
a4e0c31a7e | |
|
b8c46cba5f | |
|
5557a1c5f0 |
|
@ -210,6 +210,88 @@ ___
|
|||
return $code;
|
||||
}
|
||||
|
||||
# aes-128 decryption with round keys v1-v11
|
||||
sub aes_128_decrypt_6 {
|
||||
my $code=<<___;
|
||||
@{[vaesz_vs $V24, $V11]} # with round key w[40,43]
|
||||
@{[vaesz_vs $V25, $V11]} # with round key w[40,43]
|
||||
@{[vaesz_vs $V26, $V11]} # with round key w[40,43]
|
||||
@{[vaesz_vs $V27, $V11]} # with round key w[40,43]
|
||||
@{[vaesz_vs $V28, $V11]} # with round key w[40,43]
|
||||
@{[vaesz_vs $V29, $V11]} # with round key w[40,43]
|
||||
@{[vaesdm_vs $V24, $V10]} # with round key w[36,39]
|
||||
@{[vaesdm_vs $V25, $V10]} # with round key w[36,39]
|
||||
@{[vaesdm_vs $V26, $V10]} # with round key w[36,39]
|
||||
@{[vaesdm_vs $V27, $V10]} # with round key w[36,39]
|
||||
@{[vaesdm_vs $V28, $V10]} # with round key w[36,39]
|
||||
@{[vaesdm_vs $V29, $V10]} # with round key w[36,39]
|
||||
@{[vaesdm_vs $V24, $V9]} # with round key w[32,35]
|
||||
@{[vaesdm_vs $V25, $V9]} # with round key w[32,35]
|
||||
@{[vaesdm_vs $V26, $V9]} # with round key w[32,35]
|
||||
@{[vaesdm_vs $V27, $V9]} # with round key w[32,35]
|
||||
@{[vaesdm_vs $V28, $V9]} # with round key w[32,35]
|
||||
@{[vaesdm_vs $V29, $V9]} # with round key w[32,35]
|
||||
|
||||
@{[vaesdm_vs $V24, $V8]} # with round key w[28,31]
|
||||
@{[vaesdm_vs $V25, $V8]} # with round key w[28,31]
|
||||
@{[vaesdm_vs $V26, $V8]} # with round key w[28,31]
|
||||
@{[vaesdm_vs $V27, $V8]} # with round key w[28,31]
|
||||
@{[vaesdm_vs $V28, $V8]} # with round key w[28,31]
|
||||
@{[vaesdm_vs $V29, $V8]} # with round key w[28,31]
|
||||
|
||||
@{[vaesdm_vs $V24, $V7]} # with round key w[24,27]
|
||||
@{[vaesdm_vs $V25, $V7]} # with round key w[24,27]
|
||||
@{[vaesdm_vs $V26, $V7]} # with round key w[24,27]
|
||||
@{[vaesdm_vs $V27, $V7]} # with round key w[24,27]
|
||||
@{[vaesdm_vs $V28, $V7]} # with round key w[24,27]
|
||||
@{[vaesdm_vs $V29, $V7]} # with round key w[24,27]
|
||||
|
||||
@{[vaesdm_vs $V24, $V6]} # with round key w[20,23]
|
||||
@{[vaesdm_vs $V25, $V6]} # with round key w[20,23]
|
||||
@{[vaesdm_vs $V26, $V6]} # with round key w[20,23]
|
||||
@{[vaesdm_vs $V27, $V6]} # with round key w[20,23]
|
||||
@{[vaesdm_vs $V28, $V6]} # with round key w[20,23]
|
||||
@{[vaesdm_vs $V29, $V6]} # with round key w[20,23]
|
||||
|
||||
@{[vaesdm_vs $V24, $V5]} # with round key w[16,19]
|
||||
@{[vaesdm_vs $V25, $V5]} # with round key w[16,19]
|
||||
@{[vaesdm_vs $V26, $V5]} # with round key w[16,19]
|
||||
@{[vaesdm_vs $V27, $V5]} # with round key w[16,19]
|
||||
@{[vaesdm_vs $V28, $V5]} # with round key w[16,19]
|
||||
@{[vaesdm_vs $V29, $V5]} # with round key w[16,19]
|
||||
|
||||
@{[vaesdm_vs $V24, $V4]} # with round key w[12,15]
|
||||
@{[vaesdm_vs $V25, $V4]} # with round key w[12,15]
|
||||
@{[vaesdm_vs $V26, $V4]} # with round key w[12,15]
|
||||
@{[vaesdm_vs $V27, $V4]} # with round key w[12,15]
|
||||
@{[vaesdm_vs $V28, $V4]} # with round key w[12,15]
|
||||
@{[vaesdm_vs $V29, $V4]} # with round key w[12,15]
|
||||
|
||||
@{[vaesdm_vs $V24, $V3]} # with round key w[ 8,11]
|
||||
@{[vaesdm_vs $V25, $V3]} # with round key w[ 8,11]
|
||||
@{[vaesdm_vs $V26, $V3]} # with round key w[ 8,11]
|
||||
@{[vaesdm_vs $V27, $V3]} # with round key w[ 8,11]
|
||||
@{[vaesdm_vs $V28, $V3]} # with round key w[ 8,11]
|
||||
@{[vaesdm_vs $V29, $V3]} # with round key w[ 8,11]
|
||||
|
||||
@{[vaesdm_vs $V24, $V2]} # with round key w[ 4, 7]
|
||||
@{[vaesdm_vs $V25, $V2]} # with round key w[ 4, 7]
|
||||
@{[vaesdm_vs $V26, $V2]} # with round key w[ 4, 7]
|
||||
@{[vaesdm_vs $V27, $V2]} # with round key w[ 4, 7]
|
||||
@{[vaesdm_vs $V28, $V2]} # with round key w[ 4, 7]
|
||||
@{[vaesdm_vs $V29, $V2]} # with round key w[ 4, 7]
|
||||
|
||||
@{[vaesdf_vs $V24, $V1]} # with round key w[ 0, 3]
|
||||
@{[vaesdf_vs $V25, $V1]} # with round key w[ 0, 3]
|
||||
@{[vaesdf_vs $V26, $V1]} # with round key w[ 0, 3]
|
||||
@{[vaesdf_vs $V27, $V1]} # with round key w[ 0, 3]
|
||||
@{[vaesdf_vs $V28, $V1]} # with round key w[ 0, 3]
|
||||
@{[vaesdf_vs $V29, $V1]} # with round key w[ 0, 3]
|
||||
___
|
||||
|
||||
return $code;
|
||||
}
|
||||
|
||||
# aes-192 encryption with round keys v1-v13
|
||||
sub aes_192_encrypt {
|
||||
my $code=<<___;
|
||||
|
@ -481,6 +563,61 @@ L_cbc_dec_128:
|
|||
# Load IV.
|
||||
@{[vle32_v $V16, $IVP]}
|
||||
|
||||
li $T1, 96
|
||||
3:
|
||||
blt $LEN, $T1, L_small
|
||||
|
||||
@{[vle32_v $V24, $INP]}
|
||||
addi $INP, $INP, 16
|
||||
@{[vle32_v $V25, $INP]}
|
||||
addi $INP, $INP, 16
|
||||
@{[vle32_v $V26, $INP]}
|
||||
addi $INP, $INP, 16
|
||||
@{[vle32_v $V27, $INP]}
|
||||
addi $INP, $INP, 16
|
||||
@{[vle32_v $V28, $INP]}
|
||||
addi $INP, $INP, 16
|
||||
@{[vle32_v $V29, $INP]}
|
||||
addi $INP, $INP, 16
|
||||
@{[vmv_v_v $V17, $V24]}
|
||||
@{[vmv_v_v $V18, $V25]}
|
||||
@{[vmv_v_v $V19, $V26]}
|
||||
@{[vmv_v_v $V20, $V27]}
|
||||
@{[vmv_v_v $V21, $V28]}
|
||||
@{[vmv_v_v $V22, $V29]}
|
||||
|
||||
@{[aes_128_decrypt_6]}
|
||||
|
||||
@{[vxor_vv $V24, $V24, $V16]}
|
||||
@{[vxor_vv $V25, $V25, $V17]}
|
||||
@{[vxor_vv $V26, $V26, $V18]}
|
||||
@{[vxor_vv $V27, $V27, $V19]}
|
||||
@{[vxor_vv $V28, $V28, $V20]}
|
||||
@{[vxor_vv $V29, $V29, $V21]}
|
||||
|
||||
@{[vse32_v $V24, $OUTP]}
|
||||
addi $OUTP, $OUTP, 16
|
||||
@{[vse32_v $V25, $OUTP]}
|
||||
addi $OUTP, $OUTP, 16
|
||||
@{[vse32_v $V26, $OUTP]}
|
||||
addi $OUTP, $OUTP, 16
|
||||
@{[vse32_v $V27, $OUTP]}
|
||||
addi $OUTP, $OUTP, 16
|
||||
@{[vse32_v $V28, $OUTP]}
|
||||
addi $OUTP, $OUTP, 16
|
||||
@{[vse32_v $V29, $OUTP]}
|
||||
addi $OUTP, $OUTP, 16
|
||||
|
||||
@{[vmv_v_v $V16, $V22]}
|
||||
|
||||
addi $LEN, $LEN, -96
|
||||
|
||||
bnez $LEN, 3b
|
||||
@{[vse32_v $V16, $IVP]}
|
||||
|
||||
ret
|
||||
|
||||
L_small:
|
||||
@{[vle32_v $V24, $INP]}
|
||||
@{[vmv_v_v $V17, $V24]}
|
||||
j 2f
|
||||
|
|
|
@ -43,6 +43,7 @@ my @config = ( );
|
|||
my $provname = 'default';
|
||||
my $dsaallow = '1';
|
||||
my $no_pqc = 0;
|
||||
my $no_hkdf_fixed = 0;
|
||||
|
||||
my $datadir = srctop_dir("test", "recipes", "80-test_cms_data");
|
||||
my $smdir = srctop_dir("test", "smime-certs");
|
||||
|
@ -68,6 +69,8 @@ unless ($no_fips) {
|
|||
$old_fips = 1 if $dsaallow != '0';
|
||||
run(test(["fips_version_test", "-config", $provconf, "<3.5.0"]),
|
||||
capture => 1, statusvar => \$no_pqc);
|
||||
run(test(["fips_version_test", "-config", $provconf, "<3.6.0"]),
|
||||
capture => 1, statusvar => \$no_hkdf_fixed);
|
||||
}
|
||||
|
||||
$ENV{OPENSSL_TEST_LIBCTX} = "1";
|
||||
|
@ -1534,7 +1537,7 @@ subtest "ML-KEM KEMRecipientInfo tests for CMS" => sub {
|
|||
|
||||
SKIP: {
|
||||
skip "ML-KEM is not supported in this build", 5
|
||||
if disabled("ml-kem") || $no_pqc;
|
||||
if disabled("ml-kem") || $no_hkdf_fixed;
|
||||
|
||||
ok(run(app(["openssl", "cms", @prov, "-encrypt", "-in", $smcont,
|
||||
"-out", "mlkem512.cms",
|
||||
|
|
Loading…
Reference in New Issue