---- a/src/dkimverify.cpp
-+++ b/src/dkimverify.cpp
+--- src/dkimverify.cpp
++++ src/dkimverify.cpp
@@ -211,14 +211,14 @@
unsigned DecodeBase64(char *ptr)\r
{\r
--- /dev/null
+diff -Naur libdkim.orig/src/libdkimtest.cpp libdkim/src/libdkimtest.cpp
+--- src/libdkimtest.cpp 2009-03-13 16:17:45.000000000 -0500
++++ src/libdkimtest.cpp 2009-03-13 16:26:02.000000000 -0500
+@@ -55,8 +55,23 @@
+ return 0;\r
+ }\r
+ \r
++void usage()\r
++{\r
+ \r
+-\r
++ 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");\r
++ printf( "-b<standard> 1=allman, 2=ietf or 3=both\n");\r
++ printf( "-c<canonicalization> r=relaxed [DEFAULT], s=simple, t=relaxed/simple, u=simple/relaxed\n");\r
++ printf( "-d<domain> the domain tag, if not provided it will be determined from the sender/from header\n");\r
++ printf( "-l include body length tag\n");\r
++ printf( "-h this help\n");\r
++ printf( "-i<identity> the identity, if not provided it will not be included\n");\r
++ printf( "-s sign the message\n");\r
++ printf( "-t include a timestamp tag\n");\r
++ printf( "-v verify the message\n");\r
++ printf( "-x<expire_time> the expire time in seconds since epoch ( DEFAULT = current time + 604800)\n\t\t if set to - then it will not be included\n");\r
++ printf( "-z<hash> 1=sha1, 2=sha256, 3=both\n");\r
++ printf( "-y<selector> selector tag DEFAULT=default\n");\r
++}\r
+ int main(int argc, char* argv[])\r
+ {\r
+ int n;\r
+@@ -77,7 +92,7 @@
+ time(&t);\r
+ \r
+ opts.nCanon = DKIM_SIGN_RELAXED;\r
+- opts.nIncludeBodyLengthTag = 1;\r
++ opts.nIncludeBodyLengthTag = 0;\r
+ opts.nIncludeQueryMethod = 0;\r
+ opts.nIncludeTimeStamp = 0;\r
+ opts.expireTime = t + 604800; // expires in 1 week\r
+@@ -92,6 +107,11 @@
+ int nArgParseState = 0;\r
+ bool bSign = true;\r
+ \r
++ if(argc<2){\r
++ usage();\r
++ exit(1);\r
++ }\r
++\r
+ for( n = 1; n < argc; n++ )\r
+ {\r
+ if( argv[n][0] == '-' && strlen(argv[n]) > 1 )\r
+@@ -121,14 +141,16 @@
+ }\r
+ break;\r
+ \r
+-\r
++ case 'd': \r
++ strncpy(opts.szDomain,(const char*)(argv[n]+2),sizeof(opts.szDomain)-1);\r
++ break;\r
+ case 'l': // body length tag\r
+ opts.nIncludeBodyLengthTag = 1;\r
+ break;\r
+ \r
+ \r
+ case 'h':\r
+- printf( "usage: \n" );\r
++ usage(); \r
+ return 0;\r
+ \r
+ case 'i': // identity \r
+@@ -138,7 +160,7 @@
+ }\r
+ else\r
+ {\r
+- strcpy( opts.szIdentity, argv[n] + 2 );\r
++ strncpy( opts.szIdentity, argv[n] + 2,sizeof(opts.szIdentity)-1 );\r
+ }\r
+ break;\r
+ \r
+@@ -169,6 +191,9 @@
+ }\r
+ break;\r
+ \r
++ case 'y':\r
++ strncpy( opts.szSelector, argv[n]+2, sizeof(opts.szSelector)-1);\r
++ break;\r
+ \r
+ case 'z': // sign w/ sha1, sha256 or both \r
+ opts.nHash = atoi( &argv[n][2] );\r
@DPATCH@
-diff -ru libdkim-1.0.19.orig/src/dkim.cpp libdkim-1.0.19/src/dkim.cpp
---- libdkim-1.0.19.orig/src/dkim.cpp 2008-05-12 20:07:32.000000000 +1000
-+++ libdkim-1.0.19/src/dkim.cpp 2009-04-15 19:38:08.000000000 +1000
+diff -ru src/dkim.cpp src/dkim.cpp
+--- src/dkim.cpp 2008-05-12 20:07:32.000000000 +1000
++++ src/dkim.cpp 2009-04-15 19:38:08.000000000 +1000
@@ -172,7 +172,7 @@
}\r
\r
{\r
if (ErrorCode >= 0 || ErrorCode <= DKIM_MAX_ERROR)\r
return "Unknown";\r
-diff -ru libdkim-1.0.19.orig/src/dkim.h libdkim-1.0.19/src/dkim.h
---- libdkim-1.0.19.orig/src/dkim.h 2009-04-15 19:37:48.000000000 +1000
-+++ libdkim-1.0.19/src/dkim.h 2009-04-15 19:38:08.000000000 +1000
+diff -ru src/dkim.h src/dkim.h
+--- src/dkim.h 2009-04-15 19:37:48.000000000 +1000
++++ src/dkim.h 2009-04-15 19:38:08.000000000 +1000
@@ -155,14 +155,14 @@
void DKIM_CALL DKIMSignFree( DKIMContext* pSignContext );\r
\r
\r
#ifdef __cplusplus\r
}\r
-diff -ru libdkim-1.0.19.orig/src/dkimbase.cpp libdkim-1.0.19/src/dkimbase.cpp
---- libdkim-1.0.19.orig/src/dkimbase.cpp 2008-05-12 20:07:36.000000000 +1000
-+++ libdkim-1.0.19/src/dkimbase.cpp 2009-04-15 19:49:32.000000000 +1000
+diff -ru src/dkimbase.cpp src/dkimbase.cpp
+--- src/dkimbase.cpp 2008-05-12 20:07:36.000000000 +1000
++++ src/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.\r
//\r
{\r
// no colon?!\r
}\r
-diff -ru libdkim-1.0.19.orig/src/dkimbase.h libdkim-1.0.19/src/dkimbase.h
---- libdkim-1.0.19.orig/src/dkimbase.h 2008-05-12 20:07:24.000000000 +1000
-+++ libdkim-1.0.19/src/dkimbase.h 2009-04-15 19:49:32.000000000 +1000
+diff -ru src/dkimbase.h src/dkimbase.h
+--- src/dkimbase.h 2008-05-12 20:07:24.000000000 +1000
++++ src/dkimbase.h 2009-04-15 19:49:32.000000000 +1000
@@ -41,7 +41,7 @@
\r
int Init(void);\r
int ProcessFinal(void);\r
\r
int Alloc( char*& szBuffer, int nRequiredSize );\r
-diff -ru libdkim-1.0.19.orig/src/dkimsign.cpp libdkim-1.0.19/src/dkimsign.cpp
---- libdkim-1.0.19.orig/src/dkimsign.cpp 2008-05-12 20:07:46.000000000 +1000
-+++ libdkim-1.0.19/src/dkimsign.cpp 2009-04-15 19:49:32.000000000 +1000
+diff -ru src/dkimsign.cpp src/dkimsign.cpp
+--- src/dkimsign.cpp 2008-05-12 20:07:46.000000000 +1000
++++ src/dkimsign.cpp 2009-04-15 19:49:32.000000000 +1000
@@ -144,7 +144,7 @@
\r
fwrite( szBuffer, 1, nBufLength, fpdebug );\r
{\r
OPENSSL_free(sig);\r
BIO_free_all(b64);\r
-diff -ru libdkim-1.0.19.orig/src/dkimsign.h libdkim-1.0.19/src/dkimsign.h
---- libdkim-1.0.19.orig/src/dkimsign.h 2008-05-12 20:07:58.000000000 +1000
-+++ libdkim-1.0.19/src/dkimsign.h 2009-04-15 19:49:32.000000000 +1000
+diff -ru src/dkimsign.h src/dkimsign.h
+--- src/dkimsign.h 2008-05-12 20:07:58.000000000 +1000
++++ src/dkimsign.h 2009-04-15 19:49:32.000000000 +1000
@@ -32,7 +32,7 @@
\r
int Init( DKIMSignOptions* pOptions );\r
void AddInterTagSpace( int nSizeOfNextTag );\r
void AddFoldedValueToSig( const string &sValue, char cbrk );\r
\r
-diff -ru libdkim-1.0.19.orig/src/dkimverify.cpp libdkim-1.0.19/src/dkimverify.cpp
---- libdkim-1.0.19.orig/src/dkimverify.cpp 2009-04-15 19:37:48.000000000 +1000
-+++ libdkim-1.0.19/src/dkimverify.cpp 2009-04-15 19:49:32.000000000 +1000
+diff -ru src/dkimverify.cpp src/dkimverify.cpp
+--- src/dkimverify.cpp 2009-04-15 19:37:48.000000000 +1000
++++ src/dkimverify.cpp 2009-04-15 19:49:32.000000000 +1000
@@ -440,7 +440,7 @@
{\r
ProcessFinal();\r
{\r
if (values[j] != NULL && values[j] < values[0])\r
{\r
-diff -ru libdkim-1.0.19.orig/src/libdkimtest.cpp libdkim-1.0.19/src/libdkimtest.cpp
---- libdkim-1.0.19.orig/src/libdkimtest.cpp 2008-05-12 20:08:54.000000000 +1000
-+++ libdkim-1.0.19/src/libdkimtest.cpp 2009-04-15 19:38:08.000000000 +1000
+diff -ru src/libdkimtest.cpp src/libdkimtest.cpp
+--- src/libdkimtest.cpp 2008-05-12 20:08:54.000000000 +1000
++++ src/libdkimtest.cpp 2009-04-15 19:38:08.000000000 +1000
@@ -60,9 +60,9 @@
int main(int argc, char* argv[])\r
{\r
@DPATCH@
diff -ru libdkim-1.0.19/src/dkimverify.cpp libdkim-1.0.19-new/src/dkimverify.cpp
---- libdkim-1.0.19/src/dkimverify.cpp 2008-05-12 20:08:06.000000000 +1000
-+++ libdkim-1.0.19-new/src/dkimverify.cpp 2009-06-11 18:28:10.000000000 +1000
+--- src/dkimverify.cpp 2008-05-12 20:08:06.000000000 +1000
++++ src/dkimverify.cpp 2009-06-11 18:28:10.000000000 +1000
@@ -855,6 +855,9 @@
////////////////////////////////////////////////////////////////////////////////\r
int CDKIMVerify::ParseDKIMSignature( const string& sHeader, SignatureInfo &sig )\r
--- /dev/null
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit autotools toolchain-funcs vcs-clean
+
+DESCRIPTION="DomainKeys Identified Mail library from Alt-N Inc"
+HOMEPAGE="http://libdkim.sourceforge.net"
+SRC_URI="mirror://sourceforge/${PN}/${P}.zip"
+
+LICENSE="Apache-2.0 yahoo-patent-license-1.2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="libressl static-libs"
+
+RDEPEND="
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ !mail-filter/libdkim-exim
+"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+"
+
+S="${WORKDIR}/${PN}/src"
+
+src_prepare() {
+ default
+
+ ecvs_clean
+ cp "${FILESDIR}"/debianize/* "${S}" || die
+ eapply "${FILESDIR}"/patches/*.patch
+ eapply "${FILESDIR}"/libdkim-extra-options-r1.patch
+ eapply "${FILESDIR}"/${P}-gcc6.patch
+
+ # Bug 476772
+ if ! use static-libs; then
+ sed -i \
+ -e '/^TARGETS/s/libdkim.a//' \
+ -e '/install -m 644 libdkim.a/d' \
+ Makefile.in || die 'sed on Makefile.in failed'
+ fi
+
+ # Bug 476770
+ tc-export AR
+
+ eautoreconf
+}
+
+src_install() {
+ default
+ dodoc ../README
+}