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, '');