From ff33581c67928d2c21f1e853bca3a561335d4c3e Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Thu, 10 Oct 2019 18:14:33 +0200 Subject: [PATCH] Providers: fix OSSL_FUNC_CIPHER_CIPHER functions This involves gcm_cipher() (providers/common/ciphers/cipher_gcm.c), ccm_cipher() (providers/common/ciphers/cipher_ccm.c), and tdes_wrap_cipher() (providers/common/ciphers/cipher_tdes_wrap.c) These are generic implementations of the OSSL_FUNC_CIPHER_CIPHER function, which returned -1 on error when they should return 0. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/10137) --- providers/common/ciphers/cipher_ccm.c | 4 ++-- providers/common/ciphers/cipher_gcm.c | 4 ++-- providers/implementations/ciphers/cipher_tdes_wrap.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/providers/common/ciphers/cipher_ccm.c b/providers/common/ciphers/cipher_ccm.c index 904af3a5e0..021a004276 100644 --- a/providers/common/ciphers/cipher_ccm.c +++ b/providers/common/ciphers/cipher_ccm.c @@ -278,11 +278,11 @@ int ccm_cipher(void *vctx, if (outsize < inl) { ERR_raise(ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL); - return -1; + return 0; } if (ccm_cipher_internal(ctx, out, outl, in, inl) <= 0) - return -1; + return 0; *outl = inl; return 1; diff --git a/providers/common/ciphers/cipher_gcm.c b/providers/common/ciphers/cipher_gcm.c index 580928fdde..d7c67e8b6b 100644 --- a/providers/common/ciphers/cipher_gcm.c +++ b/providers/common/ciphers/cipher_gcm.c @@ -263,11 +263,11 @@ int gcm_cipher(void *vctx, if (outsize < inl) { ERR_raise(ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL); - return -1; + return 0; } if (gcm_cipher_internal(ctx, out, outl, in, inl) <= 0) - return -1; + return 0; *outl = inl; return 1; diff --git a/providers/implementations/ciphers/cipher_tdes_wrap.c b/providers/implementations/ciphers/cipher_tdes_wrap.c index 75cc25df06..b26f2cb403 100644 --- a/providers/implementations/ciphers/cipher_tdes_wrap.c +++ b/providers/implementations/ciphers/cipher_tdes_wrap.c @@ -131,7 +131,7 @@ static int tdes_wrap_cipher(void *vctx, *outl = 0; if (outsize < inl) { PROVerr(0, PROV_R_OUTPUT_BUFFER_TOO_SMALL); - return -1; + return 0; } ret = tdes_wrap_cipher_internal(ctx, out, in, inl); -- 2.25.1