Add asserts to pubkey.h

This commit is contained in:
Jeffrey Walton 2019-08-26 14:44:52 -04:00
parent 8fa8ec9913
commit 66a6994e99
No known key found for this signature in database
GPG Key ID: B36AB348921B1838

View File

@ -770,7 +770,9 @@ public:
if (m_validationLevel > level)
return true;
CRYPTOPP_ASSERT(ValidateGroup(rng, level));
bool pass = ValidateGroup(rng, level);
CRYPTOPP_ASSERT(ValidateElement(level, GetSubgroupGenerator(), &GetBasePrecomputation()));
pass = pass && ValidateElement(level, GetSubgroupGenerator(), &GetBasePrecomputation());
m_validationLevel = pass ? level+1 : 0;
@ -1215,14 +1217,21 @@ public:
// GeneratableCryptoMaterial
bool Validate(RandomNumberGenerator &rng, unsigned int level) const
{
CRYPTOPP_ASSERT(GetAbstractGroupParameters().Validate(rng, level));
bool pass = GetAbstractGroupParameters().Validate(rng, level);
const Integer &q = GetAbstractGroupParameters().GetSubgroupOrder();
const Integer &x = GetPrivateExponent();
CRYPTOPP_ASSERT(x.IsPositive());
CRYPTOPP_ASSERT(x < q);
pass = pass && x.IsPositive() && x < q;
if (level >= 1)
{
CRYPTOPP_ASSERT(Integer::Gcd(x, q) == Integer::One());
pass = pass && Integer::Gcd(x, q) == Integer::One();
}
return pass;
}
@ -1305,7 +1314,9 @@ public:
// CryptoMaterial
bool Validate(RandomNumberGenerator &rng, unsigned int level) const
{
CRYPTOPP_ASSERT(GetAbstractGroupParameters().Validate(rng, level));
bool pass = GetAbstractGroupParameters().Validate(rng, level);
CRYPTOPP_ASSERT(GetAbstractGroupParameters().ValidateElement(level, this->GetPublicElement(), &GetPublicPrecomputation()));
pass = pass && GetAbstractGroupParameters().ValidateElement(level, this->GetPublicElement(), &GetPublicPrecomputation());
return pass;
}