[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