J'ai fait une impl=E9mentation rapide de l'algo HMAC en perl. Une petite
relecture serait la bienvenue, si certains d'entre vous ont 2 minutes
=E0 y consacrer.....
Merci,
Julien
----------------------
#! /usr/bin/perl -w
use strict;
##################################
## impl=E9mentation HMAC RFC 2104 ##
## j. vehent - mai 2008 ##
##################################
use Digest::SHA1 qw(sha1);
use MIME::Base64;
my ($K, $text, $H); # 'K' the key, 'text' the data to compute the hmac
on, 'H' the HMAC
my $B =3D 64; # block size in bytes
print "\ninput HMAC key in base 64 form -> ";
$K =3D decode_base64(<STDIN>);
print "\ninput ASCII data to compute HMAC on -> ";
$text =3D <STDIN>;
# if key length > block size, reset key to sha1(key)
$K =3D sha1($K) if length($K) > $B;
# ipad =3D key xor '0x36' b times
my $k_ipad =3D $K ^ (chr(0x36) x $B);
# opad =3D key xor '0x5c' b times
my $k_opad =3D $K ^ (chr(0x5c) x $B);
# HMAC =3D sha1((key xor '0x5c'*B) || sha1((key xor '0x36'*B) || text))
# with || is concatenation
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Benoit Izac
Bonjour,
le 14/05/2008 à 13:08, Julien Vehent a écrit dans le message :
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite relecture serait la bienvenue, si certains d'entre vous ont 2 minutes à y consacrer.....
Je ne connais pas HMAC mais ce qui est me choque dans ton programme c'est qu'il ne fonctionne que pour un texte ($text) d'une ligne, c'est voulu ?
-- Benoit Izac
Bonjour,
le 14/05/2008 à 13:08, Julien Vehent a écrit dans le message
<95dcbcd5-b6ca-48e7-b59b-095ab4fcaa59@24g2000hsh.googlegroups.com> :
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite
relecture serait la bienvenue, si certains d'entre vous ont 2 minutes
à y consacrer.....
Je ne connais pas HMAC mais ce qui est me choque dans ton programme
c'est qu'il ne fonctionne que pour un texte ($text) d'une ligne, c'est
voulu ?
le 14/05/2008 à 13:08, Julien Vehent a écrit dans le message :
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite relecture serait la bienvenue, si certains d'entre vous ont 2 minutes à y consacrer.....
Je ne connais pas HMAC mais ce qui est me choque dans ton programme c'est qu'il ne fonctionne que pour un texte ($text) d'une ligne, c'est voulu ?
-- Benoit Izac
Benoit Izac
Bonjour,
le 14/05/2008 à 13:08, Julien Vehent a écrit dans le message :
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite relecture serait la bienvenue, si certains d'entre vous ont 2 minutes à y consacrer.....
Je ne connais pas HMAC mais ce qui est me choque dans ton programme c'est qu'il ne fonctionne que pour un texte ($text) d'une ligne, c'est voulu ?
J'ajouterai que ce que tu veux faire existe déjà : <http://cpan.uwinnipeg.ca/dist/Digest-HMAC>.
-- Benoit Izac
Bonjour,
le 14/05/2008 à 13:08, Julien Vehent a écrit dans le message
<95dcbcd5-b6ca-48e7-b59b-095ab4fcaa59@24g2000hsh.googlegroups.com> :
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite
relecture serait la bienvenue, si certains d'entre vous ont 2 minutes
à y consacrer.....
Je ne connais pas HMAC mais ce qui est me choque dans ton programme
c'est qu'il ne fonctionne que pour un texte ($text) d'une ligne, c'est
voulu ?
J'ajouterai que ce que tu veux faire existe déjà :
<http://cpan.uwinnipeg.ca/dist/Digest-HMAC>.
le 14/05/2008 à 13:08, Julien Vehent a écrit dans le message :
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite relecture serait la bienvenue, si certains d'entre vous ont 2 minutes à y consacrer.....
Je ne connais pas HMAC mais ce qui est me choque dans ton programme c'est qu'il ne fonctionne que pour un texte ($text) d'une ligne, c'est voulu ?
J'ajouterai que ce que tu veux faire existe déjà : <http://cpan.uwinnipeg.ca/dist/Digest-HMAC>.
-- Benoit Izac
Sylvain SF
Julien Vehent wrote on 14/05/2008 13:08:
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite relecture serait la bienvenue, si certains d'entre vous ont 2 minutes à y consacrer.....
pour une relecture de Perl ce n'est pas le bon groupe.
juste 2 points: - HMAC est générique et n'a aucune raison d'être lié à SHA1. - la RFC 2104 contient des vecteurs de tests, valider ton code avec est plus pertinent que d'attendre des relectures.
Sylvain.
Julien Vehent wrote on 14/05/2008 13:08:
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite
relecture serait la bienvenue, si certains d'entre vous ont 2 minutes
à y consacrer.....
pour une relecture de Perl ce n'est pas le bon groupe.
juste 2 points:
- HMAC est générique et n'a aucune raison d'être lié à SHA1.
- la RFC 2104 contient des vecteurs de tests, valider ton code
avec est plus pertinent que d'attendre des relectures.
J'ai fait une implémentation rapide de l'algo HMAC en perl. Une petite relecture serait la bienvenue, si certains d'entre vous ont 2 minutes à y consacrer.....
pour une relecture de Perl ce n'est pas le bon groupe.
juste 2 points: - HMAC est générique et n'a aucune raison d'être lié à SHA1. - la RFC 2104 contient des vecteurs de tests, valider ton code avec est plus pertinent que d'attendre des relectures.
Sylvain.
Julien Vehent
On 14 mai, 22:08, "Sylvain SF" wrote:
juste 2 points: - HMAC est générique et n'a aucune raison d'être lié à SHA1.
Exact, mais mon implémentation se limitera à SHA1, ce qui correspond à un besoin particulier.
- la RFC 2104 contient des vecteurs de tests, valider ton code avec est plus pertinent que d'attendre des relectures.
Merci pour le pointeur, j'étais passé à coté. Je suis en train de corriger le tout.
On 14 mai, 22:08, "Sylvain SF" <sylv...@boiteaspam.info> wrote:
juste 2 points:
- HMAC est générique et n'a aucune raison d'être lié à SHA1.
Exact, mais mon implémentation se limitera à SHA1, ce qui correspond à
un besoin particulier.
- la RFC 2104 contient des vecteurs de tests, valider ton code
avec est plus pertinent que d'attendre des relectures.
Merci pour le pointeur, j'étais passé à coté. Je suis en train de
corriger le tout.