[77865] trunk/base/src/pextlib1.0

afb at macports.org afb at macports.org
Fri Apr 15 00:31:49 PDT 2011


Revision: 77865
          http://trac.macports.org/changeset/77865
Author:   afb at macports.org
Date:     2011-04-15 00:31:49 -0700 (Fri, 15 Apr 2011)
Log Message:
-----------
fix libmd support (for FreeBSD), add libcrypto support (for Linux) [#26813]

Modified Paths:
--------------
    trunk/base/src/pextlib1.0/md5cmd.c
    trunk/base/src/pextlib1.0/rmd160cmd.c
    trunk/base/src/pextlib1.0/sha1cmd.c
    trunk/base/src/pextlib1.0/sha256cmd.c

Modified: trunk/base/src/pextlib1.0/md5cmd.c
===================================================================
--- trunk/base/src/pextlib1.0/md5cmd.c	2011-04-15 07:29:48 UTC (rev 77864)
+++ trunk/base/src/pextlib1.0/md5cmd.c	2011-04-15 07:31:49 UTC (rev 77865)
@@ -58,11 +58,18 @@
 CHECKSUMEnd(MD5, MD5_CTX, MD5_DIGEST_LENGTH)
 CHECKSUMFile(MD5, MD5_CTX)
 
-#elif defined(HAVE_LIBMD)
+#elif defined(HAVE_LIBMD) && defined(HAVE_MD5_H)
 #include <sys/types.h>
 #include <md5.h>
+#elif defined(HAVE_LIBCRYPTO) && defined(HAVE_OPENSSL_MD5_H)
+#include <openssl/md5.h>
+
+#include "md_wrappers.h"
+CHECKSUMEnd(MD5_, MD5_CTX, MD5_DIGEST_LENGTH)
+CHECKSUMFile(MD5_, MD5_CTX)
+#define MD5File(x,y) MD5_File(x,y)
 #else
-#error CommonCrypto or libmd required
+#error CommonCrypto, libmd or libcrypto required
 #endif
 
 int MD5Cmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])

Modified: trunk/base/src/pextlib1.0/rmd160cmd.c
===================================================================
--- trunk/base/src/pextlib1.0/rmd160cmd.c	2011-04-15 07:29:48 UTC (rev 77864)
+++ trunk/base/src/pextlib1.0/rmd160cmd.c	2011-04-15 07:31:49 UTC (rev 77865)
@@ -35,30 +35,40 @@
 #endif
 
 #include <string.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
 
 #include <tcl.h>
 
 #include "rmd160cmd.h"
 
+#if defined(HAVE_LIBMD) && defined(HAVE_RIPEMD_H)
+#include <sys/types.h>
+#include <ripemd.h>
+#elif defined(HAVE_LIBCRYPTO) && defined(HAVE_OPENSSL_RIPEMD_H)
+#include <openssl/ripemd.h>
+
+#include "md_wrappers.h"
+CHECKSUMEnd(RIPEMD160_, RIPEMD160_CTX, RIPEMD160_DIGEST_LENGTH)
+CHECKSUMFile(RIPEMD160_, RIPEMD160_CTX)
+#else
 /*
  * let's use our own version of rmd160* libraries.
  */
-#include <stdio.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-
 #include <sys/types.h>
-
 #include "rmd160.h"
 #include "rmd160.c"
 #define RIPEMD160_DIGEST_LENGTH 20
+#define RIPEMD160_File(x,y) RMD160File(x,y)
+
 #include "md_wrappers.h"
 CHECKSUMEnd(RMD160, RMD160_CTX, RIPEMD160_DIGEST_LENGTH)
 CHECKSUMFile(RMD160, RMD160_CTX)
+#endif
 
-
 int RMD160Cmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
 {
 	char *file, *action;
@@ -83,7 +93,7 @@
 	}
 	file = Tcl_GetString(objv[2]);
 
-	if (!RMD160File(file, buf)) {
+	if (!RIPEMD160_File(file, buf)) {
 		tcl_result = Tcl_NewStringObj(error_message, sizeof(error_message) - 1);
 		Tcl_AppendObjToObj(tcl_result, Tcl_NewStringObj(file, -1));
 		Tcl_SetObjResult(interp, tcl_result);

Modified: trunk/base/src/pextlib1.0/sha1cmd.c
===================================================================
--- trunk/base/src/pextlib1.0/sha1cmd.c	2011-04-15 07:29:48 UTC (rev 77864)
+++ trunk/base/src/pextlib1.0/sha1cmd.c	2011-04-15 07:31:49 UTC (rev 77865)
@@ -54,13 +54,23 @@
 CHECKSUMEnd(SHA1_, SHA_CTX, SHA_DIGEST_LENGTH)
 CHECKSUMFile(SHA1_, SHA_CTX)
 
-#elif defined(HAVE_LIBMD)
+#elif defined(HAVE_LIBMD) && defined(HAVE_SHA_H)
 #include <sys/types.h>
 #include <sha.h>
-#define SHA_DIGEST_LENGTH (SHA_HASHBYTES)
+#ifndef SHA_DIGEST_LENGTH
+#define SHA_DIGEST_LENGTH 20
+#endif
+#ifndef HAVE_SHA1_FILE
 #define SHA1_File(x,y) SHAFile(x,y)
+#endif
+#elif defined(HAVE_LIBCRYPTO) && defined(HAVE_OPENSSL_SHA_H)
+#include <openssl/sha.h>
+
+#include "md_wrappers.h"
+CHECKSUMEnd(SHA1_, SHA_CTX, SHA_DIGEST_LENGTH)
+CHECKSUMFile(SHA1_, SHA_CTX)
 #else
-#error CommonCrypto or libmd required
+#error CommonCrypto, libmd or libcrypto required
 #endif
 
 int SHA1Cmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])

Modified: trunk/base/src/pextlib1.0/sha256cmd.c
===================================================================
--- trunk/base/src/pextlib1.0/sha256cmd.c	2011-04-15 07:29:48 UTC (rev 77864)
+++ trunk/base/src/pextlib1.0/sha256cmd.c	2011-04-15 07:31:49 UTC (rev 77865)
@@ -58,18 +58,34 @@
 #define SHA256_Final(m, c)              CC_SHA256_Final(m,c)
 #endif
 
+#include "md_wrappers.h"
+CHECKSUMEnd(SHA256_, SHA256_CTX, SHA256_DIGEST_LENGTH)
+CHECKSUMFile(SHA256_, SHA256_CTX)
+
+#elif defined(HAVE_LIBMD) && defined(HAVE_SHA256_H) && !defined(__FreeBSD__) /*dumps core*/
+#include <sys/types.h>
+#include <sha256.h>
+#ifndef SHA256_DIGEST_LENGTH
+#define SHA256_DIGEST_LENGTH 32
+#endif
+#elif defined(HAVE_LIBCRYPTO) && defined(HAVE_OPENSSL_SHA_H) && defined(HAVE_SHA256_UPDATE)
+#include <openssl/sha.h>
+
+#include "md_wrappers.h"
+CHECKSUMEnd(SHA256_, SHA256_CTX, SHA256_DIGEST_LENGTH)
+CHECKSUMFile(SHA256_, SHA256_CTX)
 #else
-/* We do not have CommonCrypto.
-* let's use our own version of sha256* libraries.
-*/
+/*
+ * let's use our own version of sha256* libraries.
+ */
 #include <sys/types.h>
 #include "sha2.h"
 #include "sha2.c"
-#endif
 
 #include "md_wrappers.h"
 CHECKSUMEnd(SHA256_, SHA256_CTX, SHA256_DIGEST_LENGTH)
 CHECKSUMFile(SHA256_, SHA256_CTX)
+#endif
 
 int SHA256Cmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])
 {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20110415/41312393/attachment.html>


More information about the macports-changes mailing list