Re: Serveur pi et Cancel-Key / Cancel-Lock

Liste des GroupesRevenir à fcu serveurs 
Sujet : Re: Serveur pi et Cancel-Key / Cancel-Lock
De : yamo (at) *nospam* beurdin.invalid (yamo')
Groupes : fr.comp.usenet.serveurs
Date : 20. Feb 2022, 11:17:07
Autres entêtes
Organisation : pasdenom.info Tests INN 2.6.4 raspbian Bullseye
Message-ID : <sut4f3$ava$1@backup.pasdenom.info>
References : 1 2 3 4 5 6 7 8 9 10
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.10.2
Salut,
Désolé, je réponds à un vieux post du 04/08/2021 à 09:39!
Mais j'ai enfin l'opportunité de tester les modifications proprement...
Gérald Niel a écrit dans le message <slrnsgkh1f.10v9.gerald.niel+spam@home.niel.me>
<http://al.howardknight.net/?STYPE=msgid&MSGI=%3Cslrnsgkh1f.10v9.gerald.niel%2Bspam%40home.niel.me%3E> :

https://home.gegeweb.org/rfc8315.html
 filter_nnrpd.pl pour ajouter les cancel-lock/key quand l'utilisateur
ou l'utilisatrice du serveur poste un article
Ok, j'ai enfin réussit à appliquer le sha256 (cf entêtes de ce post).

cleanfeed.local (si tu utilises cleanfeed) pour vérifier les clef et
décider quoi faire.
Je suis en train d'apporter les modifications.
Pour information, voici mes modifications sur les logs (pour avoir quelque chose de plus lisible dans INNReport).
Aux erreurs près de fins de ligne à cause du formatage du message...
###Cancel-Lock
# https://home.gegeweb.org/rfc8315.html
sub verify_cancel($$$) {
    my $r_hdr = shift || die;
    my $target = shift;
    my $descr = shift;
    my $headers = INN::head($target);
    if (!$headers){
            saveart('bad.cancel',"$descr of non-existing ID $target");
            return "$descr of non-existing ID";
    }
    my %headers;
    for my $line(split(/\s*\n/, $headers))    {
       if ($line =~ m/^([[:alnum:]-]+):\s+(.*)/) {
          $headers{$1} = $2;
       }
    }
    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);
       return verify_cancel_key($key, $lock, $target);
    } else {
     # -thh
     # no cancel-lock: go ahead and cancel anyway!
     INN::cancel($target);
    }
    return undef;
}
###Cancel-Lock
# https://home.gegeweb.org/rfc8315.html
sub verify_cancel_key($$$) {
    my $cancel_key = shift;
    my $cancel_lock = shift;
    my $msg = shift;
    $msg = '' unless(defined($msg));
    # -thh
    my $target = $msg;
    $msg = ' target=' . $msg;
    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+)/) {
         saveart('bad.cancel',"Invalid Cancel-Key syntax '$k'.$msg");
         INN::syslog('info', "Invalid Cancel-Key syntax '$k'.$msg");
         next;
       }
       my $key;
       if ($1 eq 'sha512') {
         $key = sha512_base64($2);
       }
       elsif ($1 eq 'sha256') {
         $key = sha256_base64($2);
       }
       elsif ($1 eq 'sha1') {
          $key = sha1_base64($2);
       }
       elsif ($1 eq 'md5') {
          $key = md5_base64($2);
       }
       $key = pad_b64digest($key);
#      $key = MIME::Base64::encode_base64($key, '');
       if (exists($lock{$key})) {
          INN::syslog('info', "Valid Cancel-Key $key found.$msg");
          # -thh
          # article is canceled now
          INN::cancel($target) if ($target);
          return undef;
       }
    }
    saveart('bad.cancel', "No Cancel-Key[$cancel_key] matches Cancel-Lock[$cancel_lock]$msg");
    INN::syslog('info',
       "No Cancel-Key[$cancel_key] matches Cancel-Lock[$cancel_lock]$msg"
    );
    return "No Cancel-Key matches Cancel-Lock.$msg";
}
--
Stéphane

Date Sujet#  Auteur
20 Feb 22 o Re: Serveur pi et Cancel-Key / Cancel-Lock1yamo'

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal