Je reçois des erreurs de décodage de la clé privée à l'aide du mot de passe de la clé privée entré dans ma classe C#. Je suppose que le problème est dû au fait que la clé est:Clé privée de décodage C# Bouncy Castle
- Lecture à partir d'un fichier texte comportant des caractères de retour à la ligne.
- La clé privée n'a pas été créée à l'aide de cette bibliothèque, donc je ne la décode peut-être pas correctement.
- On ne sait pas quel est le remplissage du système qui a généré cette clé (en particulier, il est généré à partir d'une librairie Ruby Security).
L'exception est lancée
Org.BouncyCastle.Crypto.InvalidCipherTextException
avec le message
bloc padcorrompu
passe en ligne object privateKeyObject = pemReader.ReadObject();
Voici une clé privée échantillon fourni pour moi:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,C7E12029C6ED8D89
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
-----END RSA PRIVATE KEY-----
est ici le mot de passe clé privée:
SPH?!(C7ryh~juR>
Voici le code:
private readonly string _pubKey;
private readonly string _privateKey;
private readonly string _privateKeyPass;
public RSAKeyEncryption(string pubKey, string privateKey, string privateKeyPass)
{
_pubKey = pubKey;
_privateKey = privateKey;
_privateKeyPass = privateKeyPass;
}
private AsymmetricCipherKeyPair DecodePrivateKey()
{
TextReader textReader = new StringReader(_privateKey);
PemReader pemReader = new PemReader(textReader, new PasswordFinder(_privateKeyPass));
object privateKeyObject = pemReader.ReadObject();
AsymmetricCipherKeyPair keyPair = (AsymmetricCipherKeyPair)privateKeyObject;
return keyPair;
}
J'ai essayé d'afficher votre clé avec 'openssl pkey -in key.pem' et j'ai obtenu' impossible de charger la clé'. Je suppose que vous avez un caractère Unicode dans votre mot de passe. Si possible, vous pouvez essayer un pur mot de passe 'ASCII' où tous les caractères ont des codes entre 0x20 et 0x7E. –
@AxelKemper désolé, la clé est SPH?! (C7ryh ~ juR> – blgrnboy
Avec la clé 'SPH?! (C7ryh ~ juR>', openssl peut charger votre clé sans message d'erreur –