diff options
author | Jeffrey Walton <noloader@gmail.com> | 2019-01-16 00:02:04 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-16 00:02:04 -0500 |
commit | df9fa62205f2d341e2b1b26595a3a1b6377c60c5 (patch) | |
tree | d4b2b34861e76a9c7c7ec1d0b0e6fe4faf25c3d6 /eccrypto.cpp | |
parent | 982655845a784a9a4cfbc92221359a25a74184a3 (diff) | |
download | cryptopp-git-df9fa62205f2d341e2b1b26595a3a1b6377c60c5.tar.gz |
Use carryless multiplies for NIST b233 and k233 curves (GH #783, PR #784)
Use carryless multiplies for NIST b233 and k233 curves.
Diffstat (limited to 'eccrypto.cpp')
-rw-r--r-- | eccrypto.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/eccrypto.cpp b/eccrypto.cpp index eed99a17..f76c495a 100644 --- a/eccrypto.cpp +++ b/eccrypto.cpp @@ -99,7 +99,12 @@ template<> struct EcRecommendedParameters<EC2N> StringSource ssA(a, true, new HexDecoder);
StringSource ssB(b, true, new HexDecoder);
if (t0 == 0)
- return new EC2N(GF2NT(t2, t3, t4), EC2N::FieldElement(ssA, (size_t)ssA.MaxRetrievable()), EC2N::FieldElement(ssB, (size_t)ssB.MaxRetrievable()));
+ {
+ if (t2 == 233 && t3 == 74 && t4 == 0)
+ return new EC2N(GF2NT233(233, 74, 0), EC2N::FieldElement(ssA, (size_t)ssA.MaxRetrievable()), EC2N::FieldElement(ssB, (size_t)ssB.MaxRetrievable()));
+ else
+ return new EC2N(GF2NT(t2, t3, t4), EC2N::FieldElement(ssA, (size_t)ssA.MaxRetrievable()), EC2N::FieldElement(ssB, (size_t)ssB.MaxRetrievable()));
+ }
else
return new EC2N(GF2NPP(t0, t1, t2, t3, t4), EC2N::FieldElement(ssA, (size_t)ssA.MaxRetrievable()), EC2N::FieldElement(ssB, (size_t)ssB.MaxRetrievable()));
};
|