]> granicus.if.org Git - curl/commitdiff
adjusted to use the same API as the OpenSSL version of the MD5 functions
authorDaniel Stenberg <daniel@haxx.se>
Thu, 26 Jun 2003 11:27:22 +0000 (11:27 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 26 Jun 2003 11:27:22 +0000 (11:27 +0000)
lib/md5.c

index f6abde9e5bd05f0800718a2951976db308a906c4..d7da941f130c1921e8dea045ee4b3cef9d395bff 100644 (file)
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -1,3 +1,33 @@
+/***************************************************************************
+ *                                  _   _ ____  _     
+ *  Project                     ___| | | |  _ \| |    
+ *                             / __| | | | |_) | |    
+ *                            | (__| |_| |  _ <| |___ 
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2003, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ * 
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id$
+ ***************************************************************************/
+
+#include "setup.h"
+
+#ifndef USE_SSLEAY
+/* This code segment is only used if OpenSSL is not provided, as if it is
+   we use the MD5-function provided there instead. No good duplicating
+   code! */
+
 /* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
 rights reserved.
 
@@ -22,9 +52,6 @@ documentation and/or software.
 
 #include <string.h>
 
-/* UINT2 defines a two byte word */
-typedef unsigned short int UINT2;
-
 /* UINT4 defines a four byte word */
 typedef unsigned long int UINT4;
 
@@ -35,9 +62,11 @@ struct md5_ctx {
   unsigned char buffer[64];                         /* input buffer */
 };
 
-static void MD5Init(struct md5_ctx *);
-static void MD5Update(struct md5_ctx *, unsigned char *, unsigned int);
-static void MD5Final(unsigned char [16], struct md5_ctx *);
+typedef struct md5_ctx MD5_CTX;
+
+static void MD5_Init(struct md5_ctx *);
+static void MD5_Update(struct md5_ctx *, unsigned char *, unsigned int);
+static void MD5_Final(unsigned char [16], struct md5_ctx *);
 
 /* Constants for MD5Transform routine.
  */
@@ -109,7 +138,7 @@ Rotation is separate from addition to prevent recomputation.
 
 /* MD5 initialization. Begins an MD5 operation, writing a new context.
  */
-static void MD5Init (context)
+static void MD5_Init (context)
 struct md5_ctx *context;                                        /* context */
 {
   context->count[0] = context->count[1] = 0;
@@ -125,7 +154,7 @@ struct md5_ctx *context;                                        /* context */
   operation, processing another message block, and updating the
   context.
  */
-static void MD5Update (context, input, inputLen)
+static void MD5_Update (context, input, inputLen)
 struct md5_ctx *context;                                        /* context */
 unsigned char *input;                                /* input block */
 unsigned int inputLen;                     /* length of input block */
@@ -164,7 +193,7 @@ unsigned int inputLen;                     /* length of input block */
 /* MD5 finalization. Ends an MD5 message-digest operation, writing the
   the message digest and zeroizing the context.
  */
-static void MD5Final (digest, context)
+static void MD5_Final (digest, context)
 unsigned char digest[16];                         /* message digest */
 struct md5_ctx *context;                                       /* context */
 {
@@ -177,10 +206,10 @@ struct md5_ctx *context;                                       /* context */
   /* Pad out to 56 mod 64. */
   index = (unsigned int)((context->count[0] >> 3) & 0x3f);
   padLen = (index < 56) ? (56 - index) : (120 - index);
-  MD5Update (context, PADDING, padLen);
+  MD5_Update (context, PADDING, padLen);
 
   /* Append length (before padding) */
-  MD5Update (context, bits, 8);
+  MD5_Update (context, bits, 8);
 
   /* Store state in digest */
   Encode (digest, context->state, 16);
@@ -310,11 +339,18 @@ static void Decode (UINT4 *output,
       (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24);
 }
 
+#else
+/* If OpenSSL is present */
+#include <openssl/md5.h>
+#include <string.h>
+#endif
+
+
 void Curl_md5it(unsigned char *outbuffer, /* 16 bytes */
                 unsigned char *input)
 {
-  struct md5_ctx ctx;
-  MD5Init(&ctx);
-  MD5Update(&ctx, input, strlen((char *)input));
-  MD5Final(outbuffer, &ctx);
+  MD5_CTX ctx;
+  MD5_Init(&ctx);
+  MD5_Update(&ctx, input, strlen((char *)input));
+  MD5_Final(outbuffer, &ctx);
 }