00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00023 #ifndef _CLASS_DHPARAMETERSPEC_H
00024 #define _CLASS_DHPARAMETERSPEC_H
00025
00026 #include "beecrypt/api.h"
00027 #include "beecrypt/mpbarrett.h"
00028 #include "beecrypt/dlsvdp-dh.h"
00029
00030 #ifdef __cplusplus
00031
00032 #include "beecrypt/c++/crypto/interfaces/DHParams.h"
00033 using beecrypt::crypto::interfaces::DHParams;
00034 #include "beecrypt/c++/lang/Object.h"
00035 using beecrypt::lang::Object;
00036 #include "beecrypt/c++/security/spec/AlgorithmParameterSpec.h"
00037 using beecrypt::security::spec::AlgorithmParameterSpec;
00038
00039 namespace beecrypt {
00040 namespace crypto {
00041 namespace spec {
00044 class BEECRYPTCXXAPI DHParameterSpec : public beecrypt::lang::Object, public beecrypt::security::spec::AlgorithmParameterSpec, public beecrypt::crypto::interfaces::DHParams
00045 {
00046 private:
00047 mpbarrett _p;
00048 mpnumber _g;
00049 size_t _l;
00050
00051 public:
00052 DHParameterSpec(const DHParams&);
00053 DHParameterSpec(const DHParameterSpec&);
00054 DHParameterSpec(const mpbarrett& p, const mpnumber& g);
00055 DHParameterSpec(const mpbarrett& p, const mpnumber& g, size_t l);
00056 virtual ~DHParameterSpec() {};
00057
00058 const mpbarrett& getP() const throw ();
00059 const mpnumber& getG() const throw ();
00060 size_t getL() const throw ();
00061 };
00062 }
00063 }
00064 }
00065
00066 #endif
00067
00068 #endif