minor changes
parent
a7d2ffa2b3
commit
2ccaf2ef1d
|
|
@ -440,7 +440,7 @@ bool FirstPrime(Integer &p, const Integer &max, const Integer &equiv, const Inte
|
||||||
else
|
else
|
||||||
pItr = primeTable;
|
pItr = primeTable;
|
||||||
|
|
||||||
while (pItr < primeTable+primeTableSize && *pItr%mod != equiv)
|
while (pItr < primeTable+primeTableSize && !(*pItr%mod == equiv && (!pSelector || pSelector->IsAcceptable(*pItr))))
|
||||||
++pItr;
|
++pItr;
|
||||||
|
|
||||||
if (pItr < primeTable+primeTableSize)
|
if (pItr < primeTable+primeTableSize)
|
||||||
|
|
|
||||||
8
rsa.cpp
8
rsa.cpp
|
|
@ -217,13 +217,17 @@ Integer InvertibleRSAFunction::CalculateInverse(RandomNumberGenerator &rng, cons
|
||||||
{
|
{
|
||||||
DoQuickSanityCheck();
|
DoQuickSanityCheck();
|
||||||
ModularArithmetic modn(m_n);
|
ModularArithmetic modn(m_n);
|
||||||
Integer r(rng, Integer::One(), m_n - Integer::One());
|
Integer r, rInv;
|
||||||
|
do { // do this loop for people using small numbers for testing
|
||||||
|
r.Randomize(rng, Integer::One(), m_n - Integer::One());
|
||||||
|
rInv = modn.MultiplicativeInverse(r);
|
||||||
|
} while (rInv.IsZero());
|
||||||
Integer re = modn.Exponentiate(r, m_e);
|
Integer re = modn.Exponentiate(r, m_e);
|
||||||
re = modn.Multiply(re, x); // blind
|
re = modn.Multiply(re, x); // blind
|
||||||
// here we follow the notation of PKCS #1 and let u=q inverse mod p
|
// 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
|
// 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);
|
Integer y = ModularRoot(re, m_dq, m_dp, m_q, m_p, m_u);
|
||||||
y = modn.Divide(y, r); // unblind
|
y = modn.Multiply(y, rInv); // unblind
|
||||||
if (modn.Exponentiate(y, m_e) != x) // check
|
if (modn.Exponentiate(y, m_e) != x) // check
|
||||||
throw Exception(Exception::OTHER_ERROR, "InvertibleRSAFunction: computational error during private key operation");
|
throw Exception(Exception::OTHER_ERROR, "InvertibleRSAFunction: computational error during private key operation");
|
||||||
return y;
|
return y;
|
||||||
|
|
|
||||||
9
wait.cpp
9
wait.cpp
|
|
@ -15,6 +15,15 @@
|
||||||
|
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
|
unsigned int WaitObjectContainer::MaxWaitObjects()
|
||||||
|
{
|
||||||
|
#ifdef USE_WINDOWS_STYLE_SOCKETS
|
||||||
|
return MAXIMUM_WAIT_OBJECTS * (MAXIMUM_WAIT_OBJECTS-1);
|
||||||
|
#else
|
||||||
|
return FD_SETSIZE;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
WaitObjectContainer::WaitObjectContainer()
|
WaitObjectContainer::WaitObjectContainer()
|
||||||
{
|
{
|
||||||
Clear();
|
Clear();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue