KeyAgreement.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00023 #ifndef _CLASS_BEE_CRYPTO_KEYAGREEMENT_H
00024 #define _CLASS_BEE_CRYPTO_KEYAGREEMENT_H
00025
00026 #ifdef __cplusplus
00027
00028 #include "beecrypt/c++/crypto/KeyAgreementSpi.h"
00029 using beecrypt::crypto::KeyAgreementSpi;
00030
00031 namespace beecrypt {
00032 namespace crypto {
00035 class BEECRYPTCXXAPI KeyAgreement : public Object
00036 {
00037 public:
00038 static KeyAgreement* getInstance(const String&) throw (NoSuchAlgorithmException);
00039 static KeyAgreement* getInstance(const String&, const String&) throw (NoSuchAlgorithmException, NoSuchProviderException);
00040 static KeyAgreement* getInstance(const String&, const Provider&) throw (NoSuchAlgorithmException);
00041
00042 private:
00043 KeyAgreementSpi* _kspi;
00044 const Provider* _prov;
00045 String _algo;
00046
00047 protected:
00048 KeyAgreement(KeyAgreementSpi* spi, const Provider* provider, const String& algorithm);
00049
00050 public:
00051 virtual ~KeyAgreement();
00052
00053 void init(const Key&, SecureRandom* = 0) throw (InvalidKeyException);
00054 void init(const Key&, const AlgorithmParameterSpec&, SecureRandom* = 0) throw (InvalidKeyException);
00055
00056 Key* doPhase(const Key&, bool) throw (InvalidKeyException, IllegalStateException);
00057
00058 bytearray* generateSecret() throw (IllegalStateException);
00059 int generateSecret(bytearray&, int) throw (IllegalStateException, ShortBufferException);
00060 SecretKey* generateSecret(const String&) throw (IllegalStateException, NoSuchAlgorithmException, InvalidKeyException);
00061 };
00062 }
00063 }
00064
00065 #endif
00066
00067 #endif