From: Dr. Stephen Henson Date: Sun, 11 Jun 2000 12:27:58 +0000 (+0000) Subject: Make EVP_SealInit() and EVP_OpenInit() check EVP_EncryptInit() and X-Git-Tag: OpenSSL-engine-0_9_6-beta1~21^2~70 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=fd75eb50c0460f13dc58d6884c14e4010478953f Make EVP_SealInit() and EVP_OpenInit() check EVP_EncryptInit() and EVP_DecryptInit() return values. Update docs. --- diff --git a/crypto/evp/p_open.c b/crypto/evp/p_open.c index dbf83b250a..2760c00fec 100644 --- a/crypto/evp/p_open.c +++ b/crypto/evp/p_open.c @@ -71,7 +71,7 @@ int EVP_OpenInit(EVP_CIPHER_CTX *ctx, EVP_CIPHER *type, unsigned char *ek, if(type) { EVP_CIPHER_CTX_init(ctx); - EVP_DecryptInit(ctx,type,NULL,NULL); + if(!EVP_DecryptInit(ctx,type,NULL,NULL)) return 0; } if(!priv) return 1; @@ -79,7 +79,6 @@ int EVP_OpenInit(EVP_CIPHER_CTX *ctx, EVP_CIPHER *type, unsigned char *ek, if (priv->type != EVP_PKEY_RSA) { EVPerr(EVP_F_EVP_OPENINIT,EVP_R_PUBLIC_KEY_NOT_RSA); - ret= -1; goto err; } @@ -89,7 +88,6 @@ int EVP_OpenInit(EVP_CIPHER_CTX *ctx, EVP_CIPHER *type, unsigned char *ek, { /* ERROR */ EVPerr(EVP_F_EVP_OPENINIT,ERR_R_MALLOC_FAILURE); - ret= -1; goto err; } diff --git a/crypto/evp/p_seal.c b/crypto/evp/p_seal.c index be021ee3cf..2fd1d7e0c2 100644 --- a/crypto/evp/p_seal.c +++ b/crypto/evp/p_seal.c @@ -74,7 +74,7 @@ int EVP_SealInit(EVP_CIPHER_CTX *ctx, EVP_CIPHER *type, unsigned char **ek, if(type) { EVP_CIPHER_CTX_init(ctx); - EVP_EncryptInit(ctx,type,NULL,NULL); + if(!EVP_EncryptInit(ctx,type,NULL,NULL)) return 0; } if (npubk <= 0) return(0); if (RAND_bytes(key,EVP_MAX_KEY_LENGTH) <= 0) diff --git a/doc/crypto/EVP_OpenInit.pod b/doc/crypto/EVP_OpenInit.pod index 48be966b4d..cd587ea651 100644 --- a/doc/crypto/EVP_OpenInit.pod +++ b/doc/crypto/EVP_OpenInit.pod @@ -48,7 +48,7 @@ key length must match the fixed cipher length. EVP_OpenInit() returns -1 on error or a non zero integer (actually the recovered secret key size) if successful. -EVP_OpenUpdate() does not return a value. +EVP_OpenUpdate() returns 1 for success of 0 for failure. EVP_OpenFinal() returns 0 if the decrypt failed or 1 for success. diff --git a/doc/crypto/EVP_SealInit.pod b/doc/crypto/EVP_SealInit.pod index feeba36569..038bf9746f 100644 --- a/doc/crypto/EVP_SealInit.pod +++ b/doc/crypto/EVP_SealInit.pod @@ -43,7 +43,8 @@ page. EVP_SealInit() returns -1 on error or B if successful. -EVP_SealUpdate() and EVP_SealFinal() do not return values. +EVP_SealUpdate() and EVP_SealFinal() return 1 for success and 0 for +failure. =head1 NOTES