@ -0,0 +1,148 @@ |
|||
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|||
# |
|||
# Filename: package/.../libdkim/enable-linux.patch |
|||
# Copyright (C) 2009 The OpenSDE Project |
|||
# |
|||
# More information can be found in the files COPYING and README. |
|||
# |
|||
# This patch file is dual-licensed. It is available under the license the |
|||
# patched project is licensed under, as long as it is an OpenSource license |
|||
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|||
# of the GNU General Public License as published by the Free Software |
|||
# Foundation; either version 2 of the License, or (at your option) any later |
|||
# version. |
|||
# --- SDE-COPYRIGHT-NOTE-END --- |
|||
|
|||
This patch modifies Alt-N's libdkim package to compile on Linux. This has only |
|||
been tested on Gentoo linux. |
|||
|
|||
Installation instructions: |
|||
% wget http://downloads.sourceforge.net/libdkim/libdkim-1.0.19.zip |
|||
% wget http://www.bltweb.net/qmail/libdkim-1.0.19-linux.patch |
|||
% unzip libdkim-1.0.19 |
|||
% cd libdkim/src |
|||
% patch -p2 < ../../libdkim-1.0.19-linux.patch |
|||
|
|||
|
|||
diff -Naur libdkim.orig/src/Makefile libdkim/src/Makefile
|
|||
--- ./Makefile 2009-03-24 08:38:48.000000000 -0500
|
|||
+++ ./Makefile 2009-03-24 08:39:55.000000000 -0500
|
|||
@@ -1,15 +1,10 @@
|
|||
# libdkim makefile for UNIX |
|||
# |
|||
|
|||
-#ifdef LINUX
|
|||
-CFLAGS = -c
|
|||
-LFLAGS =
|
|||
+DESTDIR ?= /
|
|||
+
|
|||
+CFLAGS += -fPIC
|
|||
LIBS = -lcrypto -lresolv |
|||
-#else
|
|||
-CFLAGS = -c
|
|||
-LFLAGS =
|
|||
-LIBS = -lcrypto
|
|||
-#endif
|
|||
|
|||
INCL = -I /usr/include/openssl/ |
|||
|
|||
@@ -19,23 +14,35 @@
|
|||
|
|||
HDRS = dkim.h dns.h dkimbase.h dkimsign.h dkimverify.h |
|||
|
|||
-all: libdkim.a libdkimtest
|
|||
+all: libdkim.so.1 libdkimtest
|
|||
|
|||
libdkim.a: $(OBJS) |
|||
rm -f libdkim.a |
|||
ar cr libdkim.a $(OBJS) |
|||
ranlib libdkim.a |
|||
|
|||
-libdkimtest : libdkim.a libdkimtest.o
|
|||
- g++ -olibdkimtest $(LFLAGS) \
|
|||
- -L . libdkimtest.o $(LIBS) -ldkim
|
|||
+libdkim.so.1: $(OBJS)
|
|||
+ $(CXX) -shared -Wl,-soname,$@.1 $(LDFLAGS) $(OBJS) -o $@ $(LIBS)
|
|||
+ ln -s $@ libdkim.so
|
|||
+
|
|||
+.cpp.o:
|
|||
+ $(CXX) $(CFLAGS) -c $<
|
|||
+
|
|||
+libdkimtest : libdkim.so.1 libdkimtest.o
|
|||
+ $(CXX) -o$@ $(LDFLAGS) \
|
|||
+ -L. libdkimtest.o $(LIBS) -ldkim
|
|||
|
|||
libdkimtest.o: libdkimtest.cpp $(HDRS) |
|||
|
|||
-.cpp.o:
|
|||
- g++ $(CFLAGS) -c $<
|
|||
|
|||
clean: |
|||
- rm *.o libdkim.lib libdkimtest
|
|||
+ rm -f *.o libdkim.{a,so,so.1} libdkimtest
|
|||
+
|
|||
+install: all
|
|||
+ install -D -m 0755 libdkim.so.1 $(DESTDIR)/usr/lib/libdkim.so.1
|
|||
+ ln -s libdkim.so.1 $(DESTDIR)/usr/lib/libdkim.so
|
|||
+ ln -s libdkim.so.1 $(DESTDIR)/usr/lib/libdkim.so.1.1
|
|||
+ install -D -m 0644 dkim.h $(DESTDIR)/usr/include/dkim.h
|
|||
+ install -D -m 0755 libdkimtest $(DESTDIR)/usr/bin/libdkimtest
|
|||
|
|||
|
|||
diff -Naur libdkim.orig/src/dkim.h libdkim/src/dkim.h
|
|||
--- ./dkim.h 2009-03-24 08:38:48.000000000 -0500
|
|||
+++ ./dkim.h 2009-03-24 08:39:20.000000000 -0500
|
|||
@@ -22,7 +22,6 @@
|
|||
#define DKIM_CALL WINAPI |
|||
#else |
|||
#define DKIM_CALL |
|||
-#define MAKELONG(a,b) ((long)(((unsigned)(a) & 0xffff) | (((unsigned)(b) & 0xffff) << 16)))
|
|||
#endif |
|||
|
|||
|
|||
@@ -162,6 +161,32 @@
|
|||
|
|||
char *DKIM_CALL DKIMGetErrorString( int ErrorCode ); |
|||
|
|||
+#ifndef _WIN32
|
|||
+/*
|
|||
+ * macros.h: Useful macros
|
|||
+ *
|
|||
+ * Author:
|
|||
+ * Dick Porter (dick@ximian.com)
|
|||
+ *
|
|||
+ * (C) 2002 Ximian, Inc.
|
|||
+ */
|
|||
+#ifndef _WAPI_MACROS_H_
|
|||
+#define _WAPI_MACROS_H_
|
|||
+
|
|||
+#include <sys/types.h>
|
|||
+
|
|||
+#define MAKEWORD(low, high) ((__uint16_t)(((__uint8_t)(low)) | \
|
|||
+ ((__uint16_t)((__uint8_t)(high))) << 8))
|
|||
+#define MAKELONG(low, high) ((__uint32_t)(((__uint16_t)(low)) | \
|
|||
+ ((__uint32_t)((__uint16_t)(high))) << 16))
|
|||
+#define LOWORD(i32) ((__uint16_t)((i32) & 0xFFFF))
|
|||
+#define HIWORD(i32) ((__uint16_t)(((__uint32_t)(i32) >> 16) & 0xFFFF))
|
|||
+#define LOBYTE(i16) ((__uint8_t)((i16) & 0xFF))
|
|||
+#define HIBYTE(i16) ((__uint8_t)(((__uint16_t)(i16) >> 8) & 0xFF))
|
|||
+
|
|||
+#endif /* _WAPI_MACROS_H_ */
|
|||
+#endif
|
|||
+
|
|||
#ifdef __cplusplus |
|||
} |
|||
#endif |
|||
diff -Naur libdkim.orig/src/dkimsign.cpp libdkim/src/dkimsign.cpp
|
|||
--- ./dkimsign.cpp 2009-03-24 08:38:48.000000000 -0500
|
|||
+++ ./dkimsign.cpp 2009-03-24 08:39:20.000000000 -0500
|
|||
@@ -25,8 +25,6 @@
|
|||
#else |
|||
#define _strnicmp strncasecmp |
|||
#define _stricmp strcasecmp |
|||
-#define LOWORD(l) ((unsigned)(l) & 0xffff)
|
|||
-#define HIWORD(l) ((unsigned)(l) >> 16)
|
|||
#endif |
|||
|
|||
#include <string.h> |
@ -0,0 +1,163 @@ |
|||
#! /bin/sh /usr/share/dpatch/dpatch-run |
|||
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|||
# |
|||
# Filename: package/.../libdkim/enable-thread-safety.patch |
|||
# Copyright (C) 2009 The OpenSDE Project |
|||
# |
|||
# More information can be found in the files COPYING and README. |
|||
# |
|||
# This patch file is dual-licensed. It is available under the license the |
|||
# patched project is licensed under, as long as it is an OpenSource license |
|||
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|||
# of the GNU General Public License as published by the Free Software |
|||
# Foundation; either version 2 of the License, or (at your option) any later |
|||
# version. |
|||
# --- SDE-COPYRIGHT-NOTE-END --- |
|||
|
|||
## 01_strtok_r.dpatch by Russell Coker <russell@coker.com.au> |
|||
## |
|||
## DP: Use strtok_r() instead of strtok(). |
|||
|
|||
@DPATCH@
|
|||
|
|||
diff -ru libdkim-1.0.19/src/dkimverify.cpp libdkim-1.0.19-new/src/dkimverify.cpp
|
|||
--- ./dkimverify.cpp 2008-05-12 20:08:06.000000000 +1000
|
|||
+++ ./dkimverify.cpp 2009-06-11 18:28:10.000000000 +1000
|
|||
@@ -855,6 +855,9 @@
|
|||
//////////////////////////////////////////////////////////////////////////////// |
|||
int CDKIMVerify::ParseDKIMSignature( const string& sHeader, SignatureInfo &sig ) |
|||
{ |
|||
+ // for strtok_r()
|
|||
+ char *saveptr;
|
|||
+
|
|||
// save header for later |
|||
sig.Header = sHeader; |
|||
|
|||
@@ -1032,7 +1035,7 @@
|
|||
{ |
|||
// make sure "dns" is in the list |
|||
bool HasDNS = false; |
|||
- char *s = strtok(values[9], ":");
|
|||
+ char *s = strtok_r(values[9], ":", &saveptr);
|
|||
while (s != NULL) |
|||
{ |
|||
if (strncmp(s, "dns", 3) == 0 && (s[3] == '\0' || s[3] == '/')) |
|||
@@ -1040,7 +1043,7 @@
|
|||
HasDNS = true; |
|||
break; |
|||
} |
|||
- s = strtok(NULL, ": \t");
|
|||
+ s = strtok_r(NULL, ": \t", &saveptr);
|
|||
} |
|||
if (!HasDNS) |
|||
return DKIM_BAD_SYNTAX; // todo: maybe create a new error code for unknown query method |
|||
@@ -1080,7 +1083,7 @@
|
|||
// parse the signed headers list |
|||
bool HasFrom = false, HasSubject = false; |
|||
RemoveSWSP(values[4]); // header names shouldn't have spaces in them so this should be ok... |
|||
- char *s = strtok(values[4], ":");
|
|||
+ char *s = strtok_r(values[4], ":", &saveptr);
|
|||
while (s != NULL) |
|||
{ |
|||
if (_stricmp(s, "From") == 0) |
|||
@@ -1090,7 +1093,7 @@
|
|||
|
|||
sig.SignedHeaders.push_back(s); |
|||
|
|||
- s = strtok(NULL, ":");
|
|||
+ s = strtok_r(NULL, ":", &saveptr);
|
|||
} |
|||
|
|||
if (!HasFrom) |
|||
@@ -1194,6 +1197,9 @@
|
|||
//////////////////////////////////////////////////////////////////////////////// |
|||
int SelectorInfo::Parse( char* Buffer ) |
|||
{ |
|||
+ // for strtok_r()
|
|||
+ char *saveptr;
|
|||
+
|
|||
static const char *tags[] = {"v","g","h","k","p","s","t","n",NULL}; |
|||
char *values[sizeof(tags)/sizeof(tags[0])] = {NULL}; |
|||
|
|||
@@ -1235,14 +1241,14 @@
|
|||
else |
|||
{ |
|||
// MUST include "sha1" or "sha256" |
|||
- char *s = strtok(values[2], ":");
|
|||
+ char *s = strtok_r(values[2], ":", &saveptr);
|
|||
while (s != NULL) |
|||
{ |
|||
if (strcmp(s, "sha1") == 0) |
|||
AllowSHA1 = true; |
|||
else if (strcmp(s, "sha256") == 0) |
|||
AllowSHA256 = true; |
|||
- s = strtok(NULL, ":");
|
|||
+ s = strtok_r(NULL, ":", &saveptr);
|
|||
} |
|||
if ( !(AllowSHA1 || AllowSHA256) ) |
|||
return DKIM_SELECTOR_INVALID; // todo: maybe create a new error code for unsupported hash algorithm |
|||
@@ -1261,7 +1267,7 @@
|
|||
{ |
|||
// make sure "*" or "email" is in the list |
|||
bool ServiceTypeMatch = false; |
|||
- char *s = strtok(values[5], ":");
|
|||
+ char *s = strtok_r(values[5], ":", &saveptr);
|
|||
while (s != NULL) |
|||
{ |
|||
if (strcmp(s, "*") == 0 || strcmp(s, "email") == 0) |
|||
@@ -1269,7 +1275,7 @@
|
|||
ServiceTypeMatch = true; |
|||
break; |
|||
} |
|||
- s = strtok(NULL, ":");
|
|||
+ s = strtok_r(NULL, ":", &saveptr);
|
|||
} |
|||
if (!ServiceTypeMatch) |
|||
return DKIM_SELECTOR_INVALID; |
|||
@@ -1278,7 +1284,7 @@
|
|||
// flags |
|||
if (values[6] != NULL) |
|||
{ |
|||
- char *s = strtok(values[6], ":");
|
|||
+ char *s = strtok_r(values[6], ":", &saveptr);
|
|||
while (s != NULL) |
|||
{ |
|||
if (strcmp(s, "y") == 0) |
|||
@@ -1289,7 +1295,7 @@
|
|||
{ |
|||
SameDomain = true; |
|||
} |
|||
- s = strtok(NULL, ":");
|
|||
+ s = strtok_r(NULL, ":", &saveptr);
|
|||
} |
|||
} |
|||
|
|||
@@ -1388,6 +1394,9 @@
|
|||
//////////////////////////////////////////////////////////////////////////////// |
|||
int CDKIMVerify::GetSSP( const string &sDomain, int &iSSP, bool &bTesting ) |
|||
{ |
|||
+ // for strtok_r()
|
|||
+ char *saveptr;
|
|||
+
|
|||
string sFQDN = "_ssp._domainkey."; |
|||
sFQDN += sDomain; |
|||
|
|||
@@ -1456,7 +1465,7 @@
|
|||
// flags |
|||
if (values[1] != NULL) |
|||
{ |
|||
- char *s = strtok(values[1], "|");
|
|||
+ char *s = strtok_r(values[1], "|", &saveptr);
|
|||
while (s != NULL) |
|||
{ |
|||
if (strcmp(s, "y") == 0) |
|||
@@ -1474,7 +1483,7 @@
|
|||
return DKIM_SUCCESS; |
|||
} |
|||
} |
|||
- s = strtok(NULL, "|");
|
|||
+ s = strtok_r(NULL, "|", &saveptr);
|
|||
} |
|||
} |
|||
} |
@ -0,0 +1,117 @@ |
|||
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|||
# |
|||
# Filename: package/.../libdkim/extra-options.patch |
|||
# Copyright (C) 2009 The OpenSDE Project |
|||
# |
|||
# More information can be found in the files COPYING and README. |
|||
# |
|||
# This patch file is dual-licensed. It is available under the license the |
|||
# patched project is licensed under, as long as it is an OpenSource license |
|||
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|||
# of the GNU General Public License as published by the Free Software |
|||
# Foundation; either version 2 of the License, or (at your option) any later |
|||
# version. |
|||
# --- SDE-COPYRIGHT-NOTE-END --- |
|||
|
|||
This patch was taken from |
|||
http://patchlog.com/security/qmail-and-dkim/ |
|||
|
|||
It adds usage text and a few extra options to the libdkimtest program that |
|||
comes with Alt-N's libdkim library. |
|||
|
|||
Installation instructions: |
|||
% wget http://downloads.sourceforge.net/libdkim/libdkim-1.0.19.zip |
|||
% wget http://www.bltweb.net/qmail/libdkim-1.0.19-extra-options.patch |
|||
% unzip libdkim-1.0.19 |
|||
% cd libdkim/src |
|||
% patch -p2 < ../../libdkim-1.0.19-extra-options.patch |
|||
|
|||
|
|||
diff -Naur libdkim.orig/src/libdkimtest.cpp libdkim/src/libdkimtest.cpp
|
|||
--- ./libdkimtest.cpp 2009-03-13 16:17:45.000000000 -0500
|
|||
+++ ./libdkimtest.cpp 2009-03-13 16:26:02.000000000 -0500
|
|||
@@ -55,8 +55,23 @@
|
|||
return 0; |
|||
} |
|||
|
|||
+void usage()
|
|||
+{
|
|||
|
|||
-
|
|||
+ printf( "usage: libdkimtest [-b<allman|ietf|both>] [-c<r|s|t|u>] [-d<domain>] [-l] [-h] [-i<you@yourdomain.com>] [-q] [-s] [-t] [-v] [-x<expire time>] [-z<hash>] <msgfile> <privkeyfile> <outfile>\n");
|
|||
+ printf( "-b<standard> allman , ietf or both\n");
|
|||
+ printf( "-c<canonicalization> r for relaxed [DEFAULT], s - simple, t relaxed/simple, u - simple/relaxed\n");
|
|||
+ printf( "-d<domain> the domain tag, if not provided it will be determined from the sender/from header\n");
|
|||
+ printf( "-l include body length tag\n");
|
|||
+ printf( "-h this help\n");
|
|||
+ printf( "-i<identity> the identity, if not provided it will not be included\n");
|
|||
+ printf( "-s sign the message\n");
|
|||
+ printf( "-t include a timestamp tag\n");
|
|||
+ printf( "-v verify the message\n");
|
|||
+ printf( "-x<expire_time> the expire time in seconds since epoch ( DEFAULT = current time + 604800)\n\t if set to - then it will not be included");
|
|||
+ printf( "-z<hash> 1 for sha1, 2 for sha256, 3 for both\n");
|
|||
+ printf( "-y<selector> the selector tag DEFAULT=MDaemon\n");
|
|||
+}
|
|||
int main(int argc, char* argv[]) |
|||
{ |
|||
int n; |
|||
@@ -77,7 +92,7 @@
|
|||
time(&t); |
|||
|
|||
opts.nCanon = DKIM_SIGN_RELAXED; |
|||
- opts.nIncludeBodyLengthTag = 1;
|
|||
+ opts.nIncludeBodyLengthTag = 0;
|
|||
opts.nIncludeQueryMethod = 0; |
|||
opts.nIncludeTimeStamp = 0; |
|||
opts.expireTime = t + 604800; // expires in 1 week |
|||
@@ -92,6 +107,11 @@
|
|||
int nArgParseState = 0; |
|||
bool bSign = true; |
|||
|
|||
+ if(argc<2){
|
|||
+ usage();
|
|||
+ exit(1);
|
|||
+ }
|
|||
+
|
|||
for( n = 1; n < argc; n++ ) |
|||
{ |
|||
if( argv[n][0] == '-' && strlen(argv[n]) > 1 ) |
|||
@@ -121,14 +141,16 @@
|
|||
} |
|||
break; |
|||
|
|||
-
|
|||
+ case 'd':
|
|||
+ strncpy(opts.szDomain,(const char*)(argv[n]+2),sizeof(opts.szDomain)-1);
|
|||
+ break;
|
|||
case 'l': // body length tag |
|||
opts.nIncludeBodyLengthTag = 1; |
|||
break; |
|||
|
|||
|
|||
case 'h': |
|||
- printf( "usage: \n" );
|
|||
+ usage();
|
|||
return 0; |
|||
|
|||
case 'i': // identity |
|||
@@ -138,7 +160,7 @@
|
|||
} |
|||
else |
|||
{ |
|||
- strcpy( opts.szIdentity, argv[n] + 2 );
|
|||
+ strncpy( opts.szIdentity, argv[n] + 2,sizeof(opts.szIdentity)-1 );
|
|||
} |
|||
break; |
|||
|
|||
@@ -169,6 +191,9 @@
|
|||
} |
|||
break; |
|||
|
|||
+ case 'y':
|
|||
+ strncpy( opts.szSelector, argv[n]+2, sizeof(opts.szSelector)-1);
|
|||
+ break;
|
|||
|
|||
case 'z': // sign w/ sha1, sha256 or both |
|||
opts.nHash = atoi( &argv[n][2] ); |
@ -0,0 +1,320 @@ |
|||
#! /bin/sh /usr/share/dpatch/dpatch-run |
|||
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|||
# |
|||
# Filename: package/.../libdkim/fix-warnings.patch |
|||
# Copyright (C) 2009 The OpenSDE Project |
|||
# |
|||
# More information can be found in the files COPYING and README. |
|||
# |
|||
# This patch file is dual-licensed. It is available under the license the |
|||
# patched project is licensed under, as long as it is an OpenSource license |
|||
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|||
# of the GNU General Public License as published by the Free Software |
|||
# Foundation; either version 2 of the License, or (at your option) any later |
|||
# version. |
|||
# --- SDE-COPYRIGHT-NOTE-END --- |
|||
|
|||
## 02_fix_warnings.dpatch by Russell Coker <russell@coker.com.au> |
|||
## |
|||
## DP: Get rid of warnings through the use of const and more correct types |
|||
|
|||
@DPATCH@
|
|||
|
|||
diff -ru libdkim-1.0.19.orig/src/dkim.cpp libdkim-1.0.19/src/dkim.cpp
|
|||
--- ./dkim.cpp 2008-05-12 20:07:32.000000000 +1000
|
|||
+++ ./dkim.cpp 2009-04-15 19:38:08.000000000 +1000
|
|||
@@ -172,7 +172,7 @@
|
|||
} |
|||
|
|||
|
|||
-int DKIM_CALL DKIMVerifyProcess( DKIMContext* pVerifyContext, char* szBuffer, int nBufLength )
|
|||
+int DKIM_CALL DKIMVerifyProcess( DKIMContext* pVerifyContext, const char* const szBuffer, int nBufLength )
|
|||
{ |
|||
CDKIMVerify* pVerify = (CDKIMVerify*)ValidateContext( pVerifyContext, false ); |
|||
|
|||
@@ -226,13 +226,13 @@
|
|||
} |
|||
|
|||
|
|||
-char* DKIM_CALL DKIMVersion()
|
|||
+const char* DKIM_CALL DKIMVersion()
|
|||
{ |
|||
return VERSION_STRING; |
|||
} |
|||
|
|||
|
|||
-static char* DKIMErrorStrings[-1-DKIM_MAX_ERROR] = {
|
|||
+static const char* DKIMErrorStrings[-1-DKIM_MAX_ERROR] = {
|
|||
"DKIM_FAIL", |
|||
"DKIM_BAD_SYNTAX", |
|||
"DKIM_SIGNATURE_BAD", |
|||
@@ -254,7 +254,7 @@
|
|||
}; |
|||
|
|||
|
|||
-char* DKIM_CALL DKIMGetErrorString( int ErrorCode )
|
|||
+const char* DKIM_CALL DKIMGetErrorString( int ErrorCode )
|
|||
{ |
|||
if (ErrorCode >= 0 || ErrorCode <= DKIM_MAX_ERROR) |
|||
return "Unknown"; |
|||
diff -ru libdkim-1.0.19.orig/src/dkim.h libdkim-1.0.19/src/dkim.h
|
|||
--- ./dkim.h 2009-04-15 19:37:48.000000000 +1000
|
|||
+++ ./dkim.h 2009-04-15 19:38:08.000000000 +1000
|
|||
@@ -155,14 +155,14 @@
|
|||
void DKIM_CALL DKIMSignFree( DKIMContext* pSignContext ); |
|||
|
|||
int DKIM_CALL DKIMVerifyInit( DKIMContext* pVerifyContext, DKIMVerifyOptions* pOptions ); |
|||
-int DKIM_CALL DKIMVerifyProcess( DKIMContext* pVerifyContext, char* szBuffer, int nBufLength );
|
|||
+int DKIM_CALL DKIMVerifyProcess( DKIMContext* pVerifyContext, const char* szBuffer, int nBufLength );
|
|||
int DKIM_CALL DKIMVerifyResults( DKIMContext* pVerifyContext ); |
|||
int DKIM_CALL DKIMVerifyGetDetails( DKIMContext* pVerifyContext, int* nSigCount, DKIMVerifyDetails** pDetails, char* szPractices ); |
|||
void DKIM_CALL DKIMVerifyFree( DKIMContext* pVerifyContext ); |
|||
|
|||
-char *DKIM_CALL DKIMVersion();
|
|||
+const char *DKIM_CALL DKIMVersion();
|
|||
|
|||
-char *DKIM_CALL DKIMGetErrorString( int ErrorCode );
|
|||
+const char *DKIM_CALL DKIMGetErrorString( int ErrorCode );
|
|||
|
|||
#ifdef __cplusplus |
|||
} |
|||
diff -ru libdkim-1.0.19.orig/src/dkimbase.cpp libdkim-1.0.19/src/dkimbase.cpp
|
|||
--- ./dkimbase.cpp 2008-05-12 20:07:36.000000000 +1000
|
|||
+++ ./dkimbase.cpp 2009-04-15 19:49:32.000000000 +1000
|
|||
@@ -118,10 +118,10 @@
|
|||
// Process - split buffers into lines without any CRs or LFs at the end. |
|||
// |
|||
//////////////////////////////////////////////////////////////////////////////// |
|||
-int CDKIMBase::Process( char* szBuffer, int nBufLength, bool bEOF )
|
|||
+int CDKIMBase::Process( const char* szBuffer, int nBufLength, bool bEOF )
|
|||
{ |
|||
- char* p = szBuffer;
|
|||
- char* e = szBuffer + nBufLength;
|
|||
+ const char* p = szBuffer;
|
|||
+ const char* e = szBuffer + nBufLength;
|
|||
|
|||
while( p < e ) |
|||
{ |
|||
@@ -208,7 +208,8 @@
|
|||
{ |
|||
m_InHeaders = false; |
|||
ProcessHeaders(); |
|||
- ProcessBody("", 0, true);
|
|||
+ /* type conversion should be safe as length is zero */
|
|||
+ ProcessBody((char *)"", 0, true);
|
|||
} |
|||
|
|||
return DKIM_SUCCESS; |
|||
@@ -338,9 +339,9 @@
|
|||
|
|||
CompressSWSP(sTemp); |
|||
|
|||
- unsigned cpos = sTemp.find(':');
|
|||
+ string::size_type cpos = sTemp.find(':');
|
|||
|
|||
- if (cpos == -1)
|
|||
+ if (cpos == string::npos)
|
|||
{ |
|||
// no colon?! |
|||
} |
|||
diff -ru libdkim-1.0.19.orig/src/dkimbase.h libdkim-1.0.19/src/dkimbase.h
|
|||
--- ./dkimbase.h 2008-05-12 20:07:24.000000000 +1000
|
|||
+++ ./dkimbase.h 2009-04-15 19:49:32.000000000 +1000
|
|||
@@ -41,7 +41,7 @@
|
|||
|
|||
int Init(void); |
|||
|
|||
- int Process( char* szBuffer, int nBufLength, bool bEOF );
|
|||
+ int Process( const char* szBuffer, int nBufLength, bool bEOF );
|
|||
int ProcessFinal(void); |
|||
|
|||
int Alloc( char*& szBuffer, int nRequiredSize ); |
|||
diff -ru libdkim-1.0.19.orig/src/dkimsign.cpp libdkim-1.0.19/src/dkimsign.cpp
|
|||
--- ./dkimsign.cpp 2008-05-12 20:07:46.000000000 +1000
|
|||
+++ ./dkimsign.cpp 2009-04-15 19:49:32.000000000 +1000
|
|||
@@ -144,7 +144,7 @@
|
|||
|
|||
fwrite( szBuffer, 1, nBufLength, fpdebug ); |
|||
|
|||
- /** END DEBUG CODE **/
|
|||
+ ** END DEBUG CODE **/
|
|||
|
|||
if( bAllmanOnly ) |
|||
{ |
|||
@@ -555,7 +555,7 @@
|
|||
// if bFold, fold at cbrk char |
|||
// |
|||
//////////////////////////////////////////////////////////////////////////////// |
|||
-void CDKIMSign::AddTagToSig( char* Tag, const string &sValue, char cbrk, bool bFold )
|
|||
+void CDKIMSign::AddTagToSig( const char* const Tag, const string &sValue, char cbrk, bool bFold )
|
|||
{ |
|||
int nTagLen = strlen(Tag); |
|||
|
|||
@@ -583,10 +583,10 @@
|
|||
// AddTagToSig - add tag and numeric value to signature folding if necessary |
|||
// |
|||
//////////////////////////////////////////////////////////////////////////////// |
|||
-void CDKIMSign::AddTagToSig( char* Tag, unsigned long nValue )
|
|||
+void CDKIMSign::AddTagToSig( const char* const Tag, unsigned long nValue )
|
|||
{ |
|||
char szValue[64]; |
|||
- sprintf( szValue, "%u", nValue );
|
|||
+ sprintf( szValue, "%lu", nValue );
|
|||
AddTagToSig( Tag, szValue, 0, false ); |
|||
} |
|||
|
|||
@@ -686,7 +686,7 @@
|
|||
// GetSig - compute hash and return signature header in szSignature |
|||
// |
|||
//////////////////////////////////////////////////////////////////////////////// |
|||
-int CDKIMSign::GetSig( char* szPrivKey, char* szSignature, int nSigLength )
|
|||
+int CDKIMSign::GetSig( char* szPrivKey, char* szSignature, unsigned nSigLength )
|
|||
{ |
|||
if( szPrivKey == NULL ) |
|||
{ |
|||
@@ -794,7 +794,6 @@
|
|||
int size; |
|||
int len; |
|||
char* buf; |
|||
- int pos = 0;
|
|||
|
|||
// construct the DKIM-Signature: header and add to hash |
|||
InitSig(); |
|||
@@ -879,7 +878,7 @@
|
|||
} |
|||
BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL); |
|||
BIO_push(b64, bio); |
|||
- if (BIO_write(b64, Hash, nHashLen) < nHashLen)
|
|||
+ if (BIO_write(b64, Hash, nHashLen) < (int)nHashLen)
|
|||
{ |
|||
BIO_free_all(b64); |
|||
return DKIM_OUT_OF_MEMORY; |
|||
@@ -993,7 +992,7 @@
|
|||
} |
|||
BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL); |
|||
BIO_push(b64, bio); |
|||
- if (BIO_write(b64, sig, siglen) < siglen)
|
|||
+ if (BIO_write(b64, sig, siglen) < (int)siglen)
|
|||
{ |
|||
OPENSSL_free(sig); |
|||
BIO_free_all(b64); |
|||
diff -ru libdkim-1.0.19.orig/src/dkimsign.h libdkim-1.0.19/src/dkimsign.h
|
|||
--- ./dkimsign.h 2008-05-12 20:07:58.000000000 +1000
|
|||
+++ ./dkimsign.h 2009-04-15 19:49:32.000000000 +1000
|
|||
@@ -32,7 +32,7 @@
|
|||
|
|||
int Init( DKIMSignOptions* pOptions ); |
|||
|
|||
- int GetSig( char* szPrivKey, char* szSignature, int nSigLength );
|
|||
+ int GetSig( char* szPrivKey, char* szSignature, unsigned nSigLength );
|
|||
int GetSig2( char* szPrivKey, char** pszSignature ); |
|||
|
|||
virtual int ProcessHeaders(void); |
|||
@@ -50,8 +50,8 @@
|
|||
bool ParseFromAddress( void ); |
|||
|
|||
void InitSig(void); |
|||
- void AddTagToSig( char* Tag, const string &sValue, char cbrk, bool bFold );
|
|||
- void AddTagToSig( char* Tag, unsigned long nValue );
|
|||
+ void AddTagToSig( const char* const Tag, const string &sValue, char cbrk, bool bFold );
|
|||
+ void AddTagToSig( const char* const Tag, unsigned long nValue );
|
|||
void AddInterTagSpace( int nSizeOfNextTag ); |
|||
void AddFoldedValueToSig( const string &sValue, char cbrk ); |
|||
|
|||
diff -ru libdkim-1.0.19.orig/src/dkimverify.cpp libdkim-1.0.19/src/dkimverify.cpp
|
|||
--- ./dkimverify.cpp 2009-04-15 19:37:48.000000000 +1000
|
|||
+++ ./dkimverify.cpp 2009-04-15 19:49:32.000000000 +1000
|
|||
@@ -440,7 +440,7 @@
|
|||
{ |
|||
ProcessFinal(); |
|||
|
|||
- int SuccessCount=0;
|
|||
+ unsigned int SuccessCount=0;
|
|||
int TestingFailures=0; |
|||
int RealFailures=0; |
|||
|
|||
@@ -646,7 +646,7 @@
|
|||
/** END DEBUG CODE **/ |
|||
#endif |
|||
|
|||
- if (IsBody && BodyLength != -1)
|
|||
+ if (IsBody && BodyLength != (unsigned)-1)
|
|||
{ |
|||
VerifiedBodyCount += nBufLength; |
|||
if (VerifiedBodyCount > BodyLength) |
|||
@@ -1019,7 +1019,7 @@
|
|||
// body count |
|||
if (values[8] == NULL || !m_HonorBodyLengthTag) |
|||
{ |
|||
- sig.BodyLength = -1;
|
|||
+ sig.BodyLength = (unsigned)-1;
|
|||
} |
|||
else |
|||
{ |
|||
@@ -1057,17 +1057,17 @@
|
|||
// expiration time |
|||
if (values[11] == NULL) |
|||
{ |
|||
- sig.ExpireTime = -1;
|
|||
+ sig.ExpireTime = (unsigned)-1;
|
|||
} |
|||
else |
|||
{ |
|||
if (!ParseUnsigned(values[11], &sig.ExpireTime)) |
|||
return DKIM_BAD_SYNTAX; |
|||
|
|||
- if (sig.ExpireTime != -1)
|
|||
+ if (sig.ExpireTime != (unsigned)-1)
|
|||
{ |
|||
// the value of x= MUST be greater than the value of t= if both are present |
|||
- if (SignedTime != -1 && sig.ExpireTime <= SignedTime)
|
|||
+ if (SignedTime != (unsigned)-1 && sig.ExpireTime <= SignedTime)
|
|||
return DKIM_BAD_SYNTAX; |
|||
|
|||
// todo: if possible, use the received date/time instead of the current time |
|||
@@ -1169,7 +1169,7 @@
|
|||
} |
|||
|
|||
|
|||
-SelectorInfo::SelectorInfo(const string &sSelector, const string &sDomain) : Selector(sSelector), Domain(sDomain)
|
|||
+SelectorInfo::SelectorInfo(const string &sSelector, const string &sDomain) : Domain(sDomain), Selector(sSelector)
|
|||
{ |
|||
AllowSHA1 = true; |
|||
AllowSHA256 = true; |
|||
@@ -1207,7 +1207,7 @@
|
|||
return DKIM_SELECTOR_INVALID; // todo: maybe create a new error code for unsupported selector version |
|||
|
|||
// make sure v= is the first tag in the response // todo: maybe don't enforce this, it seems unnecessary |
|||
- for (int j=1; j<sizeof(values)/sizeof(values[0]); j++)
|
|||
+ for (unsigned j=1; j<sizeof(values)/sizeof(values[0]); j++)
|
|||
{ |
|||
if (values[j] != NULL && values[j] < values[0]) |
|||
{ |
|||
@@ -1411,8 +1411,8 @@
|
|||
return DKIM_POLICY_DNS_PERM_FAILURE; |
|||
} |
|||
|
|||
- unsigned pos = sDomain.find('.');
|
|||
- if (pos == -1 || sDomain.find('.', pos+1) == -1)
|
|||
+ string::size_type pos = sDomain.find('.');
|
|||
+ if (pos == string::npos || sDomain.find('.', pos+1) == string::npos)
|
|||
{ |
|||
// SSP not found but the domain exists, it's non-suspicious |
|||
iSSP = DKIM_SSP_UNKNOWN; |
|||
diff -ru libdkim-1.0.19.orig/src/libdkimtest.cpp libdkim-1.0.19/src/libdkimtest.cpp
|
|||
--- ./libdkimtest.cpp 2008-05-12 20:08:54.000000000 +1000
|
|||
+++ ./libdkimtest.cpp 2009-04-15 19:38:08.000000000 +1000
|
|||
@@ -60,9 +60,9 @@
|
|||
int main(int argc, char* argv[]) |
|||
{ |
|||
int n; |
|||
- char* PrivKeyFile = "test.pem";
|
|||
- char* MsgFile = "test.msg";
|
|||
- char* OutFile = "signed.msg";
|
|||
+ const char* PrivKeyFile = "test.pem";
|
|||
+ const char* MsgFile = "test.msg";
|
|||
+ const char* OutFile = "signed.msg";
|
|||
int nPrivKeyLen; |
|||
char PrivKey[2048]; |
|||
char Buffer[1024]; |
@ -0,0 +1,22 @@ |
|||
|
|||
[TIMESTAMP] 1255607798 Thu Oct 15 14:56:38 2009 |
|||
[BUILDTIME] 0 (5) |
|||
[SIZE] 0.11 MB, 10 files |
|||
|
|||
[DEP] bash |
|||
[DEP] binutils |
|||
[DEP] coreutils |
|||
[DEP] diffutils |
|||
[DEP] fhs |
|||
[DEP] findutils |
|||
[DEP] gawk |
|||
[DEP] gcc |
|||
[DEP] glibc |
|||
[DEP] grep |
|||
[DEP] make |
|||
[DEP] openssl |
|||
[DEP] patch |
|||
[DEP] runit |
|||
[DEP] sed |
|||
[DEP] sysfiles |
|||
[DEP] unzip |
@ -0,0 +1,18 @@ |
|||
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|||
# |
|||
# Filename: package/.../libdkim/libdkim.conf |
|||
# Copyright (C) 2009 The OpenSDE Project |
|||
# |
|||
# More information can be found in the files COPYING and README. |
|||
# |
|||
# This program is free software; you can redistribute it and/or modify |
|||
# it under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; version 2 of the License. A copy of the |
|||
# GNU General Public License can be found in the file COPYING. |
|||
# --- SDE-COPYRIGHT-NOTE-END --- |
|||
|
|||
srcdir=libdkim/src |
|||
|
|||
runconf=0 |
|||
|
@ -0,0 +1,33 @@ |
|||
[COPY] --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|||
[COPY] This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|||
[COPY] |
|||
[COPY] Filename: package/.../libdkim/libdkim.desc |
|||
[COPY] Copyright (C) 2009 The OpenSDE Project |
|||
[COPY] |
|||
[COPY] More information can be found in the files COPYING and README. |
|||
[COPY] |
|||
[COPY] This program is free software; you can redistribute it and/or modify |
|||
[COPY] it under the terms of the GNU General Public License as published by |
|||
[COPY] the Free Software Foundation; version 2 of the License. A copy of the |
|||
[COPY] GNU General Public License can be found in the file COPYING. |
|||
[COPY] --- SDE-COPYRIGHT-NOTE-END --- |
|||
|
|||
[I] A DKIM implementation in C++ |
|||
|
|||
[T] A C++ library which allows incorporating DKIM into an existing MTA |
|||
[T] or other application. It provides full support for signing, verifying, |
|||
[T] and SSP. It is compliant with RFC 4871. |
|||
|
|||
[U] http://libdkim.sourceforge.net |
|||
|
|||
[A] Alt-N Technologies |
|||
[M] Nagy Karoly Gabriel <nagy.karoly@opensde.org> |
|||
|
|||
[C] extra/library |
|||
|
|||
[L] APL |
|||
[S] Beta |
|||
[V] 1.0.19 |
|||
[P] X -----5---9 800.000 |
|||
|
|||
[D] 2617769788 libdkim-1.0.19.zip http://dl.sourceforge.net/sourceforge/libdkim/ |