diff options
Diffstat (limited to 'src/lib/libcrypto/evp/e_aes.c')
-rw-r--r-- | src/lib/libcrypto/evp/e_aes.c | 83 |
1 files changed, 1 insertions, 82 deletions
diff --git a/src/lib/libcrypto/evp/e_aes.c b/src/lib/libcrypto/evp/e_aes.c index 0949c8bdb4..005f1c49b2 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.80 2025/07/21 10:24:23 jsing Exp $ */ | 1 | /* $OpenBSD: e_aes.c,v 1.81 2025/07/22 09:13:49 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 | * |
@@ -99,36 +99,6 @@ typedef struct { | |||
99 | 99 | ||
100 | #define MAXBITCHUNK ((size_t)1<<(sizeof(size_t)*8-4)) | 100 | #define MAXBITCHUNK ((size_t)1<<(sizeof(size_t)*8-4)) |
101 | 101 | ||
102 | #if defined(AES_ASM) && ( \ | ||
103 | ((defined(__i386) || defined(__i386__) || \ | ||
104 | defined(_M_IX86)))|| \ | ||
105 | defined(__x86_64) || defined(__x86_64__) || \ | ||
106 | defined(_M_AMD64) || defined(_M_X64) || \ | ||
107 | defined(__INTEL__) ) | ||
108 | |||
109 | #include "x86_arch.h" | ||
110 | |||
111 | /* | ||
112 | * AES-NI section | ||
113 | */ | ||
114 | #define AESNI_CAPABLE (crypto_cpu_caps_ia32() & CPUCAP_MASK_AESNI) | ||
115 | |||
116 | void aesni_ecb_encrypt(const unsigned char *in, unsigned char *out, | ||
117 | size_t length, const AES_KEY *key, int enc); | ||
118 | |||
119 | static int | ||
120 | aesni_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | ||
121 | const unsigned char *in, size_t len) | ||
122 | { | ||
123 | if (len < ctx->cipher->block_size) | ||
124 | return 1; | ||
125 | |||
126 | aesni_ecb_encrypt(in, out, len, ctx->cipher_data, ctx->encrypt); | ||
127 | |||
128 | return 1; | ||
129 | } | ||
130 | #endif | ||
131 | |||
132 | static int | 102 | static int |
133 | aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | 103 | aes_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, |
134 | const unsigned char *iv, int enc) | 104 | const unsigned char *iv, int enc) |
@@ -301,19 +271,6 @@ EVP_aes_128_cbc(void) | |||
301 | } | 271 | } |
302 | LCRYPTO_ALIAS(EVP_aes_128_cbc); | 272 | LCRYPTO_ALIAS(EVP_aes_128_cbc); |
303 | 273 | ||
304 | #ifdef AESNI_CAPABLE | ||
305 | static const EVP_CIPHER aesni_128_ecb = { | ||
306 | .nid = NID_aes_128_ecb, | ||
307 | .block_size = 16, | ||
308 | .key_len = 16, | ||
309 | .iv_len = 0, | ||
310 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, | ||
311 | .init = aes_ecb_init_key, | ||
312 | .do_cipher = aesni_ecb_cipher, | ||
313 | .ctx_size = sizeof(EVP_AES_KEY), | ||
314 | }; | ||
315 | #endif | ||
316 | |||
317 | static const EVP_CIPHER aes_128_ecb = { | 274 | static const EVP_CIPHER aes_128_ecb = { |
318 | .nid = NID_aes_128_ecb, | 275 | .nid = NID_aes_128_ecb, |
319 | .block_size = 16, | 276 | .block_size = 16, |
@@ -328,11 +285,7 @@ static const EVP_CIPHER aes_128_ecb = { | |||
328 | const EVP_CIPHER * | 285 | const EVP_CIPHER * |
329 | EVP_aes_128_ecb(void) | 286 | EVP_aes_128_ecb(void) |
330 | { | 287 | { |
331 | #ifdef AESNI_CAPABLE | ||
332 | return AESNI_CAPABLE ? &aesni_128_ecb : &aes_128_ecb; | ||
333 | #else | ||
334 | return &aes_128_ecb; | 288 | return &aes_128_ecb; |
335 | #endif | ||
336 | } | 289 | } |
337 | LCRYPTO_ALIAS(EVP_aes_128_ecb); | 290 | LCRYPTO_ALIAS(EVP_aes_128_ecb); |
338 | 291 | ||
@@ -444,19 +397,6 @@ EVP_aes_192_cbc(void) | |||
444 | } | 397 | } |
445 | LCRYPTO_ALIAS(EVP_aes_192_cbc); | 398 | LCRYPTO_ALIAS(EVP_aes_192_cbc); |
446 | 399 | ||
447 | #ifdef AESNI_CAPABLE | ||
448 | static const EVP_CIPHER aesni_192_ecb = { | ||
449 | .nid = NID_aes_192_ecb, | ||
450 | .block_size = 16, | ||
451 | .key_len = 24, | ||
452 | .iv_len = 0, | ||
453 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, | ||
454 | .init = aes_ecb_init_key, | ||
455 | .do_cipher = aesni_ecb_cipher, | ||
456 | .ctx_size = sizeof(EVP_AES_KEY), | ||
457 | }; | ||
458 | #endif | ||
459 | |||
460 | static const EVP_CIPHER aes_192_ecb = { | 400 | static const EVP_CIPHER aes_192_ecb = { |
461 | .nid = NID_aes_192_ecb, | 401 | .nid = NID_aes_192_ecb, |
462 | .block_size = 16, | 402 | .block_size = 16, |
@@ -471,11 +411,7 @@ static const EVP_CIPHER aes_192_ecb = { | |||
471 | const EVP_CIPHER * | 411 | const EVP_CIPHER * |
472 | EVP_aes_192_ecb(void) | 412 | EVP_aes_192_ecb(void) |
473 | { | 413 | { |
474 | #ifdef AESNI_CAPABLE | ||
475 | return AESNI_CAPABLE ? &aesni_192_ecb : &aes_192_ecb; | ||
476 | #else | ||
477 | return &aes_192_ecb; | 414 | return &aes_192_ecb; |
478 | #endif | ||
479 | } | 415 | } |
480 | LCRYPTO_ALIAS(EVP_aes_192_ecb); | 416 | LCRYPTO_ALIAS(EVP_aes_192_ecb); |
481 | 417 | ||
@@ -587,19 +523,6 @@ EVP_aes_256_cbc(void) | |||
587 | } | 523 | } |
588 | LCRYPTO_ALIAS(EVP_aes_256_cbc); | 524 | LCRYPTO_ALIAS(EVP_aes_256_cbc); |
589 | 525 | ||
590 | #ifdef AESNI_CAPABLE | ||
591 | static const EVP_CIPHER aesni_256_ecb = { | ||
592 | .nid = NID_aes_256_ecb, | ||
593 | .block_size = 16, | ||
594 | .key_len = 32, | ||
595 | .iv_len = 0, | ||
596 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_ECB_MODE, | ||
597 | .init = aes_ecb_init_key, | ||
598 | .do_cipher = aesni_ecb_cipher, | ||
599 | .ctx_size = sizeof(EVP_AES_KEY), | ||
600 | }; | ||
601 | #endif | ||
602 | |||
603 | static const EVP_CIPHER aes_256_ecb = { | 526 | static const EVP_CIPHER aes_256_ecb = { |
604 | .nid = NID_aes_256_ecb, | 527 | .nid = NID_aes_256_ecb, |
605 | .block_size = 16, | 528 | .block_size = 16, |
@@ -614,11 +537,7 @@ static const EVP_CIPHER aes_256_ecb = { | |||
614 | const EVP_CIPHER * | 537 | const EVP_CIPHER * |
615 | EVP_aes_256_ecb(void) | 538 | EVP_aes_256_ecb(void) |
616 | { | 539 | { |
617 | #ifdef AESNI_CAPABLE | ||
618 | return AESNI_CAPABLE ? &aesni_256_ecb : &aes_256_ecb; | ||
619 | #else | ||
620 | return &aes_256_ecb; | 540 | return &aes_256_ecb; |
621 | #endif | ||
622 | } | 541 | } |
623 | LCRYPTO_ALIAS(EVP_aes_256_ecb); | 542 | LCRYPTO_ALIAS(EVP_aes_256_ecb); |
624 | 543 | ||