Ich arbeite an einem Projekt, um ein Zertifikat auf eine Smartcard zu erhalten und es mit einem Schlüsselpaar zu verknüpfen, das auf der Karte selbst generiert wird, nach der Smart Card Minidriver -Spezifikation. Mein aktueller Ansatz scheint einen fehlenden Schritt zu haben, und ich hoffe, Klarheit über den richtigen Fluss zu erhalten.
: Erstellen Sie einen Ressourcenmanager -Kontext.
[*]
: Aufzählen Sie die verfügbaren Leser auf, um den Smart Card -Leser zu finden.
[*]
: Stellen Sie mit dem Lesernamen eine Verbindung zur Smart Card her.
[*]
: Abrufen Sie das Attribut "Scard_attr_device_noxy_name" ab, das für die Minidriver -Aufrufe verwendet wird.
[*]
: Erwerben Sie mit dem freundlichen Namen einen Handle für den Smart Card -Leser und die Karte.
[*]
: Beginnen Sie eine neue Transaktion, um die Karte zu sperren. Dies beinhaltet eine Herausforderung von der Karte, verwendete verwaltete C ++, um den 3DES -Operation mit der Herausforderung und der PIN auszuführen, sowie dann Call -AuthenticatechAllenge (alle verwenden die Zeiger card_data auf den Minidriver).
: Erstellen Sie einen neuen Container auf der Karte und generieren Sie ein neues RSA 2048 -Schlüsselpaar darin. Öffentlicher Schlüssel zum Generieren einer Zertifikat -Signieranforderung (CSR). (Hinweis: Mir ist bewusst, dass der CSR vom neuen privaten Schlüssel unterschrieben werden sollte, aber ich konnte nicht herausfinden, wie man sie in die .NET-Zertifikat-Klasse-Klasse integrieren kann. />
Eine Quelle sagte, ich kann CPP_Certificate < /code> Eigenschaftsname verwenden, aber das war nach der Dokumentation falsch. Installieren Sie dieses Zertifikat wieder auf die Karte und verbinden Sie es mit dem Container, den ich erstellt habe. 11, Visual Studio 2022 und .NET 8 CORE. Dwinfotype Flag, das es mir ermöglicht, die Zertifikatdaten (z. B. ein Puffer, das das X.509 -Zertifikat enthält) an die Funktion zu übergeben. Minidriver -Spezifikation?
b. Problem, ohne dass der Benutzer das WHFB -Zertifikat deinstallieren kann?>