Crypto++
Main Page
Namespaces
Classes
Files
File List
File Members
modexppc.h
1
#ifndef CRYPTOPP_MODEXPPC_H
2
#define CRYPTOPP_MODEXPPC_H
3
4
#include "modarith.h"
5
#include "eprecomp.h"
6
#include "smartptr.h"
7
#include "
pubkey.h
"
8
9
NAMESPACE_BEGIN(CryptoPP)
10
11
CRYPTOPP_DLL_TEMPLATE_CLASS
DL_FixedBasePrecomputationImpl
<
Integer
>;
12
13
class
ModExpPrecomputation
: public
DL_GroupPrecomputation
<Integer>
14
{
15
public
:
16
// DL_GroupPrecomputation
17
bool
NeedConversions()
const
{
return
true
;}
18
Element
ConvertIn(
const
Element
&v)
const
{
return
m_mr->ConvertIn(v);}
19
virtual
Element
ConvertOut(
const
Element
&v)
const
{
return
m_mr->ConvertOut(v);}
20
const
AbstractGroup<Element>
& GetGroup()
const
{
return
m_mr->MultiplicativeGroup();}
21
Element
BERDecodeElement(
BufferedTransformation
&bt)
const
{
return
Integer(bt);}
22
void
DEREncodeElement(
BufferedTransformation
&bt,
const
Element
&v)
const
{v.
DEREncode
(bt);}
23
24
// non-inherited
25
void
SetModulus(
const
Integer &v) {m_mr.reset(
new
MontgomeryRepresentation
(v));}
26
const
Integer & GetModulus()
const
{
return
m_mr->GetModulus();}
27
28
private
:
29
value_ptr<MontgomeryRepresentation>
m_mr;
30
};
31
32
NAMESPACE_END
33
34
#endif
Generated on Sun Apr 14 2013 17:41:26 for Crypto++ by
1.8.1.1