Add header 'a' to AR field

This commit is contained in:
Scott Kitterman
2018-02-17 03:52:55 -05:00
parent 7b8fccf801
commit bd46a7bcc7
2 changed files with 10 additions and 8 deletions
+4 -3
View File
@@ -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
+6 -5
View File
@@ -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