diff options
Diffstat (limited to 'Swiften/Crypto/CryptoProvider.h')
-rw-r--r-- | Swiften/Crypto/CryptoProvider.h | 75 |
1 files changed, 36 insertions, 39 deletions
diff --git a/Swiften/Crypto/CryptoProvider.h b/Swiften/Crypto/CryptoProvider.h index afee8c4..c1e1eb9 100644 --- a/Swiften/Crypto/CryptoProvider.h +++ b/Swiften/Crypto/CryptoProvider.h @@ -1,39 +1,36 @@ -/*
- * Copyright (c) 2013 Remko Tronçon
- * Licensed under the GNU General Public License.
- * See the COPYING file for more information.
- */
-
-#pragma once
-
-#include <Swiften/Base/ByteArray.h>
-#include <Swiften/Base/SafeByteArray.h>
-#include <Swiften/Crypto/Hash.h>
-
-namespace Swift {
- class Hash;
-
- class CryptoProvider {
- public:
- virtual ~CryptoProvider();
-
- virtual Hash* createSHA1() = 0;
- virtual Hash* createMD5() = 0;
- virtual Hash* createHMACSHA1(const SafeByteArray& key) = 0;
- virtual Hash* createHMACSHA1(const ByteArray& key) = 0;
- virtual bool isMD5AllowedForCrypto() const = 0;
-
- // Convenience
- template<typename T> ByteArray getSHA1Hash(const T& data) {
- return boost::shared_ptr<Hash>(createSHA1())->update(data).getHash();
- }
-
- template<typename T> ByteArray getMD5Hash(const T& data) {
- return boost::shared_ptr<Hash>(createMD5())->update(data).getHash();
- }
-
- template<typename T, typename U> ByteArray getHMACSHA1(const T& key, const U& data) {
- return boost::shared_ptr<Hash>(createHMACSHA1(key))->update(data).getHash();
- }
- };
-}
+/* + * Copyright (c) 2013 Remko Tronçon + * Licensed under the GNU General Public License. + * See the COPYING file for more information. + */ + +#pragma once + +#include <Swiften/Base/API.h> +#include <Swiften/Base/ByteArray.h> +#include <Swiften/Base/SafeByteArray.h> +#include <Swiften/Crypto/Hash.h> + +namespace Swift { + class Hash; + + class SWIFTEN_API CryptoProvider { + public: + virtual ~CryptoProvider(); + + virtual Hash* createSHA1() = 0; + virtual Hash* createMD5() = 0; + virtual ByteArray getHMACSHA1(const SafeByteArray& key, const ByteArray& data) = 0; + virtual ByteArray getHMACSHA1(const ByteArray& key, const ByteArray& data) = 0; + virtual bool isMD5AllowedForCrypto() const = 0; + + // Convenience + template<typename T> ByteArray getSHA1Hash(const T& data) { + return boost::shared_ptr<Hash>(createSHA1())->update(data).getHash(); + } + + template<typename T> ByteArray getMD5Hash(const T& data) { + return boost::shared_ptr<Hash>(createMD5())->update(data).getHash(); + } + }; +} |