2011-04-10 03:33:07 +02:00
|
|
|
#ifndef RSA_H
|
|
|
|
#define RSA_H
|
|
|
|
|
2011-07-13 23:12:36 +02:00
|
|
|
#include <global.h>
|
2011-04-10 03:33:07 +02:00
|
|
|
#include <gmp.h>
|
|
|
|
|
2011-07-13 23:12:36 +02:00
|
|
|
class Rsa
|
|
|
|
{
|
2011-04-10 03:33:07 +02:00
|
|
|
public:
|
|
|
|
Rsa();
|
|
|
|
~Rsa();
|
|
|
|
void setKey(const char* p, const char* q, const char* d);
|
|
|
|
bool setKey(const std::string& file);
|
|
|
|
bool decrypt(char* msg, int32_t size);
|
|
|
|
static bool encrypt(char* msg, int32_t size, const char* key);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
bool m_keySet;
|
|
|
|
|
|
|
|
mpz_t m_p, m_q, m_u, m_d, m_dp, m_dq, m_mod;
|
|
|
|
};
|
|
|
|
|
2011-07-27 01:13:27 +02:00
|
|
|
typedef std::shared_ptr<Rsa> RsaPtr;
|
2011-04-10 03:33:07 +02:00
|
|
|
|
|
|
|
#endif //RSA_H
|