diff options
| author | bertagaz <bertagaz@ptitcanardnoir.org> | 2011-06-14 15:26:19 +0200 | 
|---|---|---|
| committer | bertagaz <bertagaz@ptitcanardnoir.org> | 2011-06-14 15:26:19 +0200 | 
| commit | 30e9097985656920f01a72efc1088caa2b8d41b3 (patch) | |
| tree | bedbdb1aaa484af467e538110ab4c0c95985b6b8 /embeddedcryptopp/modexppc.h | |
Imported Upstream version 0.5.29upstream/0.5.29
Diffstat (limited to 'embeddedcryptopp/modexppc.h')
| -rw-r--r-- | embeddedcryptopp/modexppc.h | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/embeddedcryptopp/modexppc.h b/embeddedcryptopp/modexppc.h new file mode 100644 index 0000000..fbe7012 --- /dev/null +++ b/embeddedcryptopp/modexppc.h @@ -0,0 +1,34 @@ +#ifndef CRYPTOPP_MODEXPPC_H +#define CRYPTOPP_MODEXPPC_H + +#include "modarith.h" +#include "eprecomp.h" +#include "smartptr.h" +#include "pubkey.h" + +NAMESPACE_BEGIN(CryptoPP) + +CRYPTOPP_DLL_TEMPLATE_CLASS DL_FixedBasePrecomputationImpl<Integer>; + +class ModExpPrecomputation : public DL_GroupPrecomputation<Integer> +{ +public: +	// DL_GroupPrecomputation +	bool NeedConversions() const {return true;} +	Element ConvertIn(const Element &v) const {return m_mr->ConvertIn(v);} +	virtual Element ConvertOut(const Element &v) const {return m_mr->ConvertOut(v);} +	const AbstractGroup<Element> & GetGroup() const {return m_mr->MultiplicativeGroup();} +	Element BERDecodeElement(BufferedTransformation &bt) const {return Integer(bt);} +	void DEREncodeElement(BufferedTransformation &bt, const Element &v) const {v.DEREncode(bt);} + +	// non-inherited +	void SetModulus(const Integer &v) {m_mr.reset(new MontgomeryRepresentation(v));} +	const Integer & GetModulus() const {return m_mr->GetModulus();} + +private: +	value_ptr<MontgomeryRepresentation> m_mr; +}; + +NAMESPACE_END + +#endif | 
