summaryrefslogtreecommitdiff
path: root/lib/libalpm/md5.h
diff options
context:
space:
mode:
authorAndrew Fyfe <andrew@neptune-one.net>2007-07-25 22:49:32 +0100
committerDan McGee <dan@archlinux.org>2007-08-16 13:17:33 -0400
commit1cb6d80631359306d70bbe5fbcbbca1474594ada (patch)
tree61348cf98beac7febbe0558a353f2cec46930315 /lib/libalpm/md5.h
parentba67fdae63122b40d8fb4abf9c1c7695999f143d (diff)
downloadpacman-1cb6d80631359306d70bbe5fbcbbca1474594ada.tar.xz
Clean up MD5 code.
* Move alpm md5 functions to lib/libalpm/util.c * Remove unneeded includes for md5.h * Replace md5 implementation with one from http://www.xyssl.org Dan: clean up XySSL code by removing parts we don't use, and add a note saying what changed. Dan: fix alpm_get_md5sum, off by one error on the malloc call and other small things. Signed-off-by: Andrew Fyfe <andrew@neptune-one.net> Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/md5.h')
-rw-r--r--lib/libalpm/md5.h122
1 files changed, 80 insertions, 42 deletions
diff --git a/lib/libalpm/md5.h b/lib/libalpm/md5.h
index 8ae324e3..d652c2e4 100644
--- a/lib/libalpm/md5.h
+++ b/lib/libalpm/md5.h
@@ -1,53 +1,91 @@
-/* MD5.H - header file for MD5C.C
+/*
+ * RFC 1321 compliant MD5 implementation
+ *
+ * Copyright (C) 2006-2007 Christophe Devine
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License, version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
*/
-/* 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.
-
-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.
-
-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. */
-#ifndef _ALPM_MD5_H
-#define _ALPM_MD5_H
+/**
+ * \file md5.h
+ */
+#ifndef _MD5_H
+#define _MD5_H
-/* POINTER defines a generic pointer type */
-typedef unsigned char *POINTER;
+#ifdef __cplusplus
+extern "C" {
+#endif
-/* UINT2 defines a two byte word */
-typedef unsigned short int UINT2;
+/**
+ * \brief MD5 context structure
+ */
+typedef struct
+{
+ unsigned long total[2]; /*!< number of bytes processed */
+ unsigned long state[4]; /*!< intermediate digest state */
+ unsigned char buffer[64]; /*!< data block being processed */
+}
+md5_context;
-/* UINT4 defines a four byte word */
-typedef unsigned int UINT4;
+/**
+ * \brief MD5 context setup
+ *
+ * \param ctx context to be initialized
+ */
+void md5_starts( md5_context *ctx );
+/**
+ * \brief MD5 process buffer
+ *
+ * \param ctx MD5 context
+ * \param input buffer holding the data
+ * \param ilen length of the input data
+ */
+void md5_update( md5_context *ctx, unsigned char *input, int ilen );
-/* MD5 context. */
-typedef struct {
- UINT4 state[4]; /* state (ABCD) */
- UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
- unsigned char buffer[64]; /* input buffer */
-} MD5_CTX;
+/**
+ * \brief MD5 final digest
+ *
+ * \param ctx MD5 context
+ * \param output MD5 checksum result
+ */
+void md5_finish( md5_context *ctx, unsigned char *output );
-void _alpm_MD5Init(MD5_CTX *);
-void _alpm_MD5Update(MD5_CTX *, unsigned char *, unsigned int);
-void _alpm_MD5Final(unsigned char [16], MD5_CTX *);
+/**
+ * \brief Output = MD5( input buffer )
+ *
+ * \param input buffer holding the data
+ * \param ilen length of the input data
+ * \param output MD5 checksum result
+ */
+void md5( unsigned char *input, int ilen,
+ unsigned char *output );
-char* _alpm_MDFile(char *);
-void _alpm_MDPrint(unsigned char [16]);
+/**
+ * \brief Output = MD5( file contents )
+ *
+ * \param path input file name
+ * \param output MD5 checksum result
+ *
+ * \return 0 if successful, 1 if fopen failed,
+ * or 2 if fread failed
+ */
+int md5_file( char *path, unsigned char *output );
-#endif /* _ALPM_MD5_H */
+#ifdef __cplusplus
+}
+#endif
-/* vim: set ts=2 sw=2 noet: */
+#endif /* md5.h */