diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2013-08-16 12:25:53 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2013-08-16 12:25:53 +0200 |
commit | cbde4f546a3135d9889b37aa227468106958a94a (patch) | |
tree | 0444a5f3d1797a01fb6a4c01def9933084652e8c /CryptoPP/dsa.cpp | |
parent | Feature and bugfixes [SEE DESC] (diff) | |
parent | Replaced E_ENTITY_TYPE_XXX with cMonster::mtXXX. (diff) | |
download | cuberite-cbde4f546a3135d9889b37aa227468106958a94a.tar cuberite-cbde4f546a3135d9889b37aa227468106958a94a.tar.gz cuberite-cbde4f546a3135d9889b37aa227468106958a94a.tar.bz2 cuberite-cbde4f546a3135d9889b37aa227468106958a94a.tar.lz cuberite-cbde4f546a3135d9889b37aa227468106958a94a.tar.xz cuberite-cbde4f546a3135d9889b37aa227468106958a94a.tar.zst cuberite-cbde4f546a3135d9889b37aa227468106958a94a.zip |
Diffstat (limited to 'CryptoPP/dsa.cpp')
-rw-r--r-- | CryptoPP/dsa.cpp | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/CryptoPP/dsa.cpp b/CryptoPP/dsa.cpp index ac9e1f8c6..5aace4857 100644 --- a/CryptoPP/dsa.cpp +++ b/CryptoPP/dsa.cpp @@ -58,62 +58,6 @@ size_t DSAConvertSignatureFormat(byte *buffer, size_t bufferSize, DSASignatureFo return (size_t)sink.TotalPutLength(); } -bool DSA::GeneratePrimes(const byte *seedIn, unsigned int g, int &counter, - Integer &p, unsigned int L, Integer &q, bool useInputCounterValue) -{ - assert(g%8 == 0); - - SHA sha; - SecByteBlock seed(seedIn, g/8); - SecByteBlock U(SHA::DIGESTSIZE); - SecByteBlock temp(SHA::DIGESTSIZE); - SecByteBlock W(((L-1)/160+1) * SHA::DIGESTSIZE); - const int n = (L-1) / 160; - const int b = (L-1) % 160; - Integer X; - - sha.CalculateDigest(U, seed, g/8); - - for (int i=g/8-1, carry=true; i>=0 && carry; i--) - carry=!++seed[i]; - - sha.CalculateDigest(temp, seed, g/8); - xorbuf(U, temp, SHA::DIGESTSIZE); - - U[0] |= 0x80; - U[SHA::DIGESTSIZE-1] |= 1; - q.Decode(U, SHA::DIGESTSIZE); - - if (!IsPrime(q)) - return false; - - int counterEnd = useInputCounterValue ? counter+1 : 4096; - - for (int c = 0; c < counterEnd; c++) - { - for (int k=0; k<=n; k++) - { - for (int i=g/8-1, carry=true; i>=0 && carry; i--) - carry=!++seed[i]; - if (!useInputCounterValue || c == counter) - sha.CalculateDigest(W+(n-k)*SHA::DIGESTSIZE, seed, g/8); - } - if (!useInputCounterValue || c == counter) - { - W[SHA::DIGESTSIZE - 1 - b/8] |= 0x80; - X.Decode(W + SHA::DIGESTSIZE - 1 - b/8, L/8); - p = X-((X % (2*q))-1); - - if (p.GetBit(L-1) && IsPrime(p)) - { - counter = c; - return true; - } - } - } - return false; -} - NAMESPACE_END #endif |