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 /src/lib/libcrypto/evp/e_aes.c | |
| 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@
Diffstat (limited to 'src/lib/libcrypto/evp/e_aes.c')
| -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 | }; |
