Как настроить сертификат для Клиента в Fellow-Oak Dicom? - PullRequest
0 голосов
/ 28 марта 2019

Ребята, я пытаюсь настроить клиент Dicom с помощью библиотеки Fellow Oak Dicom. Я успешно выполняю все запросы, используя класс DicomClient, как указано на их странице github https://github.com/fo-dicom/fo-dicom.

Однако как я могу указать сертификат, который будет использоваться для аутентификации моего клиента?

Я обнаружил, что именно так вы обычно делаете в C #, https://www.medo64.com/2014/09/client-authenticated-tls-in-c/ и я вижу, что это именно то, что делает библиотека Fo-Dicom. Хотя я не могу найти способ указать свой сертификат.

1 Ответ

2 голосов
/ 29 марта 2019

Хорошо, я решил это, переопределив класс DesktopNetworkStream, который я только что заменил, в главном конструкторе,

ssl.AuthenticateAsClient(host)

с

var trust = new X509Certificate2("serverCert.p12","myPwd");
var key = new X509Certificate2("clientCert.p12","myPwd");
var clientCertificateCollection = new X509CertificateCollection(new X509Certificate[] { trust,key });

ssl.AuthenticateAsClient(host, clientCertificateCollection, SslProtocols.Tls12, false);

и я называю это вместо

client.Send(serverIp, serverPort, false, callingAET, calledAET);

с

var _networkStream = new DesktopNetworkStream(serverIp, serverPort, true, true, true);
client.Send(_networkStream, callingAET, calledAET, 5000);
...