diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/evp/e_aes.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/lib/libcrypto/evp/e_aes.c b/src/lib/libcrypto/evp/e_aes.c index b16a1e930e..d0bcb2b3dd 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.66 2025/05/19 01:49:23 jsing Exp $ */ | 1 | /* $OpenBSD: e_aes.c,v 1.67 2025/05/19 03:55:09 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 | * |
| @@ -278,6 +278,18 @@ aesni_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | |||
| 278 | } | 278 | } |
| 279 | 279 | ||
| 280 | static int | 280 | static int |
| 281 | aesni_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | ||
| 282 | const unsigned char *in, size_t len) | ||
| 283 | { | ||
| 284 | EVP_AES_KEY *eak = ctx->cipher_data; | ||
| 285 | |||
| 286 | CRYPTO_ofb128_encrypt(in, out, len, &eak->ks, ctx->iv, &ctx->num, | ||
| 287 | (block128_f)aesni_encrypt); | ||
| 288 | |||
| 289 | return 1; | ||
| 290 | } | ||
| 291 | |||
| 292 | static int | ||
| 281 | aesni_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | 293 | aesni_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, |
| 282 | const unsigned char *iv, int enc) | 294 | const unsigned char *iv, int enc) |
| 283 | { | 295 | { |
| @@ -452,10 +464,10 @@ static int | |||
| 452 | aes_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | 464 | aes_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, |
| 453 | const unsigned char *in, size_t len) | 465 | const unsigned char *in, size_t len) |
| 454 | { | 466 | { |
| 455 | EVP_AES_KEY *dat = (EVP_AES_KEY *)ctx->cipher_data; | 467 | EVP_AES_KEY *eak = ctx->cipher_data; |
| 468 | |||
| 469 | AES_ofb128_encrypt(in, out, len, &eak->ks, ctx->iv, &ctx->num); | ||
| 456 | 470 | ||
| 457 | CRYPTO_ofb128_encrypt(in, out, len, &dat->ks, ctx->iv, &ctx->num, | ||
| 458 | dat->block); | ||
| 459 | return 1; | 471 | return 1; |
| 460 | } | 472 | } |
| 461 | 473 | ||
| @@ -602,7 +614,7 @@ static const EVP_CIPHER aesni_128_ofb = { | |||
| 602 | .iv_len = 16, | 614 | .iv_len = 16, |
| 603 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, | 615 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, |
| 604 | .init = aesni_init_key, | 616 | .init = aesni_init_key, |
| 605 | .do_cipher = aes_ofb_cipher, | 617 | .do_cipher = aesni_ofb_cipher, |
| 606 | .ctx_size = sizeof(EVP_AES_KEY), | 618 | .ctx_size = sizeof(EVP_AES_KEY), |
| 607 | }; | 619 | }; |
| 608 | #endif | 620 | #endif |
| @@ -848,7 +860,7 @@ static const EVP_CIPHER aesni_192_ofb = { | |||
| 848 | .iv_len = 16, | 860 | .iv_len = 16, |
| 849 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, | 861 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, |
| 850 | .init = aesni_init_key, | 862 | .init = aesni_init_key, |
| 851 | .do_cipher = aes_ofb_cipher, | 863 | .do_cipher = aesni_ofb_cipher, |
| 852 | .ctx_size = sizeof(EVP_AES_KEY), | 864 | .ctx_size = sizeof(EVP_AES_KEY), |
| 853 | }; | 865 | }; |
| 854 | #endif | 866 | #endif |
| @@ -1094,7 +1106,7 @@ static const EVP_CIPHER aesni_256_ofb = { | |||
| 1094 | .iv_len = 16, | 1106 | .iv_len = 16, |
| 1095 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, | 1107 | .flags = EVP_CIPH_FLAG_DEFAULT_ASN1 | EVP_CIPH_OFB_MODE, |
| 1096 | .init = aesni_init_key, | 1108 | .init = aesni_init_key, |
| 1097 | .do_cipher = aes_ofb_cipher, | 1109 | .do_cipher = aesni_ofb_cipher, |
| 1098 | .ctx_size = sizeof(EVP_AES_KEY), | 1110 | .ctx_size = sizeof(EVP_AES_KEY), |
| 1099 | }; | 1111 | }; |
| 1100 | #endif | 1112 | #endif |
