stareagle: [C-Programmierung] GNU TLS - Finde den Fehler nicht...

Hallo zusammen,

ich beschäftige mich im Moment mit TLS. Konkret muss ich eine Server/Client-Anwendung schreiben, die über eine mit TLS gesicherte Verbindung kommunizieren wird. Die Authentifizierung des Clients soll dabei über ein X509-Zertifikat laufen. Der Server gibt sich dem Client ebenfalls über ein Zertifikat (wie man von HTTPS kennt) zu erkennen.

Ich habe jetzt angefangen und auf Basis der Beispiele in der Doku zur GNU TLS-Bibliothek eine noch sehr einfache Beispielanwendung - Server und Client - geschrieben. Dabei nimmt der Server einfach Verbindungen an (kann bereits mit mehreren umgehen). Über den Client kann man ein paar einfache Kommandos an den Server schicken, und dieser schickt dann eine mehr oder weniger sinnvolle Antwort zurück. Ist erstmal zum testen.

Mein Problem: Wenn ich mich mit dem Server verbinden möchte, klappt der TLS-Handshake nicht. gnutls_handshake liefert auf Seiten des Servers den Fehler -49 (GNUTLS_E_NO_CERTIFICATE_FOUND).

Leider finde ich den Fehler nicht... Wahrscheinlich ist es entweder ein dummer, kleiner Fehler oder ein Missverständnis bei mir was die Funktionsweise von TLS angeht.

Der Quellcode des Servers: http://www.jp-digital.de/shared/tls/server_cert.c

Quellcode des Clients:
http://www.jp-digital.de/shared/tls/client_cert.c

checkCert.h und checkCert.c:
http://www.jp-digital.de/shared/tls/checkCert.h
http://www.jp-digital.de/shared/tls/checkCert.c

Danke im Voraus für eure Hilfe.

Gruß

Stareagle