Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

modexppc.h

00001 #ifndef CRYPTOPP_MODEXPPC_H
00002 #define CRYPTOPP_MODEXPPC_H
00003 
00004 #include "modarith.h"
00005 #include "eprecomp.h"
00006 #include "smartptr.h"
00007 #include "pubkey.h"
00008 
00009 NAMESPACE_BEGIN(CryptoPP)
00010 
00011 #ifndef SKIP_EXPLICIT_INSTANTIATION
00012 CRYPTOPP_DLL_TEMPLATE_CLASS DL_FixedBasePrecomputationImpl<Integer>;
00013 #endif // SKIP_EXPLICIT_INSTANTIATION
00014 
00015 class ModExpPrecomputation : public DL_GroupPrecomputation<Integer>
00016 {
00017 public:
00018         // DL_GroupPrecomputation
00019         bool NeedConversions() const {return true;}
00020         Element ConvertIn(const Element &v) const {return m_mr->ConvertIn(v);}
00021         virtual Element ConvertOut(const Element &v) const {return m_mr->ConvertOut(v);}
00022         const AbstractGroup<Element> & GetGroup() const {return m_mr->MultiplicativeGroup();}
00023         Element BERDecodeElement(BufferedTransformation &bt) const {return Integer(bt);}
00024         void DEREncodeElement(BufferedTransformation &bt, const Element &v) const {v.DEREncode(bt);}
00025 
00026         // non-inherited
00027         void SetModulus(const Integer &v) {m_mr.reset(new MontgomeryRepresentation(v));}
00028         const Integer & GetModulus() const {return m_mr->GetModulus();}
00029 
00030 private:
00031         value_ptr<MontgomeryRepresentation> m_mr;
00032 };
00033 
00034 NAMESPACE_END
00035 
00036 #endif

Generated on Tue Aug 16 08:38:42 2005 for Crypto++ by  doxygen 1.3.9.1