Package: python-dkim
Version: 0.5.3-1
Severity: important
Tags: patch

Hi,

it seems that python-dkim handles folded headers incorrectly.

In partitular, attached tstmail-1 verifies correctly while tstmail-2
does not.

The diff between these is:
 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:sender:from:date:x-google-sender-auth:message-id
        :subject:to:content-type;
        bh=NRDGmXYX648Rm6cs06aAQIE77gu68nsSHYB4kAMm7QQ=;
        b=VaN3KmNPlU1uSNproy8wF+6qwTUKEcyzanoPSo/u8P0p8rtHgQpOW5/nJ+/ExQ9jKN
        FWTyZ9PLecg/0De0QYV18GQovYb3PVUCDHS7dYzfWp072lFPAhISUancFc30amzRPXcy
        J2lnvgoPcFuqDh5tLPchz8LdeIL0hMr2Xt+xEibHftqYT0JRXX4LXkZdO/b/i825qMtL
        W51wBB0V6L1ZU156A9cZWQWvwnQ/lV7PV7AwRqGbIESguRLfCbM+UIAGoCR8QtTO0lkY
-       bGqPQucn+1eZZUNsEJAWFI6eo2MmxY/FABEURGYAukaTg13UC9W+O6kGPH5iS5aRpAAT
-       eKbQ==
+       bGqPQucn+1eZZUNsEJAWFI6eo2MmxY/FABEURGYAukaTg13UC9W+O6kGPH5iS5aRpAAT 
eKbQ==


} weasel@valiant:~/tmp/dkimpy-0.5.3$ ./dkimverify.py < ~/tmp/tstmail-1
} signature ok
} weasel@valiant:~/tmp/dkimpy-0.5.3$ ./dkimverify.py < ~/tmp/tstmail-2
} signature verification failed


I think the problem is due to an incorrect regex for FWS in
dkim/__init__.py.  The followed patch fixes ti:
--- dkim/__init__.py.orig       2013-06-09 12:44:56.036635416 +0200
+++ dkim/__init__.py    2013-06-09 12:46:36.396127067 +0200
@@ -118,7 +118,8 @@
         lastindex[h] = i
     return sign_headers
 
-FWS = r'(?:\r?\n\s+)?'
+# FWS  =  ([*WSP CRLF] 1*WSP) /  obs-FWS ; Folding white space  [RFC5322]
+FWS = r'(?:(?:\s*\r?\n)?\s+)?'
 RE_BTAG = 
re.compile(r'([;\s]b'+FWS+r'=)(?:'+FWS+r'[a-zA-Z0-9+/=])*(?:\r?\n\Z)?')
 
 def hash_headers(hasher, canonicalize_headers, headers, include_headers,


That is, FWS is one or more whitespaces with one *optional* linebreak.

Maybe this could even be fixed in Debian stable?

Cheers,
weasel
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:sender:from:date:x-google-sender-auth:message-id
        :subject:to:content-type;
        bh=NRDGmXYX648Rm6cs06aAQIE77gu68nsSHYB4kAMm7QQ=;
        b=VaN3KmNPlU1uSNproy8wF+6qwTUKEcyzanoPSo/u8P0p8rtHgQpOW5/nJ+/ExQ9jKN
        FWTyZ9PLecg/0De0QYV18GQovYb3PVUCDHS7dYzfWp072lFPAhISUancFc30amzRPXcy
        J2lnvgoPcFuqDh5tLPchz8LdeIL0hMr2Xt+xEibHftqYT0JRXX4LXkZdO/b/i825qMtL
        W51wBB0V6L1ZU156A9cZWQWvwnQ/lV7PV7AwRqGbIESguRLfCbM+UIAGoCR8QtTO0lkY
        bGqPQucn+1eZZUNsEJAWFI6eo2MmxY/FABEURGYAukaTg13UC9W+O6kGPH5iS5aRpAAT
        eKbQ==
MIME-Version: 1.0
Sender: kaner.m...@gmail.com
Received: by 10.42.92.137 with HTTP; Sun, 9 Jun 2013 02:37:02 -0700 (PDT)
From: Christian Fromme <c...@strace.org>
Date: Sun, 9 Jun 2013 11:37:02 +0200
X-Google-Sender-Auth: ZkDaYkXZHozJZyNGgvWFlv78IRY
Message-ID: <cabop5ezogosxqxv1puhczdf-w3xpofpsbsm8o8lx5crx-eq...@mail.gmail.com>
Subject: DKIM test mail #1
To: get...@gettor.torproject.org
Content-Type: text/plain; charset=ISO-8859-1

Hello, DKIM

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:sender:from:date:x-google-sender-auth:message-id
        :subject:to:content-type;
        bh=NRDGmXYX648Rm6cs06aAQIE77gu68nsSHYB4kAMm7QQ=;
        b=VaN3KmNPlU1uSNproy8wF+6qwTUKEcyzanoPSo/u8P0p8rtHgQpOW5/nJ+/ExQ9jKN
        FWTyZ9PLecg/0De0QYV18GQovYb3PVUCDHS7dYzfWp072lFPAhISUancFc30amzRPXcy
        J2lnvgoPcFuqDh5tLPchz8LdeIL0hMr2Xt+xEibHftqYT0JRXX4LXkZdO/b/i825qMtL
        W51wBB0V6L1ZU156A9cZWQWvwnQ/lV7PV7AwRqGbIESguRLfCbM+UIAGoCR8QtTO0lkY
        bGqPQucn+1eZZUNsEJAWFI6eo2MmxY/FABEURGYAukaTg13UC9W+O6kGPH5iS5aRpAAT 
eKbQ==
MIME-Version: 1.0
Sender: kaner.m...@gmail.com
Received: by 10.42.92.137 with HTTP; Sun, 9 Jun 2013 02:37:02 -0700 (PDT)
From: Christian Fromme <c...@strace.org>
Date: Sun, 9 Jun 2013 11:37:02 +0200
X-Google-Sender-Auth: ZkDaYkXZHozJZyNGgvWFlv78IRY
Message-ID: <cabop5ezogosxqxv1puhczdf-w3xpofpsbsm8o8lx5crx-eq...@mail.gmail.com>
Subject: DKIM test mail #1
To: get...@gettor.torproject.org
Content-Type: text/plain; charset=ISO-8859-1

Hello, DKIM

Reply via email to