X-Git-Url: http://git.euphorik.ch/?p=crypto_lab3.git;a=blobdiff_plain;f=src%2FRsaCrt.h;h=87f9a11856c58fe48d6d35b5faf871574e2166f4;hp=29bc4b91d34a6e2b183700f429d3aa80d4a672ca;hb=91989c2627abc2cdf511f17169e4f862dc55e838;hpb=7975d02c6c1ee679a236087e86955c086f1a9a8e diff --git a/src/RsaCrt.h b/src/RsaCrt.h index 29bc4b9..87f9a11 100644 --- a/src/RsaCrt.h +++ b/src/RsaCrt.h @@ -1,20 +1,30 @@ #ifndef RSACRT_H #define RSACRT_H +#include + #include +#include "Rsa.h" + class RsaCrt { public: - RsaCrt(); + struct KeyPriv { + mpz_class n; // Modulus. + uint e; // Exponent. - struct KeyPrivCRT { mpz_class p; mpz_class q; mpz_class dp; mpz_class dq; mpz_class qInv; + mpz_class d; }; + + static std::pair generateRSAKeys(uint exponent, uint keySizeBits); + + static mpz_class sign(const mpz_class& m, const KeyPriv& kPriv); }; #endif