Use a signed value to check return value of do_cipher().
[openssl.git] / crypto / evp / p_open.c
index da0afda98377677740969afd1acdaee73ac493c8..c748fbea877250031f8b40b60b36ef2d4b5f85c9 100644 (file)
@@ -67,8 +67,8 @@
 #include <openssl/rsa.h>
 
 int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
-                const unsigned char *ek, size_t ekl, const unsigned char *iv,
-                EVP_PKEY *priv)
+       const unsigned char *ek, int ekl, const unsigned char *iv,
+       EVP_PKEY *priv)
        {
        unsigned char *key=NULL;
        int i,size=0,ret=0;
@@ -115,7 +115,8 @@ int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
        int i;
 
        i=EVP_DecryptFinal_ex(ctx,out,outl);
-       EVP_DecryptInit_ex(ctx,NULL,NULL,NULL,NULL);
+       if (i)
+               i = EVP_DecryptInit_ex(ctx,NULL,NULL,NULL,NULL);
        return(i);
        }
 #else /* !OPENSSL_NO_RSA */