]> Pileus Git - ~andy/sunrise/blobdiff - mail-filter/libdkim/files/libdkim-extra-options.patch
mail-filter/libdkim: New Ebuild for bug 262919 thanks to hwoarang, Tommy[D]
[~andy/sunrise] / mail-filter / libdkim / files / libdkim-extra-options.patch
diff --git a/mail-filter/libdkim/files/libdkim-extra-options.patch b/mail-filter/libdkim/files/libdkim-extra-options.patch
new file mode 100644 (file)
index 0000000..5c8a240
--- /dev/null
@@ -0,0 +1,87 @@
+diff -Naur libdkim.orig/src/libdkimtest.cpp libdkim/src/libdkimtest.cpp
+--- libdkim.orig/src/libdkimtest.cpp   2009-03-13 16:17:45.000000000 -0500
++++ libdkim/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> allman , ietf or both\n");\r
++      printf( "-c<canonicalization> r for 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 if set to - then it will not be included");\r
++      printf( "-z<hash>  1 for sha1, 2 for sha256, 3 for both\n");\r
++      printf( "-y<selector> the selector tag DEFAULT=MDaemon\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