Mac.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_MAC_H
00024 #define _CLASS_BEE_CRYPTO_MAC_H
00025
00026 #ifdef __cplusplus
00027
00028 #include "beecrypt/c++/crypto/MacSpi.h"
00029 using beecrypt::crypto::MacSpi;
00030 #include "beecrypt/c++/security/Provider.h"
00031 using beecrypt::security::Provider;
00032 #include "beecrypt/c++/security/NoSuchAlgorithmException.h"
00033 using beecrypt::security::NoSuchAlgorithmException;
00034 #include "beecrypt/c++/security/NoSuchProviderException.h"
00035 using beecrypt::security::NoSuchProviderException;
00036
00037 namespace beecrypt {
00038 namespace crypto {
00041 class BEECRYPTCXXAPI Mac : public Object
00042 {
00043 public:
00044 static Mac* getInstance(const String&) throw (NoSuchAlgorithmException);
00045 static Mac* getInstance(const String&, const String&) throw (NoSuchAlgorithmException, NoSuchProviderException);
00046 static Mac* getInstance(const String&, const Provider&) throw (NoSuchAlgorithmException);
00047
00048 private:
00049 MacSpi* _mspi;
00050 String _algo;
00051 const Provider* _prov;
00052 bool _init;
00053
00054 protected:
00055 Mac(MacSpi* macSpi, const Provider* provider, const String& algorithm);
00056
00057 public:
00058 virtual ~Mac();
00059
00060 Mac* clone() const throw ();
00061
00062 const bytearray& doFinal() throw (IllegalStateException);
00063 const bytearray& doFinal(const bytearray&) throw (IllegalStateException);
00064 int doFinal(byte* data, int offset, int length) throw (IllegalStateException, ShortBufferException);
00065 int getMacLength();
00066 void init(const Key&) throw (InvalidKeyException);
00067 void init(const Key&, const AlgorithmParameterSpec*) throw (InvalidKeyException, InvalidAlgorithmParameterException);
00068 void reset();
00069 void update(byte) throw (IllegalStateException);
00070 void update(const byte* data, int offset, int length) throw (IllegalStateException);
00071 void update(const bytearray&) throw (IllegalStateException);
00072
00073 const String& getAlgorithm() const throw ();
00074 const Provider& getProvider() const throw ();
00075 };
00076 }
00077 }
00078
00079 #endif
00080
00081 #endif