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 class ModExpPrecomputation : public DL_GroupPrecomputation<Integer> 00012 { 00013 public: 00014 // DL_GroupPrecomputation 00015 bool NeedConversions() const {return true;} 00016 Element ConvertIn(const Element &v) const {return m_mr->ConvertIn(v);} 00017 virtual Element ConvertOut(const Element &v) const {return m_mr->ConvertOut(v);} 00018 const AbstractGroup<Element> & GetGroup() const {return m_mr->MultiplicativeGroup();} 00019 Element BERDecodeElement(BufferedTransformation &bt) const {return Integer(bt);} 00020 void DEREncodeElement(BufferedTransformation &bt, const Element &v) const {v.DEREncode(bt);} 00021 00022 // non-inherited 00023 void SetModulus(const Integer &v) {m_mr.reset(new MontgomeryRepresentation(v));} 00024 const Integer & GetModulus() const {return m_mr->GetModulus();} 00025 00026 private: 00027 value_ptr<MontgomeryRepresentation> m_mr; 00028 }; 00029 00030 NAMESPACE_END 00031 00032 #endif

Generated on Wed Jul 28 08:07:08 2004 for Crypto++ by doxygen 1.3.7