aboutsummaryrefslogtreecommitdiffstats
path: root/src/math
diff options
context:
space:
mode:
authorlloyd <[email protected]>2009-10-13 16:01:57 +0000
committerlloyd <[email protected]>2009-10-13 16:01:57 +0000
commit9268a0455a07d31a66364aa5b7594bd75250b466 (patch)
tree63b683ca95448ce083981d002d870a569c2c98a1 /src/math
parent3bc2bb0461b1b40466821daf0061eab769621eab (diff)
parent5318b944acc2a5fa6d445784c710f37c793ff90b (diff)
propagate from branch 'net.randombit.botan.1_8' (head c5ae189464f6ef16e3ce73ea7c563412460d76a3)
to branch 'net.randombit.botan' (head e2b95b6ad31c7539cf9ac0ebddb1d80bf63b5b21)
Diffstat (limited to 'src/math')
-rw-r--r--src/math/bigint/bigint.cpp2
-rw-r--r--src/math/gfpmath/curve_gfp.cpp10
-rw-r--r--src/math/gfpmath/gfp_element.cpp24
-rw-r--r--src/math/gfpmath/gfp_element.h60
-rw-r--r--src/math/gfpmath/gfp_modulus.h47
-rw-r--r--src/math/gfpmath/point_gfp.cpp15
-rw-r--r--src/math/gfpmath/point_gfp.h8
-rw-r--r--src/math/numbertheory/mp_numth.cpp2
8 files changed, 82 insertions, 86 deletions
diff --git a/src/math/bigint/bigint.cpp b/src/math/bigint/bigint.cpp
index 926bedc02..63bdc3605 100644
--- a/src/math/bigint/bigint.cpp
+++ b/src/math/bigint/bigint.cpp
@@ -9,7 +9,7 @@
#include <botan/mp_core.h>
#include <botan/loadstor.h>
#include <botan/parsing.h>
-#include <botan/util.h>
+#include <botan/rounding.h>
namespace Botan {
diff --git a/src/math/gfpmath/curve_gfp.cpp b/src/math/gfpmath/curve_gfp.cpp
index e12ade081..9a3ffd482 100644
--- a/src/math/gfpmath/curve_gfp.cpp
+++ b/src/math/gfpmath/curve_gfp.cpp
@@ -1,11 +1,11 @@
-/******
+/*
* Elliptic curves over GF(p)
*
-* (C) 2007 Martin Doering
-* Christoph Ludwig
-* Falko Strenzke
+* (C) 2007 Martin Doering, Christoph Ludwig, Falko Strenzke
* 2008 Jack Lloyd
-******/
+*
+* Distributed under the terms of the Botan license
+*/
#include <botan/curve_gfp.h>
#include <botan/bigint.h>
diff --git a/src/math/gfpmath/gfp_element.cpp b/src/math/gfpmath/gfp_element.cpp
index b71809301..f9e0b09c9 100644
--- a/src/math/gfpmath/gfp_element.cpp
+++ b/src/math/gfpmath/gfp_element.cpp
@@ -1,13 +1,15 @@
-/******
- * Arithmetic for prime fields GF(p) (source file)
- *
- * (C) 2007 Martin Doering
- * Christoph Ludwig
- * Falko Strenzke
- ******/
+/*
+* Arithmetic for prime fields GF(p)
+*
+* (C) 2007 Martin Doering
+* Christoph Ludwig
+* Falko Strenzke
+*
+* Distributed under the terms of the Botan license
+*/
#include <botan/gfp_element.h>
#include <botan/numthry.h>
@@ -15,8 +17,8 @@
#include <botan/mp_types.h>
#include <botan/mp_asm.h>
#include <botan/mp_asmi.h>
-#include <assert.h>
#include <ostream>
+#include <assert.h>
namespace Botan {
diff --git a/src/math/gfpmath/gfp_element.h b/src/math/gfpmath/gfp_element.h
index 4e0ee985b..18d9e51f9 100644
--- a/src/math/gfpmath/gfp_element.h
+++ b/src/math/gfpmath/gfp_element.h
@@ -1,13 +1,15 @@
-/******
- * Arithmetic for prime fields GF(p) (header file)
- *
- * (C) 2007 Martin Doering
- * Christoph Ludwig
- * Falko Strenzke
- ******/
+/*
+* Arithmetic for prime fields GF(p)
+*
+* (C) 2007 Martin Doering
+* Christoph Ludwig
+* Falko Strenzke
+*
+* Distributed under the terms of the Botan license
+*/
#ifndef BOTAN_GFP_ELEMENT_H__
#define BOTAN_GFP_ELEMENT_H__
@@ -26,11 +28,11 @@
namespace Botan {
-struct Illegal_Transformation : public Exception
+struct BOTAN_DLL Illegal_Transformation : public Exception
{
Illegal_Transformation(const std::string& err =
- "Requested transformation is not possible")
- : Exception(err) {}
+ "Requested transformation is not possible") :
+ Exception(err) {}
};
/**
@@ -39,23 +41,6 @@ struct Illegal_Transformation : public Exception
*/
class BOTAN_DLL GFpElement
{
- private:
- std::tr1::shared_ptr<GFpModulus> mp_mod;
- mutable BigInt m_value; // ordinary residue or m-residue respectively
- mutable BigInt workspace;
-
- // *****************************************
- // data members for montgomery multiplication
- mutable bool m_use_montgm;
- //mutable BigInt m_mres;
- // this bool tells use whether the m_mres carries
- // the actual value (in this case mValue doesn´t)
- mutable bool m_is_trf;
-
- void ensure_montgm_precomp() const;
- void trf_to_mres() const;
- void trf_to_ordres() const;
-
public:
/** construct an element of GF(p) with the given value.
@@ -260,7 +245,22 @@ class BOTAN_DLL GFpElement
* @param other The value to swap with
*/
void swap(GFpElement& other);
+ private:
+ void ensure_montgm_precomp() const;
+ void trf_to_mres() const;
+ void trf_to_ordres() const;
+
+ std::tr1::shared_ptr<GFpModulus> mp_mod;
+ mutable BigInt m_value; // ordinary residue or m-residue respectively
+ mutable BigInt workspace;
+ // *****************************************
+ // data members for montgomery multiplication
+ mutable bool m_use_montgm;
+ //mutable BigInt m_mres;
+ // this bool tells use whether the m_mres carries
+ // the actual value (in this case mValue doesn´t)
+ mutable bool m_is_trf;
};
// relational operators
diff --git a/src/math/gfpmath/gfp_modulus.h b/src/math/gfpmath/gfp_modulus.h
index b5c085775..8e37e9a73 100644
--- a/src/math/gfpmath/gfp_modulus.h
+++ b/src/math/gfpmath/gfp_modulus.h
@@ -1,39 +1,33 @@
-/******
- * Modulus and related data for a specific
- * implementation of GF(p) (header file)
- *
- * (C) 2008 Martin Döring
- * Christoph Ludwig
- * Falko Strenzke
- ******/
+/*
+* Modulus and related data for a specific implementation of GF(p)
+*
+* (C) 2008 Martin Döring
+* Christoph Ludwig
+* Falko Strenzke
+*
+* Distributed under the terms of the Botan license
+*/
#ifndef BOTAN_GFP_MODULUS_H__
#define BOTAN_GFP_MODULUS_H__
#include <botan/bigint.h>
-namespace Botan
-{
+namespace Botan {
class BOTAN_DLL GFpElement;
+
/**
-* This class represents a GFpElement modulus including the modulus related
-* values necessary for the montgomery multiplication.
-*
-* Distributed under the terms of the Botan license
+* This class represents a GFpElement modulus including the modulus
+* related values necessary for the montgomery multiplication.
*/
class BOTAN_DLL GFpModulus
{
- friend class GFpElement;
- private:
- BigInt m_p; // the modulus itself
- mutable BigInt m_p_dash;
- mutable BigInt m_r;
- mutable BigInt m_r_inv;
public:
+ friend class GFpElement;
/**
* Construct a GF(P)-Modulus from a BigInt
@@ -119,9 +113,14 @@ class BOTAN_DLL GFpModulus
return m_p_dash;
}
// default cp-ctor, op= are fine
+
+ private:
+ BigInt m_p; // the modulus itself
+ mutable BigInt m_p_dash;
+ mutable BigInt m_r;
+ mutable BigInt m_r_inv;
};
}
#endif
-
diff --git a/src/math/gfpmath/point_gfp.cpp b/src/math/gfpmath/point_gfp.cpp
index 9139c3ef9..b67631f7b 100644
--- a/src/math/gfpmath/point_gfp.cpp
+++ b/src/math/gfpmath/point_gfp.cpp
@@ -1,12 +1,11 @@
-/******
-* Arithmetic for point groups of elliptic curves
-* over GF(p) (source file)
+/*
+* Arithmetic for point groups of elliptic curves over GF(p)
*
-* (C) 2007 Martin Doering
-* Christoph Ludwig
-* Falko Strenzke
+* (C) 2007 Martin Doering, Christoph Ludwig, Falko Strenzke
* 2008 Jack Lloyd
-******/
+*
+* Distributed under the terms of the Botan license
+*/
#include <botan/point_gfp.h>
#include <botan/numthry.h>
@@ -688,8 +687,6 @@ void PointGFp::turn_on_sp_red_mul() const
* returns a point equivalent to *this but were
* Z has value one, i.e. x and y correspond to
* their values in affine coordinates
-*
-* Distributed under the terms of the Botan license
*/
PointGFp const PointGFp::get_z_to_one() const
{
diff --git a/src/math/gfpmath/point_gfp.h b/src/math/gfpmath/point_gfp.h
index 771605efc..62b3bc7da 100644
--- a/src/math/gfpmath/point_gfp.h
+++ b/src/math/gfpmath/point_gfp.h
@@ -1,10 +1,8 @@
/*
-* Arithmetic over GF(p)
+* Arithmetic for point groups of elliptic curves over GF(p)
*
-* (C) 2007 Martin Doering
-* Christoph Ludwig
-* Falko Strenzke
-* (C) 2008 Jack Lloyd
+* (C) 2007 Martin Doering, Christoph Ludwig, Falko Strenzke
+* 2008 Jack Lloyd
*
* Distributed under the terms of the Botan license
*/
diff --git a/src/math/numbertheory/mp_numth.cpp b/src/math/numbertheory/mp_numth.cpp
index 45a398440..2cb36b8a3 100644
--- a/src/math/numbertheory/mp_numth.cpp
+++ b/src/math/numbertheory/mp_numth.cpp
@@ -7,7 +7,7 @@
#include <botan/numthry.h>
#include <botan/mp_core.h>
-#include <botan/util.h>
+#include <botan/rounding.h>
#include <algorithm>
namespace Botan {