summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/md5.cc2
-rw-r--r--base/md5.h11
-rw-r--r--base/md5_unittest.cc45
3 files changed, 24 insertions, 34 deletions
diff --git a/base/md5.cc b/base/md5.cc
index fdda2a4..ff69dc0 100644
--- a/base/md5.cc
+++ b/base/md5.cc
@@ -18,8 +18,6 @@
* will fill a supplied 16-byte array with the digest.
*/
-#include <string>
-
#include "base/md5.h"
#include "base/basictypes.h"
diff --git a/base/md5.h b/base/md5.h
index 10e2a35..d652ded6 100644
--- a/base/md5.h
+++ b/base/md5.h
@@ -33,10 +33,10 @@
//
// You can call MD5DigestToBase16() to generate a string of the digest.
-// The output of an MD5 operation
-typedef struct MD5Digest_struct {
+// The output of an MD5 operation.
+struct MD5Digest {
unsigned char a[16];
-} MD5Digest;
+};
// Used for storing intermediate data during an MD5 computation. Callers
// should not access the data.
@@ -53,10 +53,10 @@ BASE_API void MD5Init(MD5Context* context);
// For the given buffer of data, updates the given MD5 context with the sum of
// the data. You can call this any number of times during the computation,
// except that MD5Init() must have been called first.
-BASE_API void MD5Update(MD5Context* context, const void* buf, size_t len);
+BASE_API void MD5Update(MD5Context* context, const void* data, size_t length);
// Finalizes the MD5 operation and fills the buffer with the digest.
-BASE_API void MD5Final(MD5Digest* digest, MD5Context* pCtx);
+BASE_API void MD5Final(MD5Digest* digest, MD5Context* context);
// Converts a digest into human-readable hexadecimal.
BASE_API std::string MD5DigestToBase16(const MD5Digest& digest);
@@ -65,4 +65,3 @@ BASE_API std::string MD5DigestToBase16(const MD5Digest& digest);
BASE_API std::string MD5String(const std::string& str);
#endif // BASE_MD5_H_
-
diff --git a/base/md5_unittest.cc b/base/md5_unittest.cc
index dc7c66b..c81ff12 100644
--- a/base/md5_unittest.cc
+++ b/base/md5_unittest.cc
@@ -6,11 +6,12 @@
#include <string>
#include "base/basictypes.h"
-#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "base/md5.h"
#include "testing/gtest/include/gtest/gtest.h"
+namespace base {
+
TEST(MD5, DigestToBase16) {
MD5Digest digest;
@@ -21,9 +22,8 @@ TEST(MD5, DigestToBase16) {
0xec, 0xf8, 0x42, 0x7e
};
- for (int i = 0; i < 16; ++i) {
+ for (int i = 0; i < 16; ++i)
digest.a[i] = data[i] & 0xff;
- }
std::string actual = MD5DigestToBase16(digest);
std::string expected = "d41d8cd98f00b204e9800998ecf8427e";
@@ -44,9 +44,8 @@ TEST(MD5, MD5SumEmtpyData) {
0xec, 0xf8, 0x42, 0x7e
};
- for (int i = 0; i < 16; ++i) {
+ for (int i = 0; i < 16; ++i)
EXPECT_EQ(expected[i], digest.a[i] & 0xFF);
- }
}
TEST(MD5, MD5SumOneByteData) {
@@ -62,21 +61,18 @@ TEST(MD5, MD5SumOneByteData) {
0x69, 0x77, 0x26, 0x61
};
- for (int i = 0; i < 16; ++i) {
+ for (int i = 0; i < 16; ++i)
EXPECT_EQ(expected[i], digest.a[i] & 0xFF);
- }
}
TEST(MD5, MD5SumLongData) {
- MD5Digest digest;
-
const int length = 10 * 1024 * 1024 + 1;
scoped_array<char> data(new char[length]);
- for (int i = 0; i < length; ++i) {
+ for (int i = 0; i < length; ++i)
data[i] = i & 0xFF;
- }
+ MD5Digest digest;
MD5Sum(data.get(), length, &digest);
int expected[] = {
@@ -86,9 +82,8 @@ TEST(MD5, MD5SumLongData) {
0x21, 0xc7, 0xa1, 0x3e
};
- for (int i = 0; i < 16; ++i) {
+ for (int i = 0; i < 16; ++i)
EXPECT_EQ(expected[i], digest.a[i] & 0xFF);
- }
}
TEST(MD5, ContextWithEmptyData) {
@@ -105,9 +100,8 @@ TEST(MD5, ContextWithEmptyData) {
0xec, 0xf8, 0x42, 0x7e
};
- for (int i = 0; i < 16; ++i) {
+ for (int i = 0; i < 16; ++i)
EXPECT_EQ(expected[i], digest.a[i] & 0xFF);
- }
}
TEST(MD5, ContextWithLongData) {
@@ -117,16 +111,14 @@ TEST(MD5, ContextWithLongData) {
const int length = 10 * 1024 * 1024 + 1;
scoped_array<char> data(new char[length]);
- for (int i = 0; i < length; ++i) {
+ for (int i = 0; i < length; ++i)
data[i] = i & 0xFF;
- }
int total = 0;
while (total < length) {
int len = 4097; // intentionally not 2^k.
- if (len > length - total) {
+ if (len > length - total)
len = length - total;
- }
MD5Update(&ctx, data.get() + total, len);
total += len;
@@ -144,9 +136,8 @@ TEST(MD5, ContextWithLongData) {
0x21, 0xc7, 0xa1, 0x3e
};
- for (int i = 0; i < 16; ++i) {
+ for (int i = 0; i < 16; ++i)
EXPECT_EQ(expected[i], digest.a[i] & 0xFF);
- }
}
// Example data from http://www.ietf.org/rfc/rfc1321.txt A.5 Test Suite
@@ -182,17 +173,19 @@ TEST(MD5, MD5StringTestSuite5) {
TEST(MD5, MD5StringTestSuite6) {
std::string actual = MD5String("ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz"
- "0123456789");
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789");
std::string expected = "d174ab98d277d9f5a5611c2c9f419d9f";
EXPECT_EQ(expected, actual);
}
TEST(MD5, MD5StringTestSuite7) {
std::string actual = MD5String("12345678901234567890"
- "12345678901234567890"
- "12345678901234567890"
- "12345678901234567890");
+ "12345678901234567890"
+ "12345678901234567890"
+ "12345678901234567890");
std::string expected = "57edf4a22be3c955ac49da2e2107b67a";
EXPECT_EQ(expected, actual);
}
+
+} // namespace base