#ifndef RSA_H
#define RSA_H
-#include <utility>
#include <gmpxx.h>
class Rsa
{
public:
struct KeyPub {
- mpz_class n;
- mpz_class e;
+ mpz_class n; // Modulus.
+ mpz_class e; // Exponent.
};
- struct KeyPriv {
- mpz_class n;
- mpz_class d;
- };
-
- static std::pair<KeyPub, KeyPriv> generateRSAKeys(uint exponent, uint keySizeBits);
-
- static mpz_class sign(const mpz_class& m, const KeyPriv& kPriv);
-
static bool verifySignature(const mpz_class& m, const mpz_class& sig, const KeyPub& kPub);
};