summaryrefslogtreecommitdiff
path: root/md5_utils.h
diff options
context:
space:
mode:
authorAndres Mejia <mcitadel@gmail.com>2010-06-14 01:27:33 -0400
committerJohn Koleszar <jkoleszar@google.com>2010-06-14 08:48:22 -0400
commit1856f2213dae9fefaad0906011de31917853cffc (patch)
tree62008ba55b767cf4926943203714e9a8eb489c7b /md5_utils.h
parent900d0548db717719529778f7f13ce68ffc2f89d4 (diff)
downloadlibvpx-1856f2213dae9fefaad0906011de31917853cffc.tar.gz
Use public domain implementation for MD5 algorithm
The RSA Data Security, Inc. implementation license bears a requirement similar to the old problematic BSD license with advertising clause. Change-Id: I877b71ff0548934b1c4fd87245696f53dedbdf26
Diffstat (limited to 'md5_utils.h')
-rw-r--r--md5_utils.h71
1 files changed, 34 insertions, 37 deletions
diff --git a/md5_utils.h b/md5_utils.h
index d1a981bb7..5ca1b5f28 100644
--- a/md5_utils.h
+++ b/md5_utils.h
@@ -1,45 +1,42 @@
/*
- * Copyright (c) 2010 The VP8 project authors. All Rights Reserved.
+ * This is the header file for the MD5 message-digest algorithm.
+ * The algorithm is due to Ron Rivest. This code was
+ * written by Colin Plumb in 1993, no copyright is claimed.
+ * This code is in the public domain; do with it what you wish.
*
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
+ * Equivalent code is available from RSA Data Security, Inc.
+ * This code has been tested against that, and is equivalent,
+ * except that you don't need to include two pages of legalese
+ * with every copy.
+ *
+ * To compute the message digest of a chunk of bytes, declare an
+ * MD5Context structure, pass it to MD5Init, call MD5Update as
+ * needed on buffers full of bytes, and then call MD5Final, which
+ * will fill a supplied 16-byte array with the digest.
+ *
+ * Changed so as no longer to depend on Colin Plumb's `usual.h'
+ * header definitions
+ * - Ian Jackson <ian@chiark.greenend.org.uk>.
+ * Still in the public domain.
*/
-/*
-Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
-rights reserved.
-
-License to copy and use this software is granted provided that it
-is identified as the "RSA Data Security, Inc. MD5 Message-Digest
-Algorithm" in all material mentioning or referencing this software
-or this function.
+#ifndef MD5_H
+#define MD5_H
-License is also granted to make and use derivative works provided
-that such works are identified as "derived from the RSA Data
-Security, Inc. MD5 Message-Digest Algorithm" in all material
-mentioning or referencing the derived work.
+#define md5byte unsigned char
+#define UWORD32 unsigned int
-RSA Data Security, Inc. makes no representations concerning either
-the merchantability of this software or the suitability of this
-software for any particular purpose. It is provided "as is"
-without express or implied warranty of any kind.
-
-These notices must be retained in any copies of any part of this
-documentation and/or software.
-*/
-#include "vpx/vpx_integer.h"
-
-/* MD5 context. */
-typedef struct
+typedef struct MD5Context MD5Context;
+struct MD5Context
{
- uint32_t state[4]; /* state (ABCD) */
- uint32_t count[2]; /* number of bits, modulo 2^64 (lsb first) */
- uint8_t buffer[64]; /* input buffer */
-} md5_ctx_t;
+ UWORD32 buf[4];
+ UWORD32 bytes[2];
+ UWORD32 in[16];
+};
+
+void MD5Init(struct MD5Context *context);
+void MD5Update(struct MD5Context *context, md5byte const *buf, unsigned len);
+void MD5Final(unsigned char digest[16], struct MD5Context *context);
+void MD5Transform(UWORD32 buf[4], UWORD32 const in[16]);
-void md5_init(md5_ctx_t *ctx);
-void md5_update(md5_ctx_t *ctx, const uint8_t *buf, unsigned int len);
-void md5_finalize(md5_ctx_t *ctx, uint8_t md5[16]);
+#endif /* !MD5_H */