diff options
author | Jack Lloyd <[email protected]> | 2018-04-17 18:06:34 -0400 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2018-04-17 18:07:25 -0400 |
commit | 2cfa191a940b7b884f24d23d94227ff382c672b4 (patch) | |
tree | 1faccd9cdaa635141783b685b3d5267f5bceac0c /src/lib/pubkey/ec_group/ec_group.cpp | |
parent | 4ef7125afe98fafa261cec0b083b69a029aaf678 (diff) |
Add EC_Group::inverse_mod_order
Centralizing this logic allows curve specific implementations such
as using a precomputed ladder for exponentiating by p - 2
GH #1479
Diffstat (limited to 'src/lib/pubkey/ec_group/ec_group.cpp')
-rw-r--r-- | src/lib/pubkey/ec_group/ec_group.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/pubkey/ec_group/ec_group.cpp b/src/lib/pubkey/ec_group/ec_group.cpp index fc512b733..ac23aa151 100644 --- a/src/lib/pubkey/ec_group/ec_group.cpp +++ b/src/lib/pubkey/ec_group/ec_group.cpp @@ -89,6 +89,11 @@ class EC_Group_Data final return m_mod_order.multiply(x, y); } + BigInt inverse_mod_order(const BigInt& x) const + { + return inverse_mod(x, m_order); + } + PointGFp blinded_base_point_multiply(const BigInt& k, RandomNumberGenerator& rng, std::vector<BigInt>& ws) const @@ -477,6 +482,11 @@ BigInt EC_Group::multiply_mod_order(const BigInt& x, const BigInt& y) const return data().multiply_mod_order(x, y); } +BigInt EC_Group::inverse_mod_order(const BigInt& x) const + { + return data().inverse_mod_order(x); + } + const OID& EC_Group::get_curve_oid() const { return data().oid(); |