OFFIS DCMTK  Version 3.6.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DcmTLSSCU Class Reference

Base class for implementing DICOM TLS-enabled Service Class User functionality. More...

Inheritance diagram for DcmTLSSCU:
[legend]
Collaboration diagram for DcmTLSSCU:
[legend]

Public Member Functions

 DcmTLSSCU ()
 Constructor, just initializes internal class members.
 
 DcmTLSSCU (const OFString &peerHost, const OFString &peerAETitle, const Uint16 &portNum)
 Initialize SCU with connection peer information.
 
virtual ~DcmTLSSCU ()
 Virtual destructor.
 
virtual OFCondition initNetwork ()
 Initialize network, i.e.
 
virtual OFCondition negotiateAssociation ()
 Negotiate association by using presentation contexts and parameters as defined by earlier function calls.
 
virtual void closeAssociation (const DcmCloseAssociationType closeType)
 Closes the association of this SCU.
 
virtual void addTrustedCertFile (const OFString &str)
 TODO: Not documented yet.
 
virtual void addTrustedCertDir (const OFString &certDir)
 TODO: Not documented yet.
 
virtual void enableAuthentication (const OFString &privateKey, const OFString &certFile, const char *passphrase=NULL, const int &privKeyFormat=SSL_FILETYPE_PEM, const int &certFormat=SSL_FILETYPE_PEM)
 TODO: Not documented yet.
 
virtual void disableAuthentication ()
 Disables authentication.
 
virtual void addCiphersuite (const OFString &cs)
 TODO: Not documented yet.
 
virtual void setReadSeedFile (const OFString &seedFile)
 TODO: Not documented yet.
 
virtual void setWriteSeedFile (const OFString &seedFile)
 TODO: Not documented yet.
 
virtual void setPeerCertVerification (const DcmCertificateVerification &cert)
 Set whether peer's certificate must be there, only is checked if there or is ignored.
 
virtual void setDHParam (const OFString &dhParam)
 Not documented yet.
 
virtual OFBool getAuthenticationParams (OFString &privKeyFile, OFString &certFile, const char *&passphrase, int &privKeyFormat, int &certFormat) const
 Returns OFTrue if authentication is enabled.
 
virtual void getTrustedCertFiles (OFList< OFString > &files) const
 TODO: Not documented yet.
 
virtual void getTrustedCertDirs (OFList< OFString > &trustedDirs) const
 TODO: Not documented yet.
 
virtual OFString getCiphersuites () const
 TODO: Not documented yet.
 
virtual OFString getReadSeedFile () const
 TODO: Not documented yet.
 
virtual OFString getWriteSeedFile () const
 TODO: Not documented yet.
 
virtual OFString getDHParam () const
 TODO: Not documented yet.
 
- Public Member Functions inherited from DcmSCU
 DcmSCU ()
 Constructor, just initializes internal class members.
 
virtual ~DcmSCU ()
 Virtual destructor.
 
OFCondition addPresentationContext (const OFString &abstractSyntax, const OFList< OFString > &xferSyntaxes)
 Add presentation context to be used for association negotiation.
 
T_ASC_PresentationContextID findPresentationContextID (const OFString &abstractSyntax, const OFString &transferSyntax)
 After negotiation association, this call returns the first usable presentation context given the desired abstract syntax and transfer syntax.
 
virtual OFCondition sendECHORequest (const T_ASC_PresentationContextID presID)
 This function sends a C-ECHO command via network to another DICOM application.
 
virtual OFCondition sendSTORERequest (const T_ASC_PresentationContextID presID, const OFString &dicomFile, DcmDataset *dset, DcmDataset *&rspCommandSet, DcmDataset *&rspStatusDetail, Uint16 &rspStatusCode)
 This function sends a C-STORE request on the currently opened association and receives the corresponding response then.
 
virtual OFCondition sendFINDRequest (T_ASC_PresentationContextID presID, DcmDataset *queryKeys, FINDResponses *responses)
 Sends a C-FIND Request on given presentation context and receives list of responses.
 
virtual OFCondition handleFINDResponse (Uint16 presContextID, FINDResponse *response, OFBool &waitForNextResponse)
 This is the standard handler for C-FIND message responses: It just adds up all responses it receives and prints a DEBUG message.
 
virtual OFCondition sendCANCELRequest (Uint16 presContextID)
 Send C-FIND-CANCEL and, therefore, ends the C-FIND session, i.e. no further responses will be handled.
 
virtual OFCondition sendACTIONRequest (const T_ASC_PresentationContextID presID, const OFString &sopInstanceUID, const Uint16 actionTypeID, DcmDataset *reqDataset, Uint16 &rspStatusCode)
 This function sends a N-ACTION request on the currently opened association and receives the corresponding response then.
 
virtual OFCondition handleEVENTREPORTRequest (DcmDataset *&reqDataset, Uint16 &eventTypeID, const int timeout=0)
 Receives N-EVENT-REPORT request on the currently opened association and sends a corresponding response.
 
void setMaxReceivePDULength (const unsigned long maxRecPDU)
 Set maximum PDU length (to be received by SCU)
 
void setDIMSEBlockingMode (const T_DIMSE_BlockingMode blockingMode)
 Set whether to send in DIMSE blocking or non-blocking mode.
 
void setAETitle (const OFString &myAETtitle)
 Set SCU's AETitle to be used in association negotiation.
 
void setPeerHostName (const OFString &peerHostName)
 Set SCP's host (hostname or IP address) to talk to in association negotiation.
 
void setPeerAETitle (const OFString &peerAETitle)
 Set SCP's AETitle to talk to in association negotiation.
 
void setPeerPort (const Uint16 peerPort)
 Set SCP's port number to connect to for association negotiation.
 
void setDIMSETimeout (const Uint32 dimseTimeout)
 Set timeout for receiving DIMSE messages.
 
void setACSETimeout (const Uint32 acseTimeout)
 Set timeout for receiving ACSE messages.
 
void setAssocConfigFileAndProfile (const OFString &filename, const OFString &profile)
 Set an association configuration file and profile to be used.
 
void setVerbosePCMode (const OFBool mode)
 Set whether to show presentation contexts in verbose or debug mode.
 
OFBool isConnected () const
 Get current connection status.
 
Uint32 getMaxReceivePDULength () const
 Returns maximum PDU length configured to be received by SCU.
 
T_DIMSE_BlockingMode getDIMSEBlockingMode () const
 Returns whether DIMSE messaging is configured to be blocking or unblocking.
 
const OFStringgetAETitle () const
 Returns the SCU's own configured AETitle.
 
const OFStringgetPeerHostName () const
 Returns the SCP's (peer's) host name configured.
 
const OFStringgetPeerAETitle () const
 Returns the SCP's (peer's) AETitle configured.
 
Uint16 getPeerPort () const
 Returns the SCP's (peer's) TCP/IP port configured.
 
Uint32 getDIMSETimeout () const
 Returns the DIMSE timeout configured defining how long SCU will wait for DIMSE responses.
 
Uint32 getACSETimeout () const
 Returns the timeout configured defining how long SCU will wait for messages during ACSE messaging (association negotiation)
 
OFBool getVerbosePCMode () const
 Returns the verbose presentation context mode configured specifying whether details on the presentation contexts (negotiated during association setup) should be shown in verbose or debug mode.
 
OFBool getTLSEnabled () const
 Returns whether SCU is configured to create a TLS connection with the SCP.
 

Private Member Functions

 DcmTLSSCU (const DcmTLSSCU &src)
 Private undefined copy-constructor.
 
DcmTLSSCUoperator= (const DcmTLSSCU &src)
 Private undefined operator=.
 

Private Attributes

DcmTLSTransportLayerm_tLayer
 The TLS layer responsible for all encryption/authentication stuff.
 
OFBool m_doAuthenticate
 If enabled, authentication of client/server is enabled.
 
OFList< OFStringm_trustedCertDirs
 A list of directories containing trusted certificates (if authentication is enabled)
 
OFList< OFStringm_trustedCertFiles
 A list of files containing trusted certificates (if authentication is enabled)
 
OFString m_privateKeyFile
 The file containing the private key (if authentication is enabled)
 
int m_privateKeyFileFormat
 Might be either "SSL_FILETYPE_PEM" (default) or "SSL_FILETYPE_ASN1".
 
OFString m_certificateFile
 File containing the certificate the SCU should use for authentication.
 
int m_certKeyFileFormat
 Might be either "SSL_FILETYPE_PEM" (default) or "SSL_FILETYPE_ASN1".
 
char * m_passwd
 Password used for unlocking the private key file.
 
OFString m_ciphersuites
 String containing all ciphersuites being (additionally? TODO) configured.
 
OFString m_readSeedFile
 TODO.
 
OFString m_writeSeedFile
 TODO.
 
DcmCertificateVerification m_certVerification
 Denotes how certificates are handled, i.e.
 
OFString m_dhparam
 File containing Diffie Hellman parameters to be used.
 

Additional Inherited Members

- Protected Member Functions inherited from DcmSCU
OFCondition sendDIMSEMessage (const T_ASC_PresentationContextID presID, T_DIMSE_Message *msg, DcmDataset *dataObject, DIMSE_ProgressCallback callback, void *callbackContext, DcmDataset **commandSet=NULL)
 Sends a DIMSE command and possibly also a dataset from a data object via network to another DICOM application.
 
OFCondition getDatasetInfo (DcmDataset *dataset, OFString &sopClassUID, OFString &sopInstanceUID, E_TransferSyntax &transferSyntax)
 Returns SOP Class UID, SOP Instance UID and original transfer syntax for a given dataset.
 
OFCondition useSecureConnection (DcmTransportLayer *tlayer)
 Tells DcmSCU to use a secure TLS connection described by the given TLS layer.
 
OFCondition receiveDIMSECommand (T_ASC_PresentationContextID *presID, T_DIMSE_Message *msg, DcmDataset **statusDetail, DcmDataset **commandSet=NULL, const Uint32 timeout=0)
 Receive DIMSE command (excluding dataset!) over the currently open association.
 
OFCondition receiveDIMSEDataset (T_ASC_PresentationContextID *presID, DcmDataset **dataObject, DIMSE_ProgressCallback callback, void *callbackContext)
 Receives one dataset (of instance data) via network from another DICOM application.
 
void findPresentationContext (const T_ASC_PresentationContextID presID, OFString &abstractSyntax, OFString &transferSyntax)
 After negotiation association, this call returns the presentation context belonging to the given presentation context ID.
 
virtual Uint16 checkEVENTREPORTRequest (T_DIMSE_N_EventReportRQ &request, DcmDataset *reqDataset)
 Check given N-EVENT-REPORT request and dataset for validity.
 

Detailed Description

Base class for implementing DICOM TLS-enabled Service Class User functionality.

This class is derived from the general DcmSCU class and just adds the corresponding TLS capabilities.

Warning
This class is EXPERIMENTAL. Be careful to use it in production environment.

Definition at line 45 of file tlsscu.h.

Constructor & Destructor Documentation

DcmTLSSCU::DcmTLSSCU ( const OFString peerHost,
const OFString peerAETitle,
const Uint16 &  portNum 
)

Initialize SCU with connection peer information.

Parameters
peerHost[in] The hostname or IP of the host to talk to
peerAETtitle[in] AETitle of peer host to be used
portNum[in] TCP/IP port number to talk to
DcmTLSSCU::DcmTLSSCU ( const DcmTLSSCU src)
private

Private undefined copy-constructor.

Shall never be called.

Parameters
srcSource object

Member Function Documentation

virtual void DcmTLSSCU::addCiphersuite ( const OFString cs)
virtual

TODO: Not documented yet.

Parameters
cs[in] TODO: Not documented yet
virtual void DcmTLSSCU::addTrustedCertDir ( const OFString certDir)
virtual

TODO: Not documented yet.

Parameters
certDir[in] Not documented yet
virtual void DcmTLSSCU::addTrustedCertFile ( const OFString str)
virtual

TODO: Not documented yet.

Parameters
str[in] Not documented yet
virtual void DcmTLSSCU::closeAssociation ( const DcmCloseAssociationType  closeType)
virtual

Closes the association of this SCU.

Parameters
closeType[in] Define whether to release or abort the association

Reimplemented from DcmSCU.

virtual void DcmTLSSCU::disableAuthentication ( )
virtual

Disables authentication.

However, DcmTLSSCU will try to establish secured connection in terms of encrypting data. Default is that authentication is disabled.

virtual void DcmTLSSCU::enableAuthentication ( const OFString privateKey,
const OFString certFile,
const char *  passphrase = NULL,
const int &  privKeyFormat = SSL_FILETYPE_PEM,
const int &  certFormat = SSL_FILETYPE_PEM 
)
virtual

TODO: Not documented yet.

Parameters
privateKey[in] File with private key to authenticate with
certFile[in] File with certificate to authenticate with
passphrase[in] Password to access key. NULL asks user on console. "" will send empty password. Default is asking the user to enter password.
privKeyFormat[in] Format of private key parameter. Default is SSL_FILETYPE_PEM.
certFormat[in] Format of certificate file parameter. Default is SSL_FILETYPE_PEM.
virtual OFBool DcmTLSSCU::getAuthenticationParams ( OFString privKeyFile,
OFString certFile,
const char *&  passphrase,
int &  privKeyFormat,
int &  certFormat 
) const
virtual

Returns OFTrue if authentication is enabled.

Parameters
TODO,:Not documented yet
Returns
Return value OFTrue
virtual OFString DcmTLSSCU::getCiphersuites ( ) const
virtual

TODO: Not documented yet.

Returns
TODO: Not documented yet
virtual OFString DcmTLSSCU::getDHParam ( ) const
virtual

TODO: Not documented yet.

Returns
TODO: Not documented yet
virtual OFString DcmTLSSCU::getReadSeedFile ( ) const
virtual

TODO: Not documented yet.

Returns
TODO: Not documented yet
virtual void DcmTLSSCU::getTrustedCertDirs ( OFList< OFString > &  trustedDirs) const
virtual

TODO: Not documented yet.

Parameters
trustedDirs[out] TODO: Not documented yet
virtual void DcmTLSSCU::getTrustedCertFiles ( OFList< OFString > &  files) const
virtual

TODO: Not documented yet.

Parameters
files[out] TODO: Not documented yet
virtual OFString DcmTLSSCU::getWriteSeedFile ( ) const
virtual

TODO: Not documented yet.

Returns
TODO: Not documented yet
virtual OFCondition DcmTLSSCU::initNetwork ( )
virtual

Initialize network, i.e.

prepare for association negotiation.

Returns
EC_Normal if initialization was successful, otherwise error code

Reimplemented from DcmSCU.

virtual OFCondition DcmTLSSCU::negotiateAssociation ( )
virtual

Negotiate association by using presentation contexts and parameters as defined by earlier function calls.

Returns
EC_Normal if negotiation was successful, otherwise error code

Reimplemented from DcmSCU.

DcmTLSSCU& DcmTLSSCU::operator= ( const DcmTLSSCU src)
private

Private undefined operator=.

Shall never be called.

Parameters
srcSource object
Returns
Reference to this
virtual void DcmTLSSCU::setDHParam ( const OFString dhParam)
virtual

Not documented yet.

Parameters
dhParam[in] Not documented yet
virtual void DcmTLSSCU::setPeerCertVerification ( const DcmCertificateVerification &  cert)
virtual

Set whether peer's certificate must be there, only is checked if there or is ignored.

Parameters
cert[in] The following values are permitted: DCV_requireCertificate, DCV_checkCertificate, DCV_ignoreCertificate
virtual void DcmTLSSCU::setReadSeedFile ( const OFString seedFile)
virtual

TODO: Not documented yet.

Parameters
seedFile[in] TODO: Not documented yet
virtual void DcmTLSSCU::setWriteSeedFile ( const OFString seedFile)
virtual

TODO: Not documented yet.

Parameters
seedFile[in] TODO: Not documented yet

Member Data Documentation

DcmCertificateVerification DcmTLSSCU::m_certVerification
private

Denotes how certificates are handled, i.e.

whether they are required, validated or only validated if present

Definition at line 234 of file tlsscu.h.

char* DcmTLSSCU::m_passwd
private

Password used for unlocking the private key file.

If NULL, password is asked from STDIN. If empty string (""), password is sent empty. All others values are sent as given.

Definition at line 221 of file tlsscu.h.


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


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2