Coverage Report

Created: 2024-11-21 07:03

/src/cryptopp/modexppc.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef CRYPTOPP_MODEXPPC_H
2
#define CRYPTOPP_MODEXPPC_H
3
4
#include "cryptlib.h"
5
#include "modarith.h"
6
#include "integer.h"
7
#include "algebra.h"
8
#include "eprecomp.h"
9
#include "smartptr.h"
10
#include "pubkey.h"
11
12
#if CRYPTOPP_MSC_VERSION
13
# pragma warning(push)
14
# pragma warning(disable: 4231 4275)
15
#endif
16
17
NAMESPACE_BEGIN(CryptoPP)
18
19
CRYPTOPP_DLL_TEMPLATE_CLASS DL_FixedBasePrecomputationImpl<Integer>;
20
21
class ModExpPrecomputation : public DL_GroupPrecomputation<Integer>
22
{
23
public:
24
0
  virtual ~ModExpPrecomputation() {}
25
26
  // DL_GroupPrecomputation
27
0
  bool NeedConversions() const {return true;}
28
0
  Element ConvertIn(const Element &v) const {return m_mr->ConvertIn(v);}
29
0
  virtual Element ConvertOut(const Element &v) const {return m_mr->ConvertOut(v);}
30
0
  const AbstractGroup<Element> & GetGroup() const {return m_mr->MultiplicativeGroup();}
31
0
  Element BERDecodeElement(BufferedTransformation &bt) const {return Integer(bt);}
32
0
  void DEREncodeElement(BufferedTransformation &bt, const Element &v) const {v.DEREncode(bt);}
33
34
  // non-inherited
35
0
  void SetModulus(const Integer &v) {m_mr.reset(new MontgomeryRepresentation(v));}
36
0
  const Integer & GetModulus() const {return m_mr->GetModulus();}
37
38
private:
39
  value_ptr<MontgomeryRepresentation> m_mr;
40
};
41
42
NAMESPACE_END
43
44
#if CRYPTOPP_MSC_VERSION
45
# pragma warning(pop)
46
#endif
47
48
#endif