00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00023 #ifndef _CLASS_RSAPRIVATECRTKEYSPEC_H
00024 #define _CLASS_RSAPRIVATECRTKEYSPEC_H
00025
00026 #ifdef __cplusplus
00027
00028 #include "beecrypt/c++/security/spec/RSAPrivateKeySpec.h"
00029 using beecrypt::security::spec::RSAPrivateKeySpec;
00030
00031 namespace beecrypt {
00032 namespace security {
00033 namespace spec {
00036 class BEECRYPTCXXAPI RSAPrivateCrtKeySpec : public beecrypt::security::spec::RSAPrivateKeySpec
00037 {
00038 private:
00039 mpnumber _e;
00040 mpbarrett _p;
00041 mpbarrett _q;
00042 mpnumber _dp;
00043 mpnumber _dq;
00044 mpnumber _qi;
00045
00046 public:
00047 RSAPrivateCrtKeySpec(const mpbarrett& modulus, const mpnumber& publicExponent, const mpnumber& privateExponent, const mpbarrett& primeP, const mpbarrett& primeQ, const mpnumber& primeExponentP, const mpnumber& primeExponentQ, const mpnumber& crtCoefficient);
00048 virtual ~RSAPrivateCrtKeySpec();
00049
00050 const mpnumber& getPublicExponent() const throw ();
00051 const mpbarrett& getPrimeP() const throw ();
00052 const mpbarrett& getPrimeQ() const throw ();
00053 const mpnumber& getPrimeExponentP() const throw ();
00054 const mpnumber& getPrimeExponentQ() const throw ();
00055 const mpnumber& getCrtCoefficient() const throw ();
00056 };
00057 }
00058 }
00059 }
00060
00061 #endif
00062
00063 #endif