summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp/evp_enc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/evp/evp_enc.c')
-rw-r--r--src/lib/libcrypto/evp/evp_enc.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/libcrypto/evp/evp_enc.c b/src/lib/libcrypto/evp/evp_enc.c
index f8d2cb78d4..c89f69c9a2 100644
--- a/src/lib/libcrypto/evp/evp_enc.c
+++ b/src/lib/libcrypto/evp/evp_enc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_enc.c,v 1.31 2016/05/30 13:42:54 beck Exp $ */ 1/* $OpenBSD: evp_enc.c,v 1.32 2016/09/03 14:54:25 bcook Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -260,13 +260,19 @@ EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
260 return EVP_DecryptFinal_ex(ctx, out, outl); 260 return EVP_DecryptFinal_ex(ctx, out, outl);
261} 261}
262 262
263__warn_references(EVP_CipherFinal,
264 "warning: EVP_CipherFinal is often misused, please use EVP_CipherFinal_ex and EVP_CIPHER_CTX_cleanup");
265
263int 266int
264EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) 267EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
265{ 268{
269 int ret;
266 if (ctx->encrypt) 270 if (ctx->encrypt)
267 return EVP_EncryptFinal_ex(ctx, out, outl); 271 ret = EVP_EncryptFinal_ex(ctx, out, outl);
268 else 272 else
269 return EVP_DecryptFinal_ex(ctx, out, outl); 273 ret = EVP_DecryptFinal_ex(ctx, out, outl);
274 (void) EVP_CIPHER_CTX_cleanup(ctx);
275 return ret;
270} 276}
271 277
272int 278int
@@ -365,6 +371,9 @@ EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
365 return 1; 371 return 1;
366} 372}
367 373
374__warn_references(EVP_EncryptFinal,
375 "warning: EVP_EncryptFinal is often misused, please use EVP_EncryptFinal_ex and EVP_CIPHER_CTX_cleanup");
376
368int 377int
369EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) 378EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
370{ 379{
@@ -479,6 +488,9 @@ EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
479 return 1; 488 return 1;
480} 489}
481 490
491__warn_references(EVP_DecryptFinal,
492 "warning: EVP_DecryptFinal is often misused, please use EVP_DecryptFinal_ex and EVP_CIPHER_CTX_cleanup");
493
482int 494int
483EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl) 495EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
484{ 496{