(file) Return to SSLContextManager.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / General

  1 thilo.boehm 1.1 //%LICENSE////////////////////////////////////////////////////////////////
  2                 //
  3                 // Licensed to The Open Group (TOG) under one or more contributor license
  4                 // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5                 // this work for additional information regarding copyright ownership.
  6                 // Each contributor licenses this file to you under the OpenPegasus Open
  7                 // Source License; you may not use this file except in compliance with the
  8                 // License.
  9                 //
 10                 // Permission is hereby granted, free of charge, to any person obtaining a
 11                 // copy of this software and associated documentation files (the "Software"),
 12                 // to deal in the Software without restriction, including without limitation
 13                 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14                 // and/or sell copies of the Software, and to permit persons to whom the
 15                 // Software is furnished to do so, subject to the following conditions:
 16                 //
 17                 // The above copyright notice and this permission notice shall be included
 18                 // in all copies or substantial portions of the Software.
 19                 //
 20                 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21                 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 thilo.boehm 1.1 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23                 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24                 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25                 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26                 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27                 //
 28                 //////////////////////////////////////////////////////////////////////////
 29                 //
 30                 //%/////////////////////////////////////////////////////////////////////////////
 31                 
 32                 #ifndef Pegasus_SSLContextManager_h
 33                 #define Pegasus_SSLContextManager_h
 34                 
 35                 #include <Pegasus/Common/Config.h>
 36                 #include <Pegasus/Common/String.h>
 37                 #include <Pegasus/Common/SSLContext.h>
 38                 #include <Pegasus/Common/Mutex.h>
 39                 #include <Pegasus/Common/ReadWriteSem.h>
 40                 
 41 thilo.boehm 1.2 #include <Pegasus/General/Linkage.h>
 42                 
 43 thilo.boehm 1.1 PEGASUS_NAMESPACE_BEGIN
 44                 
 45                 /**
 46                     This class provides the functionality necessary to manage SSLContext
 47                     objects.
 48                  */
 49 thilo.boehm 1.2 class PEGASUS_GENERAL_LINKAGE SSLContextManager
 50 thilo.boehm 1.1 {
 51                 public:
 52                     /** Constructor. */
 53                 
 54                     SSLContextManager();
 55                 
 56                     ~SSLContextManager();
 57                 
 58                     void createSSLContext(
 59                         const String& trustStore,
 60                         const String& certPath,
 61                         const String& keyPath,
 62                         const String& crlStore,
 63                         Boolean callback,
 64                         const String& randFile);
 65                 
 66                     /**
 67                         Reload the trust store used by either the CIM Server or
 68                         Indication Server based on the context type.
 69                      */
 70                     void reloadTrustStore();
 71 thilo.boehm 1.1 
 72                     /**
 73                         Reload the CRL store.
 74                      */
 75                     void reloadCRLStore();
 76                 
 77                     /**
 78                         Get a pointer to the sslContext object.
 79                      */
 80                     SSLContext*  getSSLContext() const;
 81                 
 82                     /**
 83                         Get a pointer to the sslContextObjectLock.
 84                      */
 85                     ReadWriteSem*  getSSLContextObjectLock();
 86                 
 87                 private:
 88                     /**
 89                         A lock to control access to the _sslContext object.
 90                         Before read accessing the _sslContext object, one must first
 91                         lock this for read access.  Before write accessing the _sslContext
 92 thilo.boehm 1.1         object, one must first lock this for write access.
 93                      */
 94                     ReadWriteSem _sslContextObjectLock;
 95                     SSLContext* _sslContext;
 96                 };
 97                 
 98                 PEGASUS_NAMESPACE_END
 99                 
100                 #endif /* Pegasus_SSLContextManager_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2