aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/poco/Foundation/include/Poco/DigestEngine.h
diff options
context:
space:
mode:
authororivej <orivej@yandex-team.ru>2022-02-10 16:45:01 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:01 +0300
commit2d37894b1b037cf24231090eda8589bbb44fb6fc (patch)
treebe835aa92c6248212e705f25388ebafcf84bc7a1 /contrib/libs/poco/Foundation/include/Poco/DigestEngine.h
parent718c552901d703c502ccbefdfc3c9028d608b947 (diff)
downloadydb-2d37894b1b037cf24231090eda8589bbb44fb6fc.tar.gz
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/poco/Foundation/include/Poco/DigestEngine.h')
-rw-r--r--contrib/libs/poco/Foundation/include/Poco/DigestEngine.h222
1 files changed, 111 insertions, 111 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/DigestEngine.h b/contrib/libs/poco/Foundation/include/Poco/DigestEngine.h
index 1e5ce3516b..b22ab6d893 100644
--- a/contrib/libs/poco/Foundation/include/Poco/DigestEngine.h
+++ b/contrib/libs/poco/Foundation/include/Poco/DigestEngine.h
@@ -1,111 +1,111 @@
-//
-// DigestEngine.h
-//
-// Library: Foundation
-// Package: Crypt
-// Module: DigestEngine
-//
-// Definition of class DigestEngine.
-//
-// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
-// and Contributors.
-//
-// SPDX-License-Identifier: BSL-1.0
-//
-
-
-#ifndef Foundation_DigestEngine_INCLUDED
-#define Foundation_DigestEngine_INCLUDED
-
-
-#include "Poco/Foundation.h"
-#include <vector>
-
-
-namespace Poco {
-
-
-class Foundation_API DigestEngine
- /// This class is an abstract base class
- /// for all classes implementing a message
- /// digest algorithm, like MD5Engine
- /// and SHA1Engine.
- /// Call update() repeatedly with data to
- /// compute the digest from. When done,
- /// call digest() to obtain the message
- /// digest.
-{
-public:
- typedef std::vector<unsigned char> Digest;
-
- DigestEngine();
- virtual ~DigestEngine();
-
- void update(const void* data, std::size_t length);
- void update(char data);
- void update(const std::string& data);
- /// Updates the digest with the given data.
-
- virtual std::size_t digestLength() const = 0;
- /// Returns the length of the digest in bytes.
-
- virtual void reset() = 0;
- /// Resets the engine so that a new
- /// digest can be computed.
-
- virtual const Digest& digest() = 0;
- /// Finishes the computation of the digest and
- /// returns the message digest. Resets the engine
- /// and can thus only be called once for every digest.
- /// The returned reference is valid until the next
- /// time digest() is called, or the engine object is destroyed.
-
- static std::string digestToHex(const Digest& bytes);
- /// Converts a message digest into a string of hexadecimal numbers.
-
- static Digest digestFromHex(const std::string& digest);
- /// Converts a string created by digestToHex back to its Digest presentation
-
- static bool constantTimeEquals(const Digest& d1, const Digest& d2);
- /// Compares two Digest values using a constant-time comparison
- /// algorithm. This can be used to prevent timing attacks
- /// (as discussed in <https://codahale.com/a-lesson-in-timing-attacks/>).
-
-protected:
- virtual void updateImpl(const void* data, std::size_t length) = 0;
- /// Updates the digest with the given data. Must be implemented
- /// by subclasses.
-
-private:
- DigestEngine(const DigestEngine&);
- DigestEngine& operator = (const DigestEngine&);
-};
-
-
-//
-// inlines
-//
-
-
-inline void DigestEngine::update(const void* data, std::size_t length)
-{
- updateImpl(data, length);
-}
-
-
-inline void DigestEngine::update(char data)
-{
- updateImpl(&data, 1);
-}
-
-
-inline void DigestEngine::update(const std::string& data)
-{
- updateImpl(data.data(), data.size());
-}
-
-
-} // namespace Poco
-
-
-#endif // Foundation_DigestEngine_INCLUDED
+//
+// DigestEngine.h
+//
+// Library: Foundation
+// Package: Crypt
+// Module: DigestEngine
+//
+// Definition of class DigestEngine.
+//
+// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
+// and Contributors.
+//
+// SPDX-License-Identifier: BSL-1.0
+//
+
+
+#ifndef Foundation_DigestEngine_INCLUDED
+#define Foundation_DigestEngine_INCLUDED
+
+
+#include "Poco/Foundation.h"
+#include <vector>
+
+
+namespace Poco {
+
+
+class Foundation_API DigestEngine
+ /// This class is an abstract base class
+ /// for all classes implementing a message
+ /// digest algorithm, like MD5Engine
+ /// and SHA1Engine.
+ /// Call update() repeatedly with data to
+ /// compute the digest from. When done,
+ /// call digest() to obtain the message
+ /// digest.
+{
+public:
+ typedef std::vector<unsigned char> Digest;
+
+ DigestEngine();
+ virtual ~DigestEngine();
+
+ void update(const void* data, std::size_t length);
+ void update(char data);
+ void update(const std::string& data);
+ /// Updates the digest with the given data.
+
+ virtual std::size_t digestLength() const = 0;
+ /// Returns the length of the digest in bytes.
+
+ virtual void reset() = 0;
+ /// Resets the engine so that a new
+ /// digest can be computed.
+
+ virtual const Digest& digest() = 0;
+ /// Finishes the computation of the digest and
+ /// returns the message digest. Resets the engine
+ /// and can thus only be called once for every digest.
+ /// The returned reference is valid until the next
+ /// time digest() is called, or the engine object is destroyed.
+
+ static std::string digestToHex(const Digest& bytes);
+ /// Converts a message digest into a string of hexadecimal numbers.
+
+ static Digest digestFromHex(const std::string& digest);
+ /// Converts a string created by digestToHex back to its Digest presentation
+
+ static bool constantTimeEquals(const Digest& d1, const Digest& d2);
+ /// Compares two Digest values using a constant-time comparison
+ /// algorithm. This can be used to prevent timing attacks
+ /// (as discussed in <https://codahale.com/a-lesson-in-timing-attacks/>).
+
+protected:
+ virtual void updateImpl(const void* data, std::size_t length) = 0;
+ /// Updates the digest with the given data. Must be implemented
+ /// by subclasses.
+
+private:
+ DigestEngine(const DigestEngine&);
+ DigestEngine& operator = (const DigestEngine&);
+};
+
+
+//
+// inlines
+//
+
+
+inline void DigestEngine::update(const void* data, std::size_t length)
+{
+ updateImpl(data, length);
+}
+
+
+inline void DigestEngine::update(char data)
+{
+ updateImpl(&data, 1);
+}
+
+
+inline void DigestEngine::update(const std::string& data)
+{
+ updateImpl(data.data(), data.size());
+}
+
+
+} // namespace Poco
+
+
+#endif // Foundation_DigestEngine_INCLUDED