]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
riscv: aes: fix checks on null keys
authorZenithal <i@zenithal.me>
Tue, 10 Mar 2026 00:44:01 +0000 (00:44 +0000)
committerTomas Mraz <tomas@openssl.foundation>
Fri, 13 Mar 2026 17:15:28 +0000 (18:15 +0100)
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
MergeDate: Fri Mar 13 17:15:37 2026
(Merged from https://github.com/openssl/openssl/pull/30333)

crypto/aes/asm/aes-riscv32-zkn.pl
crypto/aes/asm/aes-riscv64-zkn.pl
crypto/aes/asm/aes-riscv64-zvkned.pl
crypto/aes/asm/aes-riscv64.pl

index 6fac45184620f30f6d38ba382e1b7555843845b7..b57e10c485d6f60ca3c192a9f0d34405e707aefe 100644 (file)
@@ -704,11 +704,6 @@ sub AES_set_common {
     my ($ke128, $ke192, $ke256) = @_;
     my $ret = '';
 $ret .= <<___;
-    bnez    $UKEY,1f        # if (!userKey || !key) return -1;
-    bnez    $KEYP,1f
-    li      a0,-1
-    ret
-1:
     # Determine number of rounds from key size in bits
     li      $T0,128
     bne     $BITS,$T0,1f
index 0e8a1540c43824a8b972eb616818d6a82a3d0a8c..34f71b218501141f2e806a0cb531b8242f2c355a 100644 (file)
@@ -392,11 +392,6 @@ sub AES_set_common {
     my ($ke128, $ke192, $ke256) = @_;
     my $ret = '';
 $ret .= <<___;
-    bnez    $UKEY,1f        # if (!userKey || !key) return -1;
-    bnez    $KEYP,1f
-    li      a0,-1
-    ret
-1:
     # Determine number of rounds from key size in bits
     li      $T0,128
     bne     $BITS,$T0,1f
index cac1d194ccf9ba9a585bd4e59feac6a16dbb8fab..615542b46f49e7d3e086e3f484ba422ccb1daa5f 100644 (file)
@@ -965,9 +965,6 @@ $code .= <<___;
 .globl rv64i_zvkned_set_encrypt_key
 .type rv64i_zvkned_set_encrypt_key,\@function
 rv64i_zvkned_set_encrypt_key:
-    beqz $UKEY, L_fail_m1
-    beqz $KEYP, L_fail_m1
-
     # Get proper routine for key size
     li $T0, 256
     beq $BITS, $T0, L_set_key_256
@@ -984,9 +981,6 @@ $code .= <<___;
 .globl rv64i_zvkned_set_decrypt_key
 .type rv64i_zvkned_set_decrypt_key,\@function
 rv64i_zvkned_set_decrypt_key:
-    beqz $UKEY, L_fail_m1
-    beqz $KEYP, L_fail_m1
-
     # Get proper routine for key size
     li $T0, 256
     beq $BITS, $T0, L_set_key_256
@@ -1493,11 +1487,6 @@ ___
 }
 
 $code .= <<___;
-L_fail_m1:
-    li a0, -1
-    ret
-.size L_fail_m1,.-L_fail_m1
-
 L_fail_m2:
     li a0, -2
     ret
index 525eba4b46380280aeee97c674c7c6c214d1d6ee..9c864dc6d8e1c551a1bcb789c65b79796a35a713 100644 (file)
@@ -773,11 +773,13 @@ AES_set_encrypt_key:
 ___
 $code .= save_regs();
 $code .= <<___;
-    bnez    $UKEY,1f    # if (!userKey || !key) return -1;
-    bnez    $KEYP,1f
+    beqz    $UKEY,1f    # if (!userKey || !key) return -1;
+    beqz    $KEYP,1f
+    j       2f
+1:
     li      a0,-1
     ret
-1:
+2:
     la      $RCON,AES_rcon
     la      $TBL,AES_Te0
     li      $T8,128