Blow away Makefile.ssl.
[openssl.git] / crypto / rsa / rsa_ssl.c
index 83dfc80c1d77cb309316830c6a305ff046904b9f..ea72629494cffd952d15eff4098b3f554c9ff723 100644 (file)
@@ -62,8 +62,8 @@
 #include <openssl/rsa.h>
 #include <openssl/rand.h>
 
-int RSA_padding_add_SSLv23(unsigned char *to, int tlen, unsigned char *from,
-            int flen)
+int RSA_padding_add_SSLv23(unsigned char *to, int tlen,
+       const unsigned char *from, int flen)
        {
        int i,j;
        unsigned char *p;
@@ -102,11 +102,11 @@ int RSA_padding_add_SSLv23(unsigned char *to, int tlen, unsigned char *from,
        return(1);
        }
 
-int RSA_padding_check_SSLv23(unsigned char *to, int tlen, unsigned char *from,
-            int flen, int num)
+int RSA_padding_check_SSLv23(unsigned char *to, int tlen,
+       const unsigned char *from, int flen, int num)
        {
        int i,j,k;
-       unsigned char *p;
+       const unsigned char *p;
 
        p=from;
        if (flen < 10)
@@ -134,7 +134,7 @@ int RSA_padding_check_SSLv23(unsigned char *to, int tlen, unsigned char *from,
                {
                if (p[k] !=  0x03) break;
                }
-       if (k == 0)
+       if (k == -1)
                {
                RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23,RSA_R_SSLV3_ROLLBACK_ATTACK);
                return(-1);
@@ -142,6 +142,11 @@ int RSA_padding_check_SSLv23(unsigned char *to, int tlen, unsigned char *from,
 
        i++; /* Skip over the '\0' */
        j-=i;
+       if (j > tlen)
+               {
+               RSAerr(RSA_F_RSA_PADDING_CHECK_SSLV23,RSA_R_DATA_TOO_LARGE);
+               return(-1);
+               }
        memcpy(to,p,(unsigned int)j);
 
        return(j);