summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2025-06-15 15:43:00 +0000
committerjsing <>2025-06-15 15:43:00 +0000
commitcd96649c134a17d9b107e4625c64cd54e40d0dff (patch)
treed7f80907476135aa29980ce095372ade6af8335d
parenteecbed4f973896888f770cfc1dd07f1e0879ccda (diff)
downloadopenbsd-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.c69
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
164static int 164static int
165aesni_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
189static int
190aesni_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, 165aesni_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};