msys.validate.opendkim.verify
Name
msys.validate.opendkim.verify — Verify a DKIM signature
Synopsis
msys.validate.opendkim.verify(msg)
Description
This function verifies a DKIM signature and returns a DKIM handle to context-specific information about the message. Typically, you would pass the return value of this function to other functions such as msys.validate.opendkim.get_num_sigs and msys.validate.opendkim.get_sig.
This function requires the opendkim module.
Enable this function with the statement require('msys.validate.opendkim');.
Note
This function should only be invoked in the validate_data validation phase.
This function returns a DKIM handle to context-specific information about the message and the DKIM status DKIM_STAT.
The DKIM status DKIM_STAT can be one of the following values:
-
DKIM_STAT_OK– successful completion -
DKIM_STAT_BADSIG– signature did not match headers and body -
DKIM_STAT_NOSIG– no signature present -
DKIM_STAT_NOKEY– no key available for verifying -
DKIM_STAT_CANTVRFY– cannot get key for verifying -
DKIM_STAT_SYNTAX– message is not in valid syntax -
DKIM_STAT_NORESOURCE– resource unavailable -
DKIM_STAT_INTERNAL– internal error -
DKIM_STAT_REVOKED– signing key revoked -
DKIM_STAT_INVALID– invalid parameter(s) -
DKIM_STAT_NOTIMPLEMENT– function not implemented -
DKIM_STAT_KEYFAIL– key retrieval failed (try again later) -
DKIM_STAT_CBREJECT– callback requested message rejection -
DKIM_STAT_CBTRYAGAIN– callback cannot complete (try again later) -
DKIM_STAT_CBERROR– unspecified callback error
require("opendkim.dkim");
require("msys.validate.opendkim");
local mod = {};
function mod:validate_data(msg, accept, vctx)
local num = 0;
local stat;
local dkim_sig;
local dkim = msys.validate.opendkim.verify(msg);
num, stat = msys.validate.opendkim.get_num_sigs(dkim);
-- create loop controlled by num
if num > 0 then
for i = 0, num-1 do
dkim_sig = msys.validate.opendkim.get_sig(dkim, i);
-- now do something with the signature
local size = msys.validate.opendkim.get_sig_keysize(dkim_sig);
if size < 1024 then
...
end
end
end
return msys.core.VALIDATE_CONT;
end
msys.registerModule("test_opendkim", mod);
See Also
msys.validate.opendkim.get_sig_canons, msys.validate.opendkim.sign, msys.validate.opendkim.get_num_sigs, msys.validate.opendkim.get_sig, msys.validate.opendkim.get_sig_domain, msys.validate.opendkim.get_sig_selector, msys.validate.opendkim.get_sig_errorstr, msys.validate.opendkim.get_sig_flags, msys.validate.opendkim.get_sig_identity, msys.validate.opendkim.get_sig_keysize, msys.validate.opendkim.get_sig_signalg, msys.validate.opendkim.get_sig_hdrsigned