diff options
author | jsing <> | 2025-06-16 14:50:30 +0000 |
---|---|---|
committer | jsing <> | 2025-06-16 14:50:30 +0000 |
commit | 00fc9ceec0393e897bffa9c4fc4a10b1c178d2e7 (patch) | |
tree | 1524a77bc344942b33697ada13d361283244a71d /src | |
parent | d3ae11466b47a59d6352762d87d1de787ef7038b (diff) | |
download | openbsd-00fc9ceec0393e897bffa9c4fc4a10b1c178d2e7.tar.gz openbsd-00fc9ceec0393e897bffa9c4fc4a10b1c178d2e7.tar.bz2 openbsd-00fc9ceec0393e897bffa9c4fc4a10b1c178d2e7.zip |
Remove AES-NI specific EVP_CIPHER methods for CFB/CFB1/CFB8.
These now end up in aesni_encrypt() via AES_encrypt(), when appropriate.
ok tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/evp/e_aes.c | 206 |
1 files changed, 1 insertions, 205 deletions
diff --git a/src/lib/libcrypto/evp/e_aes.c b/src/lib/libcrypto/evp/e_aes.c index 9b09cf3639..34f5513300 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.74 2025/06/16 14:42:18 jsing Exp $ */ | 1 | /* $OpenBSD: e_aes.c,v 1.75 2025/06/16 14:50:30 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 | * |
@@ -160,57 +160,6 @@ void aesni_ccm64_decrypt_blocks (const unsigned char *in, unsigned char *out, | |||
160 | unsigned char cmac[16]); | 160 | unsigned char cmac[16]); |
161 | 161 | ||
162 | static int | 162 | static int |
163 | aesni_cfb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | ||
164 | const unsigned char *in, size_t len) | ||
165 | { | ||
166 | EVP_AES_KEY *eak = ctx->cipher_data; | ||
167 | |||
168 | CRYPTO_cfb128_encrypt(in, out, len, &eak->ks, ctx->iv, &ctx->num, | ||
169 | ctx->encrypt, (block128_f)aesni_encrypt); | ||
170 | |||
171 | return 1; | ||
172 | } | ||
173 | |||
174 | static int | ||
175 | aesni_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | ||
176 | const unsigned char *in, size_t len) | ||
177 | { | ||
178 | EVP_AES_KEY *eak = ctx->cipher_data; | ||
179 | |||
180 | CRYPTO_cfb128_8_encrypt(in, out, len, &eak->ks, ctx->iv, &ctx->num, | ||
181 | ctx->encrypt, (block128_f)aesni_encrypt); | ||
182 | |||
183 | return 1; | ||
184 | } | ||
185 | |||
186 | static int | ||
187 | aesni_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | ||
188 | const unsigned char *in, size_t len) | ||
189 | { | ||
190 | EVP_AES_KEY *eak = ctx->cipher_data; | ||
191 | |||
192 | if ((ctx->flags & EVP_CIPH_FLAG_LENGTH_BITS) != 0) { | ||
193 | CRYPTO_cfb128_1_encrypt(in, out, len, &eak->ks, ctx->iv, | ||
194 | &ctx->num, ctx->encrypt, (block128_f)aesni_encrypt); | ||
195 | return 1; | ||
196 | } | ||
197 | |||
198 | while (len >= MAXBITCHUNK) { | ||
199 | CRYPTO_cfb128_1_encrypt(in, out, MAXBITCHUNK * 8, &eak->ks, | ||
200 | ctx->iv, &ctx->num, ctx->encrypt, (block128_f)aesni_encrypt); | ||
201 | len -= MAXBITCHUNK; | ||
202 | in += MAXBITCHUNK; | ||
203 | out += MAXBITCHUNK; | ||
204 | } | ||
205 | if (len > 0) { | ||
206 | CRYPTO_cfb128_1_encrypt(in, out, len * 8, &eak->ks, | ||
207 | ctx->iv, &ctx->num, ctx->encrypt, (block128_f)aesni_encrypt); | ||
208 | } | ||
209 | |||
210 | return 1; | ||
211 | } | ||
212 | |||
213 | static int | ||
214 | aesni_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | 163 | aesni_ctr_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, |
215 | const unsigned char *in, size_t len) | 164 | const unsigned char *in, size_t len) |
216 | { | 165 | { |
@@ -559,19 +508,6 @@ EVP_aes_128_ofb(void) | |||
559 | } | 508 | } |
560 | LCRYPTO_ALIAS(EVP_aes_128_ofb); | 509 | LCRYPTO_ALIAS(EVP_aes_128_ofb); |
561 | 510 | ||
562 | #ifdef AESNI_CAPABLE | ||
563 | static const EVP_CIPHER aesni_128_cfb = { | ||
564 | .nid = NID_aes_128_cfb128, | ||
565 | .block_size = 1, | ||
566 | .key_len = 16, | ||
567 | .iv_len = 16, | ||
568 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, | ||
569 | .init = aes_init_key, | ||
570 | .do_cipher = aesni_cfb_cipher, | ||
571 | .ctx_size = sizeof(EVP_AES_KEY), | ||
572 | }; | ||
573 | #endif | ||
574 | |||
575 | static const EVP_CIPHER aes_128_cfb = { | 511 | static const EVP_CIPHER aes_128_cfb = { |
576 | .nid = NID_aes_128_cfb128, | 512 | .nid = NID_aes_128_cfb128, |
577 | .block_size = 1, | 513 | .block_size = 1, |
@@ -586,27 +522,10 @@ static const EVP_CIPHER aes_128_cfb = { | |||
586 | const EVP_CIPHER * | 522 | const EVP_CIPHER * |
587 | EVP_aes_128_cfb128(void) | 523 | EVP_aes_128_cfb128(void) |
588 | { | 524 | { |
589 | #ifdef AESNI_CAPABLE | ||
590 | return AESNI_CAPABLE ? &aesni_128_cfb : &aes_128_cfb; | ||
591 | #else | ||
592 | return &aes_128_cfb; | 525 | return &aes_128_cfb; |
593 | #endif | ||
594 | } | 526 | } |
595 | LCRYPTO_ALIAS(EVP_aes_128_cfb128); | 527 | LCRYPTO_ALIAS(EVP_aes_128_cfb128); |
596 | 528 | ||
597 | #ifdef AESNI_CAPABLE | ||
598 | static const EVP_CIPHER aesni_128_cfb1 = { | ||
599 | .nid = NID_aes_128_cfb1, | ||
600 | .block_size = 1, | ||
601 | .key_len = 16, | ||
602 | .iv_len = 16, | ||
603 | .flags = EVP_CIPH_CFB_MODE, | ||
604 | .init = aes_init_key, | ||
605 | .do_cipher = aesni_cfb1_cipher, | ||
606 | .ctx_size = sizeof(EVP_AES_KEY), | ||
607 | }; | ||
608 | #endif | ||
609 | |||
610 | static const EVP_CIPHER aes_128_cfb1 = { | 529 | static const EVP_CIPHER aes_128_cfb1 = { |
611 | .nid = NID_aes_128_cfb1, | 530 | .nid = NID_aes_128_cfb1, |
612 | .block_size = 1, | 531 | .block_size = 1, |
@@ -621,27 +540,10 @@ static const EVP_CIPHER aes_128_cfb1 = { | |||
621 | const EVP_CIPHER * | 540 | const EVP_CIPHER * |
622 | EVP_aes_128_cfb1(void) | 541 | EVP_aes_128_cfb1(void) |
623 | { | 542 | { |
624 | #ifdef AESNI_CAPABLE | ||
625 | return AESNI_CAPABLE ? &aesni_128_cfb1 : &aes_128_cfb1; | ||
626 | #else | ||
627 | return &aes_128_cfb1; | 543 | return &aes_128_cfb1; |
628 | #endif | ||
629 | } | 544 | } |
630 | LCRYPTO_ALIAS(EVP_aes_128_cfb1); | 545 | LCRYPTO_ALIAS(EVP_aes_128_cfb1); |
631 | 546 | ||
632 | #ifdef AESNI_CAPABLE | ||
633 | static const EVP_CIPHER aesni_128_cfb8 = { | ||
634 | .nid = NID_aes_128_cfb8, | ||
635 | .block_size = 1, | ||
636 | .key_len = 16, | ||
637 | .iv_len = 16, | ||
638 | .flags = EVP_CIPH_CFB_MODE, | ||
639 | .init = aes_init_key, | ||
640 | .do_cipher = aesni_cfb8_cipher, | ||
641 | .ctx_size = sizeof(EVP_AES_KEY), | ||
642 | }; | ||
643 | #endif | ||
644 | |||
645 | static const EVP_CIPHER aes_128_cfb8 = { | 547 | static const EVP_CIPHER aes_128_cfb8 = { |
646 | .nid = NID_aes_128_cfb8, | 548 | .nid = NID_aes_128_cfb8, |
647 | .block_size = 1, | 549 | .block_size = 1, |
@@ -656,11 +558,7 @@ static const EVP_CIPHER aes_128_cfb8 = { | |||
656 | const EVP_CIPHER * | 558 | const EVP_CIPHER * |
657 | EVP_aes_128_cfb8(void) | 559 | EVP_aes_128_cfb8(void) |
658 | { | 560 | { |
659 | #ifdef AESNI_CAPABLE | ||
660 | return AESNI_CAPABLE ? &aesni_128_cfb8 : &aes_128_cfb8; | ||
661 | #else | ||
662 | return &aes_128_cfb8; | 561 | return &aes_128_cfb8; |
663 | #endif | ||
664 | } | 562 | } |
665 | LCRYPTO_ALIAS(EVP_aes_128_cfb8); | 563 | LCRYPTO_ALIAS(EVP_aes_128_cfb8); |
666 | 564 | ||
@@ -770,19 +668,6 @@ EVP_aes_192_ofb(void) | |||
770 | } | 668 | } |
771 | LCRYPTO_ALIAS(EVP_aes_192_ofb); | 669 | LCRYPTO_ALIAS(EVP_aes_192_ofb); |
772 | 670 | ||
773 | #ifdef AESNI_CAPABLE | ||
774 | static const EVP_CIPHER aesni_192_cfb = { | ||
775 | .nid = NID_aes_192_cfb128, | ||
776 | .block_size = 1, | ||
777 | .key_len = 24, | ||
778 | .iv_len = 16, | ||
779 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, | ||
780 | .init = aes_init_key, | ||
781 | .do_cipher = aesni_cfb_cipher, | ||
782 | .ctx_size = sizeof(EVP_AES_KEY), | ||
783 | }; | ||
784 | #endif | ||
785 | |||
786 | static const EVP_CIPHER aes_192_cfb = { | 671 | static const EVP_CIPHER aes_192_cfb = { |
787 | .nid = NID_aes_192_cfb128, | 672 | .nid = NID_aes_192_cfb128, |
788 | .block_size = 1, | 673 | .block_size = 1, |
@@ -797,27 +682,10 @@ static const EVP_CIPHER aes_192_cfb = { | |||
797 | const EVP_CIPHER * | 682 | const EVP_CIPHER * |
798 | EVP_aes_192_cfb128(void) | 683 | EVP_aes_192_cfb128(void) |
799 | { | 684 | { |
800 | #ifdef AESNI_CAPABLE | ||
801 | return AESNI_CAPABLE ? &aesni_192_cfb : &aes_192_cfb; | ||
802 | #else | ||
803 | return &aes_192_cfb; | 685 | return &aes_192_cfb; |
804 | #endif | ||
805 | } | 686 | } |
806 | LCRYPTO_ALIAS(EVP_aes_192_cfb128); | 687 | LCRYPTO_ALIAS(EVP_aes_192_cfb128); |
807 | 688 | ||
808 | #ifdef AESNI_CAPABLE | ||
809 | static const EVP_CIPHER aesni_192_cfb1 = { | ||
810 | .nid = NID_aes_192_cfb1, | ||
811 | .block_size = 1, | ||
812 | .key_len = 24, | ||
813 | .iv_len = 16, | ||
814 | .flags = EVP_CIPH_CFB_MODE, | ||
815 | .init = aes_init_key, | ||
816 | .do_cipher = aesni_cfb1_cipher, | ||
817 | .ctx_size = sizeof(EVP_AES_KEY), | ||
818 | }; | ||
819 | #endif | ||
820 | |||
821 | static const EVP_CIPHER aes_192_cfb1 = { | 689 | static const EVP_CIPHER aes_192_cfb1 = { |
822 | .nid = NID_aes_192_cfb1, | 690 | .nid = NID_aes_192_cfb1, |
823 | .block_size = 1, | 691 | .block_size = 1, |
@@ -832,27 +700,10 @@ static const EVP_CIPHER aes_192_cfb1 = { | |||
832 | const EVP_CIPHER * | 700 | const EVP_CIPHER * |
833 | EVP_aes_192_cfb1(void) | 701 | EVP_aes_192_cfb1(void) |
834 | { | 702 | { |
835 | #ifdef AESNI_CAPABLE | ||
836 | return AESNI_CAPABLE ? &aesni_192_cfb1 : &aes_192_cfb1; | ||
837 | #else | ||
838 | return &aes_192_cfb1; | 703 | return &aes_192_cfb1; |
839 | #endif | ||
840 | } | 704 | } |
841 | LCRYPTO_ALIAS(EVP_aes_192_cfb1); | 705 | LCRYPTO_ALIAS(EVP_aes_192_cfb1); |
842 | 706 | ||
843 | #ifdef AESNI_CAPABLE | ||
844 | static const EVP_CIPHER aesni_192_cfb8 = { | ||
845 | .nid = NID_aes_192_cfb8, | ||
846 | .block_size = 1, | ||
847 | .key_len = 24, | ||
848 | .iv_len = 16, | ||
849 | .flags = EVP_CIPH_CFB_MODE, | ||
850 | .init = aes_init_key, | ||
851 | .do_cipher = aesni_cfb8_cipher, | ||
852 | .ctx_size = sizeof(EVP_AES_KEY), | ||
853 | }; | ||
854 | #endif | ||
855 | |||
856 | static const EVP_CIPHER aes_192_cfb8 = { | 707 | static const EVP_CIPHER aes_192_cfb8 = { |
857 | .nid = NID_aes_192_cfb8, | 708 | .nid = NID_aes_192_cfb8, |
858 | .block_size = 1, | 709 | .block_size = 1, |
@@ -867,11 +718,7 @@ static const EVP_CIPHER aes_192_cfb8 = { | |||
867 | const EVP_CIPHER * | 718 | const EVP_CIPHER * |
868 | EVP_aes_192_cfb8(void) | 719 | EVP_aes_192_cfb8(void) |
869 | { | 720 | { |
870 | #ifdef AESNI_CAPABLE | ||
871 | return AESNI_CAPABLE ? &aesni_192_cfb8 : &aes_192_cfb8; | ||
872 | #else | ||
873 | return &aes_192_cfb8; | 721 | return &aes_192_cfb8; |
874 | #endif | ||
875 | } | 722 | } |
876 | LCRYPTO_ALIAS(EVP_aes_192_cfb8); | 723 | LCRYPTO_ALIAS(EVP_aes_192_cfb8); |
877 | 724 | ||
@@ -981,19 +828,6 @@ EVP_aes_256_ofb(void) | |||
981 | } | 828 | } |
982 | LCRYPTO_ALIAS(EVP_aes_256_ofb); | 829 | LCRYPTO_ALIAS(EVP_aes_256_ofb); |
983 | 830 | ||
984 | #ifdef AESNI_CAPABLE | ||
985 | static const EVP_CIPHER aesni_256_cfb = { | ||
986 | .nid = NID_aes_256_cfb128, | ||
987 | .block_size = 1, | ||
988 | .key_len = 32, | ||
989 | .iv_len = 16, | ||
990 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_CFB_MODE, | ||
991 | .init = aes_init_key, | ||
992 | .do_cipher = aesni_cfb_cipher, | ||
993 | .ctx_size = sizeof(EVP_AES_KEY), | ||
994 | }; | ||
995 | #endif | ||
996 | |||
997 | static const EVP_CIPHER aes_256_cfb = { | 831 | static const EVP_CIPHER aes_256_cfb = { |
998 | .nid = NID_aes_256_cfb128, | 832 | .nid = NID_aes_256_cfb128, |
999 | .block_size = 1, | 833 | .block_size = 1, |
@@ -1008,27 +842,10 @@ static const EVP_CIPHER aes_256_cfb = { | |||
1008 | const EVP_CIPHER * | 842 | const EVP_CIPHER * |
1009 | EVP_aes_256_cfb128(void) | 843 | EVP_aes_256_cfb128(void) |
1010 | { | 844 | { |
1011 | #ifdef AESNI_CAPABLE | ||
1012 | return AESNI_CAPABLE ? &aesni_256_cfb : &aes_256_cfb; | ||
1013 | #else | ||
1014 | return &aes_256_cfb; | 845 | return &aes_256_cfb; |
1015 | #endif | ||
1016 | } | 846 | } |
1017 | LCRYPTO_ALIAS(EVP_aes_256_cfb128); | 847 | LCRYPTO_ALIAS(EVP_aes_256_cfb128); |
1018 | 848 | ||
1019 | #ifdef AESNI_CAPABLE | ||
1020 | static const EVP_CIPHER aesni_256_cfb1 = { | ||
1021 | .nid = NID_aes_256_cfb1, | ||
1022 | .block_size = 1, | ||
1023 | .key_len = 32, | ||
1024 | .iv_len = 16, | ||
1025 | .flags = EVP_CIPH_CFB_MODE, | ||
1026 | .init = aes_init_key, | ||
1027 | .do_cipher = aesni_cfb1_cipher, | ||
1028 | .ctx_size = sizeof(EVP_AES_KEY), | ||
1029 | }; | ||
1030 | #endif | ||
1031 | |||
1032 | static const EVP_CIPHER aes_256_cfb1 = { | 849 | static const EVP_CIPHER aes_256_cfb1 = { |
1033 | .nid = NID_aes_256_cfb1, | 850 | .nid = NID_aes_256_cfb1, |
1034 | .block_size = 1, | 851 | .block_size = 1, |
@@ -1043,27 +860,10 @@ static const EVP_CIPHER aes_256_cfb1 = { | |||
1043 | const EVP_CIPHER * | 860 | const EVP_CIPHER * |
1044 | EVP_aes_256_cfb1(void) | 861 | EVP_aes_256_cfb1(void) |
1045 | { | 862 | { |
1046 | #ifdef AESNI_CAPABLE | ||
1047 | return AESNI_CAPABLE ? &aesni_256_cfb1 : &aes_256_cfb1; | ||
1048 | #else | ||
1049 | return &aes_256_cfb1; | 863 | return &aes_256_cfb1; |
1050 | #endif | ||
1051 | } | 864 | } |
1052 | LCRYPTO_ALIAS(EVP_aes_256_cfb1); | 865 | LCRYPTO_ALIAS(EVP_aes_256_cfb1); |
1053 | 866 | ||
1054 | #ifdef AESNI_CAPABLE | ||
1055 | static const EVP_CIPHER aesni_256_cfb8 = { | ||
1056 | .nid = NID_aes_256_cfb8, | ||
1057 | .block_size = 1, | ||
1058 | .key_len = 32, | ||
1059 | .iv_len = 16, | ||
1060 | .flags = EVP_CIPH_CFB_MODE, | ||
1061 | .init = aes_init_key, | ||
1062 | .do_cipher = aesni_cfb8_cipher, | ||
1063 | .ctx_size = sizeof(EVP_AES_KEY), | ||
1064 | }; | ||
1065 | #endif | ||
1066 | |||
1067 | static const EVP_CIPHER aes_256_cfb8 = { | 867 | static const EVP_CIPHER aes_256_cfb8 = { |
1068 | .nid = NID_aes_256_cfb8, | 868 | .nid = NID_aes_256_cfb8, |
1069 | .block_size = 1, | 869 | .block_size = 1, |
@@ -1078,11 +878,7 @@ static const EVP_CIPHER aes_256_cfb8 = { | |||
1078 | const EVP_CIPHER * | 878 | const EVP_CIPHER * |
1079 | EVP_aes_256_cfb8(void) | 879 | EVP_aes_256_cfb8(void) |
1080 | { | 880 | { |
1081 | #ifdef AESNI_CAPABLE | ||
1082 | return AESNI_CAPABLE ? &aesni_256_cfb8 : &aes_256_cfb8; | ||
1083 | #else | ||
1084 | return &aes_256_cfb8; | 881 | return &aes_256_cfb8; |
1085 | #endif | ||
1086 | } | 882 | } |
1087 | LCRYPTO_ALIAS(EVP_aes_256_cfb8); | 883 | LCRYPTO_ALIAS(EVP_aes_256_cfb8); |
1088 | 884 | ||