diff options
author | lloyd <[email protected]> | 2009-10-13 16:05:37 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2009-10-13 16:05:37 +0000 |
commit | 6f68dc5485ebd41fdef837ab651a47a893d84408 (patch) | |
tree | 3cda82570052b7bed24df2754c2245479188488a /src/math/gfpmath | |
parent | 9268a0455a07d31a66364aa5b7594bd75250b466 (diff) | |
parent | 1b0448fae6652a2da7f0de1fdcd2bbcda9836ca9 (diff) |
propagate from branch 'net.randombit.botan' (head 139d6957d20f0b1202e0eacc63cb011588faffde)
to branch 'net.randombit.botan.c++0x' (head c16676fa6c393bc3f46a044755ce525a013380a6)
Diffstat (limited to 'src/math/gfpmath')
-rw-r--r-- | src/math/gfpmath/curve_gfp.cpp | 28 | ||||
-rw-r--r-- | src/math/gfpmath/curve_gfp.h | 16 | ||||
-rw-r--r-- | src/math/gfpmath/gfp_element.cpp | 6 | ||||
-rw-r--r-- | src/math/gfpmath/gfp_element.h | 17 | ||||
-rw-r--r-- | src/math/gfpmath/point_gfp.cpp | 16 | ||||
-rw-r--r-- | src/math/gfpmath/point_gfp.h | 10 |
6 files changed, 43 insertions, 50 deletions
diff --git a/src/math/gfpmath/curve_gfp.cpp b/src/math/gfpmath/curve_gfp.cpp index 9a3ffd482..d88146dd5 100644 --- a/src/math/gfpmath/curve_gfp.cpp +++ b/src/math/gfpmath/curve_gfp.cpp @@ -14,7 +14,7 @@ namespace Botan { -void CurveGFp::set_shrd_mod(const std::tr1::shared_ptr<GFpModulus> mod) +void CurveGFp::set_shrd_mod(const std::shared_ptr<GFpModulus> mod) { mp_mod = mod; mA.turn_off_sp_red_mul();// m.m. is not needed, must be trf. back @@ -34,7 +34,7 @@ CurveGFp::CurveGFp(const GFpElement& a, const GFpElement& b, { throw Invalid_Argument("could not construct curve: moduli of arguments differ"); } - std::tr1::shared_ptr<GFpModulus> p_mod = std::tr1::shared_ptr<GFpModulus>(new GFpModulus(p)); + std::shared_ptr<GFpModulus> p_mod = std::shared_ptr<GFpModulus>(new GFpModulus(p)); // the above is the creation of the GFpModuls object which will be shared point-wide // (in the context of a point of course) set_shrd_mod(p_mod); @@ -44,21 +44,21 @@ CurveGFp::CurveGFp(const CurveGFp& other) : mA(other.get_a()), mB(other.get_b()) { - mp_mod = std::tr1::shared_ptr<GFpModulus>(new GFpModulus(*other.mp_mod)); + mp_mod = std::shared_ptr<GFpModulus>(new GFpModulus(*other.mp_mod)); assert(mp_mod->p_equal_to(mA.get_p())); assert(mp_mod->p_equal_to(mB.get_p())); set_shrd_mod(mp_mod); if(other.mp_mres_a.get()) { - mp_mres_a = std::tr1::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_a)); + mp_mres_a = std::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_a)); } if(other.mp_mres_b.get()) { - mp_mres_b = std::tr1::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_b)); + mp_mres_b = std::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_b)); } if(other.mp_mres_one.get()) { - mp_mres_one = std::tr1::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_one)); + mp_mres_one = std::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_one)); } } @@ -72,21 +72,21 @@ const CurveGFp& CurveGFp::operator=(const CurveGFp& other) mA.swap(a_tmp); mB.swap(b_tmp); - std::tr1::shared_ptr<GFpModulus> p_mod = std::tr1::shared_ptr<GFpModulus>(new GFpModulus(*other.mp_mod)); + std::shared_ptr<GFpModulus> p_mod = std::shared_ptr<GFpModulus>(new GFpModulus(*other.mp_mod)); set_shrd_mod(p_mod); // exception safety note: no problem if we have a throw from here on... if(other.mp_mres_a.get()) { - mp_mres_a = std::tr1::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_a)); + mp_mres_a = std::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_a)); } if(other.mp_mres_b.get()) { - mp_mres_b = std::tr1::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_b)); + mp_mres_b = std::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_b)); } if(other.mp_mres_one.get()) { - mp_mres_one = std::tr1::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_one)); + mp_mres_one = std::shared_ptr<GFpElement>(new GFpElement(*other.mp_mres_one)); } return *this; } @@ -123,7 +123,7 @@ GFpElement const CurveGFp::get_mres_a() const { if(mp_mres_a.get() == 0) { - mp_mres_a = std::tr1::shared_ptr<GFpElement>(new GFpElement(mA)); + mp_mres_a = std::shared_ptr<GFpElement>(new GFpElement(mA)); mp_mres_a->turn_on_sp_red_mul(); mp_mres_a->get_mres(); } @@ -134,18 +134,18 @@ GFpElement const CurveGFp::get_mres_b() const { if(mp_mres_b.get() == 0) { - mp_mres_b = std::tr1::shared_ptr<GFpElement>(new GFpElement(mB)); + mp_mres_b = std::shared_ptr<GFpElement>(new GFpElement(mB)); mp_mres_b->turn_on_sp_red_mul(); mp_mres_b->get_mres(); } return GFpElement(*mp_mres_b); } -std::tr1::shared_ptr<GFpElement const> const CurveGFp::get_mres_one() const +std::shared_ptr<GFpElement const> const CurveGFp::get_mres_one() const { if(mp_mres_one.get() == 0) { - mp_mres_one = std::tr1::shared_ptr<GFpElement>(new GFpElement(mp_mod->get_p(), 1)); + mp_mres_one = std::shared_ptr<GFpElement>(new GFpElement(mp_mod->get_p(), 1)); mp_mres_one->turn_on_sp_red_mul(); mp_mres_one->get_mres(); } diff --git a/src/math/gfpmath/curve_gfp.h b/src/math/gfpmath/curve_gfp.h index 81cf6ce51..eab8a57da 100644 --- a/src/math/gfpmath/curve_gfp.h +++ b/src/math/gfpmath/curve_gfp.h @@ -57,7 +57,7 @@ class BOTAN_DLL CurveGFp * @param mod a shared pointer to a GFpModulus object suitable for * *this. */ - void set_shrd_mod(const std::tr1::shared_ptr<GFpModulus> mod); + void set_shrd_mod(const std::shared_ptr<GFpModulus> mod); // getters @@ -99,14 +99,14 @@ class BOTAN_DLL CurveGFp * function. * @result the GFpElement 1, transformed to its m-residue */ - std::tr1::shared_ptr<GFpElement const> const get_mres_one() const; + std::shared_ptr<GFpElement const> const get_mres_one() const; /** * Get prime modulus of the field of the curve * @result prime modulus of the field of the curve */ BigInt const get_p() const; - /*inline std::tr1::shared_ptr<BigInt> const get_ptr_p() const + /*inline std::shared_ptr<BigInt> const get_ptr_p() const { return mp_p; }*/ @@ -119,7 +119,7 @@ class BOTAN_DLL CurveGFp * Do NOT spread pointers to a GFpModulus over different threads! * @result a shared pointer to a GFpModulus object */ - inline std::tr1::shared_ptr<GFpModulus> const get_ptr_mod() const + inline std::shared_ptr<GFpModulus> const get_ptr_mod() const { return mp_mod; } @@ -131,12 +131,12 @@ class BOTAN_DLL CurveGFp void swap(CurveGFp& other); private: - std::tr1::shared_ptr<GFpModulus> mp_mod; + std::shared_ptr<GFpModulus> mp_mod; GFpElement mA; GFpElement mB; - mutable std::tr1::shared_ptr<GFpElement> mp_mres_a; - mutable std::tr1::shared_ptr<GFpElement> mp_mres_b; - mutable std::tr1::shared_ptr<GFpElement> mp_mres_one; + mutable std::shared_ptr<GFpElement> mp_mres_a; + mutable std::shared_ptr<GFpElement> mp_mres_b; + mutable std::shared_ptr<GFpElement> mp_mres_one; }; // relational operators diff --git a/src/math/gfpmath/gfp_element.cpp b/src/math/gfpmath/gfp_element.cpp index f9e0b09c9..5b1d562c3 100644 --- a/src/math/gfpmath/gfp_element.cpp +++ b/src/math/gfpmath/gfp_element.cpp @@ -176,13 +176,13 @@ GFpElement::GFpElement(const BigInt& p, const BigInt& value, bool use_montgm) m_is_trf(false) { assert(mp_mod.get() == 0); - mp_mod = std::tr1::shared_ptr<GFpModulus>(new GFpModulus(p)); + mp_mod = std::shared_ptr<GFpModulus>(new GFpModulus(p)); assert(mp_mod->m_p_dash == 0); if(m_use_montgm) ensure_montgm_precomp(); } -GFpElement::GFpElement(std::tr1::shared_ptr<GFpModulus> const mod, const BigInt& value, bool use_montgm) +GFpElement::GFpElement(std::shared_ptr<GFpModulus> const mod, const BigInt& value, bool use_montgm) : mp_mod(), m_value(value % mod->m_p), m_use_montgm(use_montgm), @@ -249,7 +249,7 @@ void GFpElement::ensure_montgm_precomp() const } -void GFpElement::set_shrd_mod(std::tr1::shared_ptr<GFpModulus> const p_mod) +void GFpElement::set_shrd_mod(std::shared_ptr<GFpModulus> const p_mod) { mp_mod = p_mod; } diff --git a/src/math/gfpmath/gfp_element.h b/src/math/gfpmath/gfp_element.h index 18d9e51f9..f8aaf62db 100644 --- a/src/math/gfpmath/gfp_element.h +++ b/src/math/gfpmath/gfp_element.h @@ -17,14 +17,7 @@ #include <botan/bigint.h> #include <botan/gfp_modulus.h> #include <iosfwd> - -#if defined(BOTAN_USE_STD_TR1) - #include <tr1/memory> -#elif defined(BOTAN_USE_BOOST_TR1) - #include <boost/tr1/memory.hpp> -#else - #error "Please choose a TR1 implementation in build.h" -#endif +#include <memory> namespace Botan { @@ -64,7 +57,7 @@ class BOTAN_DLL GFpElement * @param value the element value * @param use_montgm whether this object will use Montgomery multiplication */ - explicit GFpElement(std::tr1::shared_ptr<GFpModulus> const mod, + explicit GFpElement(std::shared_ptr<GFpModulus> const mod, const BigInt& value, bool use_mongm = false); /** @@ -175,7 +168,7 @@ class BOTAN_DLL GFpElement * the shared GFpModulus objects! * @result the shared pointer to the GFpModulus of *this */ - inline std::tr1::shared_ptr<GFpModulus> const get_ptr_mod() const + inline std::shared_ptr<GFpModulus> const get_ptr_mod() const { return mp_mod; } @@ -188,7 +181,7 @@ class BOTAN_DLL GFpElement * the shared GFpModulus objects! * @param mod a shared pointer to a GFpModulus that will be held in *this */ - void set_shrd_mod(std::tr1::shared_ptr<GFpModulus> const mod); + void set_shrd_mod(std::shared_ptr<GFpModulus> const mod); /** * Tells whether this GFpElement is currently transformed to it´ m-residue, @@ -250,7 +243,7 @@ class BOTAN_DLL GFpElement void trf_to_mres() const; void trf_to_ordres() const; - std::tr1::shared_ptr<GFpModulus> mp_mod; + std::shared_ptr<GFpModulus> mp_mod; mutable BigInt m_value; // ordinary residue or m-residue respectively mutable BigInt workspace; diff --git a/src/math/gfpmath/point_gfp.cpp b/src/math/gfpmath/point_gfp.cpp index b67631f7b..b19687537 100644 --- a/src/math/gfpmath/point_gfp.cpp +++ b/src/math/gfpmath/point_gfp.cpp @@ -108,7 +108,7 @@ const PointGFp& PointGFp::assign_within_same_curve(PointGFp const& other) return *this; } -void PointGFp::set_shrd_mod(std::tr1::shared_ptr<GFpModulus> p_mod) +void PointGFp::set_shrd_mod(std::shared_ptr<GFpModulus> p_mod) { mX.set_shrd_mod(p_mod); mY.set_shrd_mod(p_mod); @@ -132,7 +132,7 @@ void PointGFp::ensure_worksp() const } } - mp_worksp_gfp_el = std::tr1::shared_ptr<std::vector<GFpElement> >(new std::vector<GFpElement>); + mp_worksp_gfp_el = std::shared_ptr<std::vector<GFpElement> >(new std::vector<GFpElement>); mp_worksp_gfp_el->reserve(9); for (u32bit i=0; i<GFPEL_WKSP_SIZE; i++) { @@ -336,8 +336,8 @@ PointGFp& PointGFp::mult_this_secure(const BigInt& scalar, // use montgomery mult. in this operation this->turn_on_sp_red_mul(); - std::tr1::shared_ptr<PointGFp> H(new PointGFp(this->mC)); - std::tr1::shared_ptr<PointGFp> tmp; // used for AADA + std::shared_ptr<PointGFp> H(new PointGFp(this->mC)); + std::shared_ptr<PointGFp> tmp; // used for AADA PointGFp P(*this); BigInt m(scalar); @@ -476,15 +476,15 @@ PointGFp& PointGFp::operator*=(const BigInt& scalar) return *this; } -inline std::tr1::shared_ptr<PointGFp> PointGFp::mult_loop(int l, +inline std::shared_ptr<PointGFp> PointGFp::mult_loop(int l, const BigInt& m, - std::tr1::shared_ptr<PointGFp> H, - std::tr1::shared_ptr<PointGFp> tmp, + std::shared_ptr<PointGFp> H, + std::shared_ptr<PointGFp> tmp, const PointGFp& P) { //assert(l >= (int)m.bits()- 1); tmp = H; - std::tr1::shared_ptr<PointGFp> to_add(new PointGFp(P)); // we just need some point + std::shared_ptr<PointGFp> to_add(new PointGFp(P)); // we just need some point // so that we can use op= // inside the loop for (int i=l; i >=0; i--) diff --git a/src/math/gfpmath/point_gfp.h b/src/math/gfpmath/point_gfp.h index 62b3bc7da..ce2bf1626 100644 --- a/src/math/gfpmath/point_gfp.h +++ b/src/math/gfpmath/point_gfp.h @@ -232,7 +232,7 @@ class BOTAN_DLL PointGFp * @param mod a shared pointer to a GFpModulus that will * be held in the members *this */ - void set_shrd_mod(std::tr1::shared_ptr<GFpModulus> p_mod); + void set_shrd_mod(std::shared_ptr<GFpModulus> p_mod); static GFpElement decompress(bool yMod2, GFpElement const& x, const CurveGFp& curve); @@ -240,9 +240,9 @@ class BOTAN_DLL PointGFp static const u32bit GFPEL_WKSP_SIZE = 9; void ensure_worksp() const; - inline std::tr1::shared_ptr<PointGFp> mult_loop(int l, const BigInt& m, - std::tr1::shared_ptr<PointGFp> H, - std::tr1::shared_ptr<PointGFp> tmp, + inline std::shared_ptr<PointGFp> mult_loop(int l, const BigInt& m, + std::shared_ptr<PointGFp> H, + std::shared_ptr<PointGFp> tmp, const PointGFp& P); CurveGFp mC; @@ -255,7 +255,7 @@ class BOTAN_DLL PointGFp mutable bool mZpow2_set; mutable bool mZpow3_set; mutable bool mAZpow4_set; - mutable std::tr1::shared_ptr<std::vector<GFpElement> > mp_worksp_gfp_el; + mutable std::shared_ptr<std::vector<GFpElement> > mp_worksp_gfp_el; }; |