filter_innd: Add missing module. master
authorThomas Hochstein <thh@thh.name>
Sat, 20 May 2023 13:49:46 +0000 (15:49 +0200)
committerThomas Hochstein <thh@thh.name>
Sat, 20 May 2023 13:49:46 +0000 (15:49 +0200)
Signed-off-by: Thomas Hochstein <thh@thh.name>
filter/cleanfeed.local
filter/filter_nnrpd.pl

index eb23db4..9f1fe0f 100644 (file)
@@ -1,7 +1,8 @@
-# vim: set syntax=perl ts=4 ai si:
+# vim: set tabstop=4 shiftwidth=4 expandtab syntax=perl:
 
 use MIME::Base64();
-use Digest::SHA1();
+use Digest::SHA();
+use Digest::MD5();
 
 #
 # local_filter_cancel
@@ -36,10 +37,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);
@@ -65,20 +69,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::SHA1::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, '');
index a66425b..738424c 100644 (file)
@@ -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
+}
This page took 0.013094 seconds and 4 git commands to generate.