if (!RSAref_Private_eay2ref(rsa,&RSAkey))
goto err;
- if (len > RSAref_MAX_LEN)
- {
- RSAREFerr(RSAREF_F_RSA_REF_PRIVATE_DECRYPT,RSAREF_R_LEN);
- goto err;
- }
if ((i=RSAPrivateDecrypt(to,&outlen,from,len,&RSAkey)) != 0)
{
RSAREFerr(RSAREF_F_RSA_REF_PRIVATE_DECRYPT,i);
}
if (!RSAref_Private_eay2ref(rsa,&RSAkey))
goto err;
- if (len + 3 > RSAref_MAX_LEN)
- {
- RSAREFerr(RSAREF_F_RSA_REF_PRIVATE_ENCRYPT,RSAREF_R_LEN);
- goto err;
- }
if ((i=RSAPrivateEncrypt(to,&outlen,from,len,&RSAkey)) != 0)
{
RSAREFerr(RSAREF_F_RSA_REF_PRIVATE_ENCRYPT,i);
if (!RSAref_Public_eay2ref(rsa,&RSAkey))
goto err;
- if (len > RSAref_MAX_LEN)
- {
- RSAREFerr(RSAREF_F_RSA_REF_PUBLIC_DECRYPT,RSAREF_R_LEN);
- goto err;
- }
- goto err;
if ((i=RSAPublicDecrypt(to,&outlen,from,len,&RSAkey)) != 0)
{
RSAREFerr(RSAREF_F_RSA_REF_PUBLIC_DECRYPT,i);
R_GetRandomBytesNeeded((unsigned int *)&i,&rnd);
while (i > 0)
{
- RAND_bytes(buf,16);
+ if (RAND_bytes(buf,16) <= 0)
+ goto err;
R_RandomUpdate(&rnd,buf,(unsigned int)((i>16)?16:i));
i-=16;
}
if (!RSAref_Public_eay2ref(rsa,&RSAkey))
goto err;
- if (len + 3 > RSAref_MAX_LEN)
- {
- RSAREFerr(RSAREF_F_RSA_REF_PUBLIC_ENCRYPT,RSAREF_R_LEN);
- goto err;
- }
if ((i=RSAPublicEncrypt(to,&outlen,from,len,&RSAkey,&rnd)) != 0)
{
RSAREFerr(RSAREF_F_RSA_REF_PUBLIC_ENCRYPT,i);
memset(&rnd,0,sizeof(rnd));
return(outlen);
}
+#else /* !NO_RSA */
+
+# if PEDANTIC
+static void *dummy=&dummy;
+# endif
+
#endif