diff options
author | Mark Spruiell <mes@zeroc.com> | 2004-07-02 01:14:00 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2004-07-02 01:14:00 +0000 |
commit | c11d0fed2d828d3a23c895328843bda33a4fa71c (patch) | |
tree | 68a9538afa133c126852af348621b05eaa4d7257 /cpp/src/IceUtil/MD5.cpp | |
parent | winsock2.h is now included (diff) | |
download | ice-c11d0fed2d828d3a23c895328843bda33a4fa71c.tar.bz2 ice-c11d0fed2d828d3a23c895328843bda33a4fa71c.tar.xz ice-c11d0fed2d828d3a23c895328843bda33a4fa71c.zip |
Slice checksum changes
Diffstat (limited to 'cpp/src/IceUtil/MD5.cpp')
-rw-r--r-- | cpp/src/IceUtil/MD5.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/MD5.cpp b/cpp/src/IceUtil/MD5.cpp new file mode 100644 index 00000000000..3e4654bf35d --- /dev/null +++ b/cpp/src/IceUtil/MD5.cpp @@ -0,0 +1,56 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2004 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/MD5.h> +#include <IceUtil/MD5I.h> + +using namespace std; + +// +// This class is a C++ wrapper around the C implementation contained in +// MD5I.cpp, obtained from http://sourceforge.net/projects/libmd5-rfc/. +// + +IceUtil::MD5::MD5() +{ + _state = new md5_state_s; + md5_init(_state); +} + +IceUtil::MD5::MD5(const unsigned char* data, int n) +{ + _state = new md5_state_s; + md5_init(_state); + update(data, n); + finish(); +} + +IceUtil::MD5::~MD5() +{ + delete _state; +} + +void +IceUtil::MD5::update(const unsigned char* data, int n) +{ + md5_append(_state, data, n); +} + +void +IceUtil::MD5::finish() +{ + md5_finish(_state, _digest); + md5_init(_state); +} + +void +IceUtil::MD5::getDigest(unsigned char* digest) const +{ + memcpy(digest, _digest, sizeof(unsigned char) * 16); +} |