Add ECGDSA benchmarks using secp256k1 and sect233r1
Also add missing validation functions to test.cpp. The test and functions were present, but only accessible with 'cryptest.ex v', where all the tests were runpull/347/head
parent
cecf719fcd
commit
379e76d27d
|
|
@ -336,6 +336,8 @@ void BenchmarkAll2(double t, double hertz)
|
|||
ECDSA<ECP, SHA>::Verifier spub(spriv);
|
||||
ECDSA_RFC6979<ECP, SHA>::Signer spriv2(cpriv);
|
||||
ECDSA_RFC6979<ECP, SHA>::Verifier spub2(spriv);
|
||||
ECGDSA<ECP, SHA>::Signer spriv3(GlobalRNG(), ASN1::secp256k1());
|
||||
ECGDSA<ECP, SHA>::Verifier spub3(spriv3);
|
||||
ECDH<ECP>::Domain ecdhc(ASN1::secp256k1());
|
||||
ECMQV<ECP>::Domain ecmqvc(ASN1::secp256k1());
|
||||
|
||||
|
|
@ -345,6 +347,8 @@ void BenchmarkAll2(double t, double hertz)
|
|||
BenchMarkVerification("ECDSA over GF(p) 256", spriv, spub, t);
|
||||
BenchMarkSigning("ECDSA-RFC6979 over GF(p) 256", spriv2, t);
|
||||
BenchMarkVerification("ECDSA-RFC6979 over GF(p) 256", spriv2, spub2, t);
|
||||
BenchMarkSigning("ECGDSA over GF(p) 256", spriv3, t);
|
||||
BenchMarkVerification("ECGDSA over GF(p) 256", spriv3, spub, t);
|
||||
BenchMarkKeyGen("ECDHC over GF(p) 256", ecdhc, t);
|
||||
BenchMarkAgreement("ECDHC over GF(p) 256", ecdhc, t);
|
||||
BenchMarkKeyGen("ECMQVC over GF(p) 256", ecmqvc, t);
|
||||
|
|
@ -359,6 +363,8 @@ void BenchmarkAll2(double t, double hertz)
|
|||
ECDSA<EC2N, SHA>::Verifier spub(spriv);
|
||||
ECDSA_RFC6979<EC2N, SHA>::Signer spriv2(cpriv);
|
||||
ECDSA_RFC6979<EC2N, SHA>::Verifier spub2(spriv);
|
||||
ECGDSA<EC2N, SHA>::Signer spriv3(GlobalRNG(), ASN1::sect233r1());
|
||||
ECGDSA<EC2N, SHA>::Verifier spub3(spriv3);
|
||||
ECDH<EC2N>::Domain ecdhc(ASN1::sect233r1());
|
||||
ECMQV<EC2N>::Domain ecmqvc(ASN1::sect233r1());
|
||||
|
||||
|
|
@ -368,6 +374,8 @@ void BenchmarkAll2(double t, double hertz)
|
|||
BenchMarkVerification("ECDSA over GF(2^n) 233", spriv, spub, t);
|
||||
BenchMarkSigning("ECDSA-RFC6979 over GF(2^n) 233", spriv2, t);
|
||||
BenchMarkVerification("ECDSA-RFC6979 over GF(2^n) 233", spriv2, spub2, t);
|
||||
BenchMarkSigning("ECGDSA over GF(2^n) 233", spriv3, t);
|
||||
BenchMarkVerification("ECGDSA over GF(2^n) 233", spriv3, spub, t);
|
||||
BenchMarkKeyGen("ECDHC over GF(2^n) 233", ecdhc, t);
|
||||
BenchMarkAgreement("ECDHC over GF(2^n) 233", ecdhc, t);
|
||||
BenchMarkKeyGen("ECMQVC over GF(2^n) 233", ecmqvc, t);
|
||||
|
|
|
|||
|
|
@ -561,12 +561,13 @@ public:
|
|||
CRYPTOPP_STATIC_CONSTEXPR const char* CRYPTOPP_API StaticAlgorithmName() {return "ECGDSA";}
|
||||
};
|
||||
|
||||
//! \class ECGDSA_ISO15946
|
||||
//! \class ECGDSA
|
||||
//! \brief Elliptic Curve German Digital Signature Algorithm signature scheme
|
||||
//! \tparam EC elliptic curve field
|
||||
//! \tparam H HashTransformation derived class
|
||||
//! \sa Erwin Hess, Marcus Schafheutle, and Pascale Serf <A HREF="http://www.teletrust.de/fileadmin/files/oid/ecgdsa_final.pdf">The
|
||||
//! Digital Signature Scheme ECGDSA (October 24, 2006)</A>
|
||||
//! \since Crypto++ 5.7
|
||||
template <class EC, class H>
|
||||
struct ECGDSA : public DL_SS<
|
||||
DL_Keys_ECGDSA_ISO15946<EC>,
|
||||
|
|
|
|||
52
test.cpp
52
test.cpp
|
|
@ -945,31 +945,33 @@ bool Validate(int alg, bool thorough, const char *seedInput)
|
|||
case 46: result = ValidateSerpent(); break;
|
||||
case 47: result = ValidateCipherModes(); break;
|
||||
case 48: result = ValidateCRC32(); break;
|
||||
case 49: result = ValidateECDSA(); break;
|
||||
case 50: result = ValidateXTR_DH(); break;
|
||||
case 51: result = ValidateSKIPJACK(); break;
|
||||
case 52: result = ValidateSHA2(); break;
|
||||
case 53: result = ValidatePanama(); break;
|
||||
case 54: result = ValidateAdler32(); break;
|
||||
case 55: result = ValidateMD4(); break;
|
||||
case 56: result = ValidatePBKDF(); break;
|
||||
case 57: result = ValidateESIGN(); break;
|
||||
case 58: result = ValidateDLIES(); break;
|
||||
case 59: result = ValidateBaseCode(); break;
|
||||
case 60: result = ValidateSHACAL2(); break;
|
||||
case 61: result = ValidateCamellia(); break;
|
||||
case 62: result = ValidateWhirlpool(); break;
|
||||
case 63: result = ValidateTTMAC(); break;
|
||||
case 64: result = ValidateSalsa(); break;
|
||||
case 65: result = ValidateSosemanuk(); break;
|
||||
case 66: result = ValidateVMAC(); break;
|
||||
case 67: result = ValidateCCM(); break;
|
||||
case 68: result = ValidateGCM(); break;
|
||||
case 69: result = ValidateCMAC(); break;
|
||||
case 70: result = ValidateHKDF(); break;
|
||||
case 71: result = ValidateBLAKE2s(); break;
|
||||
case 72: result = ValidateBLAKE2b(); break;
|
||||
case 73: result = ValidateECGDSA(); break;
|
||||
case 49: result = ValidateCRC32C(); break;
|
||||
case 50: result = ValidateECDSA(); break;
|
||||
case 51: result = ValidateECGDSA(); break;
|
||||
case 52: result = ValidateXTR_DH(); break;
|
||||
case 53: result = ValidateSKIPJACK(); break;
|
||||
case 54: result = ValidateSHA2(); break;
|
||||
case 55: result = ValidatePanama(); break;
|
||||
case 56: result = ValidateAdler32(); break;
|
||||
case 57: result = ValidateMD4(); break;
|
||||
case 58: result = ValidatePBKDF(); break;
|
||||
case 59: result = ValidateESIGN(); break;
|
||||
case 60: result = ValidateDLIES(); break;
|
||||
case 61: result = ValidateBaseCode(); break;
|
||||
case 62: result = ValidateSHACAL2(); break;
|
||||
case 63: result = ValidateCamellia(); break;
|
||||
case 64: result = ValidateWhirlpool(); break;
|
||||
case 65: result = ValidateTTMAC(); break;
|
||||
case 66: result = ValidateSalsa(); break;
|
||||
case 67: result = ValidateSosemanuk(); break;
|
||||
case 68: result = ValidateVMAC(); break;
|
||||
case 69: result = ValidateCCM(); break;
|
||||
case 70: result = ValidateGCM(); break;
|
||||
case 71: result = ValidateCMAC(); break;
|
||||
case 72: result = ValidateHKDF(); break;
|
||||
case 73: result = ValidateBLAKE2s(); break;
|
||||
case 74: result = ValidateBLAKE2b(); break;
|
||||
case 75: result = ValidatePoly1305(); break;
|
||||
default: return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue