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 */


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