32 #ifndef Pegasus_SSLContext_h 33 #define Pegasus_SSLContext_h 35 #include <Pegasus/Common/CIMDateTime.h> 36 #include <Pegasus/Common/Config.h> 37 #include <Pegasus/Common/String.h> 38 #include <Pegasus/Common/Exception.h> 39 #include <Pegasus/Common/Linkage.h> 41 #ifdef PEGASUS_HAS_SSL 42 typedef struct x509_store_st X509_STORE;
44 # define X509_STORE int 47 PEGASUS_NAMESPACE_BEGIN
49 class SSLCertificateInfoRep;
56 class SSLContextManager;
57 class SSLCallbackInfoRep;
100 SSLCertificateVerifyFunction* verifyCert,
101 X509_STORE* crlStore);
111 SSLCertificateVerifyFunction* verifyCert,
112 X509_STORE* crlStore,
120 SSLCallbackInfoRep* _rep;
122 friend class SSLSocket;
124 friend class SSLCallback;
222 const int errorDepth,
236 String getSubjectName()
const;
241 String getIssuerName()
const;
258 Uint32 getVersionNumber()
const;
263 long getSerialNumber()
const;
268 Uint32 getErrorDepth()
const;
273 Uint32 getErrorCode()
const;
278 void setErrorCode(
const int errorCode);
283 String getErrorString()
const;
288 Uint32 getResponseCode()
const;
295 void setResponseCode(
const int respCode);
305 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES 306 const String &getPeerCertificate()
const;
331 const Uint32 versionNumber,
332 const long serialNumber,
336 const Uint32 errorCode,
338 const Uint32 respCode);
343 SSLCertificateInfoRep* _rep;
348 friend class SSLSocket;
350 friend class SSLCallback;
383 SSLCertificateVerifyFunction* verifyCert,
401 String getTrustStore()
const;
406 String getCertPath()
const;
411 String getKeyPath()
const;
416 String getCRLPath()
const;
421 X509_STORE* getCRLStore()
const;
423 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES 427 String getCipherSuite()
const;
434 Boolean isPeerVerificationEnabled()
const;
436 #ifdef PEGASUS_USE_DEPRECATED_INTERFACES 442 String getTrustStoreUserName()
const;
449 SSLCertificateVerifyFunction* getSSLCertificateVerifyFunction()
const;
479 SSLCertificateVerifyFunction* verifyCert,
480 const String& randomFile);
513 SSLCertificateVerifyFunction* verifyCert,
514 const String& randomFile);
516 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES 551 SSLCertificateVerifyFunction* verifyCert,
553 const String& cipherSuite,
554 const Boolean & sslCompatibility =
false);
559 #ifdef PEGASUS_USE_DEPRECATED_INTERFACES 581 SSLCertificateVerifyFunction* verifyCert,
582 String trustStoreUserName,
583 const String& randomFile);
591 void _validateCertificate();
595 friend class SSLSocket;
596 friend class CIMServer;
597 friend class SSLContextManager;
600 PEGASUS_NAMESPACE_END
static const int V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
Definition: SSLContext.h:150
static const int V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
Definition: SSLContext.h:168
static const int V_ERR_CERT_REJECTED
Definition: SSLContext.h:194
static const int V_ERR_CRL_SIGNATURE_FAILURE
Definition: SSLContext.h:154
static const int V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
Definition: SSLContext.h:146
static const int V_ERR_OUT_OF_MEM
Definition: SSLContext.h:172
static const int V_ERR_AKID_SKID_MISMATCH
Definition: SSLContext.h:198
static const int V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
Definition: SSLContext.h:174
static const int V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
Definition: SSLContext.h:164
static const int V_ERR_CERT_UNTRUSTED
Definition: SSLContext.h:192
static const int V_ERR_CRL_HAS_EXPIRED
Definition: SSLContext.h:162
static const int V_ERR_CERT_CHAIN_TOO_LONG
Definition: SSLContext.h:182
static const int V_ERR_CERT_NOT_YET_VALID
Definition: SSLContext.h:156
Definition: SSLContext.h:131
static const int V_ERR_INVALID_CA
Definition: SSLContext.h:186
static const int V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
Definition: SSLContext.h:148
static const int V_ERR_UNABLE_TO_GET_CRL
Definition: SSLContext.h:144
static const int V_ERR_CERT_REVOKED
Definition: SSLContext.h:184
static const int V_ERR_UNABLE_TO_GET_ISSUER_CERT
Definition: SSLContext.h:142
static const int V_ERR_PATH_LENGTH_EXCEEDED
Definition: SSLContext.h:188
static const int SSL_CALLBACK_INDEX
Definition: SSLContext.h:81
static const int V_ERR_AKID_ISSUER_SERIAL_MISMATCH
Definition: SSLContext.h:200
static const int V_ERR_CRL_NOT_YET_VALID
Definition: SSLContext.h:160
static const String EMPTY
Definition: String.h:127
Definition: SSLContext.h:356
static const int V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
Definition: SSLContext.h:180
static const int V_ERR_CERT_HAS_EXPIRED
Definition: SSLContext.h:158
static const int V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
Definition: SSLContext.h:166
static const int V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
Definition: SSLContext.h:170
static const int V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
Definition: SSLContext.h:178
static const int V_ERR_SUBJECT_ISSUER_MISMATCH
Definition: SSLContext.h:196
static const int V_OK
Definition: SSLContext.h:139
Definition: CIMDateTime.h:119
Definition: SSLContext.h:74
static const int V_ERR_INVALID_PURPOSE
Definition: SSLContext.h:190
static const int V_ERR_CERT_SIGNATURE_FAILURE
Definition: SSLContext.h:152
static const int V_ERR_SELF_SIGNED_CERT_IN_CHAIN
Definition: SSLContext.h:176
static const int V_ERR_KEYUSAGE_NO_CERTSIGN
Definition: SSLContext.h:202
static const int V_ERR_APPLICATION_VERIFICATION
Definition: SSLContext.h:205