diff options
author | Remko Tronçon <git@el-tramo.be> | 2013-04-27 15:30:27 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2013-04-27 15:30:27 (GMT) |
commit | 87d5557ecba47f0cfd323e79f7d9284c484f825a (patch) | |
tree | 7af755e30a37dd388392e305b9c01637d8a039cb /Swiften/Crypto/CryptoProvider.h | |
parent | 860d265a878ca444fca358f468a32df32a7f4444 (diff) | |
download | swift-contrib-87d5557ecba47f0cfd323e79f7d9284c484f825a.zip swift-contrib-87d5557ecba47f0cfd323e79f7d9284c484f825a.tar.bz2 |
Make HMACSHA1 not be a Hash.
Change-Id: I798d468614d2285c6f77640c365b51b19df2bf73
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(); + } + }; +} |