00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef TLSSCU_H
00030 #define TLSSCU_H
00031
00032 #include "dcmtk/config/osconfig.h"
00033
00034 #ifdef WITH_OPENSSL
00035 #include "dcmtk/dcmnet/scu.h"
00036 #include "dcmtk/dcmtls/tlstrans.h"
00037 #include "dcmtk/dcmtls/tlslayer.h"
00038
00039
00045 class DcmTLSSCU : public DcmSCU
00046 {
00047
00048 public:
00049
00052 DcmTLSSCU();
00053
00059 DcmTLSSCU(const OFString& peerHost,
00060 const OFString& peerAETitle,
00061 const Uint16& portNum);
00062
00065 virtual ~DcmTLSSCU();
00066
00070 virtual OFCondition initNetwork();
00071
00076 virtual OFCondition negotiateAssociation();
00077
00081 virtual void closeAssociation(const DcmCloseAssociationType closeType);
00082
00086 virtual void addTrustedCertFile(const OFString& str);
00087
00091 virtual void addTrustedCertDir(const OFString& certDir);
00092
00104 virtual void enableAuthentication(const OFString& privateKey,
00105 const OFString& certFile,
00106 const char* passphrase = NULL,
00107 const int& privKeyFormat = SSL_FILETYPE_PEM,
00108 const int& certFormat = SSL_FILETYPE_PEM);
00109
00113 virtual void disableAuthentication();
00114
00118 virtual void addCiphersuite(const OFString& cs);
00119
00123 virtual void setReadSeedFile(const OFString& seedFile);
00124
00128 virtual void setWriteSeedFile(const OFString& seedFile);
00129
00134 virtual void setPeerCertVerification(const DcmCertificateVerification& cert);
00135
00139 virtual void setDHParam(const OFString& dhParam);
00140
00145 virtual OFBool getAuthenticationParams(OFString& privKeyFile,
00146 OFString& certFile,
00147 const char*& passphrase,
00148 int& privKeyFormat,
00149 int& certFormat) const;
00150
00154 virtual void getTrustedCertFiles(OFList<OFString>& files ) const;
00155
00159 virtual void getTrustedCertDirs(OFList<OFString>& trustedDirs ) const;
00160
00164 virtual OFString getCiphersuites() const;
00165
00169 virtual OFString getReadSeedFile() const;
00170
00174 virtual OFString getWriteSeedFile() const;
00175
00179 virtual OFString getDHParam() const;
00180
00181 private:
00182
00186 DcmTLSSCU( const DcmTLSSCU &src );
00187
00192 DcmTLSSCU &operator=( const DcmTLSSCU &src );
00193
00195 DcmTLSTransportLayer *m_tLayer;
00196
00198 OFBool m_doAuthenticate;
00199
00201 OFList<OFString> m_trustedCertDirs;
00202
00204 OFList<OFString> m_trustedCertFiles;
00205
00207 OFString m_privateKeyFile ;
00208
00210 int m_privateKeyFileFormat;
00211
00213 OFString m_certificateFile;
00214
00216 int m_certKeyFileFormat;
00217
00221 char* m_passwd;
00222
00224 OFString m_ciphersuites;
00225
00227 OFString m_readSeedFile;
00228
00230 OFString m_writeSeedFile;
00231
00234 DcmCertificateVerification m_certVerification;
00235
00237 OFString m_dhparam;
00238
00239 };
00240
00241 #endif // WITH_OPENSSL
00242
00243 #endif // TLSSCU_H
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261