summaryrefslogtreecommitdiff
path: root/src/md5.h
diff options
context:
space:
mode:
authorskidd13 <skidd13@openttd.org>2007-12-25 13:59:21 +0000
committerskidd13 <skidd13@openttd.org>2007-12-25 13:59:21 +0000
commit7963963d982aed3176d3d05a09bed1293953ef88 (patch)
tree42ac53ed2682fd271d54bb7695ea73ba7053c2af /src/md5.h
parentb3f6c0734b2eba2ab6271ea0fbf669a526a33e3c (diff)
downloadopenttd-7963963d982aed3176d3d05a09bed1293953ef88.tar.xz
(svn r11695) -Codechange: Converted the md5 algorithm to OOP
-Codechange: Adapt the md5 algorithm to the OpenTTD source
Diffstat (limited to 'src/md5.h')
-rw-r--r--src/md5.h38
1 files changed, 17 insertions, 21 deletions
diff --git a/src/md5.h b/src/md5.h
index 0e48fb4c2..67ddcc6a5 100644
--- a/src/md5.h
+++ b/src/md5.h
@@ -31,7 +31,7 @@
This code implements the MD5 Algorithm defined in RFC 1321, whose
text is available at
- http://www.ietf.org/rfc/rfc1321.txt
+ 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
@@ -41,13 +41,14 @@
<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.
+ 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>.
+ added conditionalization for C++ compilation from Martin
+ Purschke <purschke@bnl.gov>.
1999-05-03 lpd Original version.
*/
@@ -64,23 +65,18 @@
* efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined.
*/
-typedef unsigned char md5_byte_t; /* 8-bit byte */
-typedef unsigned int md5_word_t; /* 32-bit word */
+struct Md5 {
+private:
+ uint32 count[2]; ///< message length in bits, lsw first
+ uint32 abcd[4]; ///< digest buffer
+ uint8 buf[64]; ///< accumulate block
-/* Define the state of the MD5 Algorithm. */
-struct md5_state_t {
- md5_word_t count[2]; /* message length in bits, lsw first */
- md5_word_t abcd[4]; /* digest buffer */
- md5_byte_t buf[64]; /* accumulate block */
-};
-
-/* Initialize the algorithm. */
-void md5_init(md5_state_t *pms);
+ void Process(const uint8 *data);
-/* Append a string to the message. */
-void md5_append(md5_state_t *pms, const void *data, size_t nbytes);
-
-/* Finish the message and return the digest. */
-void md5_finish(md5_state_t *pms, md5_byte_t digest[16]);
+public:
+ Md5();
+ void Append(const void *data, const size_t nbytes);
+ void Finish(uint8 digest[16]);
+};
#endif /* MD5_INCLUDED */