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

Diff for /pegasus/src/Pegasus/Common/SSLContextRep.h between version 1.8 and 1.23.2.1

version 1.8, 2002/09/20 00:29:19 version 1.23.2.1, 2006/02/10 16:09:38
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // The Open Group, Tivoli Systems  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
   // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 23 
Line 31 
 // //
 // Author: Nag Boranna, Hewlett-Packard Company ( nagaraja_boranna@hp.com ) // Author: Nag Boranna, Hewlett-Packard Company ( nagaraja_boranna@hp.com )
 // //
 // Modified By:  // Modified By: Sushma Fernandes, Hewlett-Packard Company (sushma_fernandes@hp.com)
   //              Heather Sterling, IBM (hsterl@us.ibm.com)
   //              Aruran, IBM (ashanmug@in.ibm.com) for Bug#4422
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
  
 #ifdef PEGASUS_HAS_SSL #ifdef PEGASUS_HAS_SSL
   #define OPENSSL_NO_KRB5 1
 #include <openssl/err.h> #include <openssl/err.h>
 #include <openssl/ssl.h> #include <openssl/ssl.h>
 #include <openssl/rand.h> #include <openssl/rand.h>
Line 36 
Line 47 
 #endif #endif
 #include <Pegasus/Common/SSLContext.h> #include <Pegasus/Common/SSLContext.h>
 #include <Pegasus/Common/Linkage.h> #include <Pegasus/Common/Linkage.h>
   #include <Pegasus/Common/IPC.h>
  
 #ifndef Pegasus_SSLContextRep_h #ifndef Pegasus_SSLContextRep_h
 #define Pegasus_SSLContextRep_h #define Pegasus_SSLContextRep_h
Line 43 
Line 55 
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
  
   class SSLCallbackInfoRep
   {
   public:
       SSLCertificateVerifyFunction* verifyCertificateCallback;
       Array<SSLCertificateInfo*> peerCertificate;
       X509_STORE* crlStore;
   };
  
 class PEGASUS_COMMON_LINKAGE SSLContextRep class PEGASUS_COMMON_LINKAGE SSLContextRep
 { {
       /*
       SSL locking callback function. It is needed to perform locking on
       shared data structures.
   
       This function needs access to variable ssl_locks.
       Declare it as a friend of class SSLContextRep.
   
       @param mode     Specifies whether to lock/unlock.
       @param type Type of lock.
       @param file      File name of the function setting the lock.
       @param line      Line number of the function setting the lock.
       */
       friend void pegasus_locking_callback(
                         int       mode,
                         int       type,
                         const     char* file,
                         int       line);
   
 public: public:
  
     /** Constructor for a SSLContextRep object.     /** Constructor for a SSLContextRep object.
     @param certPath  certificate file path      @param trustStore  trust store file path
       @param certPath  server certificate file path
       @param keyPath  server key file path
     @param verifyCert  function pointer to a certificate verification     @param verifyCert  function pointer to a certificate verification
     call back function.     call back function.
     @param randomFile  file path of a random file that is used as a seed     @param randomFile  file path of a random file that is used as a seed
Line 58 
Line 97 
     @exception SSLException  exception indicating failure to create a context.     @exception SSLException  exception indicating failure to create a context.
     */     */
     SSLContextRep(     SSLContextRep(
         const String& certPath,          const String& trustStore,
           const String& certPath = String::EMPTY,
           const String& keyPath = String::EMPTY,
           const String& crlPath = String::EMPTY,
         SSLCertificateVerifyFunction* verifyCert = NULL,         SSLCertificateVerifyFunction* verifyCert = NULL,
         const String& randomFile = String::EMPTY);         const String& randomFile = String::EMPTY);
  
Line 68 
Line 110 
  
     SSL_CTX * getContext() const;     SSL_CTX * getContext() const;
  
       String getTrustStore() const;
   
       String getCertPath() const;
   
       String getKeyPath() const;
   
   #ifdef PEGASUS_USE_DEPRECATED_INTERFACES
           String getTrustStoreUserName() const;
   #endif
   
       String getCRLPath() const;
   
       X509_STORE* getCRLStore() const;
   
       void setCRLStore(X509_STORE* store);
   
       Boolean isPeerVerificationEnabled() const;
   
       SSLCertificateVerifyFunction* getSSLCertificateVerifyFunction() const;
   
 private: private:
  
     SSL_CTX * _makeSSLContext();     SSL_CTX * _makeSSLContext();
       void _randomInit(const String& randomFile);
       Boolean _verifyPrivateKey(SSL_CTX *ctx, const String& keyPath);
   
       /*
       Initialize the SSL locking environment.
   
       This function sets the locking callback functions.
       */
       static void init_ssl();
  
     CString _certPath;      /*
       Cleanup the SSL locking environment.
       */
       static void free_ssl();
   
       String _trustStore;
       String _certPath;
       String _keyPath;
       String _crlPath;
     String _randomFile;     String _randomFile;
     SSL_CTX * _sslContext;     SSL_CTX * _sslContext;
   
       Boolean _verifyPeer;
   
       SSLCertificateVerifyFunction* _certificateVerifyFunction;
   
       X509_STORE* _crlStore;
   
       /*
          Mutex containing the SSL locks.
       */
       static AutoArrayPtr<Mutex> _sslLocks;
   
       /*
          Count for instances of this class. This is used to initialize and free
          SSL locking objects.
       */
       static int _countRep;
   
       /*
          Mutex for countRep.
       */
       static Mutex _countRepMutex;
 }; };
  
 PEGASUS_NAMESPACE_END PEGASUS_NAMESPACE_END


Legend:
Removed from v.1.8  
changed lines
  Added in v.1.23.2.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2