Эта ошибка происходит от crypto / rsa / rsa_none.c
int RSA_padding_add_none(unsigned char *to, int tlen,
const unsigned char *from, int flen)
{
if (flen > tlen)
{
RSAerr(RSA_F_RSA_PADDING_ADD_NONE,RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE);
return(0);
}
if (flen < tlen)
{
RSAerr(RSA_F_RSA_PADDING_ADD_NONE,RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE);
return(0);
}
memcpy(to,from,(unsigned int)flen);
return(1);
}
Вызывается из rypto / rsa / rsa_eay.c
static int RSA_eay_public_encrypt(int flen, const unsigned char *from,
unsigned char *to, RSA *rsa, int padding)
...
i=RSA_padding_add_none(buf,num,from,flen);
flen
- это сообщение len;tlen
от: num=BN_num_bytes(rsa->n);
Итак, Ваши данные должны иметь ту же длину байта, что и параметр N
ключа RSA
ТакжеНасколько я знаю, ваши данные должны быть меньше N (если рассматривать как одно длинное-длинное-длинное двоичное число)