summaryrefslogtreecommitdiff
path: root/dsa.cpp
diff options
context:
space:
mode:
authorweidai <weidai11@users.noreply.github.com>2013-01-19 02:20:00 +0000
committerweidai <weidai11@users.noreply.github.com>2013-01-19 02:20:00 +0000
commit2fb44ea6db0df2bdc626c3028635ae41a2ef9f62 (patch)
tree0489fdbd8b1c5c6f87537d4136dcf1afeecb0bd8 /dsa.cpp
parent60a5ab4e66722e3ec2db18bfed836a0f0c718c81 (diff)
downloadcryptopp-git-2fb44ea6db0df2bdc626c3028635ae41a2ef9f62.tar.gz
add SHA-3
update DSA to FIPS 186-3 update version numbers
Diffstat (limited to 'dsa.cpp')
-rw-r--r--dsa.cpp56
1 files changed, 0 insertions, 56 deletions
diff --git a/dsa.cpp b/dsa.cpp
index ac9e1f8c..5aace485 100644
--- a/dsa.cpp
+++ b/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