DCMTK  Version 3.6.3
OFFIS DICOM Toolkit
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DcmTLSConnection Class Reference

this class represents a TLS (Transport Layer Security) V1 based secure transport connection. More...

+ Inheritance diagram for DcmTLSConnection:

Public Member Functions

 DcmTLSConnection (DcmNativeSocketType openSocket, SSL *newTLSConnection)
 constructor. More...
 
virtual ~DcmTLSConnection ()
 destructor
 
virtual DcmTransportLayerStatus serverSideHandshake ()
 performs server side handshake on established socket. More...
 
virtual DcmTransportLayerStatus clientSideHandshake ()
 performs client side handshake on established socket. More...
 
virtual DcmTransportLayerStatus renegotiate (const char *newSuite)
 performs a re-negotiation of the connection with different connection parameters. More...
 
virtual ssize_t read (void *buf, size_t nbyte)
 attempts to read nbyte bytes from the transport connection and writes them into the given buffer. More...
 
virtual ssize_t write (void *buf, size_t nbyte)
 attempts to write nbyte bytes from the given buffer to the transport connection. More...
 
virtual void close ()
 Closes the transport connection. More...
 
virtual unsigned long getPeerCertificateLength ()
 returns the size in bytes of the peer certificate of a secure connection. More...
 
virtual OFBool networkDataAvailable (int timeout)
 checks if data is available to be read on the transport connection. More...
 
virtual OFBool isTransparentConnection ()
 returns OFTrue if this connection is a transparent TCP connection, OFFalse if the connection is a secure connection.
 
virtual OFStringdumpConnectionParameters (OFString &str)
 dump the characteristics of the current connection More...
 
virtual const char * errorString (DcmTransportLayerStatus code)
 returns an error string for a given error code. More...
 
- Public Member Functions inherited from DcmTransportConnection
 DcmTransportConnection (DcmNativeSocketType openSocket)
 constructor. More...
 
virtual ~DcmTransportConnection ()
 destructor
 
void dumpConnectionParameters (STD_NAMESPACE ostream &out)
 prints the characteristics of the current connection on the given output stream. More...
 

Private Member Functions

 DcmTLSConnection (const DcmTLSConnection &)
 private undefined copy constructor
 
DcmTLSConnectionoperator= (const DcmTLSConnection &)
 private undefined assignment operator
 

Private Attributes

SSL * tlsConnection
 pointer to the TLS connection structure used by the OpenSSL library
 
unsigned long lastError
 last error code returned by the OpenSSL library
 

Additional Inherited Members

- Static Public Member Functions inherited from DcmTransportConnection
static OFBool selectReadableAssociation (DcmTransportConnection *connections[], int connCount, int timeout)
 indicates which of the specified transport connections is ready for reading. More...
 
- Protected Member Functions inherited from DcmTransportConnection
DcmNativeSocketType getSocket ()
 returns the socket file descriptor managed by this object. More...
 
void setSocket (DcmNativeSocketType socket)
 set the socket file descriptor managed by this object. More...
 

Detailed Description

this class represents a TLS (Transport Layer Security) V1 based secure transport connection.

Constructor & Destructor Documentation

◆ DcmTLSConnection()

DcmTLSConnection::DcmTLSConnection ( DcmNativeSocketType  openSocket,
SSL *  newTLSConnection 
)

constructor.

Parameters
openSocketTCP/IP socket to be used for the transport connection. the connection must already be establised on socket level. This object takes over control of the socket.
newTLSConnectionpointer to intialized OpenSSL connection object to be used for this connection.

Member Function Documentation

◆ clientSideHandshake()

virtual DcmTransportLayerStatus DcmTLSConnection::clientSideHandshake ( )
virtual

performs client side handshake on established socket.

This function is used to establish a secure transport connection over the established TCP connection.

Returns
TCS_ok if successful, an error code otherwise.

Implements DcmTransportConnection.

◆ close()

virtual void DcmTLSConnection::close ( )
virtual

Closes the transport connection.

If a secure connection is used, a closure alert is sent before the connection is closed.

Implements DcmTransportConnection.

◆ dumpConnectionParameters()

virtual OFString& DcmTLSConnection::dumpConnectionParameters ( OFString str)
virtual

dump the characteristics of the current connection

Parameters
strthe string to dump into
Returns
reference to string

Implements DcmTransportConnection.

◆ errorString()

virtual const char* DcmTLSConnection::errorString ( DcmTransportLayerStatus  code)
virtual

returns an error string for a given error code.

Parameters
codeerror code
Returns
description for error code

Implements DcmTransportConnection.

◆ getPeerCertificateLength()

virtual unsigned long DcmTLSConnection::getPeerCertificateLength ( )
virtual

returns the size in bytes of the peer certificate of a secure connection.

Returns
peer certificate length in bytes

Implements DcmTransportConnection.

◆ networkDataAvailable()

virtual OFBool DcmTLSConnection::networkDataAvailable ( int  timeout)
virtual

checks if data is available to be read on the transport connection.

Parameters
timeoutmaximum number of seconds to wait if no data is available. If this parameter is 0, the function does not block.
Returns
OFTrue if data is available, OFFalse otherwise.

Implements DcmTransportConnection.

◆ read()

virtual ssize_t DcmTLSConnection::read ( void *  buf,
size_t  nbyte 
)
virtual

attempts to read nbyte bytes from the transport connection and writes them into the given buffer.

Parameters
bufbuffer
nbytenumber of bytes to read
Returns
number of bytes read, negative number if unsuccessful.

Implements DcmTransportConnection.

◆ renegotiate()

virtual DcmTransportLayerStatus DcmTLSConnection::renegotiate ( const char *  newSuite)
virtual

performs a re-negotiation of the connection with different connection parameters.

Used to change the parameters of the secure transport connection.

Parameters
newSuitestring identifying the ciphersuite to be negotiated.
Returns
TCS_ok if successful, an error code otherwise.

Implements DcmTransportConnection.

◆ serverSideHandshake()

virtual DcmTransportLayerStatus DcmTLSConnection::serverSideHandshake ( )
virtual

performs server side handshake on established socket.

This function is used to establish a secure transport connection over the established TCP connection.

Returns
TCS_ok if successful, an error code otherwise.

Implements DcmTransportConnection.

◆ write()

virtual ssize_t DcmTLSConnection::write ( void *  buf,
size_t  nbyte 
)
virtual

attempts to write nbyte bytes from the given buffer to the transport connection.

Parameters
bufbuffer
nbytenumber of bytes to write
Returns
number of bytes written, negative number if unsuccessful.

Implements DcmTransportConnection.


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


Generated on Mon Feb 5 2018 for DCMTK Version 3.6.3 by Doxygen 1.8.14