summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2001-12-09 18:20:56 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2001-12-09 18:20:56 +0000
commit7aa6ef7d165192fd9128b5e6e2dfc0b411d4a3d7 (patch)
treed5a6764443b4171f914cc236269e443f864178b6
parent6d794ee9ab5fd411c3298ffee8f59f5ea924e3eb (diff)
downloadATCD-7aa6ef7d165192fd9128b5e6e2dfc0b411d4a3d7.tar.gz
ChangeLogTag:Sun Dec 9 10:10:01 2001 Ossama Othman <ossama@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a8
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/Callback.dsw41
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/README13
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/cacert.pem21
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/client.conf4
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/client.cpp125
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/client.dsp306
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/client.idl11
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/client_cert.pem16
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/client_i.cpp26
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/client_i.h42
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/client_key.pem15
-rwxr-xr-xTAO/orbsvcs/tests/Security/Callback/run_test.pl52
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/server.conf4
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/server.cpp90
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/server.dsp322
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/server.idl14
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/server_cert.pem16
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/server_i.cpp40
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/server_i.h51
-rw-r--r--TAO/orbsvcs/tests/Security/Callback/server_key.pem15
21 files changed, 1232 insertions, 0 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index ebbca3408a3..7cbdc798c4b 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,11 @@
+Sun Dec 9 10:10:01 2001 Ossama Othman <ossama@uci.edu>
+
+ * orbsvcs/tests/Security/Callback:
+
+ New test contributed by Robert Martin <martin_r@ociweb.com>.
+ This test is designed to excercise the connection cache related
+ code in a complex pluggable protocol such as SSLIOP.
+
Sat Dec 8 11:47:37 2001 Ossama Othman <ossama@uci.edu>
* Merged the corba-env-clean CVS branch. This merge cleans up all
diff --git a/TAO/orbsvcs/tests/Security/Callback/Callback.dsw b/TAO/orbsvcs/tests/Security/Callback/Callback.dsw
new file mode 100644
index 00000000000..d17cf7c9604
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/Callback.dsw
@@ -0,0 +1,41 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "client"=.\client.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "server"=.\server.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/TAO/orbsvcs/tests/Security/Callback/README b/TAO/orbsvcs/tests/Security/Callback/README
new file mode 100644
index 00000000000..5c8153c6672
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/README
@@ -0,0 +1,13 @@
+#
+# $Id$
+#
+
+This test is designed to excercise the connection cache related code
+in a complex pluggable protocol such as SSLIOP.
+
+An object reference is sent to the target as an "in" parameter. The
+target then uses that object reference to invoke a callback method on
+an object residing at the client.
+
+If the secure connection is not cached properly, then it will not be
+possible to invoke the callback method on the client.
diff --git a/TAO/orbsvcs/tests/Security/Callback/cacert.pem b/TAO/orbsvcs/tests/Security/Callback/cacert.pem
new file mode 100644
index 00000000000..a9e905f4e6c
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/cacert.pem
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAuagAwIBAgIBADANBgkqhkiG9w0BAQQFADCBjDELMAkGA1UEBhMCVVMx
+CzAJBgNVBAgTAkNBMQ8wDQYDVQQHEwZJcnZpbmUxEjAQBgNVBAoTCURPQyBHcm91
+cDEQMA4GA1UECxYHVUNJX0RPQzERMA8GA1UEAxMIUHJpeWFua2ExJjAkBgkqhkiG
+9w0BCQEWF3Bnb250bGFAZG9jLmVjZS51Y2kuZWR1MB4XDTAxMDYxMTE3MjI0MVoX
+DTExMDYwOTE3MjI0MVowgYwxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEPMA0G
+A1UEBxMGSXJ2aW5lMRIwEAYDVQQKEwlET0MgR3JvdXAxEDAOBgNVBAsWB1VDSV9E
+T0MxETAPBgNVBAMTCFByaXlhbmthMSYwJAYJKoZIhvcNAQkBFhdwZ29udGxhQGRv
+Yy5lY2UudWNpLmVkdTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyFiCRDUH
+nGJqQG9jT/2PhZUAgfwXvIwfDM8m/WujCt/buDcrOz767shBsk4HZhW91Vm4mE03
+K1zfCzojRigf28uyB/rlp60p2Fq0wvZBNNU5Muia6esleR4unb4QslOpcFhct/9n
+UPnlnnsZOTaGWaELNKEjYfHqPh8PQ0lYurECAwEAAaOB7DCB6TAdBgNVHQ4EFgQU
+0Y6IZjkLbLbtZ5aoKLcfd7Yc/kYwgbkGA1UdIwSBsTCBroAU0Y6IZjkLbLbtZ5ao
+KLcfd7Yc/kahgZKkgY8wgYwxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEPMA0G
+A1UEBxMGSXJ2aW5lMRIwEAYDVQQKEwlET0MgR3JvdXAxEDAOBgNVBAsWB1VDSV9E
+T0MxETAPBgNVBAMTCFByaXlhbmthMSYwJAYJKoZIhvcNAQkBFhdwZ29udGxhQGRv
+Yy5lY2UudWNpLmVkdYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GB
+AHYi8ulIzUI3p3+Ma16rumZxvKcmkJJbU6fpAv4ZvK6AWyy+6Ja0GD5N3SGEx+xU
+nMffTR+LePa9PAZiR7dNkF6ikPxXZu4jn8KY2zFT3SB/VjCoEetR9i9QI//O0Fea
+3yZ0NygNWe5cyVDLCb4meucJpsClfyL28DWzMwD2liX3
+-----END CERTIFICATE-----
diff --git a/TAO/orbsvcs/tests/Security/Callback/client.conf b/TAO/orbsvcs/tests/Security/Callback/client.conf
new file mode 100644
index 00000000000..5847fa22a03
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/client.conf
@@ -0,0 +1,4 @@
+# $Id$
+
+dynamic SSLIOP_Factory Service_Object * TAO_SSLIOP:_make_TAO_SSLIOP_Protocol_Factory() "-SSLAuthenticate SERVER_AND_CLIENT -SSLPrivateKey PEM:client_key.pem -SSLCertificate PEM:client_cert.pem"
+static Resource_Factory "-ORBProtocolFactory SSLIOP_Factory"
diff --git a/TAO/orbsvcs/tests/Security/Callback/client.cpp b/TAO/orbsvcs/tests/Security/Callback/client.cpp
new file mode 100644
index 00000000000..be6b546f1ff
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/client.cpp
@@ -0,0 +1,125 @@
+#include "ace/Log_Msg.h"
+#include "ace/streams.h"
+#include "serverC.h"
+#include "client_i.h"
+
+
+ACE_RCSID (Callback,
+ client,
+ "$Id$")
+
+
+int
+main (int argc, char *argv[])
+{
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ //
+ // Initialize the ORB
+ //
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv, "" TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ //
+ // Get the Root POA.
+ //
+ CORBA::Object_var obj =
+ orb->resolve_initial_references ("RootPOA" TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ PortableServer::POA_var poa =
+ PortableServer::POA::_narrow (obj.in() TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ //
+ // Get a reference to the server.
+ //
+ obj = orb->string_to_object ("file://server.ior" TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (CORBA::is_nil (obj.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%P) orb->string_to_object ")
+ ACE_TEXT ("(\"file://server.ior\") failed.\n")),
+ -1);
+ }
+
+ //
+ // Downcast the IOR to the appropriate object type.
+ //
+ server_var server_obj =
+ server::_narrow (obj.in () TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ if (CORBA::is_nil (server_obj.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%P) server::_narrow(obj) failed.\n")),
+ -1);
+ }
+
+ //
+ // Create and activate the client.
+ //
+ client_i *theClient = 0;
+ ACE_NEW_RETURN (theClient,
+ client_i (server_obj.in ()),
+ -1);
+
+ client_var client_ref = theClient->_this (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ //
+ // Activate the POA manager.
+ //
+ PortableServer::POAManager_var mgr =
+ poa->the_POAManager (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ mgr->activate (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ //
+ // Set the server's callback and invoke the test request.
+ //
+ server_obj->set_client (client_ref.in () TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ server_obj->test_request ("first secure callback to client"
+ TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ //
+ // Repeat the callback test.
+ //
+ server_obj->set_client (client_ref.in () TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ server_obj->test_request ("second secure callback to client"
+ TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ server_obj->shutdown (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ poa->destroy (1, 1 TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ orb->destroy (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ delete theClient;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ ACE_TEXT ("Caught exception\n"));
+
+ return -1;
+ }
+ ACE_ENDTRY;
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Security/Callback/client.dsp b/TAO/orbsvcs/tests/Security/Callback/client.dsp
new file mode 100644
index 00000000000..f0d5c766e9a
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/client.dsp
@@ -0,0 +1,306 @@
+# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=client - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "client.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "client.mak" CFG="client - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "client - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "client - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../../.." /I "../../../.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 TAO_PortableServer.lib tao.lib ace.lib /nologo /subsystem:console /machine:I386 /out:"client.exe" /libpath:"../../../../../ace" /libpath:"../../../../tao" /libpath:"../../../../tao/PortableServer"
+
+!ELSEIF "$(CFG)" == "client - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../../../.." /I "../../../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 TAO_PortableServerd.lib taod.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../../../ace" /libpath:"../../../../tao" /libpath:"../../../../tao/PortableServer"
+
+!ENDIF
+
+# Begin Target
+
+# Name "client - Win32 Release"
+# Name "client - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\client.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\client_i.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\clientC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\clientS.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverC.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\client_i.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\clientC.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\clientS.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverC.h
+# End Source File
+# End Group
+# Begin Group "Inline Files"
+
+# PROP Default_Filter "i;inl"
+# Begin Source File
+
+SOURCE=.\serverC.i
+# End Source File
+# End Group
+# Begin Group "IDL Files"
+
+# PROP Default_Filter "idl"
+# Begin Source File
+
+SOURCE=.\client.idl
+
+!IF "$(CFG)" == "client - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\client.idl
+InputName=client
+
+BuildCmds= \
+ ..\..\..\..\..\bin\Release\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "client - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\client.idl
+InputName=client
+
+BuildCmds= \
+ ..\..\..\..\..\bin\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\server.idl
+
+!IF "$(CFG)" == "client - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\server.idl
+InputName=server
+
+BuildCmds= \
+ ..\..\..\..\..\bin\Release\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "client - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\server.idl
+InputName=server
+
+BuildCmds= \
+ ..\..\..\..\..\bin\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/orbsvcs/tests/Security/Callback/client.idl b/TAO/orbsvcs/tests/Security/Callback/client.idl
new file mode 100644
index 00000000000..9ac07bd3cd5
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/client.idl
@@ -0,0 +1,11 @@
+//
+// Client interface definition.
+//
+// $Id$
+//
+
+
+interface client
+{
+ void test_reply (in string msg);
+};
diff --git a/TAO/orbsvcs/tests/Security/Callback/client_cert.pem b/TAO/orbsvcs/tests/Security/Callback/client_cert.pem
new file mode 100644
index 00000000000..0bebb696cfc
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/client_cert.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICgzCCAewCAQYwDQYJKoZIhvcNAQEEBQAwgYwxCzAJBgNVBAYTAlVTMQswCQYD
+VQQIEwJDQTEPMA0GA1UEBxMGSXJ2aW5lMRIwEAYDVQQKEwlET0MgR3JvdXAxEDAO
+BgNVBAsWB1VDSV9ET0MxETAPBgNVBAMTCFByaXlhbmthMSYwJAYJKoZIhvcNAQkB
+FhdwZ29udGxhQGRvYy5lY2UudWNpLmVkdTAeFw0wMTA2MTExODEwMzRaFw0xMTA2
+MDkxODEwMzRaMIGGMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExDzANBgNVBAcT
+BklydmluZTEQMA4GA1UEChMHVEFPK09DSTEMMAoGA1UECxMDT0NJMREwDwYDVQQD
+EwhQcml5YW5rYTEmMCQGCSqGSIb3DQEJARYXcGdvbnRsYUBkb2MuZWNlLnVjaS5l
+ZHUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL6f8pBX7Mi3FPY/OYBOq+kb
+wQ3WX0Z8+nDxd7AiWDAx2AL5EaX8xnUiRi96OJ+CYPCYOUlavGVzZkRVMFdOuHAn
+RvY2sCpvU2rkKpEx9Pd50l7FLnXJuflnRc6zIEKOvuQcPJvsP4AaxaFxTnZExXQJ
+kDEiQP3mGID/eXtUzywbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAuvSoOnMB6sxj
+ft9YbdLeyATTPzHbxAb6zQo72DUmM3roNowUrefHymU8jZoC6HeaROeKCU0MkVes
+l/jYlz/OwSYkbyGNIUkq4DHEWKzXEg8M603fsWK6IK3T5iPBHY+l/mYSEHJPfypZ
+fl/y4YSNJZlrz6kCIHTcwfHXDRC1mjM=
+-----END CERTIFICATE-----
diff --git a/TAO/orbsvcs/tests/Security/Callback/client_i.cpp b/TAO/orbsvcs/tests/Security/Callback/client_i.cpp
new file mode 100644
index 00000000000..b6193edd141
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/client_i.cpp
@@ -0,0 +1,26 @@
+#include "ace/Log_Msg.h"
+#include "client_i.h"
+
+ACE_RCSID (Callback,
+ client_i,
+ "$Id$")
+
+client_i::client_i (server_ptr s)
+ : server_ (server::_duplicate (s))
+{
+}
+
+client_i::~client_i (void)
+{
+}
+
+void
+client_i::test_reply (const char *msg
+ TAO_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ACE_DEBUG((LM_INFO,
+ ACE_TEXT("(%N) message received was ")
+ ACE_TEXT("(%s)\n"),
+ msg));
+}
diff --git a/TAO/orbsvcs/tests/Security/Callback/client_i.h b/TAO/orbsvcs/tests/Security/Callback/client_i.h
new file mode 100644
index 00000000000..874d0592cbb
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/client_i.h
@@ -0,0 +1,42 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file client_i.h
+ *
+ * $Id$ *
+ * Header for the SSLIOP Callback test client callback implementation.
+ *
+ * @author Robert Martin <martin_r@ociweb.com>
+ */
+//=============================================================================
+
+#ifndef CLIENT_I_H
+#define CLIENT_I_H
+
+#include "clientS.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "serverC.h"
+
+class client_i : public virtual POA_client
+{
+public:
+
+ client_i (server_ptr s);
+ virtual ~client_i (void);
+
+ virtual void test_reply (const char *msg
+ TAO_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+private:
+
+ server_var server_;
+
+};
+
+#endif /* CLIENT_I_H */
diff --git a/TAO/orbsvcs/tests/Security/Callback/client_key.pem b/TAO/orbsvcs/tests/Security/Callback/client_key.pem
new file mode 100644
index 00000000000..1428b501712
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/client_key.pem
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQC+n/KQV+zItxT2PzmATqvpG8EN1l9GfPpw8XewIlgwMdgC+RGl
+/MZ1IkYvejifgmDwmDlJWrxlc2ZEVTBXTrhwJ0b2NrAqb1Nq5CqRMfT3edJexS51
+ybn5Z0XOsyBCjr7kHDyb7D+AGsWhcU52RMV0CZAxIkD95hiA/3l7VM8sGwIDAQAB
+AoGABGaa6fwtqkCXykuRX0XxsBME9PXTA0SVX5AjjDxuvsYXz5HCd4uLZV7iMexn
+bD9NT6CkCe5/VPRCEyfIUuutVFc7lkPwuRw5FvNcf4gMH9ltufQfH/KeR7d2Jvge
+zrTOH7nicshy67mfOEOaoDphWoT9uy+7ayym+EsJLJU37VkCQQD6xLRu5r9tKX2/
+NfIQsGxF3TZyXgxcuxMh9JOq5E9nBwhr1JaXDbXktXfIK/F3XWHLFS8CIg6PhgGY
+i/+UtGzvAkEAwpoHp89U2jLdVRoIcwy5o7Ocwk3HCXem3UgFWXzzunGM1x+ozDFA
+uo5nyXiAO6Buka9C2czje275kE18BbqLlQJBAMJNf/EeYdzXdVOfHPzJdlt72CAt
+ty5y1ZRNyc10MgIGdQP4KObJ/NJFuZYkVmjCtm+A7neco+OZVcs5TsOOOYkCQBHQ
+6EKEyM/xODJCX+OolpZWK1PeqwpC2hQIM/Uta2L2Yl6Pl3SaTcLGptnbHmJXHchY
+s1YdW/ZBArgjX+dmXMECQApTKWbVLmNsEoOlHU/I/KhGsfuojrzBMMe3FKLiHpmu
+u86L3vu3OGZFcPgjazxWZcip8JekeJ7c+6suLNNRQ5I=
+-----END RSA PRIVATE KEY-----
diff --git a/TAO/orbsvcs/tests/Security/Callback/run_test.pl b/TAO/orbsvcs/tests/Security/Callback/run_test.pl
new file mode 100755
index 00000000000..25fb1369755
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/run_test.pl
@@ -0,0 +1,52 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# -*- perl -*-
+# $Id$
+
+use lib '../../../../../bin';
+use PerlACE::Run_Test;
+
+$status = 0;
+$file = PerlACE::LocalFile ("server.ior");
+
+unlink $file;
+
+$status = 0;
+
+# Set the SSL environment
+$ENV{'SSL_CERT_FILE'} = 'cacert.pem';
+
+$SV = new PerlACE::Process ("server",
+ "-o $file -ORBSvcConf server.conf");
+$CL = new PerlACE::Process ("client",
+ "-ORBSvcConf client.conf");
+
+print STDERR "\n\n==== Running SSLIOP Callback test\n";
+
+$SV->Spawn ();
+
+if (PerlACE::waitforfile_timed ($file, 15) == -1) {
+ print STDERR "ERROR: cannot find file <$file>\n";
+ $SV->Kill ();
+ exit 1;
+}
+
+$client = $CL->SpawnWaitKill (60);
+
+if ($client != 0) {
+ print STDERR "ERROR: client returned $client\n";
+ $status = 1;
+}
+
+$server = $SV->WaitKill (5);
+
+if ($server != 0) {
+ print STDERR "ERROR: server returned $server\n";
+ $status = 1;
+}
+
+unlink $file;
+
+exit $status;
diff --git a/TAO/orbsvcs/tests/Security/Callback/server.conf b/TAO/orbsvcs/tests/Security/Callback/server.conf
new file mode 100644
index 00000000000..ee0ef1aa57c
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/server.conf
@@ -0,0 +1,4 @@
+# $Id$
+
+dynamic SSLIOP_Factory Service_Object * TAO_SSLIOP:_make_TAO_SSLIOP_Protocol_Factory() "-SSLAuthenticate SERVER_AND_CLIENT -SSLPrivateKey PEM:server_key.pem -SSLCertificate PEM:server_cert.pem"
+static Resource_Factory "-ORBProtocolFactory SSLIOP_Factory"
diff --git a/TAO/orbsvcs/tests/Security/Callback/server.cpp b/TAO/orbsvcs/tests/Security/Callback/server.cpp
new file mode 100644
index 00000000000..673bb44fbcf
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/server.cpp
@@ -0,0 +1,90 @@
+#include "ace/Log_Msg.h"
+#include "ace/streams.h"
+#include "server_i.h"
+
+
+ACE_RCSID (Callback,
+ server,
+ "$Id$")
+
+
+int
+main (int argc, char *argv[])
+{
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
+ {
+ //
+ // Initialize the ORB
+ //
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv, "" TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ //
+ // Get the Root POA.
+ //
+ CORBA::Object_var obj =
+ orb->resolve_initial_references ("RootPOA" TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ PortableServer::POA_var poa =
+ PortableServer::POA::_narrow (obj.in () TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ //
+ // Create the server, get object reference,
+ // and create "stringified" IOR.
+ //
+ server_i *theServer = 0;
+ ACE_NEW_RETURN (theServer,
+ server_i (orb.in ()),
+ -1);
+
+ PortableServer::ObjectId_var oid =
+ poa->activate_object (theServer TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ CORBA::Object_var server_obj =
+ poa->id_to_reference (oid.in() TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ CORBA::String_var server_IORString =
+ orb->object_to_string (server_obj TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ //
+ // Write the IOR to a file.
+ //
+ ofstream server_IOR_file ("server.ior");
+ server_IOR_file << server_IORString.in () << endl;
+
+ //
+ // Activate the POA manager.
+ //
+ PortableServer::POAManager_var mgr =
+ poa->the_POAManager (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ mgr->activate (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("(%P) calling orb->run () ...\n")));
+
+ orb->run (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ poa->destroy (1, 1 TAO_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ orb->destroy (TAO_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ ACE_TEXT ("Caught exception\n"));
+ return -1;
+ }
+ ACE_ENDTRY;
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Security/Callback/server.dsp b/TAO/orbsvcs/tests/Security/Callback/server.dsp
new file mode 100644
index 00000000000..0d69fd14c3c
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/server.dsp
@@ -0,0 +1,322 @@
+# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=server - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "server.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "server.mak" CFG="server - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "server - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "server - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "server - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../../.." /I "../../../.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 ace.lib TAO.lib TAO_PortableServer.lib /nologo /subsystem:console /machine:I386 /out:"server.exe" /libpath:"../../../../../ace" /libpath:"../../../../tao" /libpath:"../../../../tao/PortableServer"
+
+!ELSEIF "$(CFG)" == "server - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "server___Win32_Debug"
+# PROP BASE Intermediate_Dir "server___Win32_Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../../../.." /I "../../../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 aced.lib TAOd.lib TAO_PortableServerd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"../../../../../ace" /libpath:"../../../../tao" /libpath:"../../../../tao/PortableServer"
+
+!ENDIF
+
+# Begin Target
+
+# Name "server - Win32 Release"
+# Name "server - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\clientC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\server.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\server_i.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverS.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\clientC.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\server_i.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverC.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverS.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverS_T.h
+# End Source File
+# End Group
+# Begin Group "Inline Files"
+
+# PROP Default_Filter "i;inl"
+# Begin Source File
+
+SOURCE=.\clientC.i
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverC.i
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverS.i
+# End Source File
+# Begin Source File
+
+SOURCE=.\serverS_T.i
+# End Source File
+# End Group
+# Begin Group "IDL Files"
+
+# PROP Default_Filter "idl"
+# Begin Source File
+
+SOURCE=.\client.idl
+
+!IF "$(CFG)" == "server - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\client.idl
+InputName=client
+
+BuildCmds= \
+ ..\..\..\..\..\bin\Release\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "server - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\client.idl
+InputName=client
+
+BuildCmds= \
+ ..\..\..\..\..\bin\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\server.idl
+
+!IF "$(CFG)" == "server - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\server.idl
+InputName=server
+
+BuildCmds= \
+ ..\..\..\..\..\bin\Release\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "server - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\server.idl
+InputName=server
+
+BuildCmds= \
+ ..\..\..\..\..\bin\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/orbsvcs/tests/Security/Callback/server.idl b/TAO/orbsvcs/tests/Security/Callback/server.idl
new file mode 100644
index 00000000000..66e11c7fa4b
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/server.idl
@@ -0,0 +1,14 @@
+//
+// Server interface definition.
+//
+// $Id$
+//
+
+#include "client.idl"
+
+interface server
+{
+ void set_client (in client c);
+ void test_request (in string msg);
+ oneway void shutdown ();
+};
diff --git a/TAO/orbsvcs/tests/Security/Callback/server_cert.pem b/TAO/orbsvcs/tests/Security/Callback/server_cert.pem
new file mode 100644
index 00000000000..0fc394c24d7
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/server_cert.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICgzCCAewCAQMwDQYJKoZIhvcNAQEEBQAwgYwxCzAJBgNVBAYTAlVTMQswCQYD
+VQQIEwJDQTEPMA0GA1UEBxMGSXJ2aW5lMRIwEAYDVQQKEwlET0MgR3JvdXAxEDAO
+BgNVBAsWB1VDSV9ET0MxETAPBgNVBAMTCFByaXlhbmthMSYwJAYJKoZIhvcNAQkB
+FhdwZ29udGxhQGRvYy5lY2UudWNpLmVkdTAeFw0wMTA2MTExNzQ4NTVaFw0xMTA2
+MDkxNzQ4NTVaMIGGMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExDzANBgNVBAcT
+BklydmluZTEMMAoGA1UEChMDT0NJMRAwDgYDVQQLEwdUQU8rT0NJMREwDwYDVQQD
+EwhQcml5YW5rYTEmMCQGCSqGSIb3DQEJARYXcGdvbnRsYUBkb2MuZWNlLnVjaS5l
+ZHUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANKXmudWiLVu/zdBlSr0/dlr
+pRe+Ie26cPyMo5lKiYNY77tABTiOXe5qLUEryjQ/fZ74gmBe4AYFwb7nu/f58X4A
+0tzSg2M4spWM7N4tzf+YbcUipRt9sEISxwfUxNNWTKnLxvCmkzOsISisukdzTkqJ
+fdzEcPfhO2BZKOdmlg1hAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAjUl3ami01tPY
+P1vMp2642dsIKLZis0TmeWp6HNpm52TbiGZOCqDrvtSQ9+2vGz0BkHvGqWKtD+wv
+zJH23fNnqFuzy1C1xtjoeqhXECTsWVTVdoEox8hSWxPiYRE2dioraZQQ5ENDosh+
+V9YcqJJpnKDUOSGVGuyaU7DpR8yK0pc=
+-----END CERTIFICATE-----
diff --git a/TAO/orbsvcs/tests/Security/Callback/server_i.cpp b/TAO/orbsvcs/tests/Security/Callback/server_i.cpp
new file mode 100644
index 00000000000..aa4b158d466
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/server_i.cpp
@@ -0,0 +1,40 @@
+#include "server_i.h"
+
+
+ACE_RCSID (Callback,
+ server_i,
+ "$Id$")
+
+
+server_i::server_i (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ client_ ()
+{
+}
+
+server_i::~server_i (void)
+{
+}
+
+void
+server_i::set_client (client_ptr c
+ TAO_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->client_ = client::_duplicate (c);
+}
+
+void
+server_i::test_request (const char *msg
+ TAO_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->client_->test_reply (msg TAO_ENV_ARG_PARAMETER);
+}
+
+void
+server_i::shutdown (TAO_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ this->orb_->shutdown (0 TAO_ENV_ARG_PARAMETER);
+}
diff --git a/TAO/orbsvcs/tests/Security/Callback/server_i.h b/TAO/orbsvcs/tests/Security/Callback/server_i.h
new file mode 100644
index 00000000000..0b5fe0c2468
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/server_i.h
@@ -0,0 +1,51 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file server_i.h
+ *
+ * $Id$
+ *
+ * Header for the SSLIOP Callback test server implementation.
+ *
+ * @author Robert Martin <martin_r@ociweb.com>
+ */
+//=============================================================================
+
+#ifndef SERVER_I_H
+#define SERVER_I_H
+
+#include "serverS.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+class server_i : public virtual POA_server
+{
+public:
+
+ server_i (CORBA::ORB_ptr orb);
+ virtual ~server_i (void);
+
+ virtual void set_client (client_ptr c
+ TAO_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void test_request (const char *msg
+ TAO_ENV_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void shutdown (TAO_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+private:
+
+ CORBA::ORB_var orb_;
+
+ client_var client_;
+
+};
+
+#endif /* SERVER_I_H */
diff --git a/TAO/orbsvcs/tests/Security/Callback/server_key.pem b/TAO/orbsvcs/tests/Security/Callback/server_key.pem
new file mode 100644
index 00000000000..567a41da6dc
--- /dev/null
+++ b/TAO/orbsvcs/tests/Security/Callback/server_key.pem
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDSl5rnVoi1bv83QZUq9P3Za6UXviHtunD8jKOZSomDWO+7QAU4
+jl3uai1BK8o0P32e+IJgXuAGBcG+57v3+fF+ANLc0oNjOLKVjOzeLc3/mG3FIqUb
+fbBCEscH1MTTVkypy8bwppMzrCEorLpHc05KiX3cxHD34TtgWSjnZpYNYQIDAQAB
+AoGAC/TxpZrjLjH8KZ3+oy6/zv1upTd1Y7MHQT+W9lgmEKAXFHGhGkHzEVtT8HRV
+CbxlHIaNmH0qiQ0AoB82K/E0BdIMvE+y2qQwlpMfBMX6/TACORReJN3NXGsXwHP4
+/pNlS4LX7/NZbxlReAlDNP+FO8sdKZTyM3VXHFWJbmm4wsECQQD06zQ4uthp0zI9
+WTZiiAUgYwOcnLnXwfWOLAr8RCnYgwiS7MBCcmhZAgWX5SZJYVCwEJ12DAHy02NJ
+EhiSgo+JAkEA3B7PcS5FqZFi6wVjEG6yF8OuSb/rl+FZfV6utZdCVdMPxacEVxlD
+q7H/dk23O4WwASBriU0PR9/KG3T/LvKBGQJAaYRn1EUTdcxKqcmkt6CYbNKbvL59
+BqqGq4DoHrUTPjd92ybq0fXOZQKM/Fr6OsUVaTVPUYtsz3wpG1MTiRN82QJACX6+
+vggb8yuVU8QAuPW9cu769q1zsTKEVLcf3C9xKhiXppQEyOkLFT3xYh4KGGQ06meG
+m/6Z+SS7KCIM2+6UCQJBANHIzgxDWtrLuWJviNh9EbCsdMioxBH+LGaqFKLC70xD
+Pyoqn+QJQu/ekT+FUb0BeFJfGPzFjh1mFYn4tXxWqMs=
+-----END RSA PRIVATE KEY-----