diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-07-12 22:53:58 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-12 22:53:58 +0300 |
commit | 69df5ffa970dbcafde7dbb5d360c0ea28300cb50 (patch) | |
tree | ba5165b102784eb793da8e9cd8dc35108fbeeed0 /src/common/md5calc.h | |
parent | 4b8dd1cdaadba7ae2200f114a4e11ef62454eaa1 (diff) | |
parent | 14c9f5228fec75fc4e9bc8552e3fbae16f356103 (diff) | |
download | hercules-69df5ffa970dbcafde7dbb5d360c0ea28300cb50.tar.gz hercules-69df5ffa970dbcafde7dbb5d360c0ea28300cb50.tar.bz2 hercules-69df5ffa970dbcafde7dbb5d360c0ea28300cb50.tar.xz hercules-69df5ffa970dbcafde7dbb5d360c0ea28300cb50.zip |
Merge pull request #1290 from HerculesWS/common_interfacing
Common interfacing
Diffstat (limited to 'src/common/md5calc.h')
-rw-r--r-- | src/common/md5calc.h | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/src/common/md5calc.h b/src/common/md5calc.h index 0294c3ca1..b4d4995f9 100644 --- a/src/common/md5calc.h +++ b/src/common/md5calc.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2015 Hercules Dev Team + * Copyright (C) 2012-2016 Hercules Dev Team * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify @@ -21,10 +21,46 @@ #ifndef COMMON_MD5CALC_H #define COMMON_MD5CALC_H +#include "common/hercules.h" + +/** @file + * md5 calculation algorithm. + * + * The source code referred to the following URL. + * http://www.geocities.co.jp/SiliconValley-Oakland/8878/lab17/lab17.html + */ + +/// The md5 interface +struct md5_interface { + /** + * Hashes a string, returning the hash in string format. + * + * @param[in] string The source string (NUL terminated). + * @param[out] output Output buffer (at least 33 bytes available). + */ + void (*string) (const char *string, char *output); + + /** + * Hashes a string, returning the buffer in binary format. + * + * @param[in] string The source string. + * @param[out] output Output buffer (at least 16 bytes available). + */ + void (*binary) (const char *string, unsigned char *output); + + /** + * Generates a random salt. + * + * @param[in] len The desired salt length. + * @param[out] output The output buffer (at least len bytes available). + */ + void (*salt) (int len, char *output); +}; + #ifdef HERCULES_CORE -void MD5_String(const char * string, char * output); -void MD5_Binary(const char * string, unsigned char * output); -void MD5_Salt(unsigned int len, char * output); +void md5_defaults(void); #endif // HERCULES_CORE +HPShared struct md5_interface *md5; ///< Pointer to the md5 interface. + #endif /* COMMON_MD5CALC_H */ |