diff options
author | lloyd <[email protected]> | 2008-10-01 14:36:27 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2008-10-01 14:36:27 +0000 |
commit | 06e35ed5375028f246f57b99ccf639e8ed317b35 (patch) | |
tree | 32021a79d1617a147f7fa7ac29c1eae60f9024ce /src/pubkey/dl_algo/dl_algo.h | |
parent | 9320b5e5c1b64894a6ff8797f392b57dfd72dea3 (diff) |
Rename pk dir to pubkey, avoids tab-completion collision with pk_pad
Diffstat (limited to 'src/pubkey/dl_algo/dl_algo.h')
-rw-r--r-- | src/pubkey/dl_algo/dl_algo.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/pubkey/dl_algo/dl_algo.h b/src/pubkey/dl_algo/dl_algo.h new file mode 100644 index 000000000..a8d8d1d51 --- /dev/null +++ b/src/pubkey/dl_algo/dl_algo.h @@ -0,0 +1,61 @@ +/************************************************* +* DL Scheme Header File * +* (C) 1999-2007 Jack Lloyd * +*************************************************/ + +#ifndef BOTAN_DL_ALGO_H__ +#define BOTAN_DL_ALGO_H__ + +#include <botan/dl_group.h> +#include <botan/x509_key.h> +#include <botan/pkcs8.h> +#include <botan/rng.h> + +namespace Botan { + +/************************************************* +* DL Public Key * +*************************************************/ +class BOTAN_DLL DL_Scheme_PublicKey : public virtual Public_Key + { + public: + bool check_key(RandomNumberGenerator& rng, bool) const; + + const DL_Group& get_domain() const { return group; } + const BigInt& get_y() const { return y; } + const BigInt& group_p() const { return group.get_p(); } + const BigInt& group_q() const { return group.get_q(); } + const BigInt& group_g() const { return group.get_g(); } + virtual DL_Group::Format group_format() const = 0; + + X509_Encoder* x509_encoder() const; + X509_Decoder* x509_decoder(); + protected: + BigInt y; + DL_Group group; + private: + virtual void X509_load_hook() {} + }; + +/************************************************* +* DL Private Key * +*************************************************/ +class BOTAN_DLL DL_Scheme_PrivateKey : public virtual DL_Scheme_PublicKey, + public virtual Private_Key + { + public: + bool check_key(RandomNumberGenerator& rng, bool) const; + + const BigInt& get_x() const { return x; } + + PKCS8_Encoder* pkcs8_encoder() const; + PKCS8_Decoder* pkcs8_decoder(RandomNumberGenerator&); + protected: + BigInt x; + private: + virtual void PKCS8_load_hook(RandomNumberGenerator&, bool = false) {} + }; + +} + +#endif |