forked from trusteddomainproject/OpenDKIM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE_NOTES.Sendmail
1258 lines (1196 loc) · 59 KB
/
RELEASE_NOTES.Sendmail
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
DKIM-MILTER RELEASE NOTES
This listing shows the versions of the dkim-milter package, the date of
release, and a summary of the changes in that release.
Bug and feature request (RFE) numbers that start with "SF" were logged
via Sourceforge (http://www.sourceforge.net) trackers. Those not so labeled
were logged internally at Sendmail, Inc.
2.8.3 2009/05/31
Close the configuration file after reading it, plugging a
descriptor leak.
Release memory associated with old configuration nodes (i.e. strings)
as well as the nodes themselves.
Connect the configuration handle to its allocated data so cleanup can
actually be thorough.
Fix an error message reported inside _FFR_REPLACE_RULES.
Plug a memory leak in mlfi_header() tripped when errors occur.
Since ADSP has not yet been registered by IANA, adjust its method
label in Authentication-Results accordingly.
Include selector, domain and other text if possible when logging
key retrieval failures.
Add _FFR_SENDER_HEADERS, allowing user control over which header
fields are used to make the sign/verify decision and
perform key selection.
LIBDKIM: Initialize canon_lastchar in dkim_add_canon().
LIBDKIM: Clean up any compiled regular expressions in dkim_close().
LIBDKIM: Fix some type-related compiler warnings.
2.8.2 2009/02/17
Request a signature with an "i=" tag if signing for subdomains and
a keylist entry matches. Previously this only occurred when
using an explicit domain list. Problem noted by
S. Moonesamy of Eland Systems.
Fixes in and around dkim_socket_cleanup(). Problem noted by
S. Moonesamy of Eland Systems.
LIBDKIM: When logging a d2i_PUBKEY_bio() or EVP_PKEY_get1_RSA()
failure, also log the selector and domain involved so manual
diagnostics are possible.
LIBDKIM/LIBAR: Feature request #SF2380508: Add new test for
WITHOUT_LIBSM which removes references to libsm's sm_strl*()
functions, so that libdkim and libar can stand on their own
on systems which provide the strl*() functions. Requested by
Frederik Pettai.
LIBDKIM: Report DKIM_STAT_NOSIG if the caller commands that all
signatures should be ignored.
LIBDKIM: Plug a memory leak caused when responding to a malloc()
failure.
LIBDKIM: New signature error code DKIM_SIGERROR_KEYDECODE, used if
d2i_PUBKEY_BIO() or EVP_PKEY_get1_RSA fails in
dkim_sig_process().
LIBAR: Make reference to the "_res" structure more thread-safe.
BUILD: Make use of conf_dkim_filter_ENVDEF since site.config.m4.dist
refers to it. Problem noted by S. Moonesamy of Eland Systems.
2.8.1 2009/01/16
LIBDKIM: Fix bug #SF2508602: Add a translation string for
DKIM_SIGERROR_KEYREVOKED and fix dkim_eom_verify() so it
returns DKIM_STAT_REVOKED when appropriate. Problem noted
by Mike Markley of Bank of America.
2.8.0 2009/01/08
Add configuration option "EnableCoredumps" which makes an explicit
kernel request for cores on crashes. Currently only meaningful
on Linux.
Add configuration option "AuthServID" which sets the "authserv-id"
token to use when generating Authentication-Results header
fields.
Report "fail" instead of "hardfail" on authentication failures,
in compliance with the Authentication-Results: draft.
Add _FFR_REPORT_INTERVALS, experimental support for the "ri" tag
extension to DKIM policy and key records for specifying
reporting intervals.
Feature request #SF1985886: Add _FFR_MULTIPLE_SIGNATURES, allowing
one instance of the filter to add multiple signatures.
Suggested by Dave Crocker.
Add "TemporaryDirectory" configuration file option for requesting that
libdkim use an alternate directory for creating temporary
files, and "KeepTemporaryFiles" for requesting that libdkim
not delete those files for debugging purposes.
Add optional support for the "unbound" asynchronous resolver
library as it is DNSSEC-aware. Adds four new configuration
file items: "BogusKey", "BogusPolicy", "InsecureKey" and
"InsecurePolicy". Also add dkim_sig_getdnssec()
and dkim_policy_getdnssec() to libdkim so callers can tell
what the DNSSEC evaluation result was for each query.
Based on a patch from John Dickinson.
Add "BaseDirectory" configuration file option for specifying
the desired current directory of the process.
Make use of the key and policy "rs" tag, if present, when doing
SMTP rejections.
Use MTA macro "$j" as the hostname in generated reports instead of
the output of gethostname() since on some systems the latter
may not be fully-qualified.
Remove ANTICIPATE_SENDMAIL_MUNGE, replacing it with a runtime check
for the milter v2 feature which suppresses the addition of
spaces in headers.
Add _FFR_COMMAIZE which attempts to predict the reformatting
the MTA will do to certain header fields to reduce verification
failures.
Add _FFR_DKIM_REPUTATION enabling a function used to query
an open DKIM reputation service regarding the signing user
and signing domain. The service's URL is
http://www.dkim-reputation.org. (EXPERIMENTAL)
Fix preloading of configuration defaults.
Fix bug #SF2236040: Quote all of the POSIX regular expression special
characters, not just some of them. Reported by Mark Martinec.
When possible, log the selector and domain of the signature evaluated
along with any errors in the libcrypto stack.
LIBDKIM: Add "smtpbuf", "smtplen" and "interval" parameters to
dkim_sig_getreportinfo() and dkim_policy_getreportinfo().
Also, remove the assertion that "addr" be non-NULL.
LIBDKIM: Add DKIM_LIBFLAGS_ACCEPTDK which enables compatibility
with DomainKeys-formatted key records.
LIBDKIM: Adjust signature formatting for legibility.
LIBDKIM: Check return status from dkim_canon_getfinal() to avoid
bad dereferences. Problem noted by Chris Behrens of
Concentric Network Corporation.
LIBDKIM: Render the DKIM handle unusable in dkim_eoh_sign() if a
required header was absent.
Activate _FFR_REQUIRED_HEADERS.
2.7.2 2008/09/02
Avoid memory leaks and infinite loops when releasing thread-specific
memory. Reported by Jeff Earickson.
2.7.1 2008/08/27
Set up required callbacks for OpenSSL thread-safety. Problem
noted by Zbigniew Szalbot.
Disallow empty "t=" and "x=" tags.
Return DKIM_STAT_KEYFAIL for various DNS key retrieval failures
instead of DKIM_STAT_INTERNAL.
2.7.0 2008/07/23
Update to draft-ietf-dkim-ssp-04. In doing so, rename "ASPDiscard"
to "ADSPDiscard", "ASPNoSuchDomain" to "ADSPNoSuchDomain"
and "SendASPReports" to "SendADSPReports" in the configuration
file.
Feature request #29738: Add "TrustSignaturesFrom" configuration
file item allowing fine-grained control over third-party
signature handling.
Feature request #SF2018848: Add "LocalADSP" feature allowing
policy assertions from domains known to have specific policies
but which don't publish ADSP records. Suggested by
Bruno Kraychete da Costa.
LIBDKIM: Fix an off-by-one overrun check in key and policy record
decoding. Problem noted by John Dickinson.
2.6.0 2008/06/11
Remove "signaturemissing" as an old-style configuration action
as it has been superseded by "ASPDiscard" and related
functions.
Add "SendASPReports" configuration option which generates ASP failure
reports if requested by the sending domain.
Update report generation for verification failures to use the
new Abuse Reporting Format (ARF) and DKIM Reporting
draft proposals.
Add "MustBeSigned" configuration option, requiring signatures to
cover specific headers if present.
Rename "UseASPDiscard" to "ASPDiscard".
Add "ASPNoSuchDomain" configuration option which rejects mail that
appears to come from nonexistent domains as reported by the
Author Signing Practises check.
Add "ReportAddress" configuration option, used for defining the
From: header of reports mailed out.
Yet another compatibility fix with respect to Sleepycat DB.
Fix processing of "LogWhy" configuration parameter. Problem noted
by Erik Lotspeich.
Add "-n" command line flag which parses the command line arguments
and configuration file(s), then exits with an appropriate
status code.
Report DKIM and ASP results separately via the same
Authentication-Results header field. Previous versions would
alter the DKIM result based on ASP.
Fix bug #SF1976931: Restore function of "nosignature" old-style
action configuration, connected to "AlwaysAddARHeader".
Problem noted by Lucas Brasilino.
Feature request #SF1940233: Add "DontSignMailTo" configuration option,
allowing a list of recipient patterns whose mail should not
be signed. Requested by Don Hughes.
LIBDKIM: Rename dkim_reportinfo() to dkim_sig_getreportinfo(),
and add dkim_policy_getreportinfo().
LIBDKIM: Add several more signature error codes covering various
key-related errors.
LIBDKIM: Add dkim_sig_hdrsigned() utility, DKIM_OPTS_MUSTBESIGNED
option, and DKIM_SIGERROR_MBSFAILED error code.
LIBDKIM: Fix a bug in the computation of the result for
dkim_canon_minbody().
LIBDKIM: Report corrupted base64 chunks instead of quietly
tolerating them.
LIBDKIM: Tidy up the cleanup code in dkim-canon.c.
LIBDKIM: Properly handle "tag=" at the end of a data set (i.e.
the tag exists and has an empty value).
LIBDKIM: Use larger unsigned data types in dkim_sig_future() as
was done elsewhere.
LIBDKIM: Always populate a DKIM_SIGINFO with domain and selector
before there's an opportunity for other parsing
short-circuits.
LIBDKIM: Fix bug #SF1984685: Remove the "margin" parameter from
dkim_getsighdr(); make it controlled by a new function,
dkim_set_margin(), so that the signed copy and the
user-requested copy are identical.
Activate _FFR_AUTHSERV_JOBID.
2.5.5 2008/04/25
Fix bug #SF1947301: Close up a logic problem in "UseASPDiscard"
handling which could cause false rejections of mail from
domains advertising "discardable" policies. Problem noted
by Doug Kingston.
LIBDKIM: Another compatibility fix with respect to Sleepycat DB.
2.5.4 2008/04/17
Skip signatures with errors in dkimf_authorsigok().
Avoid a NULL dereference in dkimf_config_reload() when starting
without a configuration file.
Fix an alignment problem in dkimf_checkip(). Problem reported
by Jeff A. Earickson.
LIBDKIM: Fix bug #SF1942387: Per RFC4871, disallow "l=" values
that exceed the size of the canonicalized message body.
2.5.3 2008/04/14
Add "AllowSHA1Only" configuration option which permits operation
of verifiers that only know about SHA1. Without this, a
filter compiled with only SHA1 support will refuse to start
in verifier mode.
Add "LogWhy" configuration parameter and "-W" command line flag
to request detailed logging about why a message was not
signed by the filter. Intended for debugging; not intended
for normal operation.
Another tweak to parameters passed to db->open(). Based on patches
from Jukka Salmi and S. Moonesamy.
Fixes in ares_parse() to match the current syntax. In particular,
deal with the fact that some of our tokens can legally appear
in e-mail addresses. Problem noted by S. Moonesamy of
Eland Systems.
LIBDKIM: Evaluate key granularity against the "i=" value rather than
the value of the From: header per RFC4871. Problem noted by
Jason Long.
LIBDKIM: Remove the chartable stuff from dkim-tables.c as it is
not used anywhere.
LIBDKIM: Fix bug #SF1940302: Perform stronger validation of the value
of the "h=" tag.
2.5.2 2008/03/28
Preserve the sender's domain name outside of mlfi_eoh() as it's
now needed in mlfi_eom(). Problem noted by Andy Fiddaman.
Fix bug #SF1921873: Pass "-K" command line switch into the new
configuration handling code. Problem noted by Al Smith.
TOOLS: Fix flags portion of the TXT record output by dkim-genkey.
Problem noted by Michael Carland.
BUILD: Fix bug #SF1922422: Fix linker problems when POPAUTH is
defined.
2.5.1 2008/03/20
Update for draft-kucherawy-sender-auth-header-14.
Fix bug #SF1911328: Restore proper behaviour of SignHeaders and
OmitHeaders, broken in the prior release's configuration
overhaul. Problem reported by Jason Molzen.
Fix bug #SF1912332: Fix parameters passed to db->open(). Problem
reported by Tony Earnshaw.
Fix bug #SF1912569: Initialize mutexes before entering test mode.
Patch from Kaspar Brand.
LIBDKIM: Add "subject" to "should_signhdrs" per RFC4871 section 5.5.
LIBDKIM: More boundary checking fixes in dkim_canon_selecthdrs().
Problem noted by Warren Horvath.
LIBDKIM: Fix bug #SF1820084: Return DKIM_STAT_MULTIDNSREPLY
if a DNS query returns multiple records.
2.5.0 2008/03/06
Add "AutoRestartCount" and "AutoRestartRate" configuration
parameters to limit runaway restart loops.
Feature request #SF1735573: Add "AlwaysAddARHeader" option, which
will add an Authentication-Results of "none" for unsigned
messages from domains without a "strict" policy.
Feature request #SF1807748: Reload the configuration file on
receipt of SIGUSR1. Requested by Florian Sager.
Feature request #SF1811969: Add _FFR_BODYLENGTH_DB which adds a
"BodyLengthDBFile" feature, allowing a per-recipient decision
on whether or not to use an "l=" tag when signing. Patch
contributed by Daniel Black.
Feature request #SF1841955: Add an "Include" facility to the
configuration file.
Feature request #SF1876941: Make the syslog facility selectable.
Based on a patch from Jose-Marcio Martins da Cruz of Ecole
des Mines de Paris.
Feature request #SF1876943: Add _FFR_AUTHSERV_JOBID allowing the
job ID to be included as part of the "authserv-id" in
Authentication-Results: headers. Based on a patch from
Jose-Marcio Martins da Cruz of Ecole des Mines de Paris.
Feature request #SF1890581: Attempt to clean up a UNIX domain
socket in the non-AutoRestart case as well. Requested
by Daniel Black.
Add "MilterDebug" configuration file option for requesting debugging
output from the filter.
Add "FixCRLF" configuration file option which activates the
DKIM_LIBFLAGS_FIXCRLF flag (see below).
Update to draft-ietf-dkim-ssp-03. In doing so, rename the
"UseSSPDeny" configuration option to "UseASPDiscard".
Handle an error from dkim_getsighdr() properly in mlfi_eom().
When VERIFY_DOMAINKEYS is active, don't short-circuit mlfi_eoh()
between dk_verify() and dk_eoh() or a segmentation fault below
dk_body() could result.
LIBDKIM: Feature request #SF1823059: Export key, signature and
policy syntax checking capability via the API. Based on
a patch from Chris Behrens of Concentric Network Corporation.
LIBDKIM: Assert defaults for "c" and "q" tags when parsing
signature headers. Patch from Chris Behrens of Concentric
Network Corporation.
LIBDKIM: Better handling of truncated DNS replies; instead of
just giving up if the "tc" (truncated) bit is set in the
reply, see if there was enough of a reply returned to be able
to complete the request.
LIBDKIM: Fix recycling bug in header canonicalizations which was
causing signatures other than the first one to fail in most
cases.
LIBDKIM: Add new dkim_chunk() interface.
LIBDKIM: Enforce DKIM_OPTS_QUERYMETHOD library option even if there
were no valid signatures.
LIBDKIM: New DKIM_LIBFLAGS_FIXCRLF which requests that "naked"
CRs and LFs be converted to CRLFs during canonicalization
when signing.
LIBDKIM: Fix bounds checking in dkim_canon_selecthdrs().
LIBAR: Eliminate a possible race condition in ar_dispatcher().
LIBAR: Timeouts passed to select() can't be bigger than 10^8.
Problem noted by S. Moonesamy of Eland Systems.
BUILD: Feature request #SF1876242: Install the filter in EBINDIR
and everything else in UBINDIR.
2.4.4 2008/01/25
In mlfi_close(), don't assume the libmilter private context pointer
is not NULL.
Fail to start up if told to load a key list which resulted in no
keys being loaded.
When "AutoRestart" is in use, the parent will now wait for the
child to terminate before exiting. Thus, something that
signals the process ID in the pid file can also wait on that
process to be gone before being sure that the service has
actually shut down.
Include the job ID when logging about Authentication-Results: headers
that can't be parsed. Problem noted by S. Moonesamy.
LIBDKIM: In dkim_policy(), skip invalid signatures during evaluation
of step 1 of SSP as the signature handle may not have been
fully populated.
2.4.3 2008/01/18
Request addition of an "i=" tag in the signature when signing for
subdomains. Patch from Alin Nastac.
TOOLS: Fix bug #SF1867259: "echo -n" is not portable. Problem
noted by Gary Mills.
TOOLS: Fix bug #SF1867869: Output of the "t=" value was incorrect
with respect to the "s" flag. Reported by Geoff Adams.
LIBAR: Further handling of the absence of "nameserver" lines in
resolv.conf, this time in the manual processing code.
LIBDKIM: Fix bug #SF1867839: 64-bit portability in rfc2822.c.
Patch from Geoff Adams.
LIBDKIM: Tighten up correctness of the first SSP test ("valid
originator signature") in dkim_policy(). Problem noted
by Alin Nastac.
LIBDKIM: DKIM_SIGINFO handles are now initialized with an error
code of DKIM_SIGERROR_UNKNOWN. The code only becomes
DKIM_SIGERROR_OK after the cryptographic verification
code returns a success result.
BUILD: Fix bug #SF1818906: Update site.config.m4 to include a flag
for installing libdkim when compiling static libraries,
and installing dkim.h in either case. Requested by
Chris Behrens of Concentric Network Corporation.
2.4.2 2008/01/02
Remove "-H" from the usage message. It was meant to be a command
line interface to "AlwaysSignHeaders" but was never
implemented. Problem noted by Jeff Anton.
LIBDKIM: Make dkim_islwsp() into a macro to drastically reduce the
number of function calls made during canonicalization.
LIBDKIM: Fix bug #SF1857484: Fix logic problem in dkim_policy() with
the new pstate checks. Problem noted by Werner Wiethege;
patch from Chris Behrens of Concentric Network Corporation.
2.4.1 2007/12/20
Update for latest Authentication-Results: header draft.
Avoid a NULL dereference in dkim_get_key(). Problem noted by Chris
Behrens of Concentric Network Corporation.
Fix bug #SF1842970: Make the overall header byte count check
configurable, and increase the default. Also, add
"On-Security" (configuration file) and "security" (command
line) options for controlling the default reaction to such
conditions. While we're at it, add an "On-Default" and
"default" option for making a global action setting.
Requested by Mark Martinec.
LIBAR: Fix bug #SF1852618: Handle default case of no "nameserver"
lines in /etc/resolv.conf. Problem noted by Mike Markley
of Bank of America.
LIBDKIM: Fix bug #SF1824876: Add "dkim_pstate" and make dkim_policy()
re-entrant. Requested by Chris Behrens of Concentric
Network Corporation.
LIBDKIM: Fix bug #SF1843733, SF1843782: Tighten up header name
matching in dkim_get_header() and dkim_get_sender(). Patches
from Chris Behrens of Concentric Network Corporation.
LIBDKIM: Fix bug #SF1843788: Fix an off-by-one length bug in
dkim_header(). Patch from Chris Behrens of Concentric
Network Corporation.
LIBDKIM: Fix bug #SF1850973: Remove MAXHDRCNT; make the arrays it
previously defined dynamic. Reported by Mike Markley of
Bank of America.
LIBDKIM: Feature request #SF1841974: Numerous performance enhancements
from Chris Behrens of Concentric Network Corporation.
2.4.0 2007/11/30
Take advantage of some more features that were introduced with
milter v2 in sendmail 8.14.0:
o If all canonicalizations are satisfied in terms of
length limits, advise the MTA to stop sending the
message body to reduce unneeded I/O.
o Turn off as many unnecessary SMTP protocol steps as
possible.
o Fail option negotiation if any of the milter features
required are not available.
o If specific MTA macros are to be used for making the
sign vs. verify decision, explicitly request them.
Prevent corruption in Authentication-Results: headers caused
by signatures that have explicit "i=" values.
Report "hardfail" instead of "fail" on authentication failures,
in compliance with the Authentication-Results: draft.
Amend the "-M" command line option and "MacroList" configuration
options to allow a list of possible values for each
macro.
Add _FFR_SELECTOR_HEADER, adding the means to choose which selector
(and thus which key) is used to sign based on the value
found in a particular header. Requested by Steve Jones
of Bank of America.
Add dkimf_dstring*() (dynamic string) functions and clean up some
code by making use of it.
Skip all the userid and group changes when either "-u" or "UserID"
is in use if the requested user is the same as the
executing user.
Fix use of "UseSSPDeny" to include handling of unsigned messages.
Fix bug #SF1834701: Log a warning and temp-fail the message if
a key list is in use that didn't match the sender for a
message which should be signed. Problem noted by Jim
Hermann.
Patch #SF1796697: Add _FFR_REPLACE_RULES, adding the facility to do
substring replacement before signing to anticipate things
like the MTA "masquerade" and "genericstable" functions.
Requires further development.
Replace "gentxt.csh" with more robust "dkim-genkey" utility.
Feature request #SF1811962: Add new utilities "dkim-testkey" which
verifies that a public key is readable and properly formatted
and matches the locally-provided private key, and
"dkim-testssp" which retrieves a domain's sender signing
practises record and prints it in a human-readable form.
Based on code contributed by Daniel Black.
Feature request #SF1817253: Add "UMask" configuration file option.
Suggested by Daniel Black.
Feature request #SF1818863: Add a section to site.config.m4.dist
to request a build of the shared object version of libdkim.
Requested by Chris Behrens of Concentric Network Corporation.
Feature request #SF1834748: Use a more meaningful SMTP reply when
rejecting a message at the SMTP level due to SSP. Suggested
by S. Moonesamy of Eland Systems.
LIBDKIM: Return DKIM_STAT_NOKEY from dkim_get_key_dns() if the answer
count comes back zero, rather than DKIM_STAT_CANTVRFY.
Problem noted by Chris Behrens of Concentric Network
Corporation.
LIBDKIM: Plug a memory leak in dkim_get_key(). Problem noted by
Chris Behrens of Concentric Network Corporation.
LIBDKIM: Replace a dicey memcpy() call with memmove(). Problem
noted by Chris Behrens of Concentric Network Corporation.
LIBDKIM: Add DKIM_CBSTAT_NOTFOUND and DKIM_CBSTAT_ERROR callback
return codes, and DKIM_STAT_CBERROR return code. Suggested
by Chris Behrens of Concentric Network Corporation.
LIBDKIM: Add dkim_minbody() to determine how much more body text
is required to satisfy canonicalizations.
LIBDKIM: Add dkim_gethandlingstr() and dkim_getpolicystr() for
translation of SSP handling and policy codes into printable
strings.
LIBDKIM: Add _FFR_PARSE_TIME, adding a utility function that can
be used to detect that the timestamp on a signature and the
value of the Date: header wildly differ. Incomplete.
LIBDKIM: If a message comes in with no properly-formed sender headers,
dkim_eoh() now renders the DKIM handle unusable by later
data processing calls.
LIBDKIM: Fix arithmetic in dkim_sig_expired().
LIBDKIM: In dkim_eoh_verify(), check for a NULL user pointer return
from rfc2822_mailbox_split() (was previously only checking
for an error code or NULL domain). Problem noted by Chris
Behrens of Concentric Network Corporation.
LIBDKIM: Fix bug #SF1819489: Fix signature header name check in
dkim_header(). Patch from Chris Behrens of Concentric
Network Corporation.
LIBDKIM: Fix bug #SF1819559: Fix key granularity processing.
LIBDKIM: Fix bug #SF1819571: More robust processing of "s=" in keys.
LIBDKIM: Fix bug #SF1819607: Allow "t=" and "x=" values up to 64 bits
since RFC4871 requires at least 40.
LIBDKIM: Fix bug #SF1820017: Don't accept signatures with no "v=" tag.
LIBDKIM: Fix bug #SF1820060: The value of "q=" may be a colon-separated
list of values to parse.
LIBDKIM: Fix bug #SF1820080: The value of "i=" may be quoted-printable
so do appropriate decoding.
LIBDKIM: Fix bug #SF1820123: "simple" body canonicalization must
contain at least CRLF.
LIBDKIM: Fix bug #SF1820370: More graceful handling of grossly
malformed signature headers. Problem noted by Chris Behrens
of Concentric Network Corporation.
LIBDKIM: Fix bug #SF1822287 and SF1822295: Update policy check code
to use the draft-ietf-dkim-ssp-01 algorithm. Problem noted
by Chris Behrens of Concentric Network Corporation.
LIBDKIM: Fix bug #SF1822329: In dkim_get_policy(), check for and handle
error returns from the subordinate lookup functions. Problem
noted by Chris Behrens of Concentric Network Corporation.
LIBDKIM: Fix bug #SF1822331: Use consistent return codes in
dkim_get_policy_dns(). Problem noted by Chris Behrens of
Concentric Network Corporation.
LIBDKIM: Fix bug #SF1832703: When looking for headers to canonicalize
during verification, disregard spaces between the header name
and the colon (":") character. Problem noted by James
Sargent of AOL.
LIBDKIM: Fix bug #SF1838826: Several fixes with respect to processing
key and policy flags. Problems noted by Marc Martinec.
LIBDKIM: Feature request #SF1821005: Add dkim_getdomain(), an accessor
function for dkim_domain. Requested by Chris Behrens of
Concentric Network Corporation.
Activate _FFR_QUERY_CACHE (Feature request #SF1675359) and
_FFR_SELECT_SIGN_HEADERS.
2.3.2 2007/10/19
Fix bug #25896: Fix a bug in parsing of "RemoveARFrom".
LIBDKIM: Fix a bug in the key reuse block of dkim_get_key() which
assumed that a domain and selector match guaranteed a copied
key and key tag list.
LIBDKIM: Fix bug #SF1812687: Fix handling check in dkim_get_policy().
Patch from Daniel Black.
2.3.1 2007/10/12
Fix header loss problem in test mode.
Fix bug #SF1808886: Handle missing or empty test inputs more
gracefully. Based on a patch from Kaspar Brand.
Fix bug #SF1808881: Check various integer conversions for
negative, overflow or inappropriate values. Suggested
by Kaspar Brand.
Feature request #SF1809239: Restore performance of test mode on
large messages. Requested by Kaspar Brand.
Patch #SF1811132: Include <stdlib.h> in test.c for malloc()
prototype. Patch from Daniel Black.
BUILD: Patch #SF1810712: Correct default location for the Tre
regular expression library. Suggested by Daniel Black.
2.3.0 2007/10/06
Add "UseSSPDeny" configuration option which causes the filter
to reject messages which are determined to be suspicious
according to the new draft-ietf-dkim-ssp-01, and whose
sending domains advertise a recommended handling of "deny",
and whose SSP records are not in "test" mode.
Add "MaximumSignedBytes" configuration option limiting the number
of bytes of the message body to be signed.
Add "-t" command line option for reading an RFC2822-formatted
message from a named file and attempting to evaluate it,
"-F" command line option for using a fixed signing
time, and "-v" command line option for requesting verbose
output. Finally, new configuration option "StrictTestMode"
asserts that all lines of input must be CRLF-terminated.
Based on patches from Kaspar Brand.
Add "TestPublicKeys" setting for instructing libdkim to read public
keys from a file, for use during automated testing.
Based on a patch from Jeff Barry.
When using _FFR_QUERY_CACHE, periodically report cache activity
statistics.
Don't arbitrarily suppress signing of already-signed messages.
Fix bug #25728: When "AutoRestart" is in use, try to remove the
socket (if it's a UNIX domain socket) prior to trying to
start the child.
LIBDKIM: Add dkim_getmode() function.
LIBDKIM: Fixes to policy evaluation in dkim_policy(). Based on a
patch from Jeff Barry.
LIBDKIM: Patch #SF1796687: Add DKIM_LIBFLAGS_ACCEPTV05 which causes
the library to accept signatures with version strings of
"0.5", i.e. those based on later versions of the DKIM draft
specification. This does not change any other part of
signature validation or canonicalization, only the version
string test. Suggested by Jim Fenton of Cisco.
LIBDKIM: When closing canonicalizations, flush the temporary files
rather than closing them so that things like dkim_reportinfo()
return useful descriptors. Close the temporary files in
dkim_canon_free() only. Problem noted by Jeff Barry.
LIBDKIM: Fix variable argument processing by merging dkim_error()
and dkim_verror(). The previous code was causing
segmentation faults on selected operating systems.
Activate the following FFRs:
_FFR_KEY_REUSE
_FFR_SET_REPLY
2.2.1 2007/09/07
Insert VBR headers at the top rather than appending them to be
sensitive to legacy DomainKeys operations. Patch from
S. Moonesamy of Eland Systems.
Discontinue use of MAXHOSTNAMELEN as the maximum size of a hostname
since some vendors set it to 64 (maximum size of a DNS label)
and some to 256 (maximum size of an FQDN). Instead, define
and use DKIM_MAXHOSTNAMELEN (256). Problem noted by
Jeff Barry.
LIBDKIM: Rename and update the default_signhdrs and default_skiphdrs
arrays to match what's in RFC4871 section 5.5 SHOULD and
SHOULD NOT lists.
LIBDKIM: Apply DKIM_OPTS_SKIPHDRS only when signing.
LIBDKIM: Add missing entries to prv_results, and add a
dkim_getresultstr() function for translating DKIM_STAT
result codes. Patch from Kaspar Brand.
Fix bug #SF1785624: Resolve build problem introduced in previous
version when NETINET6 is in use. Reported by Andrew Benham.
Fix bug #SF1786033: Resolve build problem introduced in previous
version affecting later versions of Solaris. Reported by
Andy Fiddaman.
Fix bug #SF1787473: Initialize the default "-i" list properly (given
changes made in the previous version) so that mail from
localhost still gets signed. Reported by Graham Murray.
2.2.0 2007/08/30
Change format of the peerfile, internal and external host lists, etc.
to allow exclusion entries. See the man page for additional
details.
Amend "-u" to include the ability to name a group into which the
filter process should be placed.
Feature request #SF1783155: Make keylist pattern matching
case-insensitive.
LIBDKIM: Handle CNAMEs properly when using the standard resolver.
Problem noted by Jim Fenton of Cisco.
LIBDKIM: Fix bug #SF1782076: Adjust signature header wrapping logic
so that a "b=" against the margin gets wrapped consistently
when signing and verifying. Reported by Kaspar Brand.
2.1.2 2007/08/22
LIBDKIM: At the end of dkim_eoh_verify(), don't overwrite any existing
descriptive error text before returning on verification
errors. Problem noted by Andy Fiddaman.
LIBDKIM: Remove redundant assertion of length limits in
dkim_canon_bodychunk(). The code in dkim_canon_write() has it
correct, so use that instead. Problem noted by Mark Martinec.
LIBDKIM: Fix bug #SF1777332: Fix "relaxed" body canonicalization.
Some code from the older implementation was still present
conflicting with the newer code. Reported by Andrey Chernov.
2.1.1 2007/08/13
Fix bug #SF1743896 (reopened): Don't crash if a From: header with no
domain is found. Patch from Andy Fiddaman.
LIBDKIM: Fix type mismatches regarding restricted lengths. Problems
noted by Jukka Salmi.
LIBDKIM: Fix bug #SF1771520: Return an error from dkim_policy() if
the sender's domain name could not be determined. Patch from
Andy Fiddaman.
2.1.0 2007/08/10
Update to new (draft version 06) Authentication-Results: header format.
Do an SSP query for any message that didn't either succeed verification
or cause some kind of internal error, not just those that
failed to verify.
Tighten up the logic used when checking header space allocation.
LIBDKIM: Heavy cleanup of dkim_eoh() and dkim_eom() via patches from
Chris Behrens of Concentric Network Corporation.
LIBDKIM: Add more fine-grained state control enforcing the order in
which the message processing functions are called. There was
previously a hole which would allow, for example, more headers
to be submitted after a call to dkim_eoh() if a prescreen
callback returned a "tryagain" result.
LIBDKIM: Add dkim_sig_getidentity().
LIBDKIM: Fix bug #SF1769270: Use the default query type to retrieve
signing policy for unsigned messages.
LIBDKIM: Fix bug #SF1769445: Return the correct policy result from
dkim_get_policy_dns() rather than always returning an empty
string. Patch by Andy Fiddaman.
LIBDKIM: Amend dkim_sig_getcanonlen() to include a parameter which
receives the signature length limit, if any.
LIBDKIM: Restore proper value to dkim_bodylen. Problem noted by
Jukka Salmi.
LIBDKIM: Don't inexplicably clear sig_signalg. Problem noted by
Jukka Salmi.
Feature request #SF1761475: Add "ClockDrift" configuration option
for tolerating out-of-synch clocks. Suggested by Kaspar Brand.
Feature request #SF1761481: Add "SyslogSuccess" configuration option
for logging successful operations rather than just errors
or other informational messages. Suggested by Kaspar Brand.
Feature request #SF1769888: Amend dkim_policy() to be able to return
the policy type retrieved from the sending domain. Also
add dkim_getpresult() and associated other code to get
additional policy evaluation information. Requested
by Andy Fiddaman.
2.0.2 2007/08/03
Fix bug #SF1766313: Make configuration handling 64-bit friendly.
Other 64-bit portability issues also addressed. Problems
noted by Chris Box.
Add _FFR_DNS_UPGRADE which establishes a second libar instance
in TCP mode for handling truncated UDP replies. Also make
some minor fixes in the key and policy DNS lookup functions
to provide more consistent handling of such responses.
Problems noted by Kaspar Brand; code is still experimental.
2.0.1 2007/08/02
Fix bug #SF1760481: Make header space allocations fully dynamic rather
that establishing compile-time per-header limits. There
is still an overall cap, however. Suggested by Ralf
Hildebrandt.
LIBDKIM: Fixes inside _FFR_KEY_REUSE.
2.0.0 2007/07/27
Remove all support for versions older than RFC4871. Older
statistics databases will not be incompatible with the
new code since version information is no longer included
in the record format.
Add "Resent-Sender" and "Resent-From" to the list of headers
checked to determine whether or not the message should
be signed or verified.
Report an authentication result of "permerror" when the message
can't be verified for syntax or other non-crypto reasons.
New configuration file item "RemoveARFrom" allows specification
of hostnames/domains whose existing Authentication-Results:
headers should be removed. Also add "RemoveARAll" which
allows selection of whether all such headers should be removed
or only those containing a DKIM result.
New configuration file item "RemoveOldSignatures" deletes existing
signatures when signing.
Fix bug #SF1743896: Don't crash if a From: header with no domain
is found. Patch from Andy Fiddaman.
Fix bug #SF1743964: Remove the pid file on shutdown or startup
failure. Patch from Mike Markley.
LIBAR: Plug descriptor and memory leaks in ar_shutdown().
LIBDKIM: Rework _FFR_VBR code to prepare it for extraction into
an independent library.
LIBDKIM: The key and policy lookup callbacks must now return
a DKIM_CBSTAT constant so that they can have their
corresponding libdkim functions return DKIM_STAT_CBTRYAGAIN
if desired. Suggested by Chris Behrens of Concentric
Network Corporation.
LIBDKIM: Add _FFR_DIFFHEADERS which adds dkim_diffheaders() to enable
the caller to search for headers that may have been munged
in transit thus causing a verification failure.
LIBDKIM: Feature request #SF1473131: Overhaul data structures,
functions and documentation to allow fine-grained handling
of messages bearing multiple signatures. This included the
following changes:
o Extend draft-ietf-dkim-ssp-00 support to cover
multiply-signed messags.
o Introduce DKIM_SIGERROR type/constants for associating
an error code with each individual signature.
o New libary flag DKIM_LIBFLAG_DELAYSIGPROC delays all
signature processing until dkim_eom().
o New libary flag DKIM_LIBFLAG_EOHCHECK causes dkim_eoh()
to return an error if it was unable to find any
valid signatures when verifying.
o Add new DKIM_CANON data type, referring to a
parallel canonicalization required for signature
generation or verification.
o New function dkim_getsiglist() retrieves an array of
DKIM_SIGINFO handles referring to all of the
signatures discovered on a message.
o New function dkim_getsignature() retrieves a single
DKIM_SIGINFO handle which is the one libdkim will
use to return its final result.
o New function dkim_sig_getflags() to retrieve flags
attached to a signature handle after processing.
o New function dkim_sig_geterror() to retrieve the error
code associated with a signature handle after
processing.
o New function dkim_sig_getbh() to retrieve the body
hash test result on a signature after processing.
o New function dkim_set_final() sets a user-provided
callback called by dkim_eom() to do any final
processing the caller may desire.
o New function dkim_sig_process() manually executes
verification of a signature, for use from within the
prescreen or final callbacks.
o Rename dkim_getcanonlen() to dkim_sig_getcanonlen(),
dkim_getsigntime() to dkim_sig_getsigntime(),
dkim_getselector() to dkim_sig_getselector(),
dkim_getsigndomain() to dkim_sig_getdomain(),
dkim_getsignalg() to dkim_sig_getsignalg() and
dkim_getkeysize() to dkim_sig_getkeysize()
as they now act on a specific signature rather than
on an entire message.
o The user-provided key and policy lookup functions must
now accept a DKIM_SIGINFO handle as an additional
parameter.
o dkim_reportinfo() and dkim_ohdrs() now also require a
DKIM_SIGINFO handle as an additional parameter.
LIBDKIM: Fix signal logic in dkim_cache_read_unlock(). Patch from
Chris Behrens of Concentric Network Corporation.
LIBDKIM: Add _FFR_KEY_REUSE which avoids doing duplicate key
lookups if the same key is used on two signatures in the
same message. Suggested by Chris Behrens of Concentric
Network Corporation.
LIBDKIM: Changed prototype for dkim_policy() to reflect the new code.
Remove _FFR_FLUSH_HEADERS. The functionality it provided is now
accessed via the new configuration options described above.
Activate _FFR_HASH_BUFFERING.
BUILD: More unit tests.
1.2.0 2007/06/26
Update sender signing policy (SSP) code to match the new
draft-ietf-dkim-ssp-00 specification syntax. In doing
so, remove _FFR_ALLMAN_SSP_02.
If "-u" is specified, call initgroups() and setgid() as well.
Reported by Mike Markley; based on a patch from S. Moonesamy
of Eland Systems.
Fix bug #SF1738354: Add "L" data to CMDLINEOPTS. Reported by
Andrey Chernov.
1.1.0 2007/06/15
Add a new option to "-L" and "Minimum" allowing a specific maximum
number of bytes of appended, unsigned text. Suggested by
Philip Guenther.
Documentation and build patches from Gregory Shapiro, and
documentation patches from Steve Jones of Bank of America.
Under _FFR_VBR, if dkim_vbr_query() returns an error, report the
error and then don't add the header. Reported by
S. Moonesamy of Eland Systems.
Fix bug #24586: Allow "-?" just to get the usage message; also
hint at such if the filter is invoked with no arguments.
LIBDKIM: Define DKIM_STAT_CBTRYAGAIN and DKIM_CBSTAT_TRYAGAIN.
BUILD: More unit tests.
1.0.0 2007/05/23
First release after DKIM issued as a standard (RFC4871).
Remove the "-v" command line option and "Version" configuration file
item, which permitted selection of the signing version.
Remove "nowsp" canonicalization option.
LIBDKIM: Define DKIM_VERSION_RFC4871 and make it the default signing
version.
LIBDKIM: Remove DKIM_CANON_NOWSP and DKIM_VERSION_ALLMAN_BASE_00 which
defined it. Gradually, support for old versions will be
phased out.
0.8.1 2007/05/22
Portability fixes for Solaris.
LIBDKIM: Define DKIM_CBSTAT_* constants which are to be used as
return values from callbacks. Also define new status
values DKIM_STAT_CBREJECT and DKIM_STAT_CBINVALID
indicating results from callbacks back to the calling
applications. Suggested by James Sargent of AOL.
LIBDKIM: Slightly nicer wrapping of "b=", "bh=" and "z=" in
dkim_getsighdr().
LIBDKIM: Define callbacks with respect to the DKIM library
handle rather than each signing/verifying instance.
Suggested by James Sargent of AOL.
BUILD: Reference libssl and libcrypto in dkim-filter/Makefile.m4
rather than in the template site.config.m4 file since
it's always required anyway.
BUILD: Fix man page entry in dkim-filter/Makefile.m4.
0.8.0 2007/05/17
Add a dkim-stats(8) man page. Contributed by Mike Markley.
Add "SignatureTTL", "Diagnostics" and "AlwaysSignHeaders" options to
the configuration file and man page.
Add _FFR_ZTAGS for optionally saving diagonstic information when a
signature fails if the signature contained a "z=" tag.
Still more minor fixes in _FFR_STATS related to DB versions.
Feature request #SF1473129: Split configuration file details
into their own man page.
LIBDKIM: Still more minor fixes in _FFR_QUERY_CACHE related to DB
versions. Reported by Ben Lentz.
LIBDKIM: Remove dkim_getidentity(), as the function it provides
isn't part of DKIM. Instead, provide that functionality
in dkim-filter.
LIBDKIM: Add a new option DKIM_OPTS_ALWAYSHDRS which allows
specification of a list of header names which should always
be included in signature header lists whether or not
the headers were actually present, preventing them from
being added downstream before verification.
LIBDKIM: Add a new option DKIM_OPTS_SIGNATURETTL which allows
the caller to assert a time-to-live on signatures generated.
This causes the "x=" tag to appear in signatures.
LIBDKIM: Add a new library flag DKIM_LIBFLAGS_ZTAGS which causes
signatures generated to include the original header set
encoded for transport so the verifier can use it to
diagnose verification failures. This causes the "z=" tag to
appear in signatures.
LIBDKIM: Add dkim_ohdrs() which extracts the sender's set of headers
if a "z=" tag was present in the signature. This can then
be used by the caller to diagnose verification failures
for signatures which contain them.
LIBDKIM: Add the first large (and yet not the smallest) change to
support multiple signatures. There's now a method via
a few callbacks to give the caller access to the
signatures discovered by the end-of-headers callback.
The caller can analyze the signatures, reorder them,
or flag some to be ignored. After reordering, the library
still simply runs with the first that appears to be
syntactically valid; actual processing of multiple
signatures after the re-ordering will be in an upcoming
release.
LIBDKIM: _FFR_QUERY_CACHE now only covers DNS key lookups, not all
key lookups.
LIBDKIM: Move the method-specific policy lookup functions into
their own new files, dkim-policy.c and dkim-policy.h.
LIBDKIM: Slightly nicer wrapping of "h=" in dkim_getsighdr().
LIBDKIM: Add dkim_set_signer() for specifying the message's
signer for signature generation.
BUILD: More unit tests.
Activate the following FFRs:
_FFR_QUARANTINE
_FFR_REPORTINFO
0.7.1 2007/05/09
More minor fixes in _FFR_STATS related to DB versions. Based on
a patch by Graham Murray.
LIBDKIM: More minor fixes in _FFR_QUERY_CACHE related to DB versions.
LIBDKIM: Use read-write locks instead of a mutex in _FFR_QUERY_CACHE
when appropriate.
LIBDKIM: When using _FFR_QUERY_CACHE with recent enough versions of
the DB library, tell the library to use the same temporary
directory as libdkim is using.
BUILD: Fix bug #SF1715265: Correct a typo which caused libdkim to
fail to build against the asynchronous resolver library.
Reported by Andy Fiddaman.
0.7.0 2007/05/03
Several more fixes in _FFR_STATS related to DB versions.
LIBDKIM: Add support for optional callbacks to do key and policy
lookups using an API provided by the caller rather than using
DNS directly. New functions dkim_set_key_lookup() and
dkim_set_policy_lookup() set these callbacks. Also add
dkim_getdomain() and dkim_getselector() utility functions so
those callbacks can extract the data required to make the
queries. Note that these will probably change slightly when
support for multiple signatures is finally added. Suggested
by James Sargent of AOL.
LIBDKIM: Fix bug #SF1708756: Set dkim_partial earlier during signing
so that the "l=" portion is included in the canonicalized
signature header. Reported by Andrey Chernov.
LIBDKIM: Algorithm and initialization fixes in policy retrieval found
by the new unit tests.
LIBDKIM: Several more fixes in _FFR_QUERY_CACHE related to DB
versions.
LIBDKIM: Fix bug #SF1706248: Rewrite dkim_getidentity() so it returns
a more sane value for the sender in all cases. Another
utility function will be added later for obtaining the
signer's identity. Reported by Andrey Chernov.
BUILD: Overhaul the build scripts so that all the user editing is
done in devtools/Site/site.config.m4 rather than in each
individual directory's Makefile.m4. Include a template for
this purpose.
BUILD: Begin a collection of automated unit tests.
Activate the following FFRs:
_FFR_LOG_SSL_ERRORS
_FFR_MULTIPLE_KEYS
_FFR_OMIT_HEADERS
_FFR_QUERY_FILE
_FFR_SET_DNS_CALLBACK (Feature request #SF1473171)
0.6.6 2007/04/25
Update _FFR_SELECT_CANONICALIZATION for split canonicalization
methods.
Add _FFR_STATS, creating an optional database for storing pass/fail
statistics per domain over time, and a command-line tool
for querying the database contents. Requires Sleepycat DB.
LIBDKIM: Patch #SF1705155: Fixes in "relaxed" header canonicalization
code. Problem noted by Ben Lentz.
LIBDKIM: Add _FFR_HASH_BUFFERING, experimental code that adds a layer
of buffering in front of dkim_canonwrite() so the SHA hashing
functions are called less often.
LIBDKIM: Only call dkim_flush_blanks() when it will actually do
something.
LIBDKIM: Fix bug #SF1706530: Call EVP_cleanup() in dkim_close().
Suggested by Andy Fiddaman.
LIBDKIM: Inside _FFR_QUERY_CACHE, fix cursor operations when compiled
against very old versions of Sleepycat DB.
LIBDKIM: When opening the database with _FFR_QUERY_CACHE, make sure
the library is allowed to create the database.
0.6.5 2007/04/20
Further fixes in POPAUTH code for backward-compatibility with
older versions of Sleepycat DB.
Memory corruption fixes inside _FFR_MULTIPLE_KEYS. Reported
by S. Moonesamy of Eland Systems.
Re-implement _FFR_OMIT_HEADERS using the new libdkim option
(see below).
Return DKIM_STAT_SYNTAX from dkim_eoh() if an empty "d", "s" or "b"
tag is discovered on a signature.
Export most internal header lists so callers can use them.
Fix bug #SF1702708: Don't start in signing mode without at least
one key and selector specified. Reported by Andrey Chernov.
Feature request #SF1675359: Add _FFR_QUERY_CACHE, allowing optional
caching on-disk of key and policy records retrieved via DNS
to reduce the number of round trips to the nameserver.
Requires Sleepycat DB. Requested by Jim Popovitch.
Portability fixes for Solaris.
LIBDKIM: Enforce mandatory headers in dkim_eoh().
LIBDKIM: Add dkim_close() for library shutdown.
LIBDKIM: Add option DKIM_OPTS_SKIPHDRS to skip headers that should
not be signed or verified.
LIBDKIM: Initialize dkiml_fixedtime.
0.6.4 2007/04/16
Further fixes in POPAUTH code. Based on patches from John Merriam.
Modify the output of "-V" further so it also includes active code
options (as opposed to just FFRs).
When linked against libdk, get additional forensic data from
dk_geterror() whenever possible.
Changes to _FFR_MULTIPLE_KEYS: Add a domain field in the file,
and try a couple of filename extensions before giving up
when reading private keys.
Add more calls to dkim_error() for additional diagnostic information