OFFIS DCMTK  Version 3.6.0
tlsscu.h
1 /*
2  *
3  * Copyright (C) 2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmtls
15  *
16  * Author: Michael Onken
17  *
18  * Purpose: Base class for TLS-enabled Service Class Users (SCUs)
19  *
20  * Last Update: $Author: joergr $
21  * Update Date: $Date: 2010-10-14 13:17:27 $
22  * CVS/RCS Revision: $Revision: 1.4 $
23  * Status: $State: Exp $
24  *
25  * CVS/RCS Log at end of file
26  *
27  */
28 
29 #ifndef TLSSCU_H
30 #define TLSSCU_H
31 
32 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
33 
34 #ifdef WITH_OPENSSL
35 #include "dcmtk/dcmnet/scu.h"
36 #include "dcmtk/dcmtls/tlstrans.h"
37 #include "dcmtk/dcmtls/tlslayer.h"
38 
39 
45 class DcmTLSSCU : public DcmSCU
46 {
47 
48 public:
49 
52  DcmTLSSCU();
53 
59  DcmTLSSCU(const OFString& peerHost,
60  const OFString& peerAETitle,
61  const Uint16& portNum);
62 
65  virtual ~DcmTLSSCU();
66 
70  virtual OFCondition initNetwork();
71 
77 
81  virtual void closeAssociation(const DcmCloseAssociationType closeType);
82 
86  virtual void addTrustedCertFile(const OFString& str);
87 
91  virtual void addTrustedCertDir(const OFString& certDir);
92 
104  virtual void enableAuthentication(const OFString& privateKey,
105  const OFString& certFile,
106  const char* passphrase = NULL,
107  const int& privKeyFormat = SSL_FILETYPE_PEM,
108  const int& certFormat = SSL_FILETYPE_PEM);
109 
113  virtual void disableAuthentication();
114 
118  virtual void addCiphersuite(const OFString& cs);
119 
123  virtual void setReadSeedFile(const OFString& seedFile);
124 
128  virtual void setWriteSeedFile(const OFString& seedFile);
129 
134  virtual void setPeerCertVerification(const DcmCertificateVerification& cert);
135 
139  virtual void setDHParam(const OFString& dhParam);
140 
145  virtual OFBool getAuthenticationParams(OFString& privKeyFile,
146  OFString& certFile,
147  const char*& passphrase,
148  int& privKeyFormat,
149  int& certFormat) const;
150 
154  virtual void getTrustedCertFiles(OFList<OFString>& files /*out*/) const;
155 
159  virtual void getTrustedCertDirs(OFList<OFString>& trustedDirs /*out*/) const;
160 
164  virtual OFString getCiphersuites() const;
165 
169  virtual OFString getReadSeedFile() const;
170 
174  virtual OFString getWriteSeedFile() const;
175 
179  virtual OFString getDHParam() const;
180 
181 private:
182 
186  DcmTLSSCU( const DcmTLSSCU &src );
187 
192  DcmTLSSCU &operator=( const DcmTLSSCU &src );
193 
196 
199 
202 
205 
208 
211 
214 
217 
221  char* m_passwd;
222 
225 
228 
231 
234  DcmCertificateVerification m_certVerification;
235 
238 
239 };
240 
241 #endif // WITH_OPENSSL
242 
243 #endif // TLSSCU_H
244 
245 
246 /*
247 ** CVS Log
248 ** $Log: tlsscu.h,v $
249 ** Revision 1.4 2010-10-14 13:17:27 joergr
250 ** Updated copyright header. Added reference to COPYRIGHT file.
251 **
252 ** Revision 1.3 2010-10-01 12:25:29 uli
253 ** Fixed most compiler warnings in remaining modules.
254 **
255 ** Revision 1.2 2010-06-22 15:49:38 joergr
256 ** Introduced new enumeration type to be used for closeAssociation().
257 **
258 ** Revision 1.1 2010-04-29 16:18:00 onken
259 ** Added new class DcmTLSSCU as base class for developing TLS-enabled SCUs.
260 **
261 */
virtual void disableAuthentication()
Disables authentication.
virtual OFCondition initNetwork()
Initialize network, i.e.
virtual OFString getReadSeedFile() const
TODO: Not documented yet.
virtual void getTrustedCertFiles(OFList< OFString > &files) const
TODO: Not documented yet.
virtual OFString getWriteSeedFile() const
TODO: Not documented yet.
DcmTLSSCU & operator=(const DcmTLSSCU &src)
Private undefined operator=.
OFString m_ciphersuites
String containing all ciphersuites being (additionally? TODO) configured.
Definition: tlsscu.h:224
OFBool m_doAuthenticate
If enabled, authentication of client/server is enabled.
Definition: tlsscu.h:198
Base class for implementing DICOM TLS-enabled Service Class User functionality.
Definition: tlsscu.h:45
OFString m_privateKeyFile
The file containing the private key (if authentication is enabled)
Definition: tlsscu.h:207
virtual void setWriteSeedFile(const OFString &seedFile)
TODO: Not documented yet.
virtual OFString getCiphersuites() const
TODO: Not documented yet.
virtual void addTrustedCertFile(const OFString &str)
TODO: Not documented yet.
virtual OFString getDHParam() const
TODO: Not documented yet.
DcmTLSSCU()
Constructor, just initializes internal class members.
OFString m_writeSeedFile
TODO.
Definition: tlsscu.h:230
virtual void getTrustedCertDirs(OFList< OFString > &trustedDirs) const
TODO: Not documented yet.
virtual void closeAssociation(const DcmCloseAssociationType closeType)
Closes the association of this SCU.
virtual void setReadSeedFile(const OFString &seedFile)
TODO: Not documented yet.
factory class which creates secure TLS transport layer connections and maintains the parameters commo...
Definition: tlslayer.h:79
char * m_passwd
Password used for unlocking the private key file.
Definition: tlsscu.h:221
virtual OFCondition negotiateAssociation()
Negotiate association by using presentation contexts and parameters as defined by earlier function ca...
DcmTLSTransportLayer * m_tLayer
The TLS layer responsible for all encryption/authentication stuff.
Definition: tlsscu.h:195
OFString m_readSeedFile
TODO.
Definition: tlsscu.h:227
int m_certKeyFileFormat
Might be either "SSL_FILETYPE_PEM" (default) or "SSL_FILETYPE_ASN1".
Definition: tlsscu.h:216
DcmCertificateVerification m_certVerification
Denotes how certificates are handled, i.e.
Definition: tlsscu.h:234
virtual void addTrustedCertDir(const OFString &certDir)
TODO: Not documented yet.
virtual void addCiphersuite(const OFString &cs)
TODO: Not documented yet.
OFList< OFString > m_trustedCertFiles
A list of files containing trusted certificates (if authentication is enabled)
Definition: tlsscu.h:204
int m_privateKeyFileFormat
Might be either "SSL_FILETYPE_PEM" (default) or "SSL_FILETYPE_ASN1".
Definition: tlsscu.h:210
OFString m_dhparam
File containing Diffie Hellman parameters to be used.
Definition: tlsscu.h:237
OFString m_certificateFile
File containing the certificate the SCU should use for authentication.
Definition: tlsscu.h:213
Base class for implementing DICOM Service Class User functionality.
Definition: scu.h:110
a simple string class that implements a subset of std::string.
Definition: ofstring.h:86
virtual void setDHParam(const OFString &dhParam)
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 OFBool getAuthenticationParams(OFString &privKeyFile, OFString &certFile, const char *&passphrase, int &privKeyFormat, int &certFormat) const
Returns OFTrue if authentication is enabled.
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.
OFList< OFString > m_trustedCertDirs
A list of directories containing trusted certificates (if authentication is enabled) ...
Definition: tlsscu.h:201
General purpose class for condition codes.
Definition: ofcond.h:305
virtual ~DcmTLSSCU()
Virtual destructor.


Generated on Thu Aug 27 2015 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.9.1