Comment puis-NSS OpenSSL / Mozilla RSA et vérifier (fonctions PK11_Sign, PK11_Verify, PK11_VerifyRecover) travail?

StackOverflow https://stackoverflow.com/questions/4756018

Question

J'ai mes clés publiques RSA et privées (tous p, q, e, n, d) au format PEM. Je suis curieux de savoir:

  • Comment PK11_Sign(), PK11_Verify() et PK11_VerifyRecover() ( de la bibliothèque NSS OpenSSL / Mozilla ) travailler avec RSA?
  • Comment le rembourrage est appliqué au message d'entrée à signer?

Le contexte de ma question est la suivante: je l'ai vu PK11_Sign () ajoute un peu de rembourrage à mes données d'entrée lors de la signature. Par exemple (compte tenu de la taille de clé de 162 bits):

my input = 31323334353036373839
padded input = 1FFFFFFFFFFFFFFFF0031323334353036373839

Je voudrais savoir:

  • Quel est le nom de ce système de remplissage et des pointeurs sur la façon dont cela fonctionne?
  • Quel est le système de remplissage par défaut pour les fonctions ci-dessus mentionnées OpenSSL? Par exemple, si je joue « openssl rsautl -in input.txt -inkey mykey.pem -out signed.txt », quel régime rembourrage sera utilisé?
Était-ce utile?

La solution

  • PK11_Sign etc. utilise PKCS # 1 signatures v.1.5, qui comprend le rembourrage que vous mentionnez.

  • Le système de remplissage fait partie de l'algorithme appelé EMSA-PKCS1-v1_5-ENCODE. Je ne crois pas qu'il a un nom, bien qu'il puisse être appelé officieusement « PKCS # 1 padding signature v.1.5 ». Il est défini dans PKCS # 1 norme .

  • Selon la documentation la valeur par défaut pour openssl rsautl est d'utiliser PKCS # 1 signature v.1.5, ce qui implique ce remplissage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top