]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - crypto/rsa/rsa_pk1.c
Import of old SSLeay release: SSLeay 0.9.1b (unreleased)
[thirdparty/openssl.git] / crypto / rsa / rsa_pk1.c
index 2791291b948df9e36b2e053a0d663cb180b827a0..4638187970b18e19df900ad101225ff3f11dbed6 100644 (file)
@@ -103,17 +103,18 @@ int flen;
        return(1);
        }
 
-int RSA_padding_check_PKCS1_type_1(to,tlen,from,flen)
+int RSA_padding_check_PKCS1_type_1(to,tlen,from,flen,num)
 unsigned char *to;
 int tlen;
 unsigned char *from;
 int flen;
+int num;
        {
        int i,j;
        unsigned char *p;
 
        p=from;
-       if (*(p++) != 01)
+       if ((num != (flen+1)) || (*(p++) != 01))
                {
                RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1,RSA_R_BLOCK_TYPE_IS_NOT_01);
                return(-1);
@@ -192,21 +193,25 @@ int flen;
        return(1);
        }
 
-int RSA_padding_check_PKCS1_type_2(to,tlen,from,flen)
+int RSA_padding_check_PKCS1_type_2(to,tlen,from,flen,num)
 unsigned char *to;
 int tlen;
 unsigned char *from;
 int flen;
+int num;
        {
        int i,j;
        unsigned char *p;
 
        p=from;
-       if (*(p++) != 02)
+       if ((num != (flen+1)) || (*(p++) != 02))
                {
                RSAerr(RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2,RSA_R_BLOCK_TYPE_IS_NOT_02);
                return(-1);
                }
+#ifdef PKCS1_CHECK
+       return(num-11);
+#endif
 
        /* scan over padding data */
        j=flen-1; /* one for type. */