⚠️ Ceci est un site de traduction non officiel, sans lien avec DCMTK / OFFIS. Pour des informations faisant autorité, consultez la page originale (https://support.dcmtk.org/docs/mod_dcmtls.html).

dcmtls: extensions de sécurité pour la bibliothèque réseau

Ce module contient des classes qui implémentent la communication réseau DICOM encapsulée dans une connexion Transport Layer Security (TLS), conforme à l'extension DICOM "Security Enhancements One" (anciennement Supplement 31). Ce module nécessite la bibliothèque externe OpenSSL.

Les principales classes d'interface sont :

Fichiers

Les fichiers suivants apportent des informations complémentaires :

Exemples

L'exemple suivant montre un fragment de code qui active TLS pour une application requérante d'association (requestor). Le code complet d'initialisation du réseau n'est pas présenté ici et la plupart du code de vérification des erreurs est omis par souci de concision.

T_ASC_Network *net; // code d'initialisation réseau non présenté,

T_ASC_Parameters *params; // nous supposons simplement que ces pointeurs sont valides

DcmTLSTransportLayer::initializeOpenSSL(); // initialise la bibliothèque OpenSSL

// create TLS object that initializes the random generator through a file

// "random.dat" containing random data (1 kByte is sufficient).

DcmTLSTransportLayer *tLayer = new DcmTLSTransportLayer(

NET_REQUESTOR, "random.dat");

if (tLayer->setPrivateKeyFile("privkey.pem", SSL_FILETYPE_PEM).bad())

{

cerr << "unable to load private key" << endl;

return;

}

if (tLayer->setCertificateFile("certificate.pem", SSL_FILETYPE_PEM).bad())

{

cerr << "unable to load certificate" << endl;

return;

}

// enable the ciphersuites for the BCP 195 RFC 8996 secure transport profile

tLayer->setTLSProfile(TSP_Profile_BCP_195_RFC_8996);

tLayer->activateCipherSuites();

// accept any certificate from the remote site (not recommended)

tLayer->setCertificateVerification(DCV_ignoreCertificate);

// register and activate TLS layer

ASC_setTransportLayer(net, tLayer, 1);

ASC_setTransportLayerType(params, 1);