From 121fcbc15fec7c04c43689f38ccbbbac2862a71e Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Sun, 23 Feb 2014 19:54:29 +0100 Subject: [PATCH 1/4] Changes for Debian Wheezy. Replace Digest::SHA1 with Digest::SHA. Installation of install libdigest-sha-perl is necessary. Signed-off-by: Thomas Hochstein --- filter/cleanfeed.local | 4 ++-- filter/filter_nnrpd.pl | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/filter/cleanfeed.local b/filter/cleanfeed.local index eb23db4..3d37c7d 100644 --- a/filter/cleanfeed.local +++ b/filter/cleanfeed.local @@ -1,7 +1,7 @@ # vim: set syntax=perl ts=4 ai si: use MIME::Base64(); -use Digest::SHA1(); +use Digest::SHA(); # # local_filter_cancel @@ -77,7 +77,7 @@ sub verify_cancel_key($$$) { my $key; if ($1 eq 'sha1') { - $key = Digest::SHA1::sha1($2); } + $key = Digest::SHA::sha1($2); } elsif ($1 eq 'md5') { $key = Digest::MD5::md5($2); } diff --git a/filter/filter_nnrpd.pl b/filter/filter_nnrpd.pl index a66425b..738424c 100644 --- a/filter/filter_nnrpd.pl +++ b/filter/filter_nnrpd.pl @@ -2,7 +2,7 @@ # Do any initialization steps. # use Digest::MD5 qw(md5_base64); -use Digest::SHA1(); +use Digest::SHA(); use Digest::HMAC_SHA1(); use MIME::Base64(); @@ -25,7 +25,7 @@ sub filter_post { elsif (exists( $hdr{"Supersedes"} )) { my $key = calc_cancel_key($user, $hdr{"Supersedes"}); add_cancel_item(\%hdr, 'Cancel-Key', $key); - } + } return $rval; } @@ -48,6 +48,6 @@ sub calc_cancel_key($$) { sub add_cancel_lock($$) { my ( $r_hdr, $user ) = @_; my $key = calc_cancel_key($user, $r_hdr->{'Message-ID'}); - my $lock = MIME::Base64::encode(Digest::SHA1::sha1($key), ''); + my $lock = MIME::Base64::encode(Digest::SHA::sha1($key), ''); add_cancel_item($r_hdr, 'Cancel-Lock', $lock); -} \ No newline at end of file +} -- 2.20.1 From 0ed9a8166df528d403e3ad998e583224947b72ae Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Sat, 20 May 2023 15:32:12 +0200 Subject: [PATCH 2/4] filter_innd: Correctly read folded headers. Signed-off-by: Thomas Hochstein --- filter/cleanfeed.local | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/filter/cleanfeed.local b/filter/cleanfeed.local index 3d37c7d..ef678c1 100644 --- a/filter/cleanfeed.local +++ b/filter/cleanfeed.local @@ -1,4 +1,4 @@ -# vim: set syntax=perl ts=4 ai si: +# vim: set tabstop=4 shiftwidth=4 expandtab syntax=perl: use MIME::Base64(); use Digest::SHA(); @@ -36,10 +36,13 @@ sub verify_cancel($$$) { for my $line(split(/\s*\n/, $headers)) { if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) { $headers{$1} = $2; + $lastkey = $1; + } elsif ($line =~ m/^\s+(.*)/ and defined($lastkey)) { + $headers{$lastkey} .= ' ' . $1; } } - my $lock = $headers{'Cancel-Lock'}; + if (defined($lock)) { my $key = $r_hdr->{'Cancel-Key'} || return "$descr of $target without Cancel-Key"; #return verify_cancel_key($key, $lock, ' target=' . $target); -- 2.20.1 From 57c4ee5c87591bffaa97b8c475360dca2ba3060e Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Sat, 20 May 2023 15:33:16 +0200 Subject: [PATCH 3/4] filter_innd: Add sha256/sha512 for Cancel-Lock/Key. Signed-off-by: Thomas Hochstein --- filter/cleanfeed.local | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/filter/cleanfeed.local b/filter/cleanfeed.local index ef678c1..0cddd85 100644 --- a/filter/cleanfeed.local +++ b/filter/cleanfeed.local @@ -68,20 +68,24 @@ sub verify_cancel_key($$$) { my %lock; for my $l(split(/\s+/, $cancel_lock)) { - next unless($l =~ m/^(sha1|md5):(\S+)/); + next unless($l =~ m/^(sha512|sha256|sha1|md5):(\S+)/); $lock{$2} = $1; } for my $k(split(/\s+/, $cancel_key)) { - unless($k =~ m/^(sha1|md5):(\S+)/) { + unless($k =~ m/^(sha512|sha256|sha1|md5):(\S+)/) { INN::syslog('notice', "Invalid Cancel-Key syntax '$k'.$msg"); next; } my $key; - if ($1 eq 'sha1') { - $key = Digest::SHA::sha1($2); } - elsif ($1 eq 'md5') { + if ($1 eq 'sha512') { + $key = Digest::SHA::sha512($2); + } elsif ($1 eq 'sha256') { + $key = Digest::SHA::sha256($2); + } elsif($1 eq 'sha1') { + $key = Digest::SHA::sha1($2); + } elsif ($1 eq 'md5') { $key = Digest::MD5::md5($2); } $key = MIME::Base64::encode_base64($key, ''); -- 2.20.1 From 15e80da5803e79b9b9620e0e7801c1bc43841c68 Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Sat, 20 May 2023 15:49:46 +0200 Subject: [PATCH 4/4] filter_innd: Add missing module. Signed-off-by: Thomas Hochstein --- filter/cleanfeed.local | 1 + 1 file changed, 1 insertion(+) diff --git a/filter/cleanfeed.local b/filter/cleanfeed.local index 0cddd85..9f1fe0f 100644 --- a/filter/cleanfeed.local +++ b/filter/cleanfeed.local @@ -2,6 +2,7 @@ use MIME::Base64(); use Digest::SHA(); +use Digest::MD5(); # # local_filter_cancel -- 2.20.1