Bonjour,
j'écris actuellement un programme pour lire un fichier de données normalisé.
Une partie des données du fichier est signé par le procédé détaillé ci-dessous :
6.1. Génération de signatures
La génération de signatures de données par l'équipement respectera le schéma de signature avec appendice, défini dans le document de référence PKCS1 avec la fonction de hachage SHA-1:
Signature = EQT.SK[′00′ || ′01′ || PS || ′00′ || DER[SHA-1(donnéesData)]
PS = Chaîne d'octets de remplissage de valeur ′FF′ dont la longueur équivaut à 128.
DER(SHA-1(M)) correspond à l'encodage de l'ID de l'algorithme pour la fonction de hachage et la valeur de hachage, dans une valeur ASN.1 de type DigestInfo (règles d'encodage distinctes):
′30′||′21′||′30′||′09′||′06′||′05′||′2B′||′0E′||′03′||′02′||′1A′||′05′||′00′||′04′|| ′14′|| valeur de hachage.
Que signifie ce charabia ?
J'aimerais vérifier si mes données sont correcte, je suppose qu'il faut donc que je compare la signature donnée avec une signature que je génère moi-même à l'aide des données du fichier.
La fonction hashlib.sha1 ne me sors que des signatures longues de 20 bits, alors que celle contenue dans le fichier en fait 128...
Y-a-t-il une lib qui soit plus appropriée ?