Comment puis-NSS OpenSSL / Mozilla RSA et vérifier (fonctions PK11_Sign, PK11_Verify, PK11_VerifyRecover) travail?
-
16-10-2019 - |
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()
etPK11_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é?
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.