diff options
author | jsing <> | 2025-06-15 15:43:00 +0000 |
---|---|---|
committer | jsing <> | 2025-06-15 15:43:00 +0000 |
commit | cd96649c134a17d9b107e4625c64cd54e40d0dff (patch) | |
tree | d7f80907476135aa29980ce095372ade6af8335d | |
parent | eecbed4f973896888f770cfc1dd07f1e0879ccda (diff) | |
download | openbsd-cd96649c134a17d9b107e4625c64cd54e40d0dff.tar.gz openbsd-cd96649c134a17d9b107e4625c64cd54e40d0dff.tar.bz2 openbsd-cd96649c134a17d9b107e4625c64cd54e40d0dff.zip |
Remove aesni_init_key().
The various methods can now use the regular init key functions, since the
call to AES_set_{en,de}crypt_key() will be routed to the AES-NI
implementation, if supported.
ok tb@
-rw-r--r-- | src/lib/libcrypto/evp/e_aes.c | 69 |
1 files changed, 22 insertions, 47 deletions
diff --git a/src/lib/libcrypto/evp/e_aes.c b/src/lib/libcrypto/evp/e_aes.c index 42c0fb45ed..a2cf3ed2e4 100644 --- a/src/lib/libcrypto/evp/e_aes.c +++ b/src/lib/libcrypto/evp/e_aes.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: e_aes.c,v 1.71 2025/06/09 14:28:34 jsing Exp $ */ | 1 | /* $OpenBSD: e_aes.c,v 1.72 2025/06/15 15:43:00 jsing Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -162,31 +162,6 @@ void aesni_ccm64_decrypt_blocks (const unsigned char *in, unsigned char *out, | |||
162 | unsigned char cmac[16]); | 162 | unsigned char cmac[16]); |
163 | 163 | ||
164 | static int | 164 | static int |
165 | aesni_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | ||
166 | const unsigned char *iv, int enc) | ||
167 | { | ||
168 | int ret, mode; | ||
169 | |||
170 | mode = ctx->cipher->flags & EVP_CIPH_MODE; | ||
171 | |||
172 | if ((mode == EVP_CIPH_ECB_MODE || mode == EVP_CIPH_CBC_MODE) && | ||
173 | !enc) { | ||
174 | ret = aesni_set_decrypt_key(key, ctx->key_len * 8, | ||
175 | ctx->cipher_data); | ||
176 | } else { | ||
177 | ret = aesni_set_encrypt_key(key, ctx->key_len * 8, | ||
178 | ctx->cipher_data); | ||
179 | } | ||
180 | |||
181 | if (ret < 0) { | ||
182 | EVPerror(EVP_R_AES_KEY_SETUP_FAILED); | ||
183 | return 0; | ||
184 | } | ||
185 | |||
186 | return 1; | ||
187 | } | ||
188 | |||
189 | static int | ||
190 | aesni_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | 165 | aesni_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, |
191 | const unsigned char *in, size_t len) | 166 | const unsigned char *in, size_t len) |
192 | { | 167 | { |
@@ -544,7 +519,7 @@ static const EVP_CIPHER aesni_128_cbc = { | |||
544 | .key_len = 16, | 519 | .key_len = 16, |
545 | .iv_len = 16, | 520 | .iv_len = 16, |
546 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CBC_MODE, | 521 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CBC_MODE, |
547 | .init = aesni_init_key, | 522 | .init = aes_cbc_init_key, |
548 | .do_cipher = aesni_cbc_cipher, | 523 | .do_cipher = aesni_cbc_cipher, |
549 | .ctx_size = sizeof(EVP_AES_KEY), | 524 | .ctx_size = sizeof(EVP_AES_KEY), |
550 | }; | 525 | }; |
@@ -579,7 +554,7 @@ static const EVP_CIPHER aesni_128_ecb = { | |||
579 | .key_len = 16, | 554 | .key_len = 16, |
580 | .iv_len = 0, | 555 | .iv_len = 0, |
581 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, | 556 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, |
582 | .init = aesni_init_key, | 557 | .init = aes_ecb_init_key, |
583 | .do_cipher = aesni_ecb_cipher, | 558 | .do_cipher = aesni_ecb_cipher, |
584 | .ctx_size = sizeof(EVP_AES_KEY), | 559 | .ctx_size = sizeof(EVP_AES_KEY), |
585 | }; | 560 | }; |
@@ -614,7 +589,7 @@ static const EVP_CIPHER aesni_128_ofb = { | |||
614 | .key_len = 16, | 589 | .key_len = 16, |
615 | .iv_len = 16, | 590 | .iv_len = 16, |
616 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, | 591 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, |
617 | .init = aesni_init_key, | 592 | .init = aes_init_key, |
618 | .do_cipher = aesni_ofb_cipher, | 593 | .do_cipher = aesni_ofb_cipher, |
619 | .ctx_size = sizeof(EVP_AES_KEY), | 594 | .ctx_size = sizeof(EVP_AES_KEY), |
620 | }; | 595 | }; |
@@ -649,7 +624,7 @@ static const EVP_CIPHER aesni_128_cfb = { | |||
649 | .key_len = 16, | 624 | .key_len = 16, |
650 | .iv_len = 16, | 625 | .iv_len = 16, |
651 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, | 626 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, |
652 | .init = aesni_init_key, | 627 | .init = aes_init_key, |
653 | .do_cipher = aesni_cfb_cipher, | 628 | .do_cipher = aesni_cfb_cipher, |
654 | .ctx_size = sizeof(EVP_AES_KEY), | 629 | .ctx_size = sizeof(EVP_AES_KEY), |
655 | }; | 630 | }; |
@@ -684,7 +659,7 @@ static const EVP_CIPHER aesni_128_cfb1 = { | |||
684 | .key_len = 16, | 659 | .key_len = 16, |
685 | .iv_len = 16, | 660 | .iv_len = 16, |
686 | .flags = EVP_CIPH_CFB_MODE, | 661 | .flags = EVP_CIPH_CFB_MODE, |
687 | .init = aesni_init_key, | 662 | .init = aes_init_key, |
688 | .do_cipher = aesni_cfb1_cipher, | 663 | .do_cipher = aesni_cfb1_cipher, |
689 | .ctx_size = sizeof(EVP_AES_KEY), | 664 | .ctx_size = sizeof(EVP_AES_KEY), |
690 | }; | 665 | }; |
@@ -719,7 +694,7 @@ static const EVP_CIPHER aesni_128_cfb8 = { | |||
719 | .key_len = 16, | 694 | .key_len = 16, |
720 | .iv_len = 16, | 695 | .iv_len = 16, |
721 | .flags = EVP_CIPH_CFB_MODE, | 696 | .flags = EVP_CIPH_CFB_MODE, |
722 | .init = aesni_init_key, | 697 | .init = aes_init_key, |
723 | .do_cipher = aesni_cfb8_cipher, | 698 | .do_cipher = aesni_cfb8_cipher, |
724 | .ctx_size = sizeof(EVP_AES_KEY), | 699 | .ctx_size = sizeof(EVP_AES_KEY), |
725 | }; | 700 | }; |
@@ -754,7 +729,7 @@ static const EVP_CIPHER aesni_128_ctr = { | |||
754 | .key_len = 16, | 729 | .key_len = 16, |
755 | .iv_len = 16, | 730 | .iv_len = 16, |
756 | .flags = EVP_CIPH_CTR_MODE, | 731 | .flags = EVP_CIPH_CTR_MODE, |
757 | .init = aesni_init_key, | 732 | .init = aes_init_key, |
758 | .do_cipher = aesni_ctr_cipher, | 733 | .do_cipher = aesni_ctr_cipher, |
759 | .ctx_size = sizeof(EVP_AES_KEY), | 734 | .ctx_size = sizeof(EVP_AES_KEY), |
760 | }; | 735 | }; |
@@ -790,7 +765,7 @@ static const EVP_CIPHER aesni_192_cbc = { | |||
790 | .key_len = 24, | 765 | .key_len = 24, |
791 | .iv_len = 16, | 766 | .iv_len = 16, |
792 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CBC_MODE, | 767 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CBC_MODE, |
793 | .init = aesni_init_key, | 768 | .init = aes_cbc_init_key, |
794 | .do_cipher = aesni_cbc_cipher, | 769 | .do_cipher = aesni_cbc_cipher, |
795 | .ctx_size = sizeof(EVP_AES_KEY), | 770 | .ctx_size = sizeof(EVP_AES_KEY), |
796 | }; | 771 | }; |
@@ -825,7 +800,7 @@ static const EVP_CIPHER aesni_192_ecb = { | |||
825 | .key_len = 24, | 800 | .key_len = 24, |
826 | .iv_len = 0, | 801 | .iv_len = 0, |
827 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, | 802 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, |
828 | .init = aesni_init_key, | 803 | .init = aes_ecb_init_key, |
829 | .do_cipher = aesni_ecb_cipher, | 804 | .do_cipher = aesni_ecb_cipher, |
830 | .ctx_size = sizeof(EVP_AES_KEY), | 805 | .ctx_size = sizeof(EVP_AES_KEY), |
831 | }; | 806 | }; |
@@ -860,7 +835,7 @@ static const EVP_CIPHER aesni_192_ofb = { | |||
860 | .key_len = 24, | 835 | .key_len = 24, |
861 | .iv_len = 16, | 836 | .iv_len = 16, |
862 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, | 837 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, |
863 | .init = aesni_init_key, | 838 | .init = aes_init_key, |
864 | .do_cipher = aesni_ofb_cipher, | 839 | .do_cipher = aesni_ofb_cipher, |
865 | .ctx_size = sizeof(EVP_AES_KEY), | 840 | .ctx_size = sizeof(EVP_AES_KEY), |
866 | }; | 841 | }; |
@@ -895,7 +870,7 @@ static const EVP_CIPHER aesni_192_cfb = { | |||
895 | .key_len = 24, | 870 | .key_len = 24, |
896 | .iv_len = 16, | 871 | .iv_len = 16, |
897 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, | 872 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, |
898 | .init = aesni_init_key, | 873 | .init = aes_init_key, |
899 | .do_cipher = aesni_cfb_cipher, | 874 | .do_cipher = aesni_cfb_cipher, |
900 | .ctx_size = sizeof(EVP_AES_KEY), | 875 | .ctx_size = sizeof(EVP_AES_KEY), |
901 | }; | 876 | }; |
@@ -930,7 +905,7 @@ static const EVP_CIPHER aesni_192_cfb1 = { | |||
930 | .key_len = 24, | 905 | .key_len = 24, |
931 | .iv_len = 16, | 906 | .iv_len = 16, |
932 | .flags = EVP_CIPH_CFB_MODE, | 907 | .flags = EVP_CIPH_CFB_MODE, |
933 | .init = aesni_init_key, | 908 | .init = aes_init_key, |
934 | .do_cipher = aesni_cfb1_cipher, | 909 | .do_cipher = aesni_cfb1_cipher, |
935 | .ctx_size = sizeof(EVP_AES_KEY), | 910 | .ctx_size = sizeof(EVP_AES_KEY), |
936 | }; | 911 | }; |
@@ -965,7 +940,7 @@ static const EVP_CIPHER aesni_192_cfb8 = { | |||
965 | .key_len = 24, | 940 | .key_len = 24, |
966 | .iv_len = 16, | 941 | .iv_len = 16, |
967 | .flags = EVP_CIPH_CFB_MODE, | 942 | .flags = EVP_CIPH_CFB_MODE, |
968 | .init = aesni_init_key, | 943 | .init = aes_init_key, |
969 | .do_cipher = aesni_cfb8_cipher, | 944 | .do_cipher = aesni_cfb8_cipher, |
970 | .ctx_size = sizeof(EVP_AES_KEY), | 945 | .ctx_size = sizeof(EVP_AES_KEY), |
971 | }; | 946 | }; |
@@ -1000,7 +975,7 @@ static const EVP_CIPHER aesni_192_ctr = { | |||
1000 | .key_len = 24, | 975 | .key_len = 24, |
1001 | .iv_len = 16, | 976 | .iv_len = 16, |
1002 | .flags = EVP_CIPH_CTR_MODE, | 977 | .flags = EVP_CIPH_CTR_MODE, |
1003 | .init = aesni_init_key, | 978 | .init = aes_init_key, |
1004 | .do_cipher = aesni_ctr_cipher, | 979 | .do_cipher = aesni_ctr_cipher, |
1005 | .ctx_size = sizeof(EVP_AES_KEY), | 980 | .ctx_size = sizeof(EVP_AES_KEY), |
1006 | }; | 981 | }; |
@@ -1036,7 +1011,7 @@ static const EVP_CIPHER aesni_256_cbc = { | |||
1036 | .key_len = 32, | 1011 | .key_len = 32, |
1037 | .iv_len = 16, | 1012 | .iv_len = 16, |
1038 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CBC_MODE, | 1013 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CBC_MODE, |
1039 | .init = aesni_init_key, | 1014 | .init = aes_cbc_init_key, |
1040 | .do_cipher = aesni_cbc_cipher, | 1015 | .do_cipher = aesni_cbc_cipher, |
1041 | .ctx_size = sizeof(EVP_AES_KEY), | 1016 | .ctx_size = sizeof(EVP_AES_KEY), |
1042 | }; | 1017 | }; |
@@ -1071,7 +1046,7 @@ static const EVP_CIPHER aesni_256_ecb = { | |||
1071 | .key_len = 32, | 1046 | .key_len = 32, |
1072 | .iv_len = 0, | 1047 | .iv_len = 0, |
1073 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, | 1048 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, |
1074 | .init = aesni_init_key, | 1049 | .init = aes_ecb_init_key, |
1075 | .do_cipher = aesni_ecb_cipher, | 1050 | .do_cipher = aesni_ecb_cipher, |
1076 | .ctx_size = sizeof(EVP_AES_KEY), | 1051 | .ctx_size = sizeof(EVP_AES_KEY), |
1077 | }; | 1052 | }; |
@@ -1106,7 +1081,7 @@ static const EVP_CIPHER aesni_256_ofb = { | |||
1106 | .key_len = 32, | 1081 | .key_len = 32, |
1107 | .iv_len = 16, | 1082 | .iv_len = 16, |
1108 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, | 1083 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, |
1109 | .init = aesni_init_key, | 1084 | .init = aes_init_key, |
1110 | .do_cipher = aesni_ofb_cipher, | 1085 | .do_cipher = aesni_ofb_cipher, |
1111 | .ctx_size = sizeof(EVP_AES_KEY), | 1086 | .ctx_size = sizeof(EVP_AES_KEY), |
1112 | }; | 1087 | }; |
@@ -1141,7 +1116,7 @@ static const EVP_CIPHER aesni_256_cfb = { | |||
1141 | .key_len = 32, | 1116 | .key_len = 32, |
1142 | .iv_len = 16, | 1117 | .iv_len = 16, |
1143 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, | 1118 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, |
1144 | .init = aesni_init_key, | 1119 | .init = aes_init_key, |
1145 | .do_cipher = aesni_cfb_cipher, | 1120 | .do_cipher = aesni_cfb_cipher, |
1146 | .ctx_size = sizeof(EVP_AES_KEY), | 1121 | .ctx_size = sizeof(EVP_AES_KEY), |
1147 | }; | 1122 | }; |
@@ -1176,7 +1151,7 @@ static const EVP_CIPHER aesni_256_cfb1 = { | |||
1176 | .key_len = 32, | 1151 | .key_len = 32, |
1177 | .iv_len = 16, | 1152 | .iv_len = 16, |
1178 | .flags = EVP_CIPH_CFB_MODE, | 1153 | .flags = EVP_CIPH_CFB_MODE, |
1179 | .init = aesni_init_key, | 1154 | .init = aes_init_key, |
1180 | .do_cipher = aesni_cfb1_cipher, | 1155 | .do_cipher = aesni_cfb1_cipher, |
1181 | .ctx_size = sizeof(EVP_AES_KEY), | 1156 | .ctx_size = sizeof(EVP_AES_KEY), |
1182 | }; | 1157 | }; |
@@ -1211,7 +1186,7 @@ static const EVP_CIPHER aesni_256_cfb8 = { | |||
1211 | .key_len = 32, | 1186 | .key_len = 32, |
1212 | .iv_len = 16, | 1187 | .iv_len = 16, |
1213 | .flags = EVP_CIPH_CFB_MODE, | 1188 | .flags = EVP_CIPH_CFB_MODE, |
1214 | .init = aesni_init_key, | 1189 | .init = aes_init_key, |
1215 | .do_cipher = aesni_cfb8_cipher, | 1190 | .do_cipher = aesni_cfb8_cipher, |
1216 | .ctx_size = sizeof(EVP_AES_KEY), | 1191 | .ctx_size = sizeof(EVP_AES_KEY), |
1217 | }; | 1192 | }; |
@@ -1246,7 +1221,7 @@ static const EVP_CIPHER aesni_256_ctr = { | |||
1246 | .key_len = 32, | 1221 | .key_len = 32, |
1247 | .iv_len = 16, | 1222 | .iv_len = 16, |
1248 | .flags = EVP_CIPH_CTR_MODE, | 1223 | .flags = EVP_CIPH_CTR_MODE, |
1249 | .init = aesni_init_key, | 1224 | .init = aes_init_key, |
1250 | .do_cipher = aesni_ctr_cipher, | 1225 | .do_cipher = aesni_ctr_cipher, |
1251 | .ctx_size = sizeof(EVP_AES_KEY), | 1226 | .ctx_size = sizeof(EVP_AES_KEY), |
1252 | }; | 1227 | }; |