00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00023 #ifndef _CLASS_SECRETKEYSPEC_H
00024 #define _CLASS_SECRETKEYSPEC_H
00025
00026 #ifdef __cplusplus
00027
00028 #include "beecrypt/c++/array.h"
00029 using beecrypt::array;
00030 using beecrypt::bytearray;
00031 #include "beecrypt/c++/security/spec/KeySpec.h"
00032 using beecrypt::security::spec::KeySpec;
00033 #include "beecrypt/c++/crypto/SecretKey.h"
00034 using beecrypt::crypto::SecretKey;
00035
00036 namespace beecrypt {
00037 namespace crypto {
00038 namespace spec {
00041 class BEECRYPTCXXAPI SecretKeySpec : public beecrypt::security::spec::KeySpec, public beecrypt::crypto::SecretKey
00042 {
00043 private:
00044 bytearray _data;
00045 String _algo;
00046
00047 public:
00048 SecretKeySpec(const byte* data, size_t offset, size_t length, const String& algorithm);
00049 SecretKeySpec(const bytearray& b, const String& algorithm);
00050 virtual ~SecretKeySpec();
00051
00052 virtual const String& getAlgorithm() const throw ();
00053 virtual const String* getFormat() const throw ();
00054 virtual const bytearray* getEncoded() const throw ();
00055
00056 bool operator==(const Key& compare) const throw ();
00057 };
00058 }
00059 }
00060 }
00061
00062 #endif
00063
00064 #endif