Je dois signer numériquement une chaîne en utilisant l'algorithme SHA-1 avec RSA en utilisant le remplissage PKCS # 1. J'ai téléchargé Turbo Power Lockbox.Lecture de la clé privée au format PEM avec LockBox
La clé privée que j'ai est au format PEM et a été créé en utilisant OpenSSL:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -sha1 -subj "/C=US/ST=CA/L=Mountain View/CN=www.mycompany.com" -keyout myrsakey.pem -out c:\temp\myrsacert.pem
Voici à quoi il ressemble:
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDFzvqdAEQn9MrSLTNua5SOxshV/8jQIf3qpfunBXa9SVdm4NJw
lY7iYpwivw7EdMlBe4FmezN9LGwyIokcUSt4KUdWmA8l4Lm5rcuDzzfmlVWP7y+j
0GKG2XCp2JwHpW4Q5WiMgcAnCMD/gbDustfz3utxQhLNBdWp2MlrEH2/rQIDAQAB
AoGAUMZmnHohWtehgxYmLG8N6QfPgx7CWAupbop9KwUWKdGrOT2RcZwBDv0JmT6/
vwWZsX3Hp5ujuPfM7uQfbUrQHrcruUg/fPY8YXcWgNfOytGpaN/XKxfy2g2Cp8mE
4yoDR2QW8jo25ZH1q1cJ3jMyX9xlXaSZm7qtaoiDydE6roECQQDxqtP2tMEZ2FmQ
2o4T5Zv7P4II2PrLq+9IP0ASCZ2VzLxm2Pk6kxjnPjZ2oHG8pUQHvMz0m8Br3BY8
X1BpXrj9AkEA0YpBH7qm/nbG6YjxKAL3PbxXUJ06T/ByLjfstfCrT3LxDeklfWJb
n/V8ahRcKPLajdbKAuWvJA5NvjeJPi34cQJAZ+vD1nUIDKsiaM3zBs9X8gTvUAqu
XmMDNJguXxNPdplh8wAevHeA3/+6v+xivHJ8/K7Nm+pWJouv7Co4k/ctqQJASV4y
TUzKmgC2xyCG5+6Z6Ujf/b7/ouva3un//PiG0yu40ZkX4l4lHM4UwQPd/QyDj/Rs
CTWo7GQBvp+tc1MfUQJBALnQnNOIIkvwIK+1J6iLZgh7GurbCPMrH8nSn8SxkfBe
qq5JWo31LQAUNDW5ntG0qHZQpx6zm2MzIlt2NgOLf4s=
-----END RSA PRIVATE KEY-----
Si je ne me trompe pas, le composant que je veux utiliser est TLbRSAKey. J'ai donc essayé de créer un objet clé et de le lire à partir du fichier:
var
mPrivateKey: TLbRSAKey;
begin
mPrivateKey := TLbRSAKey.Create(aks1024);
mPrivateKey.LoadFromFile('C:\temp\myrsakey.pem');
Sur le LoadFromFile j'obtiens une erreur « non valide RSA Key ». Qu'est-ce que je fais mal? Est-ce que Lockbox supporte les clés au format PEM? Aucun des exemples n'illustre; tout semble être au format ASN
Juste [effusion de vélo] (http://bikeshed.com/), mais * "CN = www.mycompany.com "* est l'ancienne façon de le faire. Il peut causer beaucoup de problèmes aujourd'hui, même si vous le signez avec votre propre CA (c'est-à-dire, ce n'est pas autosigné). Voir [Comment créer un certificat auto-signé avec openssl?] (Http://stackoverflow.com/q/10175812/608639). Concentrez-vous sur l'utilisation des noms alternatifs du sujet (et non sur la partie auto-signée). – jww