/* * Copyright (c) 2012 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include #include #define SECURITY_WIN32 #include #include #include #include namespace Swift { class SWIFTEN_API SHA1 { public: SHA1(); ~SHA1(); SHA1& update(const std::vector& data); std::vector getHash() const; static ByteArray getHash(const ByteArray& data); static ByteArray getHash(const SafeByteArray& data); ByteArray operator()(const SafeByteArray& data) { return getHash(data); } ByteArray operator()(const ByteArray& data) { return getHash(data); } private: SHA1& update(const unsigned char* data, size_t dataSize); private: HCRYPTHASH hash; }; }