#define RSACRT_H
#include <utility>
+#include <exception>
#include <gmpxx.h>
mpz_class qInv;
};
+ /**
+ * Generate a pair of keys (public, private).
+ */
static std::pair<Rsa::KeyPub, KeyPriv> generateRSAKeys(uint exponent, uint keySizeBits);
/**
* m must not be greater or equal than kPriv.n.
+ * @param m the message to sign. No padding is used.
*/
static mpz_class sign(const mpz_class& m, const KeyPriv& kPriv);
+
+ /**
+ * Sp is altered by flipping its 42nd bit.
+ * @param m the message to sign. No padding is used.
+ */
+ static mpz_class signWithFaultySp(const mpz_class& m, const KeyPriv& kPriv);
};
#endif