From 405757ef497a94f5b3a971cfd9df741d5c5602a6 Mon Sep 17 00:00:00 2001 From: William Grant Date: Wed, 9 Mar 2011 20:49:45 +1100 Subject: [PATCH] Use the new EMSA-PKCS1-v1_5 function in verify() too. --- dkim/__init__.py | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/dkim/__init__.py b/dkim/__init__.py index cb9b61e..216fc8e 100644 --- a/dkim/__init__.py +++ b/dkim/__init__.py @@ -606,23 +606,10 @@ def verify(message, debuglog=None, dnsfunc=dnstxt): d = h.digest() if debuglog is not None: print >>debuglog, "verify digest:", " ".join("%02x" % ord(x) for x in d) - - dinfo = asn1_build( - (SEQUENCE, [ - (SEQUENCE, [ - (OBJECT_IDENTIFIER, hashid), - (NULL, None), - ]), - (OCTET_STRING, d), - ]) - ) - if debuglog is not None: - print >>debuglog, "dinfo:", " ".join("%02x" % ord(x) for x in dinfo) - if len(dinfo)+3 > modlen: - if debuglog is not None: - print >>debuglog, "Hash too large for modulus" + try: + sig2 = EMSA_PKCS1_v1_5_encode(d, modlen, hashid) + except ParameterError: return False - sig2 = "\x00\x01"+"\xff"*(modlen-len(dinfo)-3)+"\x00"+dinfo if debuglog is not None: print >>debuglog, "sig2:", " ".join("%02x" % ord(x) for x in sig2) print >>debuglog, sig['b']