18faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel// Copyright 2007 Google Inc. All Rights Reserved.
28faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel// Author: liuli@google.com (Liu Li)
38faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel// copied from chromium/src/breakpad/src/common/md5.h
48faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
58faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel#ifndef COMMON_MD5_H__
68faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel#define COMMON_MD5_H__
78faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
88faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel#include <stdint.h>
98faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
108faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedeltypedef uint32_t u32;
118faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedeltypedef uint8_t u8;
128faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
138faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedelstruct MD5Context {
148faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel  u32 buf[4];
158faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel  u32 bits[2];
168faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel  u8 in[64];
178faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel};
188faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
198faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel#ifdef __cplusplus
208faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedelextern "C" {
218faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel#endif  // __cplusplus
228faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
238faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedelvoid MD5Init(struct MD5Context *ctx);
248faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
258faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedelvoid MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len);
268faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
278faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedelvoid MD5Final(unsigned char digest[16], struct MD5Context *ctx);
288faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
298faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel#ifdef __cplusplus
308faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel}
318faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel#endif
328faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel
338faad30e5a44271d9e50c4d75e1271018d7439b5Ilja H. Friedel#endif  // COMMON_MD5_H__
34