diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:49 +0300 |
commit | 718c552901d703c502ccbefdfc3c9028d608b947 (patch) | |
tree | 46534a98bbefcd7b1f3faa5b52c138ab27db75b7 /contrib/libs/poco/Foundation/include/Poco/MD4Engine.h | |
parent | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (diff) | |
download | ydb-718c552901d703c502ccbefdfc3c9028d608b947.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/poco/Foundation/include/Poco/MD4Engine.h')
-rw-r--r-- | contrib/libs/poco/Foundation/include/Poco/MD4Engine.h | 190 |
1 files changed, 95 insertions, 95 deletions
diff --git a/contrib/libs/poco/Foundation/include/Poco/MD4Engine.h b/contrib/libs/poco/Foundation/include/Poco/MD4Engine.h index 644575e06c..346615e443 100644 --- a/contrib/libs/poco/Foundation/include/Poco/MD4Engine.h +++ b/contrib/libs/poco/Foundation/include/Poco/MD4Engine.h @@ -1,95 +1,95 @@ -// -// MD4Engine.h -// -// Library: Foundation -// Package: Crypt -// Module: MD4Engine -// -// Definition of class MD4Engine. -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// -// -// MD4 (RFC 1320) algorithm: -// Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All -// rights reserved. -// -// License to copy and use this software is granted provided that it -// is identified as the "RSA Data Security, Inc. MD4 Message-Digest -// Algorithm" in all material mentioning or referencing this software -// or this function. -// -// License is also granted to make and use derivative works provided -// that such works are identified as "derived from the RSA Data -// Security, Inc. MD4 Message-Digest Algorithm" in all material -// mentioning or referencing the derived work. -// -// RSA Data Security, Inc. makes no representations concerning either -// the merchantability of this software or the suitability of this -// software for any particular purpose. It is provided "as is" -// without express or implied warranty of any kind. -// -// These notices must be retained in any copies of any part of this -// documentation and/or software. -// - - -#ifndef Foundation_MD4Engine_INCLUDED -#define Foundation_MD4Engine_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/DigestEngine.h" - - -namespace Poco { - - -class Foundation_API MD4Engine: public DigestEngine - /// This class implementes the MD4 message digest algorithm, - /// described in RFC 1320. -{ -public: - enum - { - BLOCK_SIZE = 64, - DIGEST_SIZE = 16 - }; - - MD4Engine(); - ~MD4Engine(); - - std::size_t digestLength() const; - void reset(); - const DigestEngine::Digest& digest(); - -protected: - void updateImpl(const void* data, std::size_t length); - -private: - static void transform(UInt32 state[4], const unsigned char block[64]); - static void encode(unsigned char* output, const UInt32* input, std::size_t len); - static void decode(UInt32* output, const unsigned char* input, std::size_t len); - - struct Context - { - UInt32 state[4]; // state (ABCD) - UInt32 count[2]; // number of bits, modulo 2^64 (lsb first) - unsigned char buffer[64]; // input buffer - }; - - Context _context; - DigestEngine::Digest _digest; - - MD4Engine(const MD4Engine&); - MD4Engine& operator = (const MD4Engine&); -}; - - -} // namespace Poco - - -#endif // Foundation_MD5Engine_INCLUDED +// +// MD4Engine.h +// +// Library: Foundation +// Package: Crypt +// Module: MD4Engine +// +// Definition of class MD4Engine. +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// +// +// MD4 (RFC 1320) algorithm: +// Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All +// rights reserved. +// +// License to copy and use this software is granted provided that it +// is identified as the "RSA Data Security, Inc. MD4 Message-Digest +// Algorithm" in all material mentioning or referencing this software +// or this function. +// +// License is also granted to make and use derivative works provided +// that such works are identified as "derived from the RSA Data +// Security, Inc. MD4 Message-Digest Algorithm" in all material +// mentioning or referencing the derived work. +// +// RSA Data Security, Inc. makes no representations concerning either +// the merchantability of this software or the suitability of this +// software for any particular purpose. It is provided "as is" +// without express or implied warranty of any kind. +// +// These notices must be retained in any copies of any part of this +// documentation and/or software. +// + + +#ifndef Foundation_MD4Engine_INCLUDED +#define Foundation_MD4Engine_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/DigestEngine.h" + + +namespace Poco { + + +class Foundation_API MD4Engine: public DigestEngine + /// This class implementes the MD4 message digest algorithm, + /// described in RFC 1320. +{ +public: + enum + { + BLOCK_SIZE = 64, + DIGEST_SIZE = 16 + }; + + MD4Engine(); + ~MD4Engine(); + + std::size_t digestLength() const; + void reset(); + const DigestEngine::Digest& digest(); + +protected: + void updateImpl(const void* data, std::size_t length); + +private: + static void transform(UInt32 state[4], const unsigned char block[64]); + static void encode(unsigned char* output, const UInt32* input, std::size_t len); + static void decode(UInt32* output, const unsigned char* input, std::size_t len); + + struct Context + { + UInt32 state[4]; // state (ABCD) + UInt32 count[2]; // number of bits, modulo 2^64 (lsb first) + unsigned char buffer[64]; // input buffer + }; + + Context _context; + DigestEngine::Digest _digest; + + MD4Engine(const MD4Engine&); + MD4Engine& operator = (const MD4Engine&); +}; + + +} // namespace Poco + + +#endif // Foundation_MD5Engine_INCLUDED |