Add ModularArithmetic::operator=

pull/853/head^2
Jeffrey Walton 2019-06-09 02:56:30 -04:00
parent c1f4d17e10
commit 8c78985de2
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 15 additions and 1 deletions

View File

@ -35,6 +35,9 @@ CRYPTOPP_DLL_TEMPLATE_CLASS AbstractEuclideanDomain<Integer>;
/// <pre> abcd = group.Add(a, group.Add(b, group.Add(c,d));</pre> /// <pre> abcd = group.Add(a, group.Add(b, group.Add(c,d));</pre>
/// The following code will produce incorrect results: /// The following code will produce incorrect results:
/// <pre> abcd = group.Add(group.Add(a,b), group.Add(c,d));</pre> /// <pre> abcd = group.Add(group.Add(a,b), group.Add(c,d));</pre>
/// \details If a ModularArithmetic is copied or assigned the modulus
/// is copied, but not the internal data members. The internal data
/// members are undefined after copy or assignment.
/// \sa <A HREF="https://cryptopp.com/wiki/Integer">Integer</A> on the /// \sa <A HREF="https://cryptopp.com/wiki/Integer">Integer</A> on the
/// Crypto++ wiki. /// Crypto++ wiki.
class CRYPTOPP_DLL ModularArithmetic : public AbstractRing<Integer> class CRYPTOPP_DLL ModularArithmetic : public AbstractRing<Integer>
@ -54,7 +57,18 @@ public:
/// \brief Copy construct a ModularArithmetic /// \brief Copy construct a ModularArithmetic
/// \param ma other ModularArithmetic /// \param ma other ModularArithmetic
ModularArithmetic(const ModularArithmetic &ma) ModularArithmetic(const ModularArithmetic &ma)
: m_modulus(ma.m_modulus), m_result(static_cast<word>(0), ma.m_modulus.reg.size()) {} : m_modulus(ma.m_modulus), m_result(static_cast<word>(0), m_modulus.reg.size()) {}
/// \brief Assign a ModularArithmetic
/// \param ma other ModularArithmetic
ModularArithmetic& operator=(const ModularArithmetic &ma) {
if (this != &ma)
{
m_modulus = ma.m_modulus;
m_result = Integer(static_cast<word>(0), m_modulus.reg.size());
}
return *this;
}
/// \brief Construct a ModularArithmetic /// \brief Construct a ModularArithmetic
/// \param bt BER encoded ModularArithmetic /// \param bt BER encoded ModularArithmetic