diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2014-03-15 19:34:59 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2014-03-16 18:58:48 -0700 |
commit | c812c92d1a1835f0bda783e709481188c8d92225 (patch) | |
tree | b401ede48a088ad1aaed88fe3b997cd26ff7ae08 /src/generic/md5.hpp | |
parent | de9ee1b9754af9d954487121947352f32d7ebb7e (diff) | |
download | tmwa-c812c92d1a1835f0bda783e709481188c8d92225.tar.gz tmwa-c812c92d1a1835f0bda783e709481188c8d92225.tar.bz2 tmwa-c812c92d1a1835f0bda783e709481188c8d92225.tar.xz tmwa-c812c92d1a1835f0bda783e709481188c8d92225.zip |
Clean up header organization
Diffstat (limited to 'src/generic/md5.hpp')
-rw-r--r-- | src/generic/md5.hpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/generic/md5.hpp b/src/generic/md5.hpp new file mode 100644 index 0000000..ba1212a --- /dev/null +++ b/src/generic/md5.hpp @@ -0,0 +1,44 @@ +#ifndef TMWA_GENERIC_MD5CALC_HPP +#define TMWA_GENERIC_MD5CALC_HPP + +# include "../sanity.hpp" + +# include <netinet/in.h> + +# include <cstdint> +# include <cstddef> +# include <cstdio> + +# include <array> + +# include "../strings/fwd.hpp" +# include "../strings/vstring.hpp" + +/// The digest state - becomes the output +struct MD5_state +{ + // classically named {A,B,C,D} + // but use an array so we can index + uint32_t val[4]; +}; +struct MD5_block +{ + uint32_t data[16]; +}; + +struct md5_binary : std::array<uint8_t, 0x10> {}; +struct md5_string : VString<0x20> {}; +struct SaltString : VString<5> {}; + +// Implementation +void MD5_init(MD5_state *state); +void MD5_do_block(MD5_state *state, MD5_block block); + +// Output formatting +void MD5_to_bin(MD5_state state, md5_binary& out); +void MD5_to_str(MD5_state state, md5_string& out); + +// Convenience +MD5_state MD5_from_string(XString msg); + +#endif // TMWA_GENERIC_MD5CALC_HPP |