00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TAO_SSLIOP_CURRENT_IMPL_H
00014 #define TAO_SSLIOP_CURRENT_IMPL_H
00015
00016 #include "ace/pre.h"
00017
00018 #include "ace/config-all.h"
00019
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif
00023
00024 #include "orbsvcs/SSLIOPC.h"
00025 #include "orbsvcs/Security/SL3_SecurityCurrent_Impl.h"
00026
00027 #include <openssl/ssl.h>
00028
00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00030
00031 namespace TAO
00032 {
00033 namespace SSLIOP
00034 {
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 class Current_Impl : public TAO::SL3::SecurityCurrent_Impl
00046 {
00047 public:
00048
00049
00050 Current_Impl (void);
00051
00052
00053 ~Current_Impl (void);
00054
00055
00056
00057 virtual SecurityLevel3::ClientCredentials_ptr client_credentials ();
00058
00059
00060
00061 virtual CORBA::Boolean request_is_local ();
00062
00063
00064
00065
00066 void get_peer_certificate (::SSLIOP::ASN_1_Cert *certificate);
00067
00068
00069
00070 void get_peer_certificate_chain (::SSLIOP::SSL_Cert *cert_chain);
00071
00072
00073 void ssl (SSL *s);
00074
00075
00076 SSL *ssl (void);
00077
00078 protected:
00079
00080
00081 virtual CORBA::ULong tag (void) const;
00082
00083 private:
00084
00085
00086
00087
00088 Current_Impl (const Current_Impl &);
00089 void operator= (const Current_Impl &);
00090
00091
00092 private:
00093
00094
00095 SSL *ssl_;
00096
00097 };
00098 }
00099 }
00100
00101 TAO_END_VERSIONED_NAMESPACE_DECL
00102
00103 #if defined (__ACE_INLINE__)
00104 # include "orbsvcs/SSLIOP/SSLIOP_Current_Impl.inl"
00105 #endif
00106
00107 #include "ace/post.h"
00108
00109 #endif