summaryrefslogtreecommitdiff
path: root/src/3rdparty/md5/md5.h
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2009-08-21 20:15:17 +0000
committerrubidium <rubidium@openttd.org>2009-08-21 20:15:17 +0000
commit60a3bc903460476cffc6888e9f2e6345159d032e (patch)
tree4a5316d70cd9a228bea58bfeafb84f7f2f620e8d /src/3rdparty/md5/md5.h
parenta27e7231b4a0b5b065b6faeea4c79283722cd6a9 (diff)
downloadopenttd-60a3bc903460476cffc6888e9f2e6345159d032e.tar.xz
(svn r17247) -Change: move '3rd party' MD5 implementation also to the 3rdparty directory.
Diffstat (limited to 'src/3rdparty/md5/md5.h')
-rw-r--r--src/3rdparty/md5/md5.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/3rdparty/md5/md5.h b/src/3rdparty/md5/md5.h
new file mode 100644
index 000000000..a3c4a6d9f
--- /dev/null
+++ b/src/3rdparty/md5/md5.h
@@ -0,0 +1,82 @@
+/* $Id$ */
+
+/** @file md5.h Functions to create MD5 checksums. */
+
+/*
+ Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved.
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ L. Peter Deutsch
+ ghost@aladdin.com
+
+ */
+
+/*
+ Independent implementation of MD5 (RFC 1321).
+
+ This code implements the MD5 Algorithm defined in RFC 1321, whose
+ text is available at
+ http://www.ietf.org/rfc/rfc1321.txt
+ The code is derived from the text of the RFC, including the test suite
+ (section A.5) but excluding the rest of Appendix A. It does not include
+ any code or documentation that is identified in the RFC as being
+ copyrighted.
+
+ The original and principal author of md5.h is L. Peter Deutsch
+ <ghost@aladdin.com>. Other authors are noted in the change history
+ that follows (in reverse chronological order):
+
+ 2007-12-24 Changed to C++ and adapted to OpenTTD source
+ 2002-04-13 lpd Removed support for non-ANSI compilers; removed
+ references to Ghostscript; clarified derivation from RFC 1321;
+ now handles byte order either statically or dynamically.
+ 1999-11-04 lpd Edited comments slightly for automatic TOC extraction.
+ 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5);
+ added conditionalization for C++ compilation from Martin
+ Purschke <purschke@bnl.gov>.
+ 1999-05-03 lpd Original version.
+ */
+
+#ifndef MD5_INCLUDED
+#define MD5_INCLUDED
+
+/*
+ * This package supports both compile-time and run-time determination of CPU
+ * byte order. If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be
+ * compiled to run only on little-endian CPUs; if ARCH_IS_BIG_ENDIAN is
+ * defined as non-zero, the code will be compiled to run only on big-endian
+ * CPUs; if ARCH_IS_BIG_ENDIAN is not defined, the code will be compiled to
+ * run on either big- or little-endian CPUs, but will run slightly less
+ * efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined.
+ */
+
+struct Md5 {
+private:
+ uint32 count[2]; ///< message length in bits, lsw first
+ uint32 abcd[4]; ///< digest buffer
+ uint8 buf[64]; ///< accumulate block
+
+ void Process(const uint8 *data);
+
+public:
+ Md5();
+ void Append(const void *data, const size_t nbytes);
+ void Finish(uint8 digest[16]);
+};
+
+#endif /* MD5_INCLUDED */