Heim > Backend-Entwicklung > C++ > Wie konvertiert man OpenSSL-RSA-Schlüssel in das X.509-Format für .NET?

Wie konvertiert man OpenSSL-RSA-Schlüssel in das X.509-Format für .NET?

DDD
Freigeben: 2024-11-05 01:37:02
Original
470 Leute haben es durchsucht

How to Convert OpenSSL RSA Keys to X.509 Format for .NET?

Verwenden von OpenSSL-RSA-Schlüsseln in .NET

Beim Erstellen eines RSA-Schlüsselpaars mit OpenSSL RSA_generate_key() werden öffentliche und private Schlüssel generiert standardmäßig das pkcs#1-Format. .NET erwartet jedoch, dass sie im x509-Format vorliegen.

PEM-Kodierungsformate

Ein PEM-kodierter Schlüssel kann in zwei Formaten geschrieben werden:

  • Traditionell (SubjectPublicKeyInfo): Enthält die OID für den Algorithmus und den öffentlichen Schlüssel.
  • PKCS (nur öffentlicher Schlüssel): Enthält nur den öffentlichen key.

.NET-Unterstützung für Schlüsselformate

.NET unterstützt sowohl ASN.1/DER-codierte Schlüssel als auch PEM-codierte Schlüssel, die die SubjectPublicKeyInfo-Struktur schreiben. nicht nur der öffentliche Schlüssel.

Konvertieren in das Dadurch wird die SubjectPublicKeyInfo-Struktur geschrieben.

Codebeispiel

Zusätzliche Hinweise
<code class="cpp">...
// Convert RSA key to PKEY
EVP_KEY_ptr pkey(EVP_PKEY_new(), ::EVP_PKEY_free);
rc = EVP_PKEY_set1_RSA(pkey.get(), rsa.get());
ASSERT(rc == 1);
...
// Write SubjectPublicKeyInfo with OID in PEM
// Load with PEM_read_bio_PUBKEY
rc = PEM_write_bio_PUBKEY(pem2.get(), pkey.get());
ASSERT(rc == 1);
...</code>
Nach dem Login kopieren

Speichern Sie den privaten Schlüssel sicher, da es zum Entschlüsseln von Nachrichten benötigt wird.

    Die Funktion set1 in EVP_PKEY_set1_RSA erhöht den Referenzzähler, um einen Double-Free-Fehler zu verhindern.
  • Verwandte Links

Generieren von privaten RSA-Schlüsseln mit OpenSSL: [Wie erstelle ich einen privaten RSA-Schlüssel mit OpenSSL?](https://stackoverflow.com/questions/26154252/how-to-generate-rsa-private-key -using-openssl)

    Das obige ist der detaillierte Inhalt vonWie konvertiert man OpenSSL-RSA-Schlüssel in das X.509-Format für .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage