Add header 'a' to AR field
This commit is contained in:
@@ -2,17 +2,18 @@ TODO
|
|||||||
|
|
||||||
0.9.1 (Alpha)
|
0.9.1 (Alpha)
|
||||||
Sign rsa/ed25519 implemented verified
|
Sign rsa/ed25519 implemented verified
|
||||||
Verify rsa/ed25519 implemented
|
Verify rsa/ed25519 implemented verified
|
||||||
Domain implemented verified
|
Domain implemented verified
|
||||||
KeyFile implemented verified
|
KeyFile implemented verified
|
||||||
KeyFileEd25519 implemented verified
|
KeyFileEd25519 implemented verified
|
||||||
Mode implemented
|
Mode implemented verified
|
||||||
PidFile implemented verified
|
PidFile implemented verified
|
||||||
Selector implemented verified
|
Selector implemented verified
|
||||||
Socket implemented verified
|
Socket implemented verified
|
||||||
Syslog implemented partly tested
|
Syslog implemented verified
|
||||||
UMask implemented
|
UMask implemented
|
||||||
UserID implemented verified
|
UserID implemented verified
|
||||||
|
DKIM 'a' in AR implemented verified
|
||||||
|
|
||||||
0.9.5 (Beta)
|
0.9.5 (Beta)
|
||||||
dkimpy-milter.8
|
dkimpy-milter.8
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ class dkimMilter(Milter.Base):
|
|||||||
h = authres.AuthenticationResultsHeader(authserv_id = self.receiver,
|
h = authres.AuthenticationResultsHeader(authserv_id = self.receiver,
|
||||||
results=self.arresults)
|
results=self.arresults)
|
||||||
if milterconfig.get('Syslog'):
|
if milterconfig.get('Syslog'):
|
||||||
syslog.syslog(h)
|
syslog.syslog(str(h))
|
||||||
name,val = str(h).split(': ',1)
|
name,val = str(h).split(': ',1)
|
||||||
self.addheader(name,val,0)
|
self.addheader(name,val,0)
|
||||||
return Milter.CONTINUE
|
return Milter.CONTINUE
|
||||||
@@ -196,14 +196,14 @@ class dkimMilter(Milter.Base):
|
|||||||
def check_dkim(self,txt):
|
def check_dkim(self,txt):
|
||||||
res = False
|
res = False
|
||||||
conf = self.conf
|
conf = self.conf
|
||||||
d = dkim.DKIM(txt)
|
|
||||||
for y in range(self.has_dkim): # Verify _ALL_ the signatures
|
for y in range(self.has_dkim): # Verify _ALL_ the signatures
|
||||||
|
d = dkim.DKIM(txt)
|
||||||
try:
|
try:
|
||||||
res = d.verify(idx=y)
|
res = d.verify(idx=y)
|
||||||
if res:
|
if res:
|
||||||
self.dkim_comment = 'Good %d bit signature.' % d.keysize
|
self.dkim_comment = 'Good {0} bit {1} signature.'.format(d.keysize, d.signature_fields.get(b'a'))
|
||||||
else:
|
else:
|
||||||
self.dkim_comment = 'Bad %d bit signature.' % d.keysize
|
self.dkim_comment = 'Bad {0} bit {1} signature.'.format(d.keysize, d.signature_fields.get(b'a'))
|
||||||
except dkim.DKIMException as x:
|
except dkim.DKIMException as x:
|
||||||
self.dkim_comment = str(x)
|
self.dkim_comment = str(x)
|
||||||
if milterconfig.get('Syslog'):
|
if milterconfig.get('Syslog'):
|
||||||
@@ -214,6 +214,7 @@ class dkimMilter(Milter.Base):
|
|||||||
syslog.syslog("check_dkim: {0}".format(x))
|
syslog.syslog("check_dkim: {0}".format(x))
|
||||||
self.header_i = d.signature_fields.get(b'i')
|
self.header_i = d.signature_fields.get(b'i')
|
||||||
self.header_d = d.signature_fields.get(b'd')
|
self.header_d = d.signature_fields.get(b'd')
|
||||||
|
self.header_a = d.signature_fields.get(b'a')
|
||||||
if res:
|
if res:
|
||||||
if milterconfig.get('Syslog'):
|
if milterconfig.get('Syslog'):
|
||||||
syslog.syslog('DKIM: Pass ({0})'.format(d.domain))
|
syslog.syslog('DKIM: Pass ({0})'.format(d.domain))
|
||||||
@@ -230,7 +231,7 @@ class dkimMilter(Milter.Base):
|
|||||||
result = 'fail'
|
result = 'fail'
|
||||||
self.arresults.append(
|
self.arresults.append(
|
||||||
authres.DKIMAuthenticationResult(result=result,
|
authres.DKIMAuthenticationResult(result=result,
|
||||||
header_i = self.header_i, header_d = self.header_d,
|
header_i = self.header_i, header_d = self.header_d, header_a = self.header_a,
|
||||||
result_comment = self.dkim_comment)
|
result_comment = self.dkim_comment)
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user