⚠️ Este é um site de tradução não oficial, sem relação com o DCMTK / OFFIS. Para informações oficiais, consulte a página original (https://support.dcmtk.org/docs/mod_dcmtls.html).

dcmtls: extensões de segurança para a biblioteca de rede

Este módulo contém classes que implementam a comunicação de rede DICOM encapsulada em uma conexão Transport Layer Security (TLS), em conformidade com a extensão DICOM "Security Enhancements One" (anteriormente Supplement 31). Este módulo requer a biblioteca externa OpenSSL.

As principais classes de interface são:

Arquivos

Os arquivos a seguir fornecem documentação adicional:

Exemplos

O exemplo a seguir mostra um fragmento de código que ativa o TLS para uma aplicação requisitante de associação (association requestor). O código completo de inicialização de rede não é mostrado aqui, e a maior parte do código de verificação de erros é omitida por questões de concisão.

T_ASC_Network *net; // código de inicialização de rede não mostrado,

T_ASC_Parameters *params; // apenas supomos que esses ponteiros são válidos

DcmTLSTransportLayer::initializeOpenSSL(); // inicializa a biblioteca OpenSSL

// cria o objeto TLS que inicializa o gerador de números aleatórios por meio de um arquivo

// "random.dat" contendo dados aleatórios (1 kByte é suficiente).

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;

}

// habilita os conjuntos de cifras para o perfil de transporte seguro BCP 195 RFC 8996

tLayer->setTLSProfile(TSP_Profile_BCP_195_RFC_8996);

tLayer->activateCipherSuites();

// aceita qualquer certificado do site remoto (não recomendado)

tLayer->setCertificateVerification(DCV_ignoreCertificate);

// registra e ativa a camada TLS

ASC_setTransportLayer(net, tLayer, 1);

ASC_setTransportLayerType(params, 1);