Я реализовал это и получаю сообщение об ошибке: 0407B07B: подпрограммы rsa: RSA_check_key: de не соответствует 1
BitLen 1024, ModLen 128, Prime1, Prime2, Exponent1, Exponent2, Coefficient length = 64 PrivateExponent Len =128
RSA* blobtorsa()
{
BN_set_word(rsa->e, prsahdr->pubexp);
lend_tobn(rsa->n, pbmod, cbmod);
lend_tobn(rsa->p, pbprime1, cbprimes);
lend_tobn(rsa->q, pbprime2, cbprimes);
lend_tobn(rsa->d, pbprivexp, cbprivexp);
// d mod ( p - 1 )
BN_mod_sub(rsa->dmp1, rsa->d, BN_value_one(), rsa->p, ctx);
// d mod (q-1)
BN_mod_sub(rsa->dmq1, rsa->d, BN_value_one(), rsa->q, ctx);
BIGNUM* negone = BN_new();
BN_set_word(negone, -1);
// q^-1 mod p
BN_mod_exp(rsa->iqmp, rsa->q, negone, rsa->p, ctx);
if ( RSA_check_key(rsa) == 0 )
{
print error
error:0407B07B:rsa routines:RSA_check_key:d e not congruent to 1
}
}