When signing with an RSA private key, the following code is executed in InvertibleRSAFunction::CalculateInverse():

-----

Integer re = modn.Exponentiate(r, m_e);
re = modn.Multiply(re, x);                      // blind
// here we follow the notation of PKCS #1 and let u=q inverse mod p
// but in ModRoot, u=p inverse mod q, so we reverse the order of p and q
Integer y = ModularRoot(re, m_dq, m_dp, m_q, m_p, m_u);
y = modn.Multiply(y, rInv);                             // unblind
if (modn.Exponentiate(y, m_e) != x)             // check
throw Exception(Exception::OTHER_ERROR, "InvertibleRSAFunction: computational error during private key operation");

-----

I am seeing a case in which the exception is being thrown. The private key was generated by someone else, not me. I don't know what software was used to create it.

I don't really understand what this check is doing. What about the key is bad if the exception is thrown?

  Doc Evans

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to