Ich versuche (aber scheitert), eine Methode zu erstellen, die einen AsymmetricKeyParameter
von einem PEM-codierten privaten Schlüssel erstellt. Wie kann ich diese Methode vervollständigen?PEM-codierten privaten RSA-Schlüssel in AsymmetricKeyParameter konvertieren
Es scheint, dass eine ältere Version von BouncyCastle
eine pemReader.ReadObject()
Methode hatte, deren Ergebnisse gegossen werden könnten, aber das existiert nicht mehr.
Ich habe verschiedene Kombinationen ausprobiert die Verwendung PrivateKeyFactory
, PrivateKeyInfo
, Asn1Object
und vielleicht 10 andere Arten, aber alle an einem gewissen Punkt eine Ausnahme werfen.
static AsymmetricKeyParameter ReadPrivateKeyFromPemEncodedString(string pemEncodedKey)
{
AsymmetricKeyParameter result = null;
using (var stringReader = new StringReader(pemEncodedKey))
{
var pemReader = new PemReader(stringReader);
var pemObject = pemReader.ReadPemObject();
// WHAT NEXT???
}
return result;
}
Hier ist die PEM-kodierte Schlüssel ich mit dem Testen bin:
-----BEGIN RSA PRIVATE KEY-----
MIIEoAIBAAKCAQEAk0AmagKx285Ufbri/olc+f3WagL1Ho+DrYdDSbuU7cJAq+uD
9xGvvP9m2JavSP4wO9i9pB/cmCFMPoIj3oGJt1/cnLb/U2juneOw6Uo0N3F8TXdy
XfZNAIPhq/jw0YfIypTFTTvFkKXfTArIwW/bQBW8/dujFR8i5CxPjRKRDOBEy0PP
OLJDD0iUr9GX/h/EO4jQ7B/GszjhPiPx+gJCilaMY+jrSczjxpsKOXzpZEdT1NqM
rzgvIZPHYhQzAiw9vQzov3vezDwKgKcRrUixZ2B8uiEQNn7Wa2QzWF3vL+6CGflF
NYQcc0leDQBe86baYhCollouP4jfaH9KcMkYYwIBJQKCAQA7sjkWOHGeTLp4KSuX
n3i4X/z6i5POHoF9s2B31mzPF2ZTiP4l5JNadWELsrXDpVHTEq2/E9X4fDOqo3ZT
SUWrNLNiIKyzHLPDd/uc2OS8h/QfZ8aUy6KtLovrxclps5aXURG3hu86pBxBbCff
t7nACNAT42ugx28CjoEdhBFKaCNcw/S3gZOkcotVdDUTCB+epveXNybAoZcuVNtu
Y84hx+st8i0sXY+vpIJ8HOanbpdS/Q9UqDGNvg1zBlvnJ7PGOO4Jnc0EOa1Eoym2
vJNItDAkK59KPKjuBLWTvTz/XLrZirkY57BQgUKnXHU6YGI7bvu8+iDnNAP1C90U
/MllAoGBANstq/L7WOgcOhfbWEmcd59/vBtDbgf0pNwYyhmpIrG2SD6XaljQvOvo
2/2oqNzCG+xZbTnbdkODRIXMDGcCzVkQAEkNvwWYHxb2XHUOhUPr+4zNfGtnJ1gv
o7w6FVI3tD4buSmhcFZUGpNyzSbS+6FdXD37qjOFCPKcJMCY4BSPAoGBAKv9CdXw
Ksyhr62sWqlU2F9FhjDNS9afJ5A7mZjrPraAusVsOkUtwsij9g74SH5agQNIUnFH
NBwNenW+kbYahX6Q5pjNN5s6weG+2kbK8kZyuYo+Fuix0u6bTnL2IH35zP+hYWQS
YM7yNDdBpH1deTWlTVL7vnZeEK/WTldw8PDtAoGAZLQekjwh7hrOlVbxNpP/nE9y
Gl1AZIUpJtr1ErV+pK2yfZ+D454tScvastDzo7MhlhtABdOJXUomZvzjGpKVs0yK
gm4ZfxxhT71NEzAvZGWBajTmI4JsBexf/Iljvf3rB8eMbRLSv+Fz/o6xSTCBc6dv
khmvEMCVaIzuSqca2QMCgYAue714F2WDafghGdNQXB7NpBZuDfjSONpCqFMGvB7J
ipNX87y4wEJ7apWHgV+zcmgOuZm9wDeY4QxXLJYViqCev2DrBwgcHbfcJb5z/3/A
A1S9lD2K/6DK3d3Z4afqsjdnrxNnJ4/JOoqnJn971BLr53yupOdeQu/A0iMC4EEe
hQKBgBCJteVdDk/0gK5c/++q88VIYplEDeDCiO2nIjXK7kHrm0q3DuUsr3D6VOjL
VUViiU2nBKn40R8tNnxagPkL/uec0kZMGnnFsJLLKd48DGr34nQjsrGare0Pr8yo
3uwlkKwtDUg5Zf2vLIIKqcX6tvHSQ2Zc57dAdAPvhpM5TtDJ
-----END RSA PRIVATE KEY-----
Eigentlich Org.BouncyCastle.OpenSsl.PemReader existiert noch, und sein ReadObject() kann immer noch tun, was Sie hier brauchen, denke ich. Vielleicht verursacht die Hinzufügung von Org.BouncyCastle.Utilities.IO.Pem.PemReader Verwirrung? –
großen Seufzer. Ja, das war die Verwirrung. vielen Dank. Würde es dir etwas ausmachen, deinen Kommentar als Antwort zu posten, damit ich ihn annehmen und upvoten kann? Ich habe meinen Beitrag mit der Lösung bearbeitet. Es verblüfft mich, dass Leute denken, dass zwei öffentliche Klassen desselben Namens in demselben Projekt eine gute Idee sind. Diese Klassen sollten in OpenSslPemReader und UtilityPemReader umbenannt werden, so dass es zu 100% aus dem Namen ersichtlich ist, was es tut und warum es qualifiziert ist und Sie nicht auf das Lesen der Using-Direktiven angewiesen sind. Wie auch immer, ich bezweifle, dass sich das aufgrund der Reife dieses Projekts ändern wird. – SFun28
@PeterDettman - können Sie mit diesem einen helfen ... https://StackOverflow.com/Questions/44459497/convert-pem-encoded-rs-a-public-key-to-asymmetrickeyparameter – SFun28