Frage

Ich habe ein Cert_context Struktur, die ich von einer Smart Card unter Windows über die Cryptoapi extrahiert habe. Ich muss diese Struktur in ein Dercodiertes Byte -Array umwandeln, das mit OpenSSL übereinstimmt. Das nächstgelegene Match, das ich bisher habe, ist über CryptencodeObject Verwenden von x509_asn_encoding und dem Modifikator X509_CERT_TO_BE_SIGNED, der das nimmt Cert_info Struktur als Eingabe.

Das Problem ist, dass es nicht mit der von der OpenSSL erzeugten Ausgabe übereinstimmt i2d_x509 Funktion. OpenSSL erzeugt mit einem 2048 -Bit -Zertifikat als Eingabe 1789 Bytes codierter Ausgabe, während der Windows Cryptoapi 1638 Bytes codierter Ausgabe erzeugt.

Die einzige Option, die ich sehen kann, ist das Erstellen eines x509 -Certs im laufenden Fliegen mit den Werten aus der Cert_context Struktur und die codieren das resultierende Objekt direkt mit dem i2d_x509 Funktion. Das einzige Problem dabei ist, dass ich den privaten Schlüssel nicht aus der Smart Card extrahieren kann. Dies kann zu Problemen mit den Routinen für die Erstellung von X509 -Zertifikaten führen.

Wenn jemand Einblicke/Ratschläge/Tipps in diese Angelegenheiten geben kann, wäre ich sehr verpflichtet.

War es hilfreich?

Lösung

Der codiertes Zertifikat kann aus (ctx-> pbCertenCoded, ctx-> cbCertenCoded) erhalten werden, wobei CTX ein PCCERT_Context-Objekt ist. Sie können den privaten Schlüssel nicht wiederherstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top