DCMTK Version 3.6.8
OFFIS DICOM Toolkit
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
DcmTLSOptionsBase Class Reference

A class that handles the TLS options for DCMTK applications. More...

+ Inheritance diagram for DcmTLSOptionsBase:

Public Member Functions

 DcmTLSOptionsBase (T_ASC_NetworkRole networkRole)
 Constructor.
 
virtual ~DcmTLSOptionsBase ()
 Destructor.
 
virtual OFCondition writeRandomSeed ()
 Update the random seed file if this was requested by the given command line arguments.
 
virtual OFBool secureConnectionRequested () const
 Returns true if a secure connection was requested, false otherwise.
 
virtual DcmTransportLayergetTransportLayer ()
 Returns a pointer to the transport layer object, or NULL if the object has not yet been created by a call to createTransportLayer().
 
virtual OFCondition verifyClientCertificate (const char *fileName)
 loads a certificate or certificate chain from a file and checks whether it can be verified against the current settings of the trust store.
 
virtual OFCondition isRootCertificate (const char *fileName)
 loads a certificate file and checks whether it is a valid (e.g.
 

Static Public Member Functions

static OFBool listOfCiphersRequested (OFCommandLine &cmd)
 checks if the command line option –list-ciphers was given.
 
static void printSupportedCiphersuites (OFConsoleApplication &app, STD_NAMESPACE ostream &os)
 print a list of supported ciphersuites to the given output stream
 
static void printLibraryVersion ()
 Print OpenSSL library version string.
 

Protected Attributes

DcmKeyFileFormat opt_keyFileFormat
 flag indicating the file format of certificates and private keys: PEM or ASN.1
 
OFBool opt_doAuthenticate
 flag indicating whether we will authenticate ourselves using a certificate and private key
 
const char * opt_privateKeyFile
 filename of private key file we use to authenticate ourselves
 
const char * opt_certificateFile
 filename of certificate file we use to authenticate ourselves
 
const char * opt_passwd
 password for reading the private key file, may be NULL.
 
DcmTLSSecurityProfile opt_tlsProfile
 DICOM TLS Security Profile selected.
 
const char * opt_readSeedFile
 filename of file containing at least 1K of entropy used to seed the PRNG
 
const char * opt_writeSeedFile
 filename to which the modified PRNG state is written back
 
DcmCertificateVerification opt_certVerification
 indicates whether we should verify the remote peer's certificate
 
const char * opt_dhparam
 filename of Diffie-Hellman parameters file, may be NULL
 
OFBool opt_secureConnection
 a flag indicating whether or not a secure connection was requested
 
T_ASC_NetworkRole opt_networkRole
 indicates whether we act as client, server or both
 
const char * opt_clientSNI
 SNI server name to be requested in outgoing connections.
 
const char * opt_serverSNI
 SNI server name to be expected in incoming connections.
 
DcmTLSCRLVerification opt_crlMode
 CRL verification mode.
 
DcmTLSTransportLayertLayer
 pointer to the secure transport layer managed by this object
 

Detailed Description

A class that handles the TLS options for DCMTK applications.

DcmTLSOptionsBase allows a derived class to store the relevant options and to create a DcmTLSTransportLayer object based on the collected information.

Constructor & Destructor Documentation

◆ DcmTLSOptionsBase()

DcmTLSOptionsBase::DcmTLSOptionsBase ( T_ASC_NetworkRole  networkRole)

Constructor.

Parameters
networkRolethe network role to create a transport layer for

Member Function Documentation

◆ getTransportLayer()

virtual DcmTransportLayer * DcmTLSOptionsBase::getTransportLayer ( )
virtual

Returns a pointer to the transport layer object, or NULL if the object has not yet been created by a call to createTransportLayer().

Returns
pointer to transport layer object, may be NULL.

◆ isRootCertificate()

virtual OFCondition DcmTLSOptionsBase::isRootCertificate ( const char *  fileName)
virtual

loads a certificate file and checks whether it is a valid (e.g.

non-expired), self-signed root certificate that can be verified against itself

Parameters
fileNamepath to the certificate file
Returns
EC_Normal if certificate is a root certificate, an error code otherwise

◆ listOfCiphersRequested()

static OFBool DcmTLSOptionsBase::listOfCiphersRequested ( OFCommandLine cmd)
static

checks if the command line option –list-ciphers was given.

In this case the list of supported TLS ciphersuites should be printed to stdout and the application should terminate.

Parameters
cmdthe command line that was used
Returns
true if –list-ciphers option was found, false otherwise.

◆ printLibraryVersion()

static void DcmTLSOptionsBase::printLibraryVersion ( )
static

Print OpenSSL library version string.

Does nothing if OpenSSL is not available.

◆ printSupportedCiphersuites()

static void DcmTLSOptionsBase::printSupportedCiphersuites ( OFConsoleApplication app,
STD_NAMESPACE ostream &  os 
)
static

print a list of supported ciphersuites to the given output stream

Parameters
appa reference to an OFConsoleApplication object used in the calling application.
osoutput stream

◆ secureConnectionRequested()

virtual OFBool DcmTLSOptionsBase::secureConnectionRequested ( ) const
virtual

Returns true if a secure connection was requested, false otherwise.

Caller must ensure that parseArguments() has been run before this method.

Returns
true if secure connection requested, false otherwise

◆ verifyClientCertificate()

virtual OFCondition DcmTLSOptionsBase::verifyClientCertificate ( const char *  fileName)
virtual

loads a certificate or certificate chain from a file and checks whether it can be verified against the current settings of the trust store.

Parameters
fileNamepath to the certificate file
Returns
EC_Normal if verification succeeded, an error code otherwise

◆ writeRandomSeed()

virtual OFCondition DcmTLSOptionsBase::writeRandomSeed ( )
virtual

Update the random seed file if this was requested by the given command line arguments.

Returns
EC_Normal if the random seed file was successfully updated or if the user did not request the random seed file to be update. An error condition indicating what went wrong in case the random seed file could not be updated.

Member Data Documentation

◆ opt_certificateFile

const char* DcmTLSOptionsBase::opt_certificateFile
protected

filename of certificate file we use to authenticate ourselves

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_certVerification

DcmCertificateVerification DcmTLSOptionsBase::opt_certVerification
protected

indicates whether we should verify the remote peer's certificate

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_clientSNI

const char* DcmTLSOptionsBase::opt_clientSNI
protected

SNI server name to be requested in outgoing connections.

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_crlMode

DcmTLSCRLVerification DcmTLSOptionsBase::opt_crlMode
protected

CRL verification mode.

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_dhparam

const char* DcmTLSOptionsBase::opt_dhparam
protected

filename of Diffie-Hellman parameters file, may be NULL

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_doAuthenticate

OFBool DcmTLSOptionsBase::opt_doAuthenticate
protected

flag indicating whether we will authenticate ourselves using a certificate and private key

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_keyFileFormat

DcmKeyFileFormat DcmTLSOptionsBase::opt_keyFileFormat
protected

flag indicating the file format of certificates and private keys: PEM or ASN.1

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_passwd

const char* DcmTLSOptionsBase::opt_passwd
protected

password for reading the private key file, may be NULL.

In this case the password is read from STDIN.

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_privateKeyFile

const char* DcmTLSOptionsBase::opt_privateKeyFile
protected

filename of private key file we use to authenticate ourselves

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_readSeedFile

const char* DcmTLSOptionsBase::opt_readSeedFile
protected

filename of file containing at least 1K of entropy used to seed the PRNG

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_secureConnection

OFBool DcmTLSOptionsBase::opt_secureConnection
protected

a flag indicating whether or not a secure connection was requested

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_serverSNI

const char* DcmTLSOptionsBase::opt_serverSNI
protected

SNI server name to be expected in incoming connections.

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_tlsProfile

DcmTLSSecurityProfile DcmTLSOptionsBase::opt_tlsProfile
protected

DICOM TLS Security Profile selected.

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ opt_writeSeedFile

const char* DcmTLSOptionsBase::opt_writeSeedFile
protected

filename to which the modified PRNG state is written back

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

◆ tLayer

DcmTLSTransportLayer* DcmTLSOptionsBase::tLayer
protected

pointer to the secure transport layer managed by this object

Remarks
this member is only available if DCMTK is compiled with OpenSSL support enabled.

The documentation for this class was generated from the following file:


Generated on Fri Jul 5 2024 for DCMTK Version 3.6.8 by Doxygen 1.9.8