Diana Software
QCryptoRSA.hh
Go to the documentation of this file.
1 #ifndef _Q_CRYPTORSA_HH_
2 #define _Q_CRYPTORSA_HH_
3 #include <string>
4 #include <vector>
5 #include <TObject.h>
6 
7 typedef struct rsa_st RSA;
8 
9 
18 class QCryptoRSA {
19  public:
21  enum Mode {
24  };
25 
27  QCryptoRSA(const std::string& pKey, const Mode mode, bool nopad = true);
28 
30  virtual ~QCryptoRSA();
31 
33  size_t GetMessageSize() const { return fMsgLength; }
34 
36  std::vector<unsigned char> Process(const std::vector<unsigned char>& message) const;
37 
39  static std::vector<unsigned char> ConvertDouble(const double message);
41  static double ConvertDouble(const std::vector<unsigned char>& message);
43  static std::vector<unsigned char> ConvertString(const std::string& message);
45  static std::string ConvertString(const std::vector<unsigned char>& message);
46 
48  static std::vector<unsigned char> ConvertHex(const std::string& message);
50  static std::string ConvertHex(const std::vector<unsigned char>& message);
51 
52  private:
53 
54  unsigned char* ConvertArray(const std::vector<unsigned char>& input, const size_t pad = 0, const size_t beginpad = 0) const;
55  std::vector<unsigned char> ConvertArray(const unsigned char* input, const size_t n) const;
57 
59  void Print(const char* header, const unsigned char* data, const size_t n);
60  unsigned char* fOutput;
61  bool fNoPadding;
63  size_t fRandomSize;
64  size_t fBeginPad;
65 
66 
67  ClassDef(QCryptoRSA, 0)
68 
69 };
70 
71 #endif
struct rsa_st RSA
Definition: QCryptoRSA.hh:7
fixed-size encryption with the raw RSA algorithm. For envelope see QCryptoRSAEnvelope.
Definition: QCryptoRSA.hh:18
unsigned char * ConvertArray(const std::vector< unsigned char > &input, const size_t pad=0, const size_t beginpad=0) const
Definition: QCryptoRSA.cc:217
size_t GetMessageSize() const
Get message size = lenght of key - 2.
Definition: QCryptoRSA.hh:33
static std::vector< unsigned char > ConvertDouble(const double message)
convert from double
Definition: QCryptoRSA.cc:124
std::vector< unsigned char > Process(const std::vector< unsigned char > &message) const
encrypt or decrypt message
Definition: QCryptoRSA.cc:154
int fMsgLength
Definition: QCryptoRSA.hh:62
virtual ~QCryptoRSA()
destructor
Definition: QCryptoRSA.cc:69
RSA * fRSA
Definition: QCryptoRSA.hh:58
unsigned char * fOutput
Definition: QCryptoRSA.hh:60
bool fNoPadding
Definition: QCryptoRSA.hh:61
size_t fRandomSize
Definition: QCryptoRSA.hh:63
static std::vector< unsigned char > ConvertString(const std::string &message)
convert from string
Definition: QCryptoRSA.cc:73
QCryptoRSA(const std::string &pKey, const Mode mode, bool nopad=true)
constructor: if ENCRYPT provide public key, otherwise provide private key
void Print(const char *header, const unsigned char *data, const size_t n)
Definition: QCryptoRSA.cc:244
Mode fMode
Definition: QCryptoRSA.hh:56
static std::vector< unsigned char > ConvertHex(const std::string &message)
convert from hex-string
Definition: QCryptoRSA.cc:90
Mode
encrypt or decrypt mode
Definition: QCryptoRSA.hh:21
size_t fBeginPad
Definition: QCryptoRSA.hh:64