Check EVP_Cipher return values for SSL2
[openssl.git] / ssl / s2_enc.c
index 1d0855940776b73a95bb37bd29073f891336c6d0..95d6eef6da8b7758815f4e513d5bcb8995e74218 100644 (file)
@@ -117,8 +117,9 @@ err:
 
 /* read/writes from s->s2->mac_data using length for encrypt and 
  * decrypt.  It sets s->s2->padding and s->[rw]length
- * if we are encrypting */
-void ssl2_enc(SSL *s, int send)
+ * if we are encrypting
+ * Returns 0 on error and 1 on success */
+int ssl2_enc(SSL *s, int send)
        {
        EVP_CIPHER_CTX *ds;
        unsigned long l;
@@ -145,7 +146,10 @@ void ssl2_enc(SSL *s, int send)
        if (bs == 8)
                l=(l+7)/8*8;
 
-       EVP_Cipher(ds,s->s2->mac_data,s->s2->mac_data,l);
+       if(EVP_Cipher(ds,s->s2->mac_data,s->s2->mac_data,l) < 1)
+               return 0;
+
+       return 1;
        }
 
 void ssl2_mac(SSL *s, unsigned char *md, int send)