So überprüfen Sie ein X509-Zertifikat in C

7

Ich habe ein Zertifikat im X509-Format. Dies ist ein Eingabeparameter in einer Funktion. Was ich tun möchte, ist die Gültigkeit des Zertifikats zu überprüfen. Wie kann es gemacht werden?

%Vor%

Ich habe diese Funktion gefunden, akzeptiert aber kein X509 * Zertifikat, akzeptiert X509_store und ich habe nur ein X509.

Danke Mit freundlichen Grüßen.

    
mmm 05.04.2013, 14:27
quelle

3 Antworten

7

Siehe die Dokumentation hier .

Sie müssen einen Zertifikatsspeicher mit X509_STORE_CTX_new erstellen. Fügen Sie dann die Zertifikatskette mit X509_STORE_CTX_set_chain hinzu. Fügen Sie vertrauenswürdiges Stammzertifikat mithilfe von X509_STORE_CTX_trusted_stack hinzu. Fügen Sie schließlich das Zertifikat hinzu, das mit X509_STORE_CTX_set_cert verifiziert werden soll.

Rufen Sie danach X509_verify_cert.

auf

Ich hoffe, dass dir das dabei helfen wird.

    
doptimusprime 05.04.2013, 15:44
quelle
14

Ich bin hier nur um meine Antwort zu posten, wie ich es mit den obigen Kommentaren gefunden habe.

Ich hatte keine Zertifikatskette, deshalb habe ich bei der Arbeit, die ich mache, nur ein Zertifikat, das ich programmatisch erzeugt habe. Ich wollte die Gültigkeit überprüfen, also habe ich die folgende Funktion erstellt, die das Zertifikat gegen sich selbst prüft, um die Gültigkeit zu überprüfen.

%Vor%

Hoffe das hilft jemandem:)

    
mmm 07.04.2013 13:10
quelle
3

Um eine Zertifikatssignatur zu überprüfen, benötigen Sie den öffentlichen Schlüssel eines Ausstellerzertifikats. Die Signatur dieses Ausstellerzertifikats wird mit einem anderen ausstellenden Zertifikat (oder vertrauenswürdigem Stammzertifikat) verifiziert. Wenn also die Signatur eines Zertifikats die gesamte Kette bis zu einem vertrauenswürdigen Root verifiziert, gilt dieses Zertifikat als vertrauenswürdig.

Die Signaturen von selbstsignierten Zertifikaten werden wie im folgenden Beispiel mit einem eigenen öffentlichen Schlüssel verifiziert:

%Vor%

von: Ссылка

    
velcrow 28.10.2014 20:16
quelle