Hi,
On 12/14/2012 02:51 PM, Guillem Jover wrote:
>> This happens as Dpkg::Control::Hash skips until an empty line:
>>
>> 145 } elsif (m/^-----BEGIN PGP SIGNED MESSAGE/) {
>> 146 $expect_pgp_sig = 1;
>> 147 if ($$self->{'allow_pgp'}) {
>> 148 # Skip PGP headers
>> 149 while (<$fh>) {
>> 150 last if m/^$/;
>> 151 }
>>
>> However one can add trailing whitespace without breaking the signature
>> causing
>> the code to skip until the second section.
>
> Nice catch! I'm preparing a tiny fix, and I'm going over RFC4880 to see
> if there's any other issues to take care of. Will most probably ask the
> RT if they'd be fine including such fix for wheezy.
There are quite a lot of them. Other fun things to abuse include the
wrong markers in line 145 or dash-escaping text.
Sadly I'm not sure of a painless way to safely extract the data that gpg
(gpgv) actually checked the signature for: gpgv has no option for this
and with gpg you only get the output when using something other than
--verify, but then you have to check the output on --status-fd for the
existance of a valid signature :/
I did file a wishlist request against gnupg to provide an option that
outputs the data as well as checking the signature (#695855).
As I found this problem in quite a lot of packages, I'll probably write
a mail to d-devel later. Maybe somebody else has a better idea how to
address this problem.
Ansgar
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]