Bug fix: See v1.2 HLS lines
total_sigs = read_all_signatures(); // v1.1 HLS
sort_signatures_into_preferred_order();
good_sig = false;
something_wrong[] = {nope}; // v1.1 HLS
foreach sig in signatures {
//-------------------------
// v1.1 HLS
something_wrong[sig] = malformed || missing key || expired key || ..
if (something_wrong[sig])
continue;
//-------------------------
if (good_sig = check_sig_ok(sig))
break; // from foreach
}
// v1.1 HLS
not_quite_kosher = false;
foreach wrong in something_wrong
if (wrong != nope) {
not_quite_kosher = true;
break;
}
}
//
if (good_sig)
if not_quite_kosher and LocalPolicy_RejectWrong then // v1.2 HLS
reject(something_wrong[]); // v1.1 HLS
else
process the message with signature(something_wrong[]);
else
if (total_sigs and LocalPolicy_RejectWrong) // v1.2 HLS
reject(something_wrong[]); // v1.1 HLS
else
process the message as though there were no signature
--
Hector Santos, Santronics Software, Inc.
http://www.santronics.com
_______________________________________________
NOTE WELL: This list operates according to
http://dkim.org/ietf-list-rules.html