diff options
Diffstat (limited to 'cpp')
160 files changed, 6739 insertions, 3250 deletions
diff --git a/cpp/allTests.py b/cpp/allTests.py index cb98545e02e..9724916ccee 100755 --- a/cpp/allTests.py +++ b/cpp/allTests.py @@ -32,6 +32,7 @@ tests = [ ("IceUtil/uuid", ["once", "noappverifier"]), # This test is very slow with appverifier. ("IceUtil/timer", ["once"]), ("IceUtil/fileLock", ["once"]), + ("IceUtil/sha1", ["once"]), ("Slice/errorDetection", ["once"]), ("Slice/keyword", ["once"]), ("Slice/structure", ["once"]), diff --git a/cpp/config/Make.rules.AIX b/cpp/config/Make.rules.AIX index e905165609c..e554ac8fead 100644 --- a/cpp/config/Make.rules.AIX +++ b/cpp/config/Make.rules.AIX @@ -75,6 +75,6 @@ installlib = $(INSTALL) $(2)/$(3) $(1) BASELIBS = -lIceUtil LIBS = -lIce $(BASELIBS) -ICEUTIL_OS_LIBS = +ICEUTIL_OS_LIBS = -lcrypto ICE_OS_LIBS = diff --git a/cpp/config/Make.rules.FreeBSD b/cpp/config/Make.rules.FreeBSD index 74086c1c895..df4313fec29 100644 --- a/cpp/config/Make.rules.FreeBSD +++ b/cpp/config/Make.rules.FreeBSD @@ -48,7 +48,7 @@ mklib = ar cr $(1) $(2) BASELIBS = -lIceUtil -lpthread LIBS = -lIce $(BASELIBS) -ICEUTIL_OS_LIBS = +ICEUTIL_OS_LIBS = -lcrypto ICE_OS_LIBS = ICONV_LIB = -liconv diff --git a/cpp/config/Make.rules.HP-UX b/cpp/config/Make.rules.HP-UX index 456c2871b12..6b30fd01a83 100644 --- a/cpp/config/Make.rules.HP-UX +++ b/cpp/config/Make.rules.HP-UX @@ -80,7 +80,7 @@ rpathlink = -L$(1) BASELIBS = -lIceUtil -lxnet -lpthread LIBS = $(BZIP2_RPATH_LINK) -lIce $(BASELIBS) -ICEUTIL_OS_LIBS = -lpthread -lrt +ICEUTIL_OS_LIBS = -lpthread -lrt -lcrypto ICE_OS_LIBS = lp64suffix = /pa20_64 diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux index eba47be808a..63a1c6b4c39 100644 --- a/cpp/config/Make.rules.Linux +++ b/cpp/config/Make.rules.Linux @@ -153,7 +153,7 @@ endif ICESSL_LIBS = $(OPENSSL_RPATH_LINK) -lIceSSL LIBS = $(BZIP2_RPATH_LINK) -lIce $(BASELIBS) -ICEUTIL_OS_LIBS = -lrt +ICEUTIL_OS_LIBS = -lrt $(OPENSSL_RPATH_LINK) -lcrypto ICE_OS_LIBS = -ldl PLATFORM_HAS_READLINE = yes diff --git a/cpp/config/Make.rules.MINGW b/cpp/config/Make.rules.MINGW index 6de669c684e..4600db7b4c9 100644 --- a/cpp/config/Make.rules.MINGW +++ b/cpp/config/Make.rules.MINGW @@ -72,7 +72,9 @@ installprogram = $(INSTALL_PROGRAM) $(1) $(2); \ CPPFLAGS := -I"$(THIRDPARTY_HOME)/include" $(CPPFLAGS) LDPLATFORMFLAGS := -L"$(THIRDPARTY_HOME)/$(libsubdir)" $(LDFLAGS) -OPENSSL_LIBS = -leay32$(COMPSUFFIX) -lssleay32$(COMPSUFFIX) -lws2_32 +SSL_OS_LIBS = -lsecur32 -lcrypt32 -lws2_32 + +ICEWS_OS_LIBS = -lws2_32 ifeq ($(LP64),yes) MCPP_LIBS = -L"$(THIRDPARTY_HOME)/lib/mingw$(lp64suffix)" -lmcpp diff --git a/cpp/config/Make.rules.OSF1 b/cpp/config/Make.rules.OSF1 index a9db2bf73c5..48b6f51725c 100644 --- a/cpp/config/Make.rules.OSF1 +++ b/cpp/config/Make.rules.OSF1 @@ -76,5 +76,5 @@ endif BASELIBS = -lIceUtil -lpthread LIBS = -lIce $(BASELIBS) -ICEUTIL_OS_LIBS = -lrt +ICEUTIL_OS_LIBS = -lrt -lcrypto ICE_OS_LIBS = diff --git a/cpp/config/Make.rules.SunOS b/cpp/config/Make.rules.SunOS index 5913756e754..e824abb18b3 100644 --- a/cpp/config/Make.rules.SunOS +++ b/cpp/config/Make.rules.SunOS @@ -114,6 +114,6 @@ rpathlink = -L$(1) BASELIBS = -lIceUtil -lpthread LIBS = $(BZIP2_RPATH_LINK) -lIce $(BASELIBS) -ICEUTIL_OS_LIBS = -lpthread -lrt +ICEUTIL_OS_LIBS = -lpthread -lrt -lcrypto ICE_OS_LIBS = -ldl -lsocket diff --git a/cpp/config/Make.rules.mak b/cpp/config/Make.rules.mak index b9ca37c1fa2..8197ab86cf8 100755 --- a/cpp/config/Make.rules.mak +++ b/cpp/config/Make.rules.mak @@ -166,7 +166,7 @@ LIBSUFFIX = d RCFLAGS = -D_DEBUG !endif -OPENSSL_LIBS = ssleay32.lib libeay32.lib +SSL_OS_LIBS = secur32.lib crypt32.lib EXPAT_LIBS = libexpat.lib CPPFLAGS = $(CPPFLAGS) -I"$(includedir)" diff --git a/cpp/demo/Glacier2/callback/config.client b/cpp/demo/Glacier2/callback/config.client index 6d6b5365d62..79ccedbb3ae 100644 --- a/cpp/demo/Glacier2/callback/config.client +++ b/cpp/demo/Glacier2/callback/config.client @@ -47,7 +47,7 @@ Callback.Proxy=callback:tcp -h localhost -p 10000 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password
\ No newline at end of file diff --git a/cpp/demo/Glacier2/callback/config.glacier2 b/cpp/demo/Glacier2/callback/config.glacier2 index b1e379eeb40..a9e87a6d642 100644 --- a/cpp/demo/Glacier2/callback/config.glacier2 +++ b/cpp/demo/Glacier2/callback/config.glacier2 @@ -124,7 +124,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=glacier2.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Glacier2/chat/config.client b/cpp/demo/Glacier2/chat/config.client index 64c7e27d6c3..6b1c79691e5 100644 --- a/cpp/demo/Glacier2/chat/config.client +++ b/cpp/demo/Glacier2/chat/config.client @@ -41,8 +41,8 @@ Ice.Default.Router=DemoGlacier2/router:ssl -p 4064 -h 127.0.0.1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Glacier2/chat/config.glacier2 b/cpp/demo/Glacier2/chat/config.glacier2 index e6680be52a7..92de691c35c 100644 --- a/cpp/demo/Glacier2/chat/config.glacier2 +++ b/cpp/demo/Glacier2/chat/config.glacier2 @@ -55,8 +55,8 @@ Glacier2.SessionTimeout=30 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=glacier2.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/callback/config.client b/cpp/demo/Ice/callback/config.client index 000b2146af1..16c259cdd3b 100644 --- a/cpp/demo/Ice/callback/config.client +++ b/cpp/demo/Ice/callback/config.client @@ -48,7 +48,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/callback/config.server b/cpp/demo/Ice/callback/config.server index 048f0045f62..29321c128ce 100644 --- a/cpp/demo/Ice/callback/config.server +++ b/cpp/demo/Ice/callback/config.server @@ -42,7 +42,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/hello/config.client b/cpp/demo/Ice/hello/config.client index b791b95194a..47674564826 100644 --- a/cpp/demo/Ice/hello/config.client +++ b/cpp/demo/Ice/hello/config.client @@ -51,8 +51,8 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/hello/config.server b/cpp/demo/Ice/hello/config.server index e576633d0b7..60027ebea4c 100644 --- a/cpp/demo/Ice/hello/config.server +++ b/cpp/demo/Ice/hello/config.server @@ -8,7 +8,7 @@ Hello.Endpoints=tcp -p 10000:udp -p 10000:ssl -p 10001:ws -p 10002:wss -p 10003 # # Only listen on the localhost interface by default. # -Ice.Default.Host=localhost +Ice.Default.Host=192.168.50.2 # # We need to disable VerifyPeer for secure WebSocket (WSS) and Windows Store App clients. @@ -52,8 +52,8 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/interleaved/config.client b/cpp/demo/Ice/interleaved/config.client index 181a670fe23..7283a81dbe9 100755 --- a/cpp/demo/Ice/interleaved/config.client +++ b/cpp/demo/Ice/interleaved/config.client @@ -15,7 +15,7 @@ Ice.ACM.Client.Timeout=0 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/interleaved/config.server b/cpp/demo/Ice/interleaved/config.server index b3afa959f38..4fa5e10d4c9 100755 --- a/cpp/demo/Ice/interleaved/config.server +++ b/cpp/demo/Ice/interleaved/config.server @@ -27,7 +27,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/invoke/config.client b/cpp/demo/Ice/invoke/config.client index bbf5b32c3c4..6f4819406d4 100644 --- a/cpp/demo/Ice/invoke/config.client +++ b/cpp/demo/Ice/invoke/config.client @@ -41,7 +41,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/invoke/config.server b/cpp/demo/Ice/invoke/config.server index afb8a12a7e1..28f2c0134a8 100644 --- a/cpp/demo/Ice/invoke/config.server +++ b/cpp/demo/Ice/invoke/config.server @@ -42,7 +42,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/latency/config.client b/cpp/demo/Ice/latency/config.client index 43061f18a12..ad2fdc12b4c 100644 --- a/cpp/demo/Ice/latency/config.client +++ b/cpp/demo/Ice/latency/config.client @@ -27,8 +27,8 @@ Ice.ACM.Client.Timeout=0 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/latency/config.server b/cpp/demo/Ice/latency/config.server index e324e7659e5..16258780b8b 100644 --- a/cpp/demo/Ice/latency/config.server +++ b/cpp/demo/Ice/latency/config.server @@ -25,8 +25,8 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/nested/config.client b/cpp/demo/Ice/nested/config.client index 86de72eaed0..275fb8534d1 100644 --- a/cpp/demo/Ice/nested/config.client +++ b/cpp/demo/Ice/nested/config.client @@ -59,7 +59,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/nested/config.server b/cpp/demo/Ice/nested/config.server index 92bce3de59a..5df68fdccea 100644 --- a/cpp/demo/Ice/nested/config.server +++ b/cpp/demo/Ice/nested/config.server @@ -53,7 +53,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password
\ No newline at end of file diff --git a/cpp/demo/Ice/nrvo/config.client b/cpp/demo/Ice/nrvo/config.client index fc38babe618..a14785022fa 100644 --- a/cpp/demo/Ice/nrvo/config.client +++ b/cpp/demo/Ice/nrvo/config.client @@ -10,7 +10,7 @@ Nrvo.Proxy=nrvo:default -h localhost -p 10000 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/nrvo/config.server b/cpp/demo/Ice/nrvo/config.server index d0f78c0f18a..8646b601080 100644 --- a/cpp/demo/Ice/nrvo/config.server +++ b/cpp/demo/Ice/nrvo/config.server @@ -16,7 +16,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/properties/config.client b/cpp/demo/Ice/properties/config.client index c0d74a6be27..2e5ed88fda2 100644 --- a/cpp/demo/Ice/properties/config.client +++ b/cpp/demo/Ice/properties/config.client @@ -47,7 +47,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/properties/config.server b/cpp/demo/Ice/properties/config.server index 2969290fd56..2565a2f9a51 100644 --- a/cpp/demo/Ice/properties/config.server +++ b/cpp/demo/Ice/properties/config.server @@ -57,7 +57,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/throughput/config.client b/cpp/demo/Ice/throughput/config.client index 8dd16d1c369..7a69774e86f 100644 --- a/cpp/demo/Ice/throughput/config.client +++ b/cpp/demo/Ice/throughput/config.client @@ -27,8 +27,8 @@ Ice.ACM.Client.Timeout=0 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/Ice/throughput/config.server b/cpp/demo/Ice/throughput/config.server index 4d422916147..4dbcaa82708 100644 --- a/cpp/demo/Ice/throughput/config.server +++ b/cpp/demo/Ice/throughput/config.server @@ -26,8 +26,8 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/IceBox/hello/config.client b/cpp/demo/IceBox/hello/config.client index 59af9979d56..fdd69c6a52c 100644 --- a/cpp/demo/IceBox/hello/config.client +++ b/cpp/demo/IceBox/hello/config.client @@ -41,7 +41,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password
\ No newline at end of file diff --git a/cpp/demo/IceBox/hello/config.service b/cpp/demo/IceBox/hello/config.service index b4a2ff5e2d3..0f7985ef852 100644 --- a/cpp/demo/IceBox/hello/config.service +++ b/cpp/demo/IceBox/hello/config.service @@ -41,7 +41,7 @@ Ice.Warn.Connections=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=service.keychain IceSSL.KeychainPassword=password
\ No newline at end of file diff --git a/cpp/demo/IceDiscovery/hello/config.client b/cpp/demo/IceDiscovery/hello/config.client index 7358239c4a6..d580f220ab0 100644 --- a/cpp/demo/IceDiscovery/hello/config.client +++ b/cpp/demo/IceDiscovery/hello/config.client @@ -19,8 +19,8 @@ Ice.Trace.Locator=1 Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=c_rsa1024_pub.pem -IceSSL.KeyFile=c_rsa1024_priv.pem +IceSSL.CertFile=c_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=client.keychain IceSSL.KeychainPassword=password diff --git a/cpp/demo/IceDiscovery/hello/config.server b/cpp/demo/IceDiscovery/hello/config.server index bbacf2c65fa..65f04936166 100644 --- a/cpp/demo/IceDiscovery/hello/config.server +++ b/cpp/demo/IceDiscovery/hello/config.server @@ -27,8 +27,8 @@ Ice.Plugin.IceDiscovery=IceDiscovery:createIceDiscovery Ice.Plugin.IceSSL=IceSSL:createIceSSL IceSSL.DefaultDir=../../../../certs IceSSL.CertAuthFile=cacert.pem -IceSSL.CertFile=s_rsa1024_pub.pem -IceSSL.KeyFile=s_rsa1024_priv.pem +IceSSL.CertFile=s_rsa1024.pfx +IceSSL.Password=password IceSSL.Keychain=server.keychain IceSSL.KeychainPassword=password diff --git a/cpp/include/Ice/Buffer.h b/cpp/include/Ice/Buffer.h index 2cb5b421464..d7c81a13b83 100644 --- a/cpp/include/Ice/Buffer.h +++ b/cpp/include/Ice/Buffer.h @@ -94,7 +94,7 @@ public: } _size = n; } - + void reset() { assert(!_buf || _capacity > 0); diff --git a/cpp/include/IceSSL/Config.h b/cpp/include/IceSSL/Config.h index f28999ee1f7..c1a71e40ea8 100644 --- a/cpp/include/IceSSL/Config.h +++ b/cpp/include/IceSSL/Config.h @@ -9,8 +9,10 @@ #include <Ice/Config.h> -#ifdef __APPLE__ +#if defined(__APPLE__) # define ICE_USE_SECURE_TRANSPORT 1 +#elif defined(_WIN32) +# define ICE_USE_SCHANNEL 1 #else # define ICE_USE_OPENSSL 1 #endif diff --git a/cpp/include/IceSSL/Plugin.h b/cpp/include/IceSSL/Plugin.h index 70b318806e8..743918ea755 100644 --- a/cpp/include/IceSSL/Plugin.h +++ b/cpp/include/IceSSL/Plugin.h @@ -25,8 +25,10 @@ # include <sys/socket.h> #endif -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) # include <CoreFoundation/CFError.h> +#elif defined(ICE_USE_SCHANNEL) +# include <wincrypt.h> #endif #ifndef ICE_SSL_API @@ -38,6 +40,7 @@ #endif #ifdef ICE_USE_OPENSSL + // // Pointer to an opaque SSL session context object. ssl_ctx_st is the // OpenSSL type that holds configuration settings for all SSL @@ -64,17 +67,29 @@ typedef struct X509_name_st X509NAME; #elif defined(ICE_USE_SECURE_TRANSPORT) // -// Pointer to an opanque certificate object. +// Pointer to an opaque certificate object. // struct OpaqueSecCertificateRef; typedef struct OpaqueSecCertificateRef* X509CertificateRef; // -// Pointer to an opaque connection objecct. +// Pointer to an opaque key object. // struct OpaqueSecKeyRef; typedef struct OpaqueSecKeyRef* KeyRef; +#elif defined(ICE_USE_SCHANNEL) + +// +// Pointer to an opaque certificate object. +// +typedef CERT_SIGNED_CONTENT_INFO* X509CertificateRef; + +// +// Pointer to an opaque key object. +// +typedef CERT_PUBLIC_KEY_INFO* KeyRef; + #endif namespace IceSSL @@ -157,15 +172,24 @@ class ICE_SSL_API PublicKey : public IceUtil::Shared public: ~PublicKey(); - + + // + // Retrieve the native public key value wrapped by this object. + // + // The returned reference is only valid for the lifetime of this + // object. With SecureTransport you can increment the reference + // count of the returned object with CFRetain. + // KeyRef key() const; private: - PublicKey(KeyRef); + PublicKey(const CertificatePtr&, KeyRef); friend class Certificate; + CertificatePtr _cert; KeyRef _key; + }; typedef IceUtil::Handle<PublicKey> PublicKeyPtr; @@ -191,6 +215,7 @@ public: // DistinguishedName(X509NAME*); #endif + // // Create a DistinguishedName from a string encoded using // the rules in RFC2253. @@ -236,7 +261,7 @@ private: }; // -// This convenience class is a wrapper around OpenSSL's X509 type. +// This convenience class is a wrapper around a native certificate. // The interface is inspired by java.security.cert.X509Certificate. // class ICE_SSL_API Certificate : public IceUtil::Shared @@ -244,8 +269,10 @@ class ICE_SSL_API Certificate : public IceUtil::Shared public: // - // Construct a certificate using a X509*. The Certificate assumes - // ownership of the X509* struct. + // Construct a certificate using a native certificate. + // + // The Certificate class assumes ownership of the given native + // certificate. // Certificate(X509CertificateRef); ~Certificate(); @@ -258,11 +285,16 @@ public: static CertificatePtr load(const std::string&); // - // Decode a certificate from a string that uses the PEM encoding format. - // Raises CertificateEncodingException if an error occurs. + // Decode a certificate from a string that uses the PEM encoding + // format. Raises CertificateEncodingException if an error + // occurs. // static CertificatePtr decode(const std::string&); + // + // Those operators compare the certificates for equality using the + // native certificate comparison method. + // bool operator==(const Certificate&) const; bool operator!=(const Certificate&) const; @@ -282,11 +314,12 @@ public: // Verify that this certificate was signed by the given public // key. Returns true if signed, false otherwise. // - // This method was deprecated for consistency with some SSL engines - // that require a certificate and not just a public key to verify - // the certificate signature. + // This method was deprecated for consistency with some SSL + // engines that require a certificate and not just a public key to + // verify the certificate signature. // - ICE_DEPRECATED_API("is deprecated, use verify(const CertificatePtr&) instead") bool verify(const PublicKeyPtr&) const; + ICE_DEPRECATED_API("verify(const PublicKeyPtr&) is deprecated, use verify(const CertificatePtr&) instead") + bool verify(const PublicKeyPtr&) const; #endif // @@ -386,16 +419,24 @@ public: std::string toString() const; // - // Retrieve the X509 value wrapped by this object. The reference count - // of the X509 value is not incremented, therefore it is only valid - // for the lifetime of this object unless the caller increments its - // reference count explicitly using X509_dup. + // Retrieve the native X509 certificate value wrapped by this + // object. + // + // The returned reference is only valid for the lifetime of this + // object. With SecureTransport you can increment the reference + // count of the returned object with CFRetain. With OpenSSL, you + // can increment it with X509_dup. With SChannel, the returned + // reference is a pointer to a struct. // X509CertificateRef getCert() const; private: X509CertificateRef _cert; + +#ifdef ICE_USE_SCHANNEL + CERT_INFO* _certInfo; +#endif }; // diff --git a/cpp/include/IceUtil/SHA1.h b/cpp/include/IceUtil/SHA1.h new file mode 100644 index 00000000000..eff242ece75 --- /dev/null +++ b/cpp/include/IceUtil/SHA1.h @@ -0,0 +1,65 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_UTIL_SHA1_H +#define ICE_UTIL_SHA1_H + +#include <IceUtil/Config.h> + +#include <vector> + +#ifndef ICE_OS_WINRT +# if defined(_WIN32) +# include <Wincrypt.h> +# elif defined(__APPLE__) +# include <CommonCrypto/CommonDigest.h> +# else +# include <openssl/sha.h> +# endif +#endif + +namespace IceUtil +{ + +ICE_UTIL_API void +sha1(const unsigned char*, std::size_t, std::vector<unsigned char>&); + +#ifndef ICE_OS_WINRT +class ICE_UTIL_API SHA1 +{ +public: + SHA1(); + +# ifdef _WIN32 + ~SHA1(); +# endif + + void update(const unsigned char*, std::size_t); + + void finalize(std::vector<unsigned char>&); + +private: + + // noncopyable + SHA1(const SHA1&); + SHA1 operator=(const SHA1&); + +# if defined (_WIN32) + HCRYPTPROV _ctx; + HCRYPTHASH _hash; +# elif defined(__APPLE__) + CC_SHA1_CTX _ctx; +# else + SHA_CTX _ctx; +# endif +}; +#endif + +} +#endif diff --git a/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp b/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp index 0f1e3027a59..f677a41b570 100644 --- a/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp +++ b/cpp/src/Glacier2/CryptPermissionsVerifierI.cpp @@ -8,11 +8,9 @@ // ********************************************************************** #include <Glacier2/CryptPermissionsVerifierI.h> -#include <openssl/des.h> -// Ignore OS X OpenSSL deprecation warnings -#ifdef __APPLE__ -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#ifndef __APPLE__ +# include <openssl/des.h> #endif using namespace std; @@ -44,10 +42,10 @@ Glacier2::CryptPermissionsVerifierI::checkPermissions( char buff[14]; string salt = p->second.substr(0, 2); -#if OPENSSL_VERSION_NUMBER >= 0x0090700fL - DES_fcrypt(password.c_str(), salt.c_str(), buff); +#if defined(__APPLE__) + return p->second == crypt(password.c_str(), salt.c_str()); #else - des_fcrypt(password.c_str(), salt.c_str(), buff); + DES_fcrypt(password.c_str(), salt.c_str(), buff); #endif return p->second == buff; } diff --git a/cpp/src/Glacier2/Makefile.mak b/cpp/src/Glacier2/Makefile.mak index 5d82e55571f..6ca049e0837 100644 --- a/cpp/src/Glacier2/Makefile.mak +++ b/cpp/src/Glacier2/Makefile.mak @@ -35,7 +35,7 @@ SRCS = $(OBJS:.obj=.cpp) CPPFLAGS = -I.. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN SLICE2CPPFLAGS = --include-dir Glacier2 $(SLICE2CPPFLAGS) -LINKWITH = $(LIBS) $(OPENSSL_LIBS) glacier2$(LIBSUFFIX).lib icessl$(LIBSUFFIX).lib +LINKWITH = $(LIBS) $(OPENSSL_LIBS) glacier2$(LIBSUFFIX).lib icessl$(LIBSUFFIX).lib libeay32.lib !if "$(GENERATE_PDB)" == "yes" PDBFLAGS = /pdb:$(ROUTER:.exe=.pdb) diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp index 22cc069ef08..37afd228ca7 100644 --- a/cpp/src/Ice/ConnectionI.cpp +++ b/cpp/src/Ice/ConnectionI.cpp @@ -1532,12 +1532,19 @@ Ice::ConnectionI::startAsync(SocketOperation operation) } else if(operation & SocketOperationRead) { - if(_observer && !_readHeader) + if(!_hasMoreData) { - _observer.startRead(_readStream); + if(_observer && !_readHeader) + { + _observer.startRead(_readStream); + } + + _transceiver->startRead(_readStream); + } + else + { + _transceiver->getNativeInfo()->completed(IceInternal::SocketOperationRead); } - - _transceiver->startRead(_readStream); } } catch(const Ice::LocalException& ex) @@ -1563,10 +1570,13 @@ Ice::ConnectionI::finishAsync(SocketOperation operation) } else if(operation & SocketOperationRead) { - _transceiver->finishRead(_readStream); - if(_observer && !_readHeader) + if(!_hasMoreData) { - _observer.finishRead(_readStream); + _transceiver->finishRead(_readStream, _hasMoreData); + if(_observer && !_readHeader) + { + _observer.finishRead(_readStream); + } } } } diff --git a/cpp/src/Ice/PropertyNames.cpp b/cpp/src/Ice/PropertyNames.cpp index e8173132ac5..bbd8bf78e33 100644 --- a/cpp/src/Ice/PropertyNames.cpp +++ b/cpp/src/Ice/PropertyNames.cpp @@ -6,7 +6,7 @@ // ICE_LICENSE file included in this distribution. // // ********************************************************************** -// Generated by makeprops.py from file ./config/PropertyNames.xml, Thu Jul 31 10:17:55 2014 +// Generated by makeprops.py from file ./config/PropertyNames.xml, Fri Aug 1 17:15:07 2014 // IMPORTANT: Do not edit this file -- any edits made here will be lost! @@ -1002,6 +1002,7 @@ const IceInternal::Property IceSSLPropsData[] = IceInternal::Property("IceSSL.Alias", false, 0), IceInternal::Property("IceSSL.CertAuthDir", false, 0), IceInternal::Property("IceSSL.CertAuthFile", false, 0), + IceInternal::Property("IceSSL.CertStore", false, 0), IceInternal::Property("IceSSL.CertFile", false, 0), IceInternal::Property("IceSSL.CertVerifier", false, 0), IceInternal::Property("IceSSL.CheckCertName", false, 0), diff --git a/cpp/src/Ice/PropertyNames.h b/cpp/src/Ice/PropertyNames.h index 0ea2573f46b..aac06f2e5ca 100644 --- a/cpp/src/Ice/PropertyNames.h +++ b/cpp/src/Ice/PropertyNames.h @@ -6,7 +6,7 @@ // ICE_LICENSE file included in this distribution. // // ********************************************************************** -// Generated by makeprops.py from file ./config/PropertyNames.xml, Thu Jul 31 10:17:55 2014 +// Generated by makeprops.py from file ./config/PropertyNames.xml, Fri Aug 1 17:15:07 2014 // IMPORTANT: Do not edit this file -- any edits made here will be lost! diff --git a/cpp/src/Ice/TcpTransceiver.cpp b/cpp/src/Ice/TcpTransceiver.cpp index 6f32d06ed8f..f5c30d11457 100644 --- a/cpp/src/Ice/TcpTransceiver.cpp +++ b/cpp/src/Ice/TcpTransceiver.cpp @@ -464,7 +464,7 @@ IceInternal::TcpTransceiver::startRead(Buffer& buf) } void -IceInternal::TcpTransceiver::finishRead(Buffer& buf) +IceInternal::TcpTransceiver::finishRead(Buffer& buf, bool&) { if(static_cast<int>(_read.count) == SOCKET_ERROR) { diff --git a/cpp/src/Ice/TcpTransceiver.h b/cpp/src/Ice/TcpTransceiver.h index 165cbebe523..691e9aafce7 100644 --- a/cpp/src/Ice/TcpTransceiver.h +++ b/cpp/src/Ice/TcpTransceiver.h @@ -47,7 +47,7 @@ public: virtual bool startWrite(Buffer&); virtual void finishWrite(Buffer&); virtual void startRead(Buffer&); - virtual void finishRead(Buffer&); + virtual void finishRead(Buffer&, bool&); #endif virtual std::string protocol() const; virtual std::string toString() const; diff --git a/cpp/src/Ice/Transceiver.h b/cpp/src/Ice/Transceiver.h index 0849f6c735f..3e645a7793e 100644 --- a/cpp/src/Ice/Transceiver.h +++ b/cpp/src/Ice/Transceiver.h @@ -36,7 +36,7 @@ public: virtual bool startWrite(Buffer&) = 0; virtual void finishWrite(Buffer&) = 0; virtual void startRead(Buffer&) = 0; - virtual void finishRead(Buffer&) = 0; + virtual void finishRead(Buffer&, bool&) = 0; #endif virtual std::string protocol() const = 0; diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp index 37483a7fb09..a82f0e0f4ae 100644 --- a/cpp/src/Ice/UdpTransceiver.cpp +++ b/cpp/src/Ice/UdpTransceiver.cpp @@ -668,7 +668,7 @@ IceInternal::UdpTransceiver::startRead(Buffer& buf) } void -IceInternal::UdpTransceiver::finishRead(Buffer& buf) +IceInternal::UdpTransceiver::finishRead(Buffer& buf, bool&) { #ifdef ICE_OS_WINRT IceUtil::Mutex::Lock lock(_mutex); diff --git a/cpp/src/Ice/UdpTransceiver.h b/cpp/src/Ice/UdpTransceiver.h index 27891d53a2f..02b8c3267f5 100644 --- a/cpp/src/Ice/UdpTransceiver.h +++ b/cpp/src/Ice/UdpTransceiver.h @@ -53,7 +53,7 @@ public: virtual bool startWrite(Buffer&); virtual void finishWrite(Buffer&); virtual void startRead(Buffer&); - virtual void finishRead(Buffer&); + virtual void finishRead(Buffer&, bool&); #endif virtual std::string protocol() const; virtual std::string toString() const; diff --git a/cpp/src/IceGrid/Makefile.mak b/cpp/src/IceGrid/Makefile.mak index a5198b77954..7edf4b4f2c1 100644 --- a/cpp/src/IceGrid/Makefile.mak +++ b/cpp/src/IceGrid/Makefile.mak @@ -103,7 +103,7 @@ LINKWITH = $(LIBS) glacier2$(LIBSUFFIX).lib ALINKWITH = $(LINKWITH) icegrid$(LIBSUFFIX).lib icexml$(LIBSUFFIX).lib icepatch2$(LIBSUFFIX).lib \ icebox$(LIBSUFFIX).lib NLINKWITH = $(ALINKWITH) freeze$(LIBSUFFIX).lib icestorm$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib \ - icessl$(LIBSUFFIX).lib icestormservice$(LIBSUFFIX).lib $(OPENSSL_LIBS) pdh.lib ws2_32.lib + icessl$(LIBSUFFIX).lib icestormservice$(LIBSUFFIX).lib libeay32.lib pdh.lib ws2_32.lib SLICE2CPPFLAGS = --checksum --ice --include-dir IceGrid $(SLICE2CPPFLAGS) CPPFLAGS = -I. -I.. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN -Zm200 diff --git a/cpp/src/IceGrid/RegistryI.cpp b/cpp/src/IceGrid/RegistryI.cpp index 5bc98f5b188..319686336e7 100644 --- a/cpp/src/IceGrid/RegistryI.cpp +++ b/cpp/src/IceGrid/RegistryI.cpp @@ -40,15 +40,12 @@ #include <fstream> -#include <openssl/des.h> // For crypt() passwords +#ifndef __APPLE__ +# include <openssl/des.h> // For crypt() passwords +#endif #include <sys/types.h> -// Ignore OS X OpenSSL deprecation warnings -#ifdef __APPLE__ -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#endif - using namespace std; using namespace Ice; using namespace IceGrid; @@ -100,10 +97,10 @@ public: char buff[14]; string salt = p->second.substr(0, 2); -#if OPENSSL_VERSION_NUMBER >= 0x0090700fL - DES_fcrypt(password.c_str(), salt.c_str(), buff); +#if defined(__APPLE__) + return p->second == crypt(password.c_str(), salt.c_str()); #else - des_fcrypt(password.c_str(), salt.c_str(), buff); + DES_fcrypt(password.c_str(), salt.c_str(), buff); #endif return p->second == buff; } diff --git a/cpp/src/IcePatch2Lib/.depend b/cpp/src/IcePatch2Lib/.depend index 2bea7a32b25..c3f9f48b3ee 100644 --- a/cpp/src/IcePatch2Lib/.depend +++ b/cpp/src/IcePatch2Lib/.depend @@ -1,4 +1,4 @@ -Util$(OBJEXT): Util.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/StringConverter.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/IceUtil/IconvStringConverter.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IcePatch2/Util.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/IcePatch2/FileInfo.h +Util$(OBJEXT): Util.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/StringConverter.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/IceUtil/IconvStringConverter.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/SHA1.h $(includedir)/IcePatch2/Util.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/IcePatch2/FileInfo.h ClientUtil$(OBJEXT): ClientUtil.cpp $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IcePatch2/ClientUtil.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h $(includedir)/IcePatch2/Util.h FileInfo$(OBJEXT): FileInfo.cpp $(includedir)/IcePatch2/FileInfo.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Object.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/DisableWarnings.h FileServer$(OBJEXT): FileServer.cpp $(includedir)/IcePatch2/FileServer.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IcePatch2/FileInfo.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/IceUtil/DisableWarnings.h diff --git a/cpp/src/IcePatch2Lib/.depend.mak b/cpp/src/IcePatch2Lib/.depend.mak index 15f6e28e684..fdc39895fa9 100644 --- a/cpp/src/IcePatch2Lib/.depend.mak +++ b/cpp/src/IcePatch2Lib/.depend.mak @@ -1,4 +1,4 @@ -Util$(OBJEXT): Util.cpp "$(includedir)/IceUtil/DisableWarnings.h" "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/UUID.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/IceUtil/IconvStringConverter.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IcePatch2/Util.h" "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/IcePatch2/FileInfo.h" +Util$(OBJEXT): Util.cpp "$(includedir)/IceUtil/DisableWarnings.h" "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/UUID.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/IceUtil/IconvStringConverter.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceUtil/SHA1.h" "$(includedir)/IcePatch2/Util.h" "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/IcePatch2/FileInfo.h" ClientUtil$(OBJEXT): ClientUtil.cpp "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IcePatch2/ClientUtil.h" "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/IcePatch2/FileServer.h" "$(includedir)/IcePatch2/FileInfo.h" "$(includedir)/IcePatch2/Util.h" FileInfo$(OBJEXT): FileInfo.cpp "$(includedir)/IcePatch2/FileInfo.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Object.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/IceUtil/DisableWarnings.h" FileServer$(OBJEXT): FileServer.cpp "$(includedir)/IcePatch2/FileServer.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/IcePatch2/FileInfo.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/IceUtil/DisableWarnings.h" diff --git a/cpp/src/IcePatch2Lib/Util.cpp b/cpp/src/IcePatch2Lib/Util.cpp index d743528d531..3c8ef35f84f 100644 --- a/cpp/src/IcePatch2Lib/Util.cpp +++ b/cpp/src/IcePatch2Lib/Util.cpp @@ -19,9 +19,10 @@ #include <IceUtil/IceUtil.h> #include <IceUtil/StringUtil.h> #include <IceUtil/FileUtil.h> +#include <IceUtil/SHA1.h> + #define ICE_PATCH2_API_EXPORTS #include <IcePatch2/Util.h> -#include <openssl/sha.h> #include <bzlib.h> #include <iomanip> @@ -789,8 +790,7 @@ getFileInfoSeqInt(const string& basePath, const string& relPath, int compress, G ByteSeq bytesSHA(20); if(!bytes.empty()) { - SHA1(reinterpret_cast<unsigned char*>(&bytes[0]), bytes.size(), - reinterpret_cast<unsigned char*>(&bytesSHA[0])); + IceUtil::sha1(reinterpret_cast<unsigned char*>(&bytes[0]), bytes.size(), bytesSHA); } else { @@ -850,19 +850,19 @@ getFileInfoSeqInt(const string& basePath, const string& relPath, int compress, G return false; } - ByteSeq bytesSHA(20); + ByteSeq bytesSHA; if(relPath.size() + buf.st_size == 0) { + bytesSHA.resize(20); fill(bytesSHA.begin(), bytesSHA.end(), 0); } else { - SHA_CTX ctx; - SHA1_Init(&ctx); + IceUtil::SHA1 hasher; if(relPath.size() != 0) { - SHA1_Update(&ctx, reinterpret_cast<const void*>(relPath.c_str()), relPath.size()); + hasher.update(reinterpret_cast<const IceUtil::Byte*>(relPath.c_str()), relPath.size()); } if(buf.st_size != 0) @@ -939,7 +939,7 @@ getFileInfoSeqInt(const string& basePath, const string& relPath, int compress, G } } - SHA1_Update(&ctx, reinterpret_cast<const void*>(&bytes[0]), bytes.size()); + hasher.update(reinterpret_cast<IceUtil::Byte*>(&bytes[0]), bytes.size()); } IceUtilInternal::close(fd); @@ -970,8 +970,7 @@ getFileInfoSeqInt(const string& basePath, const string& relPath, int compress, G info.size = static_cast<Int>(bufBZ2.st_size); } } - - SHA1_Final(reinterpret_cast<unsigned char*>(&bytesSHA[0]), &ctx); + hasher.finalize(bytesSHA); } info.checksum.swap(bytesSHA); @@ -1186,8 +1185,7 @@ IcePatch2::getFileTree0(const FileInfoSeq& infoSeq, FileTree0& tree0) if(!allChecksums1.empty()) { - SHA1(reinterpret_cast<unsigned char*>(&allChecksums1[0]), allChecksums1.size(), - reinterpret_cast<unsigned char*>(&tree1.checksum[0])); + IceUtil::sha1(reinterpret_cast<unsigned char*>(&allChecksums1[0]), allChecksums1.size(), tree1.checksum); } else { @@ -1199,8 +1197,7 @@ IcePatch2::getFileTree0(const FileInfoSeq& infoSeq, FileTree0& tree0) if(!allChecksums0.empty()) { - SHA1(reinterpret_cast<unsigned char*>(&allChecksums0[0]), allChecksums0.size(), - reinterpret_cast<unsigned char*>(&tree0.checksum[0])); + IceUtil::sha1(reinterpret_cast<unsigned char*>(&allChecksums0[0]), allChecksums0.size(), tree0.checksum); } else { diff --git a/cpp/src/IceSSL/.depend b/cpp/src/IceSSL/.depend index 823fdab2981..a0105a2fdb0 100644 --- a/cpp/src/IceSSL/.depend +++ b/cpp/src/IceSSL/.depend @@ -1,18 +1,20 @@ -AcceptorI$(OBJEXT): AcceptorI.cpp ../IceSSL/AcceptorI.h ../Ice/TransceiverF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/Acceptor.h ../Ice/AcceptorF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../IceSSL/InstanceF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SecureTransportTransceiverI.h ../Ice/Transceiver.h ../IceSSL/TransceiverI.h ../IceSSL/Util.h ../IceSSL/UtilF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/IceUtil/StringUtil.h -Certificate$(OBJEXT): Certificate.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h ../IceSSL/RFC2253.h -ConnectorI$(OBJEXT): ConnectorI.cpp ../IceSSL/ConnectorI.h ../Ice/TransceiverF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/Connector.h ../Ice/ConnectorF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../IceSSL/InstanceF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SecureTransportTransceiverI.h ../Ice/Transceiver.h ../IceSSL/TransceiverI.h ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h ../Ice/EndpointI.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h $(includedir)/IceSSL/EndpointInfo.h ../IceSSL/Util.h ../IceSSL/UtilF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h +AcceptorI$(OBJEXT): AcceptorI.cpp ../IceSSL/AcceptorI.h ../Ice/TransceiverF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/Acceptor.h ../Ice/AcceptorF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../IceSSL/InstanceF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/OpenSSLTransceiverI.h ../Ice/Transceiver.h ../IceSSL/SecureTransportTransceiverI.h ../IceSSL/SChannelTransceiverI.h ../IceSSL/Util.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/IceUtil/StringUtil.h +Certificate$(OBJEXT): Certificate.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/Util.h ../IceSSL/RFC2253.h +ConnectorI$(OBJEXT): ConnectorI.cpp ../IceSSL/ConnectorI.h ../Ice/TransceiverF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/Connector.h ../Ice/ConnectorF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../IceSSL/InstanceF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/OpenSSLTransceiverI.h ../Ice/Transceiver.h ../IceSSL/SecureTransportTransceiverI.h ../IceSSL/SChannelTransceiverI.h ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h ../Ice/EndpointI.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h $(includedir)/IceSSL/EndpointInfo.h ../IceSSL/Util.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h EndpointInfo$(OBJEXT): EndpointInfo.cpp $(includedir)/IceSSL/EndpointInfo.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/Version.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Object.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/DisableWarnings.h ConnectionInfo$(OBJEXT): ConnectionInfo.cpp $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/DisableWarnings.h -EndpointI$(OBJEXT): EndpointI.cpp ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h ../Ice/IPEndpointIF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h ../Ice/EndpointI.h ../Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Version.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h ../IceSSL/InstanceF.h $(includedir)/IceSSL/EndpointInfo.h ../IceSSL/AcceptorI.h ../Ice/Acceptor.h ../IceSSL/ConnectorI.h ../Ice/Connector.h ../IceSSL/TransceiverI.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h ../IceSSL/SSLEngineF.h ../Ice/Transceiver.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h $(includedir)/Ice/LocalException.h ../Ice/DefaultsAndOverrides.h ../Ice/DefaultsAndOverridesF.h ../Ice/HashUtil.h -Instance$(OBJEXT): Instance.cpp $(includedir)/IceUtil/Config.h ../IceSSL/Instance.h ../IceSSL/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../Ice/Network.h ../IceSSL/TrustManagerF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/PropertiesAdmin.h -PluginI$(OBJEXT): PluginI.cpp ../IceSSL/PluginI.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SSLEngineF.h ../IceSSL/Instance.h ../IceSSL/InstanceF.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h $(includedir)/Ice/PropertiesF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceSSL/TransceiverI.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../IceSSL/TrustManagerF.h ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h ../Ice/EndpointI.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h $(includedir)/IceSSL/EndpointInfo.h ../Ice/ProtocolPluginFacade.h ../Ice/ProtocolPluginFacadeF.h $(includedir)/Ice/LocalException.h -TransceiverI$(OBJEXT): TransceiverI.cpp ../IceSSL/TransceiverI.h $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h ../IceSSL/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SSLEngineF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/IceUtil/MutexPtrLock.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../IceSSL/TrustManagerF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h $(includedir)/IceUtil/DisableWarnings.h -SecureTransportTransceiverI$(OBJEXT): SecureTransportTransceiverI.cpp ../IceSSL/SecureTransportTransceiverI.h $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h ../IceSSL/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/MutexPtrLock.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../IceSSL/TrustManagerF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h -Util$(OBJEXT): Util.cpp $(includedir)/IceUtil/Config.h ../IceSSL/Util.h $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h ../IceSSL/UtilF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h $(includedir)/IceUtil/FileUtil.h $(includedir)/Ice/LocalException.h +EndpointI$(OBJEXT): EndpointI.cpp ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h ../Ice/IPEndpointIF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h ../Ice/EndpointI.h ../Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Version.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h ../IceSSL/InstanceF.h $(includedir)/IceSSL/EndpointInfo.h ../IceSSL/AcceptorI.h ../Ice/Acceptor.h ../IceSSL/ConnectorI.h ../Ice/Connector.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/LocalException.h ../Ice/DefaultsAndOverrides.h ../Ice/DefaultsAndOverridesF.h ../Ice/HashUtil.h +Instance$(OBJEXT): Instance.cpp $(includedir)/IceUtil/Config.h ../IceSSL/Instance.h ../IceSSL/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h ../Ice/Network.h $(includedir)/Ice/Properties.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/PropertiesAdmin.h +PluginI$(OBJEXT): PluginI.cpp ../IceSSL/PluginI.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SSLEngineF.h ../IceSSL/Instance.h ../IceSSL/InstanceF.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h $(includedir)/Ice/PropertiesF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h ../Ice/Network.h ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h ../Ice/EndpointI.h ../Ice/TransceiverF.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h $(includedir)/IceSSL/EndpointInfo.h ../Ice/ProtocolPluginFacade.h ../Ice/ProtocolPluginFacadeF.h $(includedir)/Ice/LocalException.h +OpenSSLTransceiverI$(OBJEXT): OpenSSLTransceiverI.cpp ../IceSSL/OpenSSLTransceiverI.h $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h ../IceSSL/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SSLEngineF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/IceUtil/MutexPtrLock.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h $(includedir)/IceUtil/DisableWarnings.h +SecureTransportTransceiverI$(OBJEXT): SecureTransportTransceiverI.cpp ../IceSSL/SecureTransportTransceiverI.h $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h ../IceSSL/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h +Util$(OBJEXT): Util.cpp $(includedir)/IceUtil/Config.h ../IceSSL/Util.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/StringUtil.h $(includedir)/Ice/LocalException.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h RFC2253$(OBJEXT): RFC2253.cpp $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/RFC2253.h TrustManager$(OBJEXT): TrustManager.cpp ../IceSSL/TrustManager.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h ../IceSSL/TrustManagerF.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/RFC2253.h $(includedir)/Ice/Properties.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h -SSLEngine$(OBJEXT): SSLEngine.cpp ../IceSSL/SSLEngine.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../IceSSL/TrustManager.h ../IceSSL/RFC2253.h $(includedir)/IceUtil/StringUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LocalException.h -OpenSSLEngine$(OBJEXT): OpenSSLEngine.cpp $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h ../IceSSL/SSLEngine.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../IceSSL/TrustManager.h ../IceSSL/RFC2253.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/FileUtil.h -SecureTransportEngine$(OBJEXT): SecureTransportEngine.cpp $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/StringUtil.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Identity.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/Version.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Plugin.h ../IceSSL/SecureTransportTransceiverI.h ../IceSSL/InstanceF.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../IceSSL/TrustManagerF.h +SSLEngine$(OBJEXT): SSLEngine.cpp ../IceSSL/SSLEngine.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/Util.h ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h ../IceSSL/TrustManager.h ../IceSSL/RFC2253.h $(includedir)/IceUtil/StringUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LocalException.h +OpenSSLEngine$(OBJEXT): OpenSSLEngine.cpp $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h ../IceSSL/SSLEngine.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/Util.h ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h ../IceSSL/TrustManager.h ../IceSSL/RFC2253.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/FileUtil.h +SecureTransportEngine$(OBJEXT): SecureTransportEngine.cpp $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/StringUtil.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Identity.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/Version.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Plugin.h ../IceSSL/SecureTransportTransceiverI.h ../IceSSL/InstanceF.h ../IceSSL/SSLEngineF.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h +SChannelEngine$(OBJEXT): SChannelEngine.cpp ../IceSSL/SSLEngine.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/Util.h ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/UUID.h +SChannelTransceiverI$(OBJEXT): SChannelTransceiverI.cpp ../IceSSL/SChannelTransceiverI.h $(includedir)/IceSSL/Config.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h ../IceSSL/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Endpoint.h ../IceSSL/SSLEngineF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/IceUtil/StringUtil.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h $(HDIR)/EndpointInfo.h EndpointInfo.cpp: $(slicedir)/IceSSL/EndpointInfo.ice $(slicedir)/Ice/Endpoint.ice $(slicedir)/Ice/Version.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/EndpointF.ice $(SLICE2CPP) $(SLICEPARSERLIB) $(HDIR)/ConnectionInfo.h ConnectionInfo.cpp: $(slicedir)/IceSSL/ConnectionInfo.ice $(slicedir)/Ice/Connection.ice $(slicedir)/Ice/ObjectAdapterF.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/Endpoint.ice $(slicedir)/Ice/Version.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/EndpointF.ice $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/src/IceSSL/.depend.mak b/cpp/src/IceSSL/.depend.mak index 1b0a158b6a0..530b00c3808 100644 --- a/cpp/src/IceSSL/.depend.mak +++ b/cpp/src/IceSSL/.depend.mak @@ -1,18 +1,20 @@ -AcceptorI$(OBJEXT): AcceptorI.cpp ../IceSSL/AcceptorI.h ../Ice/TransceiverF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" ../Ice/Acceptor.h ../Ice/AcceptorF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../IceSSL/InstanceF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SecureTransportTransceiverI.h ../Ice/Transceiver.h ../IceSSL/TransceiverI.h ../IceSSL/Util.h ../IceSSL/UtilF.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/IceUtil/StringUtil.h" -Certificate$(OBJEXT): Certificate.cpp "$(includedir)/IceUtil/DisableWarnings.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/Util.h ../IceSSL/UtilF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" ../IceSSL/RFC2253.h -ConnectorI$(OBJEXT): ConnectorI.cpp ../IceSSL/ConnectorI.h ../Ice/TransceiverF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" ../Ice/Connector.h ../Ice/ConnectorF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../IceSSL/InstanceF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SecureTransportTransceiverI.h ../Ice/Transceiver.h ../IceSSL/TransceiverI.h ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h ../Ice/EndpointI.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h "$(includedir)/IceSSL/EndpointInfo.h" ../IceSSL/Util.h ../IceSSL/UtilF.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" +AcceptorI$(OBJEXT): AcceptorI.cpp ../IceSSL/AcceptorI.h ../Ice/TransceiverF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" ../Ice/Acceptor.h ../Ice/AcceptorF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../IceSSL/InstanceF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/OpenSSLTransceiverI.h ../Ice/Transceiver.h ../IceSSL/SecureTransportTransceiverI.h ../IceSSL/SChannelTransceiverI.h ../IceSSL/Util.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/IceUtil/StringUtil.h" +Certificate$(OBJEXT): Certificate.cpp "$(includedir)/IceUtil/DisableWarnings.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/Util.h ../IceSSL/RFC2253.h +ConnectorI$(OBJEXT): ConnectorI.cpp ../IceSSL/ConnectorI.h ../Ice/TransceiverF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" ../Ice/Connector.h ../Ice/ConnectorF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../IceSSL/InstanceF.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/OpenSSLTransceiverI.h ../Ice/Transceiver.h ../IceSSL/SecureTransportTransceiverI.h ../IceSSL/SChannelTransceiverI.h ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h ../Ice/EndpointI.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h "$(includedir)/IceSSL/EndpointInfo.h" ../IceSSL/Util.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" EndpointInfo$(OBJEXT): EndpointInfo.cpp "$(includedir)/IceSSL/EndpointInfo.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/Version.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Object.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/IceUtil/DisableWarnings.h" ConnectionInfo$(OBJEXT): ConnectionInfo.cpp "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceUtil/DisableWarnings.h" -EndpointI$(OBJEXT): EndpointI.cpp ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" ../Ice/IPEndpointIF.h "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Config.h" ../Ice/EndpointI.h ../Ice/EndpointIF.h "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Version.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../Ice/ProtocolInstanceF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h ../IceSSL/InstanceF.h "$(includedir)/IceSSL/EndpointInfo.h" ../IceSSL/AcceptorI.h ../Ice/Acceptor.h ../IceSSL/ConnectorI.h ../Ice/Connector.h ../IceSSL/TransceiverI.h "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" ../IceSSL/SSLEngineF.h ../Ice/Transceiver.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h "$(includedir)/Ice/LocalException.h" ../Ice/DefaultsAndOverrides.h ../Ice/DefaultsAndOverridesF.h ../Ice/HashUtil.h -Instance$(OBJEXT): Instance.cpp "$(includedir)/IceUtil/Config.h" ../IceSSL/Instance.h ../IceSSL/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../Ice/Network.h ../IceSSL/TrustManagerF.h "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/PropertiesAdmin.h" -PluginI$(OBJEXT): PluginI.cpp ../IceSSL/PluginI.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SSLEngineF.h ../IceSSL/Instance.h ../IceSSL/InstanceF.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h "$(includedir)/Ice/PropertiesF.h" ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceSSL/TransceiverI.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../IceSSL/TrustManagerF.h ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h ../Ice/EndpointI.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h "$(includedir)/IceSSL/EndpointInfo.h" ../Ice/ProtocolPluginFacade.h ../Ice/ProtocolPluginFacadeF.h "$(includedir)/Ice/LocalException.h" -TransceiverI$(OBJEXT): TransceiverI.cpp ../IceSSL/TransceiverI.h "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" ../IceSSL/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SSLEngineF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/IceUtil/MutexPtrLock.h" ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../IceSSL/TrustManagerF.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/IceUtil/DisableWarnings.h" -SecureTransportTransceiverI$(OBJEXT): SecureTransportTransceiverI.cpp ../IceSSL/SecureTransportTransceiverI.h "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" ../IceSSL/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceUtil/MutexPtrLock.h" ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../IceSSL/TrustManagerF.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LocalException.h" -Util$(OBJEXT): Util.cpp "$(includedir)/IceUtil/Config.h" ../IceSSL/Util.h "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" ../IceSSL/UtilF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/Ice/LocalException.h" +EndpointI$(OBJEXT): EndpointI.cpp ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" ../Ice/IPEndpointIF.h "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Config.h" ../Ice/EndpointI.h ../Ice/EndpointIF.h "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Version.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../Ice/ProtocolInstanceF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h ../IceSSL/InstanceF.h "$(includedir)/IceSSL/EndpointInfo.h" ../IceSSL/AcceptorI.h ../Ice/Acceptor.h ../IceSSL/ConnectorI.h ../Ice/Connector.h ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/LocalException.h" ../Ice/DefaultsAndOverrides.h ../Ice/DefaultsAndOverridesF.h ../Ice/HashUtil.h +Instance$(OBJEXT): Instance.cpp "$(includedir)/IceUtil/Config.h" ../IceSSL/Instance.h ../IceSSL/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h ../Ice/Network.h "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/PropertiesAdmin.h" +PluginI$(OBJEXT): PluginI.cpp ../IceSSL/PluginI.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SSLEngineF.h ../IceSSL/Instance.h ../IceSSL/InstanceF.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h "$(includedir)/Ice/PropertiesF.h" ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h ../Ice/Network.h ../IceSSL/EndpointI.h ../Ice/IPEndpointI.h ../Ice/EndpointI.h ../Ice/TransceiverF.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h "$(includedir)/IceSSL/EndpointInfo.h" ../Ice/ProtocolPluginFacade.h ../Ice/ProtocolPluginFacadeF.h "$(includedir)/Ice/LocalException.h" +OpenSSLTransceiverI$(OBJEXT): OpenSSLTransceiverI.cpp ../IceSSL/OpenSSLTransceiverI.h "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" ../IceSSL/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SSLEngineF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/IceUtil/MutexPtrLock.h" ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/IceUtil/DisableWarnings.h" +SecureTransportTransceiverI$(OBJEXT): SecureTransportTransceiverI.cpp ../IceSSL/SecureTransportTransceiverI.h "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" ../IceSSL/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LocalException.h" +Util$(OBJEXT): Util.cpp "$(includedir)/IceUtil/Config.h" ../IceSSL/Util.h "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/Ice/LocalException.h" ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" RFC2253$(OBJEXT): RFC2253.cpp "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/RFC2253.h TrustManager$(OBJEXT): TrustManager.cpp ../IceSSL/TrustManager.h "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" ../IceSSL/TrustManagerF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/RFC2253.h "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" -SSLEngine$(OBJEXT): SSLEngine.cpp ../IceSSL/SSLEngine.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/Util.h ../IceSSL/UtilF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../IceSSL/TrustManager.h ../IceSSL/RFC2253.h "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/LocalException.h" -OpenSSLEngine$(OBJEXT): OpenSSLEngine.cpp "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" ../IceSSL/SSLEngine.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/Util.h ../IceSSL/UtilF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../IceSSL/TrustManager.h ../IceSSL/RFC2253.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/FileUtil.h" -SecureTransportEngine$(OBJEXT): SecureTransportEngine.cpp "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Identity.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Plugin.h" ../IceSSL/SecureTransportTransceiverI.h ../IceSSL/InstanceF.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/UtilF.h ../IceSSL/TrustManagerF.h +SSLEngine$(OBJEXT): SSLEngine.cpp ../IceSSL/SSLEngine.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/Util.h ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" ../IceSSL/TrustManager.h ../IceSSL/RFC2253.h "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/LocalException.h" +OpenSSLEngine$(OBJEXT): OpenSSLEngine.cpp "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" ../IceSSL/SSLEngine.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/Util.h ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" ../IceSSL/TrustManager.h ../IceSSL/RFC2253.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/FileUtil.h" +SecureTransportEngine$(OBJEXT): SecureTransportEngine.cpp "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Identity.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Plugin.h" ../IceSSL/SecureTransportTransceiverI.h ../IceSSL/InstanceF.h ../IceSSL/SSLEngineF.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h +SChannelEngine$(OBJEXT): SChannelEngine.cpp ../IceSSL/SSLEngine.h "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/Util.h ../IceSSL/SSLEngineF.h ../IceSSL/TrustManagerF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceUtil/UUID.h" +SChannelTransceiverI$(OBJEXT): SChannelTransceiverI.cpp ../IceSSL/SChannelTransceiverI.h "$(includedir)/IceSSL/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" ../IceSSL/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/Endpoint.h" ../IceSSL/SSLEngineF.h ../Ice/Transceiver.h ../Ice/TransceiverF.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/IceUtil/StringUtil.h" ../IceSSL/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../IceSSL/SSLEngine.h ../IceSSL/Util.h ../IceSSL/TrustManagerF.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LocalException.h" $(HDIR)\EndpointInfo.h EndpointInfo.cpp: "$(slicedir)/IceSSL/EndpointInfo.ice" "$(slicedir)/Ice/Endpoint.ice" "$(slicedir)/Ice/Version.ice" "$(slicedir)/Ice/BuiltinSequences.ice" "$(slicedir)/Ice/EndpointF.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)" $(HDIR)\ConnectionInfo.h ConnectionInfo.cpp: "$(slicedir)/IceSSL/ConnectionInfo.ice" "$(slicedir)/Ice/Connection.ice" "$(slicedir)/Ice/ObjectAdapterF.ice" "$(slicedir)/Ice/Identity.ice" "$(slicedir)/Ice/Endpoint.ice" "$(slicedir)/Ice/Version.ice" "$(slicedir)/Ice/BuiltinSequences.ice" "$(slicedir)/Ice/EndpointF.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)" diff --git a/cpp/src/IceSSL/AcceptorI.cpp b/cpp/src/IceSSL/AcceptorI.cpp index f835f6b8044..8a7fb3ca187 100644 --- a/cpp/src/IceSSL/AcceptorI.cpp +++ b/cpp/src/IceSSL/AcceptorI.cpp @@ -9,8 +9,10 @@ #include <IceSSL/AcceptorI.h> #include <IceSSL/Instance.h> + +#include <IceSSL/OpenSSLTransceiverI.h> #include <IceSSL/SecureTransportTransceiverI.h> -#include <IceSSL/TransceiverI.h> +#include <IceSSL/SChannelTransceiverI.h> #include <IceSSL/Util.h> diff --git a/cpp/src/IceSSL/Certificate.cpp b/cpp/src/IceSSL/Certificate.cpp index ba5fa9619f3..197a6ee3c36 100644 --- a/cpp/src/IceSSL/Certificate.cpp +++ b/cpp/src/IceSSL/Certificate.cpp @@ -45,7 +45,7 @@ using namespace IceSSL; const char* IceSSL::CertificateReadException::_name = "IceSSL::CertificateReadException"; -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) || defined(ICE_USE_SCHANNEL) // // Map a certificate OID to its alias // @@ -74,17 +74,23 @@ const CertificateOID certificateOIDS[] = {"1.2.840.113549.1.9.1", "emailAddress"}, {"0.9.2342.19200300.100.1.25", "DC"} }; - const int certificateOIDSSize = sizeof(certificateOIDS) / sizeof(CertificateOID); +#endif + + +#if defined(ICE_USE_SECURE_TRANSPORT) + string certificateOIDAlias(const string& name) { for(int i = 0; i < certificateOIDSSize; ++i) { - if(name == certificateOIDS[i].name) + const CertificateOID* certificateOID = &certificateOIDS[i]; + assert(certificateOID); + if(name == certificateOID->name) { - return certificateOIDS[i].alias; + return certificateOID->alias; } } return name; @@ -247,6 +253,166 @@ getX509String(SecCertificateRef cert, CFTypeRef key) } return value; } + +#elif defined(ICE_USE_SCHANNEL) + +void +loadCertificate(PCERT_SIGNED_CONTENT_INFO* cert, const char* buffer, DWORD length) +{ + DWORD outLength = length; + vector<BYTE> outBuffer; + outBuffer.resize(outLength); + + if(!CryptStringToBinary(buffer, length, CRYPT_STRING_BASE64HEADER, &outBuffer[0], &outLength, 0, 0)) + { + // + // Base64 data should always be bigger than binary + // + assert(GetLastError() != ERROR_MORE_DATA); + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + + DWORD decodedLeng = 0; + if(!CryptDecodeObjectEx(X509_ASN_ENCODING, X509_CERT, &outBuffer[0], outLength, CRYPT_DECODE_ALLOC_FLAG, 0, + cert, &decodedLeng)) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } +} + +void +loadCertificate(PCERT_SIGNED_CONTENT_INFO* cert, const string& file) +{ + vector<char> buffer; + readFile(file, buffer); + loadCertificate(cert, &buffer[0], static_cast<DWORD>(buffer.size())); +} + +const Ice::Long TICKS_PER_MSECOND = 10000LL; +const Ice::Long MSECS_TO_EPOCH = 11644473600000LL; + +IceUtil::Time +filetimeToTime(FILETIME ftime) +{ + Ice::Long value = 0; + DWORD* dest = reinterpret_cast<DWORD*>(&value); + *dest++ = ftime.dwLowDateTime; + *dest = ftime.dwHighDateTime; + return IceUtil::Time::milliSeconds((value / TICKS_PER_MSECOND) - MSECS_TO_EPOCH); +} + +string +certNameToString(CERT_NAME_BLOB* name) +{ + assert(name); + DWORD length = 0; + if(!(length = CertNameToStr(X509_ASN_ENCODING, name, CERT_OID_NAME_STR|CERT_NAME_STR_REVERSE_FLAG, 0, 0))) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + + vector<char> buffer(length); + if(!CertNameToStr(X509_ASN_ENCODING, name, CERT_OID_NAME_STR|CERT_NAME_STR_REVERSE_FLAG, &buffer[0], length)) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + + string s(&buffer[0]); + for(int i = 0; i < certificateOIDSSize; ++i) + { + const CertificateOID* certificateOID = &certificateOIDS[i]; + assert(certificateOID); + const string name = string(certificateOID->name) + "="; + const string alias = string(certificateOID->alias) + "="; + size_t pos = 0; + while((pos = s.find(name, pos)) != string::npos) + { + s.replace(pos, name.size(), alias); + } + } + return s; +} + +vector<pair<int, string> > +certificateAltNames(CERT_INFO* certInfo, LPCSTR altNameOID) +{ + vector<pair<int, string> > altNames; + + PCERT_EXTENSION extension = CertFindExtension(altNameOID, certInfo->cExtension, certInfo->rgExtension); + if(extension) + { + CERT_ALT_NAME_INFO* altName; + DWORD length = 0; + if(!CryptDecodeObjectEx(X509_ASN_ENCODING, X509_ALTERNATE_NAME, extension->Value.pbData, + extension->Value.cbData, CRYPT_DECODE_ALLOC_FLAG, 0, &altName, &length)) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + + for(DWORD i = 0; i < altName->cAltEntry; ++i) + { + CERT_ALT_NAME_ENTRY* entry = &altName->rgAltEntry[i]; + + switch(entry->dwAltNameChoice) + { + case CERT_ALT_NAME_RFC822_NAME: + { + altNames.push_back(make_pair(AltNameEmail, IceUtil::wstringToString(entry->pwszRfc822Name))); + break; + } + case CERT_ALT_NAME_DNS_NAME: + { + altNames.push_back(make_pair(AltNameDNS, IceUtil::wstringToString(entry->pwszDNSName))); + break; + } + case CERT_ALT_NAME_DIRECTORY_NAME: + { + altNames.push_back(make_pair(AltNameDirectory, certNameToString(&entry->DirectoryName))); + break; + } + case CERT_ALT_NAME_URL: + { + altNames.push_back(make_pair(AltNameURL, IceUtil::wstringToString(entry->pwszURL))); + break; + } + case CERT_ALT_NAME_IP_ADDRESS: + { + if(entry->IPAddress.cbData == 4) + { + // + // IPv4 address + // + ostringstream os; + Byte* src = reinterpret_cast<Byte*>(entry->IPAddress.pbData); + for(int j = 0; j < 4;) + { + int value = 0; + Byte* dest = reinterpret_cast<Byte*>(&value); + *dest = *src++; + os << value; + if(++j < 4) + { + os << "."; + } + } + altNames.push_back(make_pair(AltNAmeIP, os.str())); + } + // + // TODO IPv6 Address support. + // + break; + } + default: + { + // Not supported + break; + } + } + } + LocalFree(altName); + } + return altNames; +} #endif CertificateReadException::CertificateReadException(const char* file, int line, const string& r) : @@ -284,10 +450,8 @@ CertificateEncodingException::CertificateEncodingException(const char* file, int Exception(file, line) { assert(err); - ostringstream os; - os << "certificate error:\n" << errorToString(err); + reason = "certificate error:\n" + errorToString(err); CFRelease(err); - reason = os.str(); } #endif @@ -615,17 +779,27 @@ DistinguishedName::unescape() } } -PublicKey::PublicKey(KeyRef key) : +PublicKey::PublicKey(const CertificatePtr& cert, KeyRef key) : + _cert(cert), _key(key) { + if(!_key) + { + throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "Invalid key reference"); + } } PublicKey::~PublicKey() { -#ifdef ICE_USE_SECURE_TRANSPORT - CFRelease(_key); -#else - EVP_PKEY_free(_key); +#ifndef ICE_USE_SCHANNEL + if(_key) + { +# if defined(ICE_USE_SECURE_TRANSPORT) + CFRelease(_key); +# else + EVP_PKEY_free(_key); +# endif + } #endif } @@ -638,31 +812,67 @@ PublicKey::key() const // // The caller is responsible for incrementing the reference count. // -Certificate::Certificate(X509CertificateRef cert) : - _cert(cert) +Certificate::Certificate(X509CertificateRef cert) : _cert(cert) +#ifdef ICE_USE_SCHANNEL + , _certInfo(0) +#endif { if(!_cert) { throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "Invalid certificate reference"); } + +#ifdef ICE_USE_SCHANNEL + try + { + // + // Decode certificate info + // + DWORD length = 0; + if(!CryptDecodeObjectEx(X509_ASN_ENCODING, X509_CERT_TO_BE_SIGNED, _cert->ToBeSigned.pbData, + _cert->ToBeSigned.cbData, CRYPT_DECODE_ALLOC_FLAG, 0, &_certInfo, &length)) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + } + catch(...) + { + LocalFree(_cert); + _cert = 0; + throw; + } +#endif } Certificate::~Certificate() { -#ifdef ICE_USE_SECURE_TRANSPORT - CFRelease(_cert); + if(_cert) + { +#if defined(ICE_USE_SECURE_TRANSPORT) + CFRelease(_cert); +#elif defined(ICE_USE_SCHANNEL) + LocalFree(_cert); + if(_certInfo) + { + LocalFree(_certInfo); + } #else - X509_free(_cert); + X509_free(_cert); #endif + } } CertificatePtr Certificate::load(const string& file) { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) SecCertificateRef cert = 0; loadCertificate(&cert, 0, 0, 0, file); return new Certificate(cert); +#elif defined(ICE_USE_SCHANNEL) + CERT_SIGNED_CONTENT_INFO* cert; + loadCertificate(&cert, file); + return new Certificate(cert); #else BIO *cert = BIO_new(BIO_s_file()); if(BIO_read_filename(cert, file.c_str()) <= 0) @@ -685,7 +895,7 @@ Certificate::load(const string& file) CertificatePtr Certificate::decode(const string& encoding) { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) CFDataRef data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, reinterpret_cast<const UInt8*>(encoding.c_str()), encoding.size(), kCFAllocatorNull); @@ -696,34 +906,31 @@ Certificate::decode(const string& encoding) memset(¶ms, 0, sizeof(params)); params.version = SEC_KEY_IMPORT_EXPORT_PARAMS_VERSION; - CFArrayRef items = 0; - + CFArrayRef items = 0; OSStatus err = SecItemImport(data, 0, &format, &type, 0, ¶ms, 0, &items); - CFRelease(data); - - if(err != noErr) + if(err) { - ostringstream os; - os << "error decoding certificate:\n" << errorToString(err); - CertificateReadException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateEncodingException(__FILE__, __LINE__, errorToString(err)); } SecKeychainItemRef item = (SecKeychainItemRef)CFArrayGetValueAtIndex(items, 0); - CFRetain(item); CFRelease(items); assert(SecCertificateGetTypeID() == CFGetTypeID(item)); return new Certificate((SecCertificateRef)item); +#elif defined(ICE_USE_SCHANNEL) + CERT_SIGNED_CONTENT_INFO* cert; + loadCertificate(&cert, encoding.c_str(), static_cast<DWORD>(encoding.size())); + return new Certificate(cert); #else BIO *cert = BIO_new_mem_buf(static_cast<void*>(const_cast<char*>(&encoding[0])), static_cast<int>(encoding.size())); X509CertificateRef x = PEM_read_bio_X509_AUX(cert, NULL, NULL, NULL); if(x == NULL) { BIO_free(cert); - throw CertificateReadException(__FILE__, __LINE__, "error decoding certificate:\n" + getSslErrors(false)); + throw CertificateEncodingException(__FILE__, __LINE__, getSslErrors(false)); } BIO_free(cert); return new Certificate(x); @@ -733,8 +940,10 @@ Certificate::decode(const string& encoding) bool Certificate::operator==(const Certificate& other) const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return CFEqual(_cert, other._cert); +#elif defined(ICE_USE_SCHANNEL) + return CertCompareCertificate(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, _certInfo, other._certInfo); #else return X509_cmp(_cert, other._cert) == 0; #endif @@ -743,8 +952,10 @@ Certificate::operator==(const Certificate& other) const bool Certificate::operator!=(const Certificate& other) const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return !CFEqual(_cert, other._cert); +#elif defined(ICE_USE_SCHANNEL) + return !CertCompareCertificate(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, _certInfo, other._certInfo); #else return X509_cmp(_cert, other._cert) != 0; #endif @@ -753,26 +964,25 @@ Certificate::operator!=(const Certificate& other) const PublicKeyPtr Certificate::getPublicKey() const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) SecKeyRef key; OSStatus err = SecCertificateCopyPublicKey(_cert, &key); - if(err != noErr) + if(err) { - ostringstream os; - os << "certificate error:\n" << errorToString(err); - CertificateEncodingException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateEncodingException(__FILE__, __LINE__, errorToString(err)); } - return new PublicKey(key); + return new PublicKey(const_cast<Certificate*>(this), key); +#elif defined(ICE_USE_SCHANNEL) + return new PublicKey(const_cast<Certificate*>(this), &_certInfo->SubjectPublicKeyInfo); #else - return new PublicKey(X509_get_pubkey(_cert)); + return new PublicKey(const_cast<Certificate*>(this), X509_get_pubkey(_cert)); #endif } bool Certificate::verify(const CertificatePtr& cert) const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) // // We first check if the given certificate subject match // our certificate issuer. Otherwhise when use SecTrustEvaluate @@ -785,18 +995,32 @@ Certificate::verify(const CertificatePtr& cert) const CFDataRef issuer = 0; CFDataRef subject = 0; - issuer = SecCertificateCopyNormalizedIssuerContent(_cert, &error); - if(error) + try { - CertificateEncodingException ex(__FILE__, __LINE__, error); - throw ex; + issuer = SecCertificateCopyNormalizedIssuerContent(_cert, &error); + if(error) + { + throw CertificateEncodingException(__FILE__, __LINE__, error); + } + + subject = SecCertificateCopyNormalizedSubjectContent(cert->getCert(), &error); + if(error) + { + throw CertificateEncodingException(__FILE__, __LINE__, error); + } } - - subject = SecCertificateCopyNormalizedSubjectContent(cert->getCert(), &error); - if(error) + catch(...) { - CertificateEncodingException ex(__FILE__, __LINE__, error); - throw ex; + if(issuer) + { + CFRelease(issuer); + } + + if(subject) + { + CFRelease(subject); + } + throw; } // @@ -816,37 +1040,28 @@ Certificate::verify(const CertificatePtr& cert) const SecPolicyRef policy = SecPolicyCreateBasicX509(); SecTrustResultType trustResult = kSecTrustResultInvalid; SecTrustRef trust; - OSStatus err = SecTrustCreateWithCertificates(_cert, policy, &trust); - - if(err != noErr) + OSStatus err = 0; + + if((err = SecTrustCreateWithCertificates(_cert, policy, &trust))) { - ostringstream os; - os << "certificate error:\n" << errorToString(err); - CertificateEncodingException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateEncodingException(__FILE__, __LINE__, errorToString(err)); } SecCertificateRef certs[1] = { cert->getCert() }; - CFArrayRef anchorCertificates = CFArrayCreate(kCFAllocatorDefault, (const void**)&certs, 1, &kCFTypeArrayCallBacks); + CFArrayRef anchorCertificates = CFArrayCreate(kCFAllocatorDefault, (const void**)&certs, 1, + &kCFTypeArrayCallBacks); err = SecTrustSetAnchorCertificates(trust, anchorCertificates); CFRelease(anchorCertificates); - if(err != noErr) + if(err) { - ostringstream os; - os << "certificate error:\n" << errorToString(err); - CertificateEncodingException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateEncodingException(__FILE__, __LINE__, errorToString(err)); } - err = SecTrustEvaluate(trust, &trustResult); - if(err != noErr) + if((err = SecTrustEvaluate(trust, &trustResult))) { - ostringstream os; - os << "certificate error:\n" << errorToString(err); - CertificateEncodingException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateEncodingException(__FILE__, __LINE__, errorToString(err)); } valid = trustResult == kSecTrustResultUnspecified; @@ -869,12 +1084,23 @@ Certificate::verify(const CertificatePtr& cert) const } } return valid; +#elif defined(ICE_USE_SCHANNEL) + BYTE* buffer = 0; + DWORD length = 0; + if(!CryptEncodeObjectEx(X509_ASN_ENCODING, X509_CERT, _cert, CRYPT_ENCODE_ALLOC_FLAG , 0, &buffer, &length)) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + + bool result = CryptVerifyCertificateSignature(0, X509_ASN_ENCODING, buffer, length, cert->getPublicKey()->key()); + LocalFree(buffer); + return result; #else return X509_verify(_cert, cert->getPublicKey()->key()) > 0; #endif } -#ifndef ICE_USE_SECURE_TRANSPORT +#ifdef ICE_USE_OPENSSL bool Certificate::verify(const PublicKeyPtr& key) const { @@ -885,19 +1111,53 @@ Certificate::verify(const PublicKeyPtr& key) const string Certificate::encode() const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) CFDataRef exported; OSStatus err = SecItemExport(_cert, kSecFormatPEMSequence, kSecItemPemArmour, 0, &exported); if(err != noErr) { - ostringstream os; - os << "error encoding certificate:\n" << errorToString(err); - CertificateEncodingException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateEncodingException(__FILE__, __LINE__, errorToString(err)); } string data(reinterpret_cast<const char*>(CFDataGetBytePtr(exported)), CFDataGetLength(exported)); CFRelease(exported); return data; +#elif defined(ICE_USE_SCHANNEL) + string s; + DWORD length = 0; + BYTE* buffer = 0; + try + { + if(!CryptEncodeObjectEx(X509_ASN_ENCODING, X509_CERT, _cert, CRYPT_ENCODE_ALLOC_FLAG , 0, &buffer, &length)) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + + DWORD encodedLength = 0; + if(!CryptBinaryToString(buffer, length, CRYPT_STRING_BASE64HEADER | CRYPT_STRING_NOCR, 0, &encodedLength)) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + + std::vector<char> encoded; + encoded.resize(encodedLength); + if(!CryptBinaryToString(buffer, length, CRYPT_STRING_BASE64HEADER | CRYPT_STRING_NOCR, &encoded[0], + &encodedLength)) + { + throw CertificateEncodingException(__FILE__, __LINE__, IceUtilInternal::lastErrorToString()); + } + LocalFree(buffer); + buffer = 0; + s.assign(&encoded[0]); + } + catch(...) + { + if(buffer) + { + LocalFree(buffer); + } + throw; + } + return s; #else BIO* out = BIO_new(BIO_s_mem()); int i = PEM_write_bio_X509_AUX(out, _cert); @@ -930,8 +1190,10 @@ Certificate::checkValidity(const IceUtil::Time& now) const IceUtil::Time Certificate::getNotAfter() const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return getX509Date(_cert, kSecOIDX509V1ValidityNotAfter); +#elif defined(ICE_USE_SCHANNEL) + return filetimeToTime(_certInfo->NotAfter); #else return ASMUtcTimeToIceUtilTime(X509_get_notAfter(_cert)); #endif @@ -940,8 +1202,10 @@ Certificate::getNotAfter() const IceUtil::Time Certificate::getNotBefore() const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return getX509Date(_cert, kSecOIDX509V1ValidityNotBefore); +#elif defined(ICE_USE_SCHANNEL) + return filetimeToTime(_certInfo->NotBefore); #else return ASMUtcTimeToIceUtilTime(X509_get_notBefore(_cert)); #endif @@ -950,8 +1214,22 @@ Certificate::getNotBefore() const string Certificate::getSerialNumber() const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return getX509String(_cert, kSecOIDX509V1SerialNumber); +#elif defined(ICE_USE_SCHANNEL) + ostringstream os; + for(int i = _certInfo->SerialNumber.cbData - 1; i >= 0; --i) + { + unsigned char c = _certInfo->SerialNumber.pbData[i]; + os.fill('0'); + os.width(2); + os << hex << (int)c; + if(i) + { + os << ' '; + } + } + return IceUtilInternal::toUpper(os.str()); #else BIGNUM* bn = ASN1_INTEGER_to_BN(X509_get_serialNumber(_cert), 0); char* dec = BN_bn2dec(bn); @@ -976,8 +1254,10 @@ Certificate::getSerialNumber() const DistinguishedName Certificate::getIssuerDN() const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return getX509Name(_cert, kSecOIDX509V1IssuerName); +#elif defined(ICE_USE_SCHANNEL) + return DistinguishedName(certNameToString(&_certInfo->Issuer)); #else return DistinguishedName(RFC2253::parseStrict(convertX509NameToString(X509_get_issuer_name(_cert)))); #endif @@ -986,19 +1266,22 @@ Certificate::getIssuerDN() const vector<pair<int, string> > Certificate::getIssuerAlternativeNames() { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return getX509AltName(_cert, kSecOIDIssuerAltName); +#elif defined(ICE_USE_SCHANNEL) + return certificateAltNames(_certInfo, szOID_ISSUER_ALT_NAME2); #else - return convertGeneralNames(reinterpret_cast<GENERAL_NAMES*>( - X509_get_ext_d2i(_cert, NID_issuer_alt_name, 0, 0))); + return convertGeneralNames(reinterpret_cast<GENERAL_NAMES*>(X509_get_ext_d2i(_cert, NID_issuer_alt_name, 0, 0))); #endif } DistinguishedName Certificate::getSubjectDN() const { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return getX509Name(_cert, kSecOIDX509V1SubjectName); +#elif defined(ICE_USE_SCHANNEL) + return DistinguishedName(certNameToString(&_certInfo->Subject)); #else return DistinguishedName(RFC2253::parseStrict(convertX509NameToString(X509_get_subject_name(_cert)))); #endif @@ -1007,19 +1290,22 @@ Certificate::getSubjectDN() const vector<pair<int, string> > Certificate::getSubjectAlternativeNames() { -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) return getX509AltName(_cert, kSecOIDSubjectAltName); +#elif defined(ICE_USE_SCHANNEL) + return certificateAltNames(_certInfo, szOID_SUBJECT_ALT_NAME2); #else - return convertGeneralNames( - reinterpret_cast<GENERAL_NAMES*>(X509_get_ext_d2i(_cert, NID_subject_alt_name, 0, 0))); + return convertGeneralNames(reinterpret_cast<GENERAL_NAMES*>(X509_get_ext_d2i(_cert, NID_subject_alt_name, 0, 0))); #endif } int Certificate::getVersion() const { -#ifdef ICE_USE_SECURE_TRANSPORT - return atoi(getX509String(_cert, kSecOIDX509V1Version).c_str()); +#if defined(ICE_USE_SECURE_TRANSPORT) + return atoi(getX509String(_cert, kSecOIDX509V1Version).c_str()) - 1; +#elif defined(ICE_USE_SCHANNEL) + return _certInfo->dwVersion; #else return static_cast<int>(X509_get_version(_cert)); #endif diff --git a/cpp/src/IceSSL/ConnectorI.cpp b/cpp/src/IceSSL/ConnectorI.cpp index 74db5e52cb6..f1640673ba7 100644 --- a/cpp/src/IceSSL/ConnectorI.cpp +++ b/cpp/src/IceSSL/ConnectorI.cpp @@ -9,8 +9,11 @@ #include <IceSSL/ConnectorI.h> #include <IceSSL/Instance.h> + +#include <IceSSL/OpenSSLTransceiverI.h> #include <IceSSL/SecureTransportTransceiverI.h> -#include <IceSSL/TransceiverI.h> +#include <IceSSL/SChannelTransceiverI.h> + #include <IceSSL/EndpointI.h> #include <IceSSL/Util.h> #include <Ice/Communicator.h> diff --git a/cpp/src/IceSSL/EndpointI.cpp b/cpp/src/IceSSL/EndpointI.cpp index 93994804783..d17b7e16cc8 100644 --- a/cpp/src/IceSSL/EndpointI.cpp +++ b/cpp/src/IceSSL/EndpointI.cpp @@ -10,7 +10,6 @@ #include <IceSSL/EndpointI.h> #include <IceSSL/AcceptorI.h> #include <IceSSL/ConnectorI.h> -#include <IceSSL/TransceiverI.h> #include <IceSSL/Instance.h> #include <Ice/BasicStream.h> #include <Ice/LocalException.h> diff --git a/cpp/src/IceSSL/Makefile b/cpp/src/IceSSL/Makefile index 0b77453d20e..c63570744ae 100644 --- a/cpp/src/IceSSL/Makefile +++ b/cpp/src/IceSSL/Makefile @@ -24,14 +24,16 @@ OBJS = AcceptorI.o \ EndpointI.o \ Instance.o \ PluginI.o \ - TransceiverI.o \ + OpenSSLTransceiverI.o \ SecureTransportTransceiverI.o \ Util.o \ RFC2253.o \ TrustManager.o \ SSLEngine.o \ OpenSSLEngine.o \ - SecureTransportEngine.o + SecureTransportEngine.o \ + SChannelEngine.o \ + SChannelTransceiverI.o SRCS = $(OBJS:.o=.cpp) diff --git a/cpp/src/IceSSL/Makefile.mak b/cpp/src/IceSSL/Makefile.mak index 33ea5d194b5..4e06d935fd0 100644 --- a/cpp/src/IceSSL/Makefile.mak +++ b/cpp/src/IceSSL/Makefile.mak @@ -9,25 +9,25 @@ top_srcdir = ..\.. -LIBNAME = $(top_srcdir)\lib\icessl$(LIBSUFFIX).lib +LIBNAME = $(top_srcdir)\lib\icessl$(LIBSUFFIX).lib DLLNAME = $(top_srcdir)\bin\icessl$(SOVERSION)$(LIBSUFFIX)$(COMPSUFFIX).dll TARGETS = $(LIBNAME) $(DLLNAME) OBJS = AcceptorI.obj \ Certificate.obj \ - ConnectorI.obj \ - ConnectionInfo.obj \ - EndpointInfo.obj \ - EndpointI.obj \ - Instance.obj \ - PluginI.obj \ - TransceiverI.obj \ - Util.obj \ - RFC2253.obj \ - TrustManager.obj \ SSLEngine.obj \ - OpenSSLEngine.obj + ConnectorI.obj \ + ConnectionInfo.obj \ + EndpointInfo.obj \ + EndpointI.obj \ + Instance.obj \ + PluginI.obj \ + SChannelEngine.obj \ + SChannelTransceiverI.obj \ + Util.obj \ + RFC2253.obj \ + TrustManager.obj SRCS = $(OBJS:.obj=.cpp) @@ -39,13 +39,13 @@ SDIR = $(slicedir)\IceSSL CPPFLAGS = -I.. $(CPPFLAGS) -DICE_SSL_API_EXPORTS -DWIN32_LEAN_AND_MEAN SLICE2CPPFLAGS = --ice --include-dir IceSSL --dll-export ICE_SSL_API $(SLICE2CPPFLAGS) -LINKWITH = $(OPENSSL_LIBS) $(LIBS) ws2_32.lib +LINKWITH = $(LIBS) $(SSL_OS_LIBS) ws2_32.lib !if "$(GENERATE_PDB)" == "yes" -PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) +PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) !endif -RES_FILE = IceSSL.res +RES_FILE = IceSSL.res $(LIBNAME): $(DLLNAME) diff --git a/cpp/src/IceSSL/OpenSSLEngine.cpp b/cpp/src/IceSSL/OpenSSLEngine.cpp index f4e4d196efa..3c1f54a9bc1 100644 --- a/cpp/src/IceSSL/OpenSSLEngine.cpp +++ b/cpp/src/IceSSL/OpenSSLEngine.cpp @@ -30,6 +30,7 @@ #include <openssl/rand.h> #include <openssl/err.h> #include <openssl/ssl.h> +#include <openssl/pkcs12.h> using namespace std; using namespace Ice; @@ -163,7 +164,8 @@ passwordError() return (reason == PEM_R_BAD_BASE64_DECODE || reason == PEM_R_BAD_DECRYPT || reason == PEM_R_BAD_PASSWORD_READ || - reason == PEM_R_PROBLEMS_GETTING_PASSWORD); + reason == PEM_R_PROBLEMS_GETTING_PASSWORD || + reason == PKCS12_R_MAC_VERIFY_FAILURE); } } @@ -245,24 +247,21 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) : if(!IceUtilInternal::splitString(randFiles, IceUtilInternal::pathsep, files)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: invalid value for IceSSL.Random:\n" + randFiles; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: invalid value for IceSSL.Random:\n" + randFiles); } for(vector<string>::iterator p = files.begin(); p != files.end(); ++p) { string file = *p; if(!checkPath(file, defaultDir, false)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: entropy data file not found:\n" + file; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: entropy data file not found:\n" + file); } if(!RAND_load_file(file.c_str(), 1024)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: unable to load entropy data from " + file; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to load entropy data from " + file); } } } @@ -276,9 +275,8 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) : { if(RAND_egd(entropyDaemon.c_str()) <= 0) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: EGD failure using file " + entropyDaemon; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: EGD failure using file " + entropyDaemon); } } # endif @@ -366,9 +364,8 @@ OpenSSLEngine::initialize() _ctx = SSL_CTX_new(getMethod(protocols)); if(!_ctx) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: unable to create SSL context:\n" + sslErrors(); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to create SSL context:\n" + sslErrors()); } // @@ -407,9 +404,8 @@ OpenSSLEngine::initialize() { if(!checkPath(caFile, defaultDir, false)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: CA certificate file not found:\n" + caFile; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: CA certificate file not found:\n" + caFile); } file = caFile.c_str(); } @@ -417,9 +413,8 @@ OpenSSLEngine::initialize() { if(!checkPath(caDir, defaultDir, true)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: CA certificate directory not found:\n" + caDir; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: CA certificate directory not found:\n" + caDir); } dir = caDir.c_str(); } @@ -430,18 +425,17 @@ OpenSSLEngine::initialize() // password retries. // int count = 0; - int err = 0; + int success = 0; while(count < passwordRetryMax) { ERR_clear_error(); - err = SSL_CTX_load_verify_locations(_ctx, file, dir); - if(err) + if((success = SSL_CTX_load_verify_locations(_ctx, file, dir))|| !passwordError()) { break; } ++count; } - if(err == 0) + if(!success) { string msg = "IceSSL: unable to establish CA certificates"; if(passwordError()) @@ -456,9 +450,7 @@ OpenSSLEngine::initialize() msg += ":\n" + err; } } - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = msg; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, msg); } } } @@ -467,137 +459,232 @@ OpenSSLEngine::initialize() // Establish the certificate chains and private keys. One RSA certificate and // one DSA certificate are allowed. // + string certFile = properties->getProperty(propPrefix + "CertFile"); + string keyFile = properties->getProperty(propPrefix + "KeyFile"); + bool keyLoaded = false; + + vector<string>::size_type numCerts = 0; + if(!certFile.empty()) { - string certFile = properties->getProperty(propPrefix + "CertFile"); - string keyFile = properties->getProperty(propPrefix + "KeyFile"); - vector<string>::size_type numCerts = 0; - if(!certFile.empty()) + vector<string> files; + if(!IceUtilInternal::splitString(certFile, IceUtilInternal::pathsep, files) || files.size() > 2) { - vector<string> files; - if(!IceUtilInternal::splitString(certFile, IceUtilInternal::pathsep, files) || files.size() > 2) + PluginInitializationException ex(__FILE__, __LINE__, + "IceSSL: invalid value for " + propPrefix + "CertFile:\n" + certFile); + } + numCerts = files.size(); + for(vector<string>::iterator p = files.begin(); p != files.end(); ++p) + { + string file = *p; + if(!checkPath(file, defaultDir, false)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: invalid value for " + propPrefix + "CertFile:\n" + certFile; - throw ex; + PluginInitializationException ex(__FILE__, __LINE__, + "IceSSL: certificate file not found:\n" + file); + } + // + // First we try to load the certificate using PKCS12 format if that fails + // we fallback to PEM format. + // + FILE* f = fopen(file.c_str(), "rb"); + if(!f) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to load certificate chain from file " + file + "\n" + + IceUtilInternal::lastErrorToString()); } - numCerts = files.size(); - for(vector<string>::iterator p = files.begin(); p != files.end(); ++p) + + int success = 0; + + PKCS12* p12 = d2i_PKCS12_fp(f, 0); + fclose(f); + if(p12) { - string file = *p; - if(!checkPath(file, defaultDir, false)) + X509* cert = 0; + EVP_PKEY* key = 0; + STACK_OF(X509)* chain = 0; + + int count = 0; + try { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: certificate file not found:\n" + file; - throw ex; + while(count < passwordRetryMax) + { + ERR_clear_error(); + if(!(success = PKCS12_parse(p12, password(false).c_str(), &key, &cert, &chain))) + { + if(passwordError()) + { + count++; + continue; + } + break; + } + + if(!cert || !SSL_CTX_use_certificate(_ctx, cert)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to establish SSL certificate:\n" + + (cert ? sslErrors() : "certificate not found")); + } + + if(!key || !SSL_CTX_use_PrivateKey(_ctx, key)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to establish SSL private key:\n" + + (key ? sslErrors() : "key not found")); + } + keyLoaded = true; + + if(chain && sk_X509_num(chain)) + { + for(int i = 0; i < sk_X509_num(chain); i++) + { + if(!SSL_CTX_add_extra_chain_cert(_ctx, sk_X509_value(chain, i))) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to add extra SSL certificate:\n" + sslErrors()); + } + } + } + + if(chain) + { + sk_X509_pop_free(chain, X509_free); + } + assert(key && cert); + EVP_PKEY_free(key); + X509_free(cert); + break; + } + PKCS12_free(p12); + } + catch(...) + { + PKCS12_free(p12); + if(chain) + { + sk_X509_pop_free(chain, X509_free); + } + + if(key) + { + EVP_PKEY_free(key); + } + + if(cert) + { + X509_free(cert); + } + throw; } + } + else + { // // The certificate may be stored in an encrypted file, so handle // password retries. // int count = 0; - int err = 0; while(count < passwordRetryMax) { ERR_clear_error(); - err = SSL_CTX_use_certificate_chain_file(_ctx, file.c_str()); - if(err) + if(!(success = SSL_CTX_use_certificate_chain_file(_ctx, file.c_str()))) { - break; + if(passwordError()) + { + count++; + continue; + } } - ++count; + count++; } - if(err == 0) + } + + if(!success) + { + string msg = "IceSSL: unable to load certificate chain from file " + file; + if(passwordError()) { - string msg = "IceSSL: unable to load certificate chain from file " + file; - if(passwordError()) - { - msg += ":\ninvalid password"; - } - else + msg += ":\ninvalid password"; + } + else + { + string err = sslErrors(); + if(!err.empty()) { - string err = sslErrors(); - if(!err.empty()) - { - msg += ":\n" + err; - } + msg += ":\n" + err; } - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = msg; - throw ex; } + throw PluginInitializationException(__FILE__, __LINE__, msg); } } - if(keyFile.empty()) + } + + if(keyFile.empty()) + { + keyFile = certFile; // Assume the certificate file also contains the private key. + } + if(!keyLoaded && !keyFile.empty()) + { + vector<string> files; + if(!IceUtilInternal::splitString(keyFile, IceUtilInternal::pathsep, files) || files.size() > 2) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: invalid value for " + propPrefix + "KeyFile:\n" + keyFile); + } + if(files.size() != numCerts) { - keyFile = certFile; // Assume the certificate file also contains the private key. + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: " + propPrefix + "KeyFile does not agree with " + propPrefix + "CertFile"); } - if(!keyFile.empty()) + for(vector<string>::iterator p = files.begin(); p != files.end(); ++p) { - vector<string> files; - if(!IceUtilInternal::splitString(keyFile, IceUtilInternal::pathsep, files) || files.size() > 2) - { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: invalid value for " + propPrefix + "KeyFile:\n" + keyFile; - throw ex; - } - if(files.size() != numCerts) + string file = *p; + if(!checkPath(file, defaultDir, false)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: " + propPrefix + "KeyFile does not agree with " + propPrefix + "CertFile"; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: key file not found:\n" + file); } - for(vector<string>::iterator p = files.begin(); p != files.end(); ++p) + // + // The private key may be stored in an encrypted file, so handle + // password retries. + // + int count = 0; + int err = 0; + while(count < passwordRetryMax) { - string file = *p; - if(!checkPath(file, defaultDir, false)) + ERR_clear_error(); + err = SSL_CTX_use_PrivateKey_file(_ctx, file.c_str(), SSL_FILETYPE_PEM); + if(err) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: key file not found:\n" + file; - throw ex; + break; } - // - // The private key may be stored in an encrypted file, so handle - // password retries. - // - int count = 0; - int err = 0; - while(count < passwordRetryMax) + ++count; + } + if(err == 0) + { + string msg = "IceSSL: unable to load private key from file " + file; + if(passwordError()) { - ERR_clear_error(); - err = SSL_CTX_use_PrivateKey_file(_ctx, file.c_str(), SSL_FILETYPE_PEM); - if(err) - { - break; - } - ++count; + msg += ":\ninvalid password"; } - if(err == 0) + else { - string msg = "IceSSL: unable to load private key from file " + file; - if(passwordError()) - { - msg += ":\ninvalid password"; - } - else + string err = sslErrors(); + if(!err.empty()) { - string err = sslErrors(); - if(!err.empty()) - { - msg += ":\n" + err; - } + msg += ":\n" + err; } - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = msg; - throw ex; } - } - if(!SSL_CTX_check_private_key(_ctx)) - { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: unable to validate private key(s):\n" + sslErrors(); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, msg); } } + keyLoaded = true; + } + + if(keyLoaded && !SSL_CTX_check_private_key(_ctx)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to validate private key(s):\n" + sslErrors()); } // @@ -630,15 +717,13 @@ OpenSSLEngine::initialize() string file = p->second; if(!checkPath(file, defaultDir, false)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: DH parameter file not found:\n" + file; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: DH parameter file not found:\n" + file); } if(!_dhParams->add(keyLength, file)) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: unable to read DH parameter file " + file; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to read DH parameter file " + file); } } } @@ -684,9 +769,8 @@ OpenSSLEngine::initialize() { if(!SSL_CTX_set_cipher_list(_ctx, ciphers.c_str())) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: unable to set ciphers using `" + ciphers + "':\n" + sslErrors(); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to set ciphers using `" + ciphers + "':\n" + sslErrors()); } } @@ -694,7 +778,7 @@ OpenSSLEngine::initialize() // Determine whether a certificate is required from the peer. // { - int sslVerifyMode = SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT; + int sslVerifyMode = SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT;; switch(getVerifyPeer()) { case 0: @@ -704,7 +788,7 @@ OpenSSLEngine::initialize() sslVerifyMode = SSL_VERIFY_PEER; break; case 2: - sslVerifyMode = SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT; + sslVerifyMode = SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT; break; default: { @@ -733,9 +817,7 @@ OpenSSLEngine::context(SSL_CTX* context) { if(initialized()) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: plug-in is already initialized"; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: plug-in is already initialized"); } assert(!_ctx); @@ -748,38 +830,6 @@ OpenSSLEngine::context() const return _ctx; } -void -OpenSSLEngine::verifyPeer(SSL* ssl, SOCKET fd, const string& address, const NativeConnectionInfoPtr& info) -{ - long result = SSL_get_verify_result(ssl); - if(result != X509_V_OK) - { - if(getVerifyPeer() == 0) - { - if(securityTraceLevel() >= 1) - { - ostringstream ostr; - ostr << "IceSSL: ignoring certificate verification failure:\n" << X509_verify_cert_error_string(result); - getLogger()->trace(securityTraceCategory(), ostr.str()); - } - } - else - { - ostringstream ostr; - ostr << "IceSSL: certificate verification failed:\n" << X509_verify_cert_error_string(result); - string msg = ostr.str(); - if(securityTraceLevel() >= 1) - { - getLogger()->trace(securityTraceCategory(), msg); - } - SecurityException ex(__FILE__, __LINE__); - ex.reason = msg; - throw ex; - } - } - SSLEngine::verifyPeer(fd, address, info); -} - string OpenSSLEngine::sslErrors() const { @@ -853,9 +903,7 @@ OpenSSLEngine::parseProtocols(const StringSeq& protocols) const } else { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: unrecognized protocol `" + prot + "'"; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: unrecognized protocol `" + prot + "'"); } } diff --git a/cpp/src/IceSSL/TransceiverI.cpp b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp index 3fde67ef906..14aad8b9163 100644 --- a/cpp/src/IceSSL/TransceiverI.cpp +++ b/cpp/src/IceSSL/OpenSSLTransceiverI.cpp @@ -7,7 +7,7 @@ // // ********************************************************************** -#include <IceSSL/TransceiverI.h> +#include <IceSSL/OpenSSLTransceiverI.h> #include <IceUtil/Mutex.h> #include <IceUtil/MutexPtrLock.h> @@ -71,23 +71,6 @@ IceSSL::TransceiverI::getNativeInfo() return this; } -#ifdef ICE_USE_IOCP -IceInternal::AsyncInfo* -IceSSL::TransceiverI::getAsyncInfo(IceInternal::SocketOperation status) -{ - switch(status) - { - case IceInternal::SocketOperationRead: - return &_read; - case IceInternal::SocketOperationWrite: - return &_write; - default: - assert(false); - return 0; - } -} -#endif - IceInternal::SocketOperation IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::Buffer& writeBuffer, bool&) { @@ -100,11 +83,7 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B } else if(_state <= StateConnectPending) { -#ifdef ICE_USE_IOCP - IceInternal::doFinishConnectAsync(_fd, _write); -#else IceInternal::doFinishConnect(_fd); -#endif _desc = IceInternal::fdToString(_fd, _proxy, _addr, true); @@ -116,13 +95,6 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B _proxy->beginWriteConnectRequest(_addr, writeBuffer); _proxy->beginReadConnectRequestResponse(readBuffer); -#ifdef ICE_USE_IOCP - // - // Return SocketOperationWrite to indicate we need to start a write. - // - _state = StateProxyConnectRequest; // Send proxy connect request - return IceInternal::SocketOperationWrite; -#else // // Write the proxy connection message using TCP. // @@ -160,7 +132,6 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B _state = StateProxyConnectRequest; // Send proxy connect request return IceInternal::SocketOperationWrite; } -#endif } _state = StateConnected; @@ -187,42 +158,10 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B if(!_ssl) { -#ifdef ICE_USE_IOCP - // - // On Windows, limiting the buffer size is important to prevent - // poor throughput performances when transfering large amount of - // data. See Microsoft KB article KB823764. - // - _maxSendPacketSize = IceInternal::getSendBufferSize(_fd) / 2; - if(_maxSendPacketSize < 512) - { - _maxSendPacketSize = 0; - } - - _maxReceivePacketSize = IceInternal::getRecvBufferSize(_fd); - if(_maxReceivePacketSize < 512) - { - _maxReceivePacketSize = 0; - } - - _readI = _readBuffer.end(); - _writeI = _writeBuffer.end(); - _sentBytes = 0; -#endif - -#ifdef ICE_USE_IOCP - BIO* bio; - if(!BIO_new_bio_pair(&bio, _maxSendPacketSize, &_iocpBio, _maxReceivePacketSize)) - { - bio = 0; - _iocpBio = 0; - } -#else // // This static_cast is necessary due to 64bit windows. There SOCKET is a non-int type. // BIO* bio = BIO_new_socket(static_cast<int>(_fd), 0); -#endif if(!bio) { SecurityException ex(__FILE__, __LINE__); @@ -234,10 +173,6 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B if(!_ssl) { BIO_free(bio); -#ifdef ICE_USE_IOCP - BIO_free(_iocpBio); - _iocpBio = 0; -#endif SecurityException ex(__FILE__, __LINE__); ex.reason = "openssl failure"; throw ex; @@ -267,16 +202,6 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B sync.release(); #endif -#ifdef ICE_USE_IOCP - if(BIO_ctrl_pending(_iocpBio)) - { - if(!send()) - { - return IceInternal::SocketOperationWrite; - } - continue; - } -#endif if(ret <= 0) { switch(SSL_get_error(_ssl, ret)) @@ -292,22 +217,10 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B } case SSL_ERROR_WANT_READ: { -#ifdef ICE_USE_IOCP - if(receive()) - { - continue; - } -#endif return IceInternal::SocketOperationRead; } case SSL_ERROR_WANT_WRITE: { -#ifdef ICE_USE_IOCP - if(send()) - { - continue; - } -#endif return IceInternal::SocketOperationWrite; } case SSL_ERROR_SYSCALL: @@ -319,7 +232,6 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B throw ex; } -#ifndef ICE_USE_IOCP if(ret == -1) { if(IceInternal::interrupted()) @@ -348,7 +260,6 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B throw ex; } } -#endif SocketException ex(__FILE__, __LINE__); ex.error = IceInternal::getSocketErrno(); throw ex; @@ -372,7 +283,34 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B } } - _engine->verifyPeer(_ssl, _fd, _host, getNativeConnectionInfo()); + long result = SSL_get_verify_result(_ssl); + if(result != X509_V_OK) + { + if(_engine->getVerifyPeer() == 0) + { + if(_engine->securityTraceLevel() >= 1) + { + ostringstream ostr; + ostr << "IceSSL: ignoring certificate verification failure:\n" + << X509_verify_cert_error_string(result); + _instance->logger()->trace(_instance->traceCategory(), ostr.str()); + } + } + else + { + ostringstream ostr; + ostr << "IceSSL: certificate verification failed:\n" << X509_verify_cert_error_string(result); + string msg = ostr.str(); + if(_engine->securityTraceLevel() >= 1) + { + _instance->logger()->trace(_instance->traceCategory(), msg); + } + SecurityException ex(__FILE__, __LINE__); + ex.reason = msg; + throw ex; + } + } + _engine->verifyPeer(_fd, _host, getNativeConnectionInfo()); _state = StateHandshakeComplete; } catch(const Ice::LocalException& ex) @@ -406,9 +344,27 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B } } - if(_instance->engine()->securityTraceLevel() >= 1) + if(_engine->securityTraceLevel() >= 1) { - traceConnection(); + Trace out(_instance->logger(), _instance->traceCategory()); + out << "SSL summary for " << (_incoming ? "incoming" : "outgoing") << " connection\n"; + + // + // The const_cast is necesary because Solaris still uses OpenSSL 0.9.7. + // + //const SSL_CIPHER *cipher = SSL_get_current_cipher(ssl); + SSL_CIPHER *cipher = const_cast<SSL_CIPHER*>(SSL_get_current_cipher(_ssl)); + if(!cipher) + { + out << "unknown cipher\n"; + } + else + { + out << "cipher = " << SSL_CIPHER_get_name(cipher) << "\n"; + out << "bits = " << SSL_CIPHER_get_bits(cipher, 0) << "\n"; + out << "protocol = " << SSL_get_version(_ssl) << "\n"; + } + out << IceInternal::fdToString(SSL_get_fd(_ssl)); } return IceInternal::SocketOperationNone; @@ -447,14 +403,6 @@ IceSSL::TransceiverI::close() _ssl = 0; } -#ifdef ICE_USE_IOCP - if(_iocpBio) - { - BIO_free(_iocpBio); - _iocpBio = 0; - } -#endif - assert(_fd != INVALID_SOCKET); try { @@ -484,16 +432,6 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf) return IceInternal::SocketOperationNone; } -#ifdef ICE_USE_IOCP - if(_writeI != _writeBuffer.end()) - { - if(!send()) - { - return IceInternal::SocketOperationWrite; - } - } -#endif - // // It's impossible for packetSize to be more than an Int. // @@ -502,28 +440,7 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf) { ERR_clear_error(); // Clear any spurious errors. assert(_fd != INVALID_SOCKET); -#ifdef ICE_USE_IOCP - int ret; - if(_sentBytes > 0) - { - ret = _sentBytes; - _sentBytes = 0; - } - else - { - ret = SSL_write(_ssl, reinterpret_cast<const void*>(&*buf.i), packetSize); - if(ret > 0) - { - if(!send()) - { - _sentBytes = ret; - return IceInternal::SocketOperationWrite; - } - } - } -#else int ret = SSL_write(_ssl, reinterpret_cast<const void*>(&*buf.i), packetSize); -#endif if(ret <= 0) { switch(SSL_get_error(_ssl, ret)) @@ -544,17 +461,10 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf) } case SSL_ERROR_WANT_WRITE: { -#ifdef ICE_USE_IOCP - if(send()) - { - continue; - } -#endif return IceInternal::SocketOperationWrite; } case SSL_ERROR_SYSCALL: { -#ifndef ICE_USE_IOCP if(ret == -1) { if(IceInternal::interrupted()) @@ -581,7 +491,6 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf) throw ex; } } -#endif if(ret == 0) { ConnectionLostException ex(__FILE__, __LINE__); @@ -642,16 +551,6 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) return IceInternal::SocketOperationNone; } -#ifdef ICE_USE_IOCP - if(_readI != _readBuffer.end()) - { - if(!receive()) - { - return IceInternal::SocketOperationRead; - } - } -#endif - // // It's impossible for packetSize to be more than an Int. // @@ -666,8 +565,10 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) switch(SSL_get_error(_ssl, ret)) { case SSL_ERROR_NONE: + { assert(false); break; + } case SSL_ERROR_ZERO_RETURN: { // @@ -687,12 +588,6 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) } case SSL_ERROR_WANT_READ: { -#ifdef ICE_USE_IOCP - if(receive()) - { - continue; - } -#endif return IceInternal::SocketOperationRead; } case SSL_ERROR_WANT_WRITE: @@ -702,7 +597,6 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) } case SSL_ERROR_SYSCALL: { -#ifndef ICE_USE_IOCP if(ret == -1) { if(IceInternal::interrupted()) @@ -737,7 +631,6 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) throw ex; } } -#endif if(ret == 0) { @@ -800,222 +693,6 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) return IceInternal::SocketOperationNone; } -#ifdef ICE_USE_IOCP - -bool -IceSSL::TransceiverI::startWrite(IceInternal::Buffer& buf) -{ - if(_state == StateConnectPending) - { - IceInternal::Address addr = _proxy ? _proxy->getAddress() : _addr; - IceInternal::doConnectAsync(_fd, addr, _write); - return false; - } - else if(_state == StateProxyConnectRequest) - { - // - // We need to write the proxy message, but we have to use TCP and not SSL. - // - assert(!buf.b.empty() && buf.i != buf.b.end()); - - const int packetSize = static_cast<int>(buf.b.end() - buf.i); - const int actualSize = writeAsync(reinterpret_cast<char*>(&*buf.i), packetSize); - return packetSize == actualSize; - } - - if(_writeBuffer.empty() || _writeI == _writeBuffer.end()) - { - assert(!buf.b.empty() && buf.i != buf.b.end()); - assert(!BIO_ctrl_pending(_iocpBio)); - - ERR_clear_error(); // Clear any spurious errors. - int ret = SSL_write(_ssl, reinterpret_cast<void*>(&*buf.i), static_cast<int>(buf.b.end() - buf.i)); - assert(ret > 0 || SSL_get_error(_ssl, ret) == SSL_ERROR_WANT_WRITE); - if(ret > 0) - { - _sentBytes = ret; - } - assert(BIO_ctrl_pending(_iocpBio)); - _writeBuffer.resize(BIO_ctrl_pending(_iocpBio)); -#ifndef NDEBUG - int n = -#endif - BIO_read(_iocpBio, &_writeBuffer[0], static_cast<int>(_writeBuffer.size())); - assert(n == static_cast<int>(_writeBuffer.size())); - _writeI = _writeBuffer.begin(); - } - - assert(!_writeBuffer.empty() && _writeI != _writeBuffer.end()); - - const int packetSize = static_cast<int>(_writeBuffer.end() - _writeI); - const int actualSize = writeAsync(reinterpret_cast<char*>(&*_writeI), packetSize); - - return packetSize == actualSize; -} - -void -IceSSL::TransceiverI::finishWrite(IceInternal::Buffer& buf) -{ - if(_state < StateConnected && _state != StateProxyConnectRequest) - { - return; - } - - if(static_cast<int>(_write.count) == SOCKET_ERROR) - { - WSASetLastError(_write.error); - if(IceInternal::connectionLost()) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - else - { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - } - - if(_state == StateProxyConnectRequest) - { - buf.i += _write.count; - } - else - { - _writeI += _write.count; - - if(_iocpBio && _writeI == _writeBuffer.end() && _sentBytes > 0) - { - int packetSize = static_cast<int>(buf.b.end() - buf.i); - if(_instance->traceLevel() >= 3) - { - Trace out(_instance->logger(), _instance->traceCategory()); - out << "sent " << _sentBytes << " of " << packetSize << " bytes via " << protocol() << "\n" << toString(); - } - - buf.i += _sentBytes; - _sentBytes = 0; - } - } -} - -void -IceSSL::TransceiverI::startRead(IceInternal::Buffer& buf) -{ - if(_state == StateProxyConnectRequestPending) - { - // - // We need to read the proxy reply, but we have to use TCP and not SSL. - // - assert(!buf.b.empty() && buf.i != buf.b.end()); - const int packetSize = static_cast<int>(buf.b.end() - buf.i); - readAsync(reinterpret_cast<char*>(&*buf.i), packetSize); - return; - } - - if(_readI == _readBuffer.end()) - { - assert(!buf.b.empty() && buf.i != buf.b.end()); - if(!BIO_ctrl_get_read_request(_iocpBio)) - { - ERR_clear_error(); // Clear any spurious errors. - int packetSize = static_cast<int>(buf.b.end() - buf.i); - int ret = SSL_read(_ssl, reinterpret_cast<void*>(&*buf.i), packetSize); - if(ret > 0) - { - if(_instance->traceLevel() >= 3) - { - Trace out(_instance->logger(), _instance->traceCategory()); - out << "received " << ret << " of " << packetSize << " bytes via " << protocol() << "\n" << toString(); - } - - buf.i += ret; - - _read.count = 0; - completed(IceInternal::SocketOperationRead); - return; - } - assert(ret <= 0 && SSL_get_error(_ssl, ret) == SSL_ERROR_WANT_READ); - } - - assert(BIO_ctrl_get_read_request(_iocpBio)); - _readBuffer.resize(BIO_ctrl_get_read_request(_iocpBio)); - _readI = _readBuffer.begin(); - } - - assert(!_readBuffer.empty() && _readI != _readBuffer.end()); - readAsync(reinterpret_cast<char*>(&*_readI), static_cast<int>(_readBuffer.end() - _readI)); -} - -void -IceSSL::TransceiverI::finishRead(IceInternal::Buffer& buf) -{ - if(static_cast<int>(_read.count) == SOCKET_ERROR) - { - WSASetLastError(_read.error); - if(IceInternal::connectionLost()) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - else - { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - } - else if(_read.count == 0 && _readI < _readBuffer.end()) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = 0; - throw ex; - } - - if(_state == StateProxyConnectRequestPending) - { - buf.i += _read.count; - } - else if(_read.count > 0) - { - _readI += _read.count; - - if(_iocpBio && _readI == _readBuffer.end()) - { - int n = BIO_write(_iocpBio, &_readBuffer[0], static_cast<int>(_readBuffer.size())); - if(n < 0) // Expected if the transceiver was closed. - { - SecurityException ex(__FILE__, __LINE__); - ex.reason = "SSL bio write failed"; - throw ex; - } - assert(n == static_cast<int>(_readBuffer.size())); - - if(!buf.b.empty() && buf.i != buf.b.end()) - { - ERR_clear_error(); // Clear any spurious errors. - int packetSize = static_cast<int>(buf.b.end() - buf.i); - int ret = SSL_read(_ssl, reinterpret_cast<void*>(&*buf.i), packetSize); - if(ret > 0) - { - if(_instance->traceLevel() >= 3) - { - Trace out(_instance->logger(), _instance->traceCategory()); - out << "received " << ret << " of " << packetSize << " bytes via " << protocol() << "\n" << toString(); - } - - buf.i += ret; - } - } - } - } -} - -#endif - string IceSSL::TransceiverI::protocol() const { @@ -1054,16 +731,10 @@ IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const _incoming(false), _ssl(0), _state(StateNeedConnect) -#ifdef ICE_USE_IOCP - , _iocpBio(0), - _read(IceInternal::SocketOperationRead), - _write(IceInternal::SocketOperationWrite) -#endif { IceInternal::setBlock(fd, false); IceInternal::setTcpBufSize(fd, _instance->properties(), _instance->logger()); -#ifndef ICE_USE_IOCP IceInternal::Address connectAddr = proxy ? proxy->getAddress() : addr; if(IceInternal::doConnect(_fd, connectAddr)) { @@ -1079,7 +750,6 @@ IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const { _desc = IceInternal::fdToString(_fd, _proxy, _addr, true); } -#endif } IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const string& adapterName) : @@ -1092,11 +762,6 @@ IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const _ssl(0), _state(StateConnected), _desc(IceInternal::fdToString(fd)) -#ifdef ICE_USE_IOCP - , _iocpBio(0), - _read(IceInternal::SocketOperationRead), - _write(IceInternal::SocketOperationWrite) -#endif { IceInternal::setBlock(fd, false); IceInternal::setTcpBufSize(fd, _instance->properties(), _instance->logger()); @@ -1157,247 +822,6 @@ IceSSL::TransceiverI::getNativeConnectionInfo() const return info; } -#ifdef ICE_USE_IOCP - -bool -IceSSL::TransceiverI::receive() -{ - if(_readI == _readBuffer.end()) - { - assert(BIO_ctrl_get_read_request(_iocpBio)); - _readBuffer.resize(BIO_ctrl_get_read_request(_iocpBio)); - _readI = _readBuffer.begin(); - } - - int packetSize = static_cast<int>(_readBuffer.end() - _readI); - while(_readI != _readBuffer.end()) - { - assert(_fd != INVALID_SOCKET); - ssize_t ret = ::recv(_fd, reinterpret_cast<char*>(&*_readI), packetSize, 0); - if(ret == 0) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = 0; - throw ex; - } - - if(ret == SOCKET_ERROR) - { - if(IceInternal::interrupted()) - { - continue; - } - - if(IceInternal::noBuffers() && packetSize > 1024) - { - packetSize /= 2; - continue; - } - - if(IceInternal::wouldBlock()) - { - return false; - } - - if(IceInternal::connectionLost()) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - else - { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - } - - _readI += ret; - if(packetSize > _readBuffer.end() - _readI) - { - packetSize = static_cast<int>(_readBuffer.end() - _readI); - } - } - - assert(_readI == _readBuffer.end()); -#ifndef NDEBUG - int n = -#endif - BIO_write(_iocpBio, &_readBuffer[0], static_cast<int>(_readBuffer.size())); - - assert(n == static_cast<int>(_readBuffer.size())); - return true; -} - -bool -IceSSL::TransceiverI::send() -{ - if(_writeI == _writeBuffer.end()) - { - assert(BIO_ctrl_pending(_iocpBio)); - _writeBuffer.resize(BIO_ctrl_pending(_iocpBio)); -#ifndef NDEBUG - int n = -#endif - BIO_read(_iocpBio, &_writeBuffer[0], static_cast<int>(_writeBuffer.size())); - assert(n == static_cast<int>(_writeBuffer.size())); - _writeI = _writeBuffer.begin(); - } - - int packetSize = static_cast<int>(_writeBuffer.end() - _writeI); - if(_maxSendPacketSize > 0 && packetSize > _maxSendPacketSize) - { - packetSize = _maxSendPacketSize; - } - - while(_writeI != _writeBuffer.end()) - { - int ret = ::send(_fd, reinterpret_cast<const char*>(&*_writeI), packetSize, 0); - if(ret == 0) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = 0; - throw ex; - } - - if(ret == SOCKET_ERROR) - { - if(IceInternal::interrupted()) - { - continue; - } - - if(IceInternal::noBuffers() && packetSize > 1024) - { - packetSize /= 2; - continue; - } - - if(IceInternal::wouldBlock()) - { - return false; - } - - if(IceInternal::connectionLost()) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - else - { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - } - - _writeI += ret; - if(packetSize > _writeBuffer.end() - _writeI) - { - packetSize = static_cast<int>(_writeBuffer.end() - _writeI); - } - } - return true; -} - -int -IceSSL::TransceiverI::writeAsync(char* buf, int packetSize) -{ - if(_maxSendPacketSize > 0 && packetSize > _maxSendPacketSize) - { - packetSize = _maxSendPacketSize; - } - - _write.buf.len = packetSize; - _write.buf.buf = buf; - - int err = WSASend(_fd, &_write.buf, 1, &_write.count, 0, &_write, NULL); - - if(err == SOCKET_ERROR) - { - if(!IceInternal::wouldBlock()) - { - if(IceInternal::connectionLost()) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - else - { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - } - } - - return packetSize; -} - -int -IceSSL::TransceiverI::readAsync(char* buf, int packetSize) -{ - if(_maxReceivePacketSize > 0 && packetSize > _maxReceivePacketSize) - { - packetSize = _maxReceivePacketSize; - } - - _read.buf.len = packetSize; - _read.buf.buf = buf; - - int err = WSARecv(_fd, &_read.buf, 1, &_read.count, &_read.flags, &_read, NULL); - - if(err == SOCKET_ERROR) - { - if(!IceInternal::wouldBlock()) - { - if(IceInternal::connectionLost()) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - else - { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - } - } - - return packetSize; -} - -#endif - -void -IceSSL::TransceiverI::traceConnection() -{ - Trace out(_instance->logger(), _instance->traceCategory()); - out << "SSL summary for " << (_incoming ? "incoming" : "outgoing") << " connection\n"; - - // - // The const_cast is necesary because Solaris still uses OpenSSL 0.9.7. - // - //const SSL_CIPHER *cipher = SSL_get_current_cipher(ssl); - SSL_CIPHER *cipher = const_cast<SSL_CIPHER*>(SSL_get_current_cipher(_ssl)); - if(!cipher) - { - out << "unknown cipher\n"; - } - else - { - out << "cipher = " << SSL_CIPHER_get_name(cipher) << "\n"; - out << "bits = " << SSL_CIPHER_get_bits(cipher, 0) << "\n"; - out << "protocol = " << SSL_get_version(_ssl) << "\n"; - } - out << IceInternal::fdToString(SSL_get_fd(_ssl)); -} - bool IceSSL::TransceiverI::writeRaw(IceInternal::Buffer& buf) { diff --git a/cpp/src/IceSSL/TransceiverI.h b/cpp/src/IceSSL/OpenSSLTransceiverI.h index b74da103485..8833dcb58b8 100644 --- a/cpp/src/IceSSL/TransceiverI.h +++ b/cpp/src/IceSSL/OpenSSLTransceiverI.h @@ -80,7 +80,6 @@ private: int readAsync(char*, int); #endif - void traceConnection(); bool writeRaw(IceInternal::Buffer&); bool readRaw(IceInternal::Buffer&); diff --git a/cpp/src/IceSSL/PluginI.cpp b/cpp/src/IceSSL/PluginI.cpp index 5a39e3ee93f..145089d026e 100644 --- a/cpp/src/IceSSL/PluginI.cpp +++ b/cpp/src/IceSSL/PluginI.cpp @@ -9,7 +9,6 @@ #include <IceSSL/PluginI.h> #include <IceSSL/Instance.h> -#include <IceSSL/TransceiverI.h> #include <IceSSL/SSLEngine.h> #include <IceSSL/EndpointI.h> #include <IceSSL/EndpointInfo.h> @@ -41,10 +40,12 @@ createIceSSL(const CommunicatorPtr& communicator, const string& /*name*/, const // IceSSL::PluginI::PluginI(const Ice::CommunicatorPtr& communicator) { -#ifdef ICE_USE_OPENSSL - _engine = new OpenSSLEngine(communicator); -#else +#if defined(ICE_USE_SECURE_TRANSPORT) _engine = new SecureTransportEngine(communicator); +#elif defined(ICE_USE_SCHANNEL) + _engine = new SChannelEngine(communicator); +#else + _engine = new OpenSSLEngine(communicator); #endif IceInternal::ProtocolPluginFacadePtr facade = IceInternal::getProtocolPluginFacade(communicator); diff --git a/cpp/src/IceSSL/PluginI.h b/cpp/src/IceSSL/PluginI.h index bd6447fe988..6b6979ea19f 100644 --- a/cpp/src/IceSSL/PluginI.h +++ b/cpp/src/IceSSL/PluginI.h @@ -42,10 +42,12 @@ public: private: -#ifdef ICE_USE_OPENSSL - OpenSSLEnginePtr _engine; -#else +#if defined(ICE_USE_SECURE_TRANSPORT) SecureTransportEnginePtr _engine; +#elif defined(ICE_USE_SCHANNEL) + SChannelEnginePtr _engine; +#else + OpenSSLEnginePtr _engine; #endif }; diff --git a/cpp/src/IceSSL/SChannelEngine.cpp b/cpp/src/IceSSL/SChannelEngine.cpp new file mode 100644 index 00000000000..89254a433bb --- /dev/null +++ b/cpp/src/IceSSL/SChannelEngine.cpp @@ -0,0 +1,664 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceSSL/SSLEngine.h> +#include <IceSSL/Plugin.h> + +#include <Ice/LocalException.h> +#include <Ice/Logger.h> +#include <Ice/Communicator.h> + +#include <IceUtil/StringUtil.h> +#include <IceUtil/FileUtil.h> +#include <IceUtil/UUID.h> + +using namespace std; +using namespace Ice; +using namespace IceUtil; +using namespace IceSSL; + +#ifdef ICE_USE_SCHANNEL + +IceUtil::Shared* IceSSL::upCast(IceSSL::SChannelEngine* p) { return p; } + +namespace +{ + +void +addCertificateToStore(const string& file, HCERTSTORE store, PCCERT_CONTEXT* cert = 0) +{ + vector<char> buffer; + readFile(file, buffer); + vector<BYTE> outBuffer; + outBuffer.resize(buffer.size()); + DWORD outLength = static_cast<DWORD>(outBuffer.size()); + + if(!CryptStringToBinary(&buffer[0], static_cast<DWORD>(buffer.size()), CRYPT_STRING_BASE64HEADER, + &outBuffer[0], &outLength, 0, 0)) + { + // + // Base64 data should always be bigger than binary + // + assert(GetLastError() != ERROR_MORE_DATA); + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error decoding certificate:\n" + IceUtilInternal::lastErrorToString()); + } + + if(!CertAddEncodedCertificateToStore(store, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, &outBuffer[0], + outLength, CERT_STORE_ADD_NEW, cert)) + { + if(GetLastError() != static_cast<DWORD>(CRYPT_E_EXISTS)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error decoding certificate:\n" + IceUtilInternal::lastErrorToString()); + } + } +} + +DWORD +parseProtocols(const StringSeq& protocols) +{ + DWORD v = 0; + + for(Ice::StringSeq::const_iterator p = protocols.begin(); p != protocols.end(); ++p) + { + string prot = *p; + + if(prot == "ssl3" || prot == "sslv3") + { + v |= SP_PROT_SSL3_SERVER; + v |= SP_PROT_SSL3_CLIENT; + } + else if(prot == "tls" || prot == "tls1" || prot == "tlsv1" || prot == "tls1_0" || prot == "tlsv1_0") + { + v |= SP_PROT_TLS1_SERVER; + v |= SP_PROT_TLS1_CLIENT; + } + else if(prot == "tls1_1" || prot == "tlsv1_1") + { + v |= SP_PROT_TLS1_1_SERVER; + v |= SP_PROT_TLS1_1_CLIENT; + } + else if(prot == "tls1_2" || prot == "tlsv1_2") + { + v |= SP_PROT_TLS1_2_SERVER; + v |= SP_PROT_TLS1_2_CLIENT; + } + else + { + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: unrecognized protocol `" + prot + "'"); + } + } + + return v; +} + +const ALG_ID supportedChipers[] = {CALG_3DES, CALG_AES_128, CALG_AES_256, CALG_DES, CALG_RC2, CALG_RC4}; +const int supportedChipersSize = sizeof(supportedChipers)/sizeof(ALG_ID); + +ALG_ID +algorithmId(const string& name) +{ + if(name == "3DES") + { + return CALG_3DES; + } + if(name == "AES_128") + { + return CALG_AES_128; + } + if(name == "AES_256") + { + return CALG_AES_256; + } + if(name == "DES") + { + return CALG_DES; + } + if(name == "RC2") + { + return CALG_RC2; + } + if(name == "RC4") + { + return CALG_RC4; + } + return 0; +} + +} + +SChannelEngine::SChannelEngine(const CommunicatorPtr& communicator) : + SSLEngine(communicator), + _initialized(false), + _rootStore(0), + _chainEngine(0) +{ +} + +void +SChannelEngine::initialize() +{ + IceUtil::Mutex::Lock lock(_mutex); + if(_initialized) + { + return; + } + + SSLEngine::initialize(); + + const string prefix = "IceSSL."; + const PropertiesPtr properties = communicator()->getProperties(); + + // + // Protocols selects which protocols to enable. + // + const_cast<DWORD&>(_protocols) = parseProtocols(properties->getPropertyAsList(prefix + "Protocols")); + + // + // Check for a default directory. We look in this directory for + // files mentioned in the configuration. + // + string defaultDir = properties->getProperty(prefix + "DefaultDir"); + + int passwordRetryMax = properties->getPropertyAsIntWithDefault(prefix + "PasswordRetryMax", 3); + PasswordPromptPtr passwordPrompt = getPasswordPrompt(); + setPassword(properties->getProperty(prefix + "Password")); + + string ciphers = properties->getProperty(prefix + "Ciphers"); + if(!ciphers.empty()) + { + parseCiphers(ciphers); + } + + if(securityTraceLevel() >= 1) + { + ostringstream os; + os << "enabling SSL ciphersuites:"; + if(_ciphers.empty()) + { + for(int i = 0; i < supportedChipersSize; ++i) + { + os << "\n " << getCipherName(supportedChipers[i]); + } + } + else + { + for(vector<ALG_ID>::const_iterator i = _ciphers.begin(); i != _ciphers.end(); ++i) + { + os << "\n " << getCipherName(*i); + } + } + getLogger()->trace(securityTraceCategory(), os.str()); + } + + string certStore = properties->getPropertyWithDefault(prefix + "CertStore", "CurrentUser"); + if(certStore != "CurrentUser" && certStore != "LocalMachine") + { + getLogger()->warning("Invalid IceSSL.CertStore value `" + certStore + "' adjusted to `CurrentUser'"); + certStore = "CurrentUser"; + } + + // + // Create trusted CA store with contents of CertAuthFile + // + string caFile = properties->getProperty(prefix + "CertAuthFile"); + if(!caFile.empty()) + { + _rootStore = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0, 0, 0); + if(!_rootStore) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error creating in memory certificate store:\n" + IceUtilInternal::lastErrorToString()); + } + + if(!checkPath(caFile, defaultDir, false)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: CA certificate file not found:\n" + caFile); + } + + addCertificateToStore(caFile, _rootStore); + + // + // Create a chain engine that uses our Trusted Root Store + // +#ifdef __MINGW32__ + CertChainEngineConfig config; + memset(&config, 0, sizeof(CertChainEngineConfig)); + config.cbSize = sizeof(CertChainEngineConfig); +#else + CERT_CHAIN_ENGINE_CONFIG config; + memset(&config, 0, sizeof(CERT_CHAIN_ENGINE_CONFIG)); + config.cbSize = sizeof(CERT_CHAIN_ENGINE_CONFIG); +#endif + config.hExclusiveRoot = _rootStore; + + // + // Build the chain using the LocalMachine registry location as opposed + // to the CurrentUser location. + // + if(certStore == "LocalMachine") + { + config.dwFlags = CERT_CHAIN_USE_LOCAL_MACHINE_STORE; + } + +#ifdef __MINGW32__ + if(!CertCreateCertificateChainEngine(reinterpret_cast<CERT_CHAIN_ENGINE_CONFIG*>(&config), &_chainEngine)) +#else + if(!CertCreateCertificateChainEngine(&config, &_chainEngine)) +#endif + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error creating certificate chain engine:\n" + IceUtilInternal::lastErrorToString()); + } + } + else + { + _chainEngine = (certStore == "LocalMachine") ? HCCE_LOCAL_MACHINE : HCCE_CURRENT_USER; + } + + // + // Import the application certificate and private keys. + // + string keySet = properties->getPropertyWithDefault(prefix + "KeySet", "DefaultKeySet"); + if(keySet != "DefaultKeySet" && keySet != "UserKeySet" && keySet != "MachineKeySet") + { + getLogger()->warning("Invalid IceSSL.KeySet value `" + keySet + "' adjusted to `DefaultKeySet'"); + keySet = "DefaultKeySet"; + } + + DWORD importFlags = (keySet == "MachineKeySet") ? CRYPT_MACHINE_KEYSET : CRYPT_USER_KEYSET; + + string certFile = properties->getProperty(prefix + "CertFile"); + string keyFile = properties->getPropertyWithDefault(prefix + "KeyFile", certFile); + + if(!certFile.empty()) + { + vector<string> certFiles; + if(!IceUtilInternal::splitString(certFile, IceUtilInternal::pathsep, certFiles) || certFiles.size() > 2) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: invalid value for " + prefix + "CertFile:\n" + certFile); + } + + vector<string> keyFiles; + if(!IceUtilInternal::splitString(keyFile, IceUtilInternal::pathsep, keyFiles) || keyFiles.size() > 2) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: invalid value for " + prefix + "KeyFile:\n" + keyFile); + } + + if(certFiles.size() != keyFiles.size()) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: " + prefix + "KeyFile does not agree with " + prefix + "CertFile"); + } + + for(size_t i = 0; i < certFiles.size(); ++i) + { + string certFile = certFiles[i]; + if(!checkPath(certFile, defaultDir, false)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: certificate file not found:\n" + certFile); + } + + vector<char> buffer; + readFile(certFile, buffer); + + CRYPT_DATA_BLOB pfxBlob; + pfxBlob.cbData = static_cast<DWORD>(buffer.size()); + pfxBlob.pbData = reinterpret_cast<BYTE*>(&buffer[0]); + + HCERTSTORE store = 0; + PCCERT_CONTEXT cert = 0; + int err = 0; + int count = 0; + do + { + string s = password(false); + store = PFXImportCertStore(&pfxBlob, stringToWstring(s).c_str(), importFlags); + err = store ? 0 : GetLastError(); + } + while(err == ERROR_INVALID_PASSWORD && passwordPrompt && ++count < passwordRetryMax); + + if(store) + { + _stores.push_back(store); + cert = CertFindCertificateInStore(store, X509_ASN_ENCODING, 0, CERT_FIND_ANY, 0, cert); + if(!cert) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: certificate error:\n" + IceUtilInternal::lastErrorToString()); + } + _certs.push_back(cert); + continue; + } + + assert(err); + + if(err != CRYPT_E_BAD_ENCODE) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error decoding certificate:\n" + IceUtilInternal::lastErrorToString()); + } + + // + // Try to load certificate & key as PEM files. + // + err = 0; + keyFile = keyFiles[i]; + if(!checkPath(keyFile, defaultDir, false)) + { + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: key file not found:\n" + keyFile); + } + + readFile(keyFile, buffer); + + vector<BYTE> outBuffer; + outBuffer.resize(buffer.size()); + DWORD outLength = static_cast<DWORD>(buffer.size()); + + // + // Convert the PEM encoded buffer to DER binary format. + // + if(!CryptStringToBinary(&buffer[0], static_cast<DWORD>(buffer.size()), CRYPT_STRING_BASE64HEADER, + &outBuffer[0], &outLength, 0, 0)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error decoding key:\n" + IceUtilInternal::lastErrorToString()); + } + + PCRYPT_PRIVATE_KEY_INFO keyInfo = 0; + BYTE* key = 0; + HCRYPTKEY hKey = 0; + + try + { + DWORD decodedLength = 0; + if(!CryptDecodeObjectEx(X509_ASN_ENCODING, PKCS_PRIVATE_KEY_INFO, &outBuffer[0], outLength, + CRYPT_DECODE_ALLOC_FLAG, 0, &keyInfo, &decodedLength)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error decoding key:\n" + IceUtilInternal::lastErrorToString()); + } + + // + // Check that we are using a RSA Key + // + if(strcmp(keyInfo->Algorithm.pszObjId, szOID_RSA_RSA)) + { + throw PluginInitializationException(__FILE__, __LINE__, + string("IceSSL: error unknow key algorithm: `") + keyInfo->Algorithm.pszObjId + "'"); + } + + // + // Create a new RSA key set to store our key + // + const wstring keySetName = stringToWstring(IceUtil::generateUUID()); + HCRYPTPROV cryptProv = 0; + + DWORD contextFlags = (keySet == "MachineKeySet") ? CRYPT_MACHINE_KEYSET | CRYPT_NEWKEYSET : + CRYPT_NEWKEYSET; + + if(!CryptAcquireContextW(&cryptProv, keySetName.c_str(), MS_DEF_PROV_W, PROV_RSA_FULL, contextFlags)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error acquiring cryptographic context:\n" + IceUtilInternal::lastErrorToString()); + } + + // + // Decode the private key BLOB + // + if(!CryptDecodeObjectEx(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, PKCS_RSA_PRIVATE_KEY, + keyInfo->PrivateKey.pbData, keyInfo->PrivateKey.cbData, + CRYPT_DECODE_ALLOC_FLAG, 0, &key, &outLength)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error decoding key:\n" + IceUtilInternal::lastErrorToString()); + } + LocalFree(keyInfo); + keyInfo = 0; + + // + // Import the private key + // + if(!CryptImportKey(cryptProv, key, outLength, 0, 0, &hKey)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error importing key:\n" + IceUtilInternal::lastErrorToString()); + } + LocalFree(key); + key = 0; + + CryptDestroyKey(hKey); + hKey = 0; + + // + // Create a new memory store to place the certificate + // + store = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0, 0, 0); + if(!store) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error creating certificate store:\n" + IceUtilInternal::lastErrorToString()); + } + + addCertificateToStore(certFile, store, &cert); + + // + // Associate key & certificate + // + CRYPT_KEY_PROV_INFO keyProvInfo; + memset(&keyProvInfo, 0, sizeof(keyProvInfo)); + keyProvInfo.pwszContainerName = const_cast<wchar_t*>(keySetName.c_str()); + keyProvInfo.pwszProvName = const_cast<wchar_t*>(MS_DEF_PROV_W); + keyProvInfo.dwProvType = PROV_RSA_FULL; + keyProvInfo.dwKeySpec = AT_KEYEXCHANGE; + + if(!CertSetCertificateContextProperty(cert, CERT_KEY_PROV_INFO_PROP_ID, 0, &keyProvInfo)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error seting certificate property:\n" + IceUtilInternal::lastErrorToString()); + } + + _certs.push_back(cert); + _stores.push_back(store); + } + catch(...) + { + if(keyInfo) + { + LocalFree(keyInfo); + } + + if(key) + { + LocalFree(key); + } + + if(hKey) + { + CryptDestroyKey(hKey); + } + + if(cert) + { + CertFreeCertificateContext(cert); + } + + if(store) + { + CertCloseStore(store, 0); + } + throw; + } + } + } + _initialized = true; +} + +string +SChannelEngine::getCipherName(ALG_ID cipher) const +{ + switch(cipher) + { + case CALG_RSA_KEYX: + return "RSA_KEYX"; + case CALG_RSA_SIGN: + return "RSA_SIGN"; + case CALG_DSS_SIGN: + return "DSS_SIGN"; + case CALG_KEA_KEYX: + return "KEA_KEYX"; + case CALG_DH_EPHEM: + return "DH_EPHEM"; + case CALG_ECDH: + return "ECDH"; + case CALG_ECDSA: + return "ECDSA"; + case CALG_3DES: + return "3DES"; + case CALG_AES_128: + return "AES_128"; + case CALG_AES_256: + return "AES_256"; + case CALG_DES: + return "DES"; + case CALG_RC2: + return "RC2"; + case CALG_RC4: + return "RC4"; + default: + return "Unknown"; + } +} + +bool +SChannelEngine::initialized() const +{ + IceUtil::Mutex::Lock lock(_mutex); + return _initialized; +} + +CredHandle +SChannelEngine::newCredentialsHandle(bool incoming) +{ + SCHANNEL_CRED cred; + memset(&cred, 0, sizeof(cred)); + cred.dwVersion = SCHANNEL_CRED_VERSION; + + if(!_certs.empty()) + { + cred.cCreds = static_cast<DWORD>(_certs.size()); + cred.paCred = &_certs[0]; + } + + cred.grbitEnabledProtocols = _protocols; + + if(incoming) + { + cred.dwFlags = SCH_CRED_NO_SYSTEM_MAPPER | SCH_SEND_ROOT_CERT; + } + else + { + cred.dwFlags = SCH_CRED_MANUAL_CRED_VALIDATION | SCH_CRED_NO_SERVERNAME_CHECK | SCH_CRED_NO_DEFAULT_CREDS; + } + + if(!_ciphers.empty()) + { + cred.cSupportedAlgs = static_cast<DWORD>(_ciphers.size()); + cred.palgSupportedAlgs = &_ciphers[0]; + } + + CredHandle credHandle; + memset(&credHandle, 0, sizeof(credHandle)); + + SECURITY_STATUS err = + AcquireCredentialsHandle(0, const_cast<char*>(UNISP_NAME), (incoming ? SECPKG_CRED_INBOUND : SECPKG_CRED_OUTBOUND), 0, &cred, 0, + 0, &credHandle, 0); + + if(err != SEC_E_OK) + { + throw SecurityException(__FILE__, __LINE__, + "IceSSL: failed to acquire credentials handle:\n" + IceUtilInternal::lastErrorToString()); + } + return credHandle; +} + +HCERTCHAINENGINE +SChannelEngine::chainEngine() const +{ + return _chainEngine; +} + +void +SChannelEngine::parseCiphers(const std::string& ciphers) +{ + vector<string> tokens; + IceUtilInternal::splitString(ciphers, " \t", tokens); + for(vector<string>::const_iterator i = tokens.begin(); i != tokens.end(); ++i) + { + ALG_ID id = algorithmId(*i); + if(id) + { + _ciphers.push_back(id); + } + } +} + +void +SChannelEngine::destroy() +{ + if(_chainEngine && _chainEngine != HCCE_CURRENT_USER && _chainEngine != HCCE_LOCAL_MACHINE) + { + CertFreeCertificateChainEngine(_chainEngine); + } + + if(_rootStore) + { + CertCloseStore(_rootStore, 0); + } + + for(vector<PCCERT_CONTEXT>::const_iterator i = _certs.begin(); i != _certs.end(); ++i) + { + PCCERT_CONTEXT cert = *i; + + UniquePtr<CRYPT_KEY_PROV_INFO> keyProvInfo; + DWORD size = 0; + + // + // Retrieve the certificate CERT_KEY_PROV_INFO_PROP_ID property, we use the CRYPT_KEY_PROV_INFO + // data to then remove the key set associated with the certificate. + // + if(CertGetCertificateContextProperty(cert, CERT_KEY_PROV_INFO_PROP_ID, 0, &size)) + { + vector<char> buf(size); + if(CertGetCertificateContextProperty(cert, CERT_KEY_PROV_INFO_PROP_ID, &buf[0], &size)) + { + CRYPT_KEY_PROV_INFO* keyProvInfo = reinterpret_cast<CRYPT_KEY_PROV_INFO*>(&buf[0]); + HCRYPTPROV cryptProv = 0; + if(CryptAcquireContextW(&cryptProv, keyProvInfo->pwszContainerName, keyProvInfo->pwszProvName, + keyProvInfo->dwProvType, 0)) + { + CryptAcquireContextW(&cryptProv, keyProvInfo->pwszContainerName, keyProvInfo->pwszProvName, + keyProvInfo->dwProvType, CRYPT_DELETEKEYSET); + } + } + CertFreeCertificateContext(cert); + } + } + + for(vector<HCERTSTORE>::const_iterator i = _stores.begin(); i != _stores.end(); ++i) + { + CertCloseStore(*i, 0); + } +} +#endif diff --git a/cpp/src/IceSSL/SChannelTransceiverI.cpp b/cpp/src/IceSSL/SChannelTransceiverI.cpp new file mode 100644 index 00000000000..ae36570991a --- /dev/null +++ b/cpp/src/IceSSL/SChannelTransceiverI.cpp @@ -0,0 +1,1463 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceSSL/SChannelTransceiverI.h> + +#include <IceUtil/StringUtil.h> + +#include <IceSSL/ConnectionInfo.h> +#include <IceSSL/Instance.h> +#include <IceSSL/SSLEngine.h> +#include <IceSSL/Util.h> +#include <Ice/Communicator.h> +#include <Ice/LoggerUtil.h> +#include <Ice/Buffer.h> +#include <Ice/LocalException.h> + +#ifdef ICE_USE_SCHANNEL + +using namespace std; +using namespace Ice; +using namespace IceSSL; + +namespace +{ + +string +protocolName(DWORD protocol) +{ + switch(protocol) + { + case SP_PROT_SSL2_CLIENT: + case SP_PROT_SSL2_SERVER: + return "SSL 2.0"; + case SP_PROT_SSL3_CLIENT: + case SP_PROT_SSL3_SERVER: + return "SSL 3.0"; + case SP_PROT_TLS1_CLIENT: + case SP_PROT_TLS1_SERVER: + return "TLS 1.0"; + case SP_PROT_TLS1_1_CLIENT: + case SP_PROT_TLS1_1_SERVER: + return "TLS 1.1"; + case SP_PROT_TLS1_2_CLIENT: + case SP_PROT_TLS1_2_SERVER: + return "TLS 1.2"; + default: + return "Unknown"; + } +} + +string +trustStatusToString(DWORD status) +{ + if(status & CERT_TRUST_NO_ERROR) + { + return "CERT_TRUST_NO_ERROR"; + } + + if(status & CERT_TRUST_IS_NOT_TIME_VALID) + { + return "CERT_TRUST_IS_NOT_TIME_VALID"; + } + + if(status & CERT_TRUST_IS_REVOKED) + { + return "CERT_TRUST_IS_REVOKED"; + } + + if(status & CERT_TRUST_IS_NOT_SIGNATURE_VALID) + { + return "CERT_TRUST_IS_NOT_SIGNATURE_VALID"; + } + + if(status & CERT_TRUST_IS_NOT_VALID_FOR_USAGE) + { + return "CERT_TRUST_IS_NOT_VALID_FOR_USAGE"; + } + + if(status & CERT_TRUST_IS_UNTRUSTED_ROOT) + { + return "CERT_TRUST_IS_UNTRUSTED_ROOT"; + } + + if(status & CERT_TRUST_REVOCATION_STATUS_UNKNOWN) + { + return "CERT_TRUST_REVOCATION_STATUS_UNKNOWN"; + } + + if(status & CERT_TRUST_IS_CYCLIC) + { + return "CERT_TRUST_IS_CYCLIC"; + } + + if(status & CERT_TRUST_INVALID_EXTENSION) + { + return "CERT_TRUST_INVALID_EXTENSION"; + } + + if(status & CERT_TRUST_INVALID_POLICY_CONSTRAINTS) + { + return "CERT_TRUST_INVALID_POLICY_CONSTRAINTS"; + } + + if(status & CERT_TRUST_INVALID_BASIC_CONSTRAINTS) + { + return "CERT_TRUST_INVALID_BASIC_CONSTRAINTS"; + } + + if(status & CERT_TRUST_INVALID_NAME_CONSTRAINTS) + { + return "CERT_TRUST_INVALID_NAME_CONSTRAINTS"; + } + + if(status & CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT) + { + return "CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT"; + } + + if(status & CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT) + { + return "CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT"; + } + + if(status & CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT) + { + return "CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT"; + } + + if(status & CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT) + { + return "CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT"; + } + + if(status & CERT_TRUST_IS_OFFLINE_REVOCATION) + { + return "CERT_TRUST_IS_OFFLINE_REVOCATION"; + } + + if(status & CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY) + { + return "CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY"; + } + + if(status & CERT_TRUST_IS_EXPLICIT_DISTRUST) + { + return "CERT_TRUST_IS_EXPLICIT_DISTRUST"; + } + + if(status & CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT) + { + return "CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT"; + } + + // + // New in Windows 8 + // + //if(status & CERT_TRUST_HAS_WEAK_SIGNATURE) + //{ + // return "CERT_TRUST_HAS_WEAK_SIGNATURE"; + //} + + if(status & CERT_TRUST_IS_PARTIAL_CHAIN) + { + return "CERT_TRUST_IS_PARTIAL_CHAIN"; + } + + if(status & CERT_TRUST_CTL_IS_NOT_TIME_VALID) + { + return "CERT_TRUST_CTL_IS_NOT_TIME_VALID"; + } + + if(status & CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID) + { + return "CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID"; + } + + if(status & CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE) + { + return "CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE"; + } + + ostringstream os; + os << "UNKNOWN TRUST FAILURE: " << status; + return os.str(); +} + +SecBuffer* +getSecBufferWithType(const SecBufferDesc& desc, ULONG bufferType) +{ + for(ULONG i = 0; i < desc.cBuffers; ++i) + { + if(desc.pBuffers[i].BufferType == bufferType) + { + return &desc.pBuffers[i]; + } + } + return 0; +} + +} + +IceInternal::NativeInfoPtr +IceSSL::TransceiverI::getNativeInfo() +{ + return this; +} + +#ifdef ICE_USE_IOCP +IceInternal::AsyncInfo* +IceSSL::TransceiverI::getAsyncInfo(IceInternal::SocketOperation status) +{ + switch(status) + { + case IceInternal::SocketOperationRead: + return &_read; + case IceInternal::SocketOperationWrite: + return &_write; + default: + assert(false); + return 0; + } +} +#endif + +IceInternal::SocketOperation +IceSSL::TransceiverI::sslHandshake() +{ + DWORD flags = ASC_REQ_SEQUENCE_DETECT | ASC_REQ_REPLAY_DETECT | ASC_REQ_CONFIDENTIALITY | ASC_REQ_ALLOCATE_MEMORY | + ASC_REQ_STREAM; + if(_incoming) + { + flags |= ASC_REQ_EXTENDED_ERROR; + if(_engine->getVerifyPeer() > 0) + { + flags |= ASC_REQ_MUTUAL_AUTH; + } + } + else + { + flags |= ISC_REQ_USE_SUPPLIED_CREDS | ISC_REQ_MANUAL_CRED_VALIDATION | ISC_RET_EXTENDED_ERROR; + } + + SECURITY_STATUS err = SEC_E_OK; + DWORD ctxFlags = 0; + + while(true) + { + if(_state == StateConnected) + { + assert(!_incoming); + SecBuffer outBuffer = { 0, SECBUFFER_TOKEN, 0 }; + SecBufferDesc outBufferDesc = { SECBUFFER_VERSION, 1, &outBuffer }; + + err = InitializeSecurityContext(&_credentials, 0, const_cast<char *>(_host.c_str()), flags, 0, 0, 0, 0, + &_ssl, &outBufferDesc, &ctxFlags, 0); + _sslInitialized = true; + if(err != SEC_E_OK && err != SEC_I_CONTINUE_NEEDED) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + + IceUtilInternal::lastErrorToString()); + } + + // + // Copy the data to the write buffer + // + _writeBuffer.b.resize(outBuffer.cbBuffer); + _writeBuffer.i = _writeBuffer.b.begin(); + memcpy(_writeBuffer.i, outBuffer.pvBuffer, outBuffer.cbBuffer); + FreeContextBuffer(outBuffer.pvBuffer); + + _state = StateHandshakeWriteContinue; + } + + if(_state == StateHandshakeReadContinue) + { + // If read buffer is empty, try to read some data. + if(_readBuffer.i == _readBuffer.b.begin() && !readRaw(_readBuffer)) + { + return IceInternal::SocketOperationRead; + } + + SecBuffer inBuffers[2] = { + { static_cast<DWORD>(_readBuffer.i - _readBuffer.b.begin()), SECBUFFER_TOKEN, _readBuffer.b.begin() }, + { 0, SECBUFFER_EMPTY, 0 } + }; + SecBufferDesc inBufferDesc = { SECBUFFER_VERSION, 2, inBuffers }; + + SecBuffer outBuffers[2] = { + { 0, SECBUFFER_TOKEN, 0 }, + { 0, SECBUFFER_ALERT, 0 } + }; + SecBufferDesc outBufferDesc = { SECBUFFER_VERSION, 2, outBuffers }; + + if(_incoming) + { + err = AcceptSecurityContext(&_credentials, (_sslInitialized ? &_ssl : 0), &inBufferDesc, flags, 0, + &_ssl, &outBufferDesc, &ctxFlags, 0); + _sslInitialized = true; + } + else + { + err = InitializeSecurityContext(&_credentials, &_ssl, const_cast<char*>(_host.c_str()), flags, 0, 0, + &inBufferDesc, 0, 0, &outBufferDesc, &ctxFlags, 0); + } + + // + // If the message is incomplete we need to read more data. + // + if(err == SEC_E_INCOMPLETE_MESSAGE) + { + SecBuffer* missing = getSecBufferWithType(inBufferDesc, SECBUFFER_MISSING); + size_t pos = _readBuffer.i - _readBuffer.b.begin(); + _readBuffer.b.resize(missing ? (pos + missing->cbBuffer) : (pos * 2)); + _readBuffer.i = _readBuffer.b.begin() + pos; + return IceInternal::SocketOperationRead; + } + else if(err != SEC_I_CONTINUE_NEEDED && err != SEC_E_OK) + { + throw SecurityException(__FILE__, __LINE__, "SSL handshake failure:\n" + + IceUtilInternal::lastErrorToString()); + } + + // + // Copy out security tokens to the write buffer if any. + // + SecBuffer* token = getSecBufferWithType(outBufferDesc, SECBUFFER_TOKEN); + assert(token); + if(token->cbBuffer) + { + _writeBuffer.b.resize(static_cast<size_t>(token->cbBuffer)); + _writeBuffer.i = _writeBuffer.b.begin(); + memcpy(_writeBuffer.i, token->pvBuffer, token->cbBuffer); + FreeContextBuffer(token->pvBuffer); + } + + // + // Check for remaining data in the input buffer. + // + SecBuffer* extra = getSecBufferWithType(inBufferDesc, SECBUFFER_EXTRA); + if(extra) + { + // Shift the extra data to the start of the input buffer + memmove(_readBuffer.b.begin(), _readBuffer.i - extra->cbBuffer, extra->cbBuffer); + _readBuffer.i = _readBuffer.b.begin() + extra->cbBuffer; + } + else + { + _readBuffer.i = _readBuffer.b.begin(); + } + + if(token->cbBuffer) + { + _state = StateHandshakeWriteContinue; // Continue writing if we have a token. + } + else if(err == SEC_E_OK) + { + break; // We're done. + } + + // Otherwise continue either reading credentials + } + + if(_state == StateHandshakeWriteContinue) + { + // + // Write any pending data. + // + if(!writeRaw(_writeBuffer)) + { + return IceInternal::SocketOperationWrite; + } + if(err == SEC_E_OK) + { + break; // Token is written and we weren't told to continue, so we're done! + } + assert(err == SEC_I_CONTINUE_NEEDED); + _state = StateHandshakeReadContinue; + } + } + + // + // Check if the requested capabilities are met + // + if(flags != ctxFlags) + { + if(_incoming) + { + if(!(ctxFlags & ASC_REQ_SEQUENCE_DETECT)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup sequence detect"); + } + + if(!(ctxFlags & ASC_REQ_REPLAY_DETECT)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup replay detect"); + } + + if(!(ctxFlags & ASC_REQ_CONFIDENTIALITY)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup confidentiality"); + } + + if(!(ctxFlags & ASC_REQ_EXTENDED_ERROR)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup extended error"); + } + + if(!(ctxFlags & ASC_REQ_ALLOCATE_MEMORY)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup memory allocation"); + } + + if(!(ctxFlags & ASC_REQ_STREAM)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup stream"); + } + } + else + { + if(!(ctxFlags & ISC_REQ_SEQUENCE_DETECT)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup sequence detect"); + } + + if(!(ctxFlags & ISC_REQ_REPLAY_DETECT)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup replay detect"); + } + + if(!(ctxFlags & ISC_REQ_CONFIDENTIALITY)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup confidentiality"); + } + + if(!(ctxFlags & ISC_REQ_EXTENDED_ERROR)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup extended error"); + } + + if(!(ctxFlags & ISC_REQ_ALLOCATE_MEMORY)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup memory allocation"); + } + + if(!(ctxFlags & ISC_REQ_STREAM)) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: SChannel failed to setup stream"); + } + } + } + + err = QueryContextAttributes(&_ssl, SECPKG_ATTR_STREAM_SIZES, &_sizes); + if(err != SEC_E_OK) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: failure to query stream sizes attributes:\n" + + IceUtilInternal::lastErrorToString()); + } + + size_t pos = _readBuffer.i - _readBuffer.b.begin(); + if(pos <= (_sizes.cbHeader + _sizes.cbMaximumMessage + _sizes.cbTrailer)) + { + _readBuffer.b.resize(_sizes.cbHeader + _sizes.cbMaximumMessage + _sizes.cbTrailer); + _readBuffer.i = _readBuffer.b.begin() + pos; + } + + _writeBuffer.b.reset(); + _writeBuffer.i = _writeBuffer.b.begin(); + + return IceInternal::SocketOperationNone; +} + +// +// Try to decrypt a message and return the number of bytes decrypted, if the number of bytes +// decrypted is less than the size requested it means that the application needs to read more +// data before it can decrypt the complete message. +// +size_t +IceSSL::TransceiverI::decryptMessage(IceInternal::Buffer& buffer) +{ + assert(_readBuffer.i != _readBuffer.b.begin() || !_readUnprocessed.b.empty()); + + // + // First check if there is data in the unprocessed buffer. + // + size_t length = std::min(static_cast<size_t>(buffer.b.end() - buffer.i), _readUnprocessed.b.size()); + if(length > 0) + { + memcpy(buffer.i, _readUnprocessed.b.begin(), length); + memmove(_readUnprocessed.b.begin(), _readUnprocessed.b.begin() + length, _readUnprocessed.b.size() - length); + _readUnprocessed.b.resize(_readUnprocessed.b.size() - length); + } + + while(true) + { + // + // If we have filled the buffer or if nothing left to read from + // the read buffer, we're done. + // + Byte* i = buffer.i + length; + if(i == buffer.b.end() || _readBuffer.i == _readBuffer.b.begin()) + { + break; + } + + // + // Try to decrypt the buffered data. + // + SecBuffer inBuffers[4] = { + { static_cast<DWORD>(_readBuffer.i - _readBuffer.b.begin()), SECBUFFER_DATA, _readBuffer.b.begin() }, + { 0, SECBUFFER_EMPTY, 0 }, + { 0, SECBUFFER_EMPTY, 0 }, + { 0, SECBUFFER_EMPTY, 0 } + }; + SecBufferDesc inBufferDesc = { SECBUFFER_VERSION, 4, inBuffers }; + + SECURITY_STATUS err = DecryptMessage(&_ssl, &inBufferDesc, 0, 0); + if(err == SEC_E_INCOMPLETE_MESSAGE) + { + // + // There isn't enough data to decrypt the message. The input + // buffer is resized to the SSL max message size after the SSL + // handshake completes so an incomplete message can only occur + // if the read buffer is not full. + // + assert(_readBuffer.i != _readBuffer.b.end()); + return length; + } + else if(err == SEC_I_CONTEXT_EXPIRED || err == SEC_I_RENEGOTIATE) + { + // + // The message sender has finished using the connection and + // has initiated a shutdown. + // + throw ConnectionLostException(__FILE__, __LINE__, 0); + } + else if(err == SEC_E_MESSAGE_ALTERED || err == SEC_E_DECRYPT_FAILURE) + { + // + // Forcefully closing a connection can result in SSL_read + // reporting "decryption failed or bad record mac". We trap + // that error and treat it as the loss of a connection. + // + throw ConnectionLostException(__FILE__, __LINE__, 0); + } + else if(err != SEC_E_OK) + { + throw ProtocolException(__FILE__, __LINE__, "IceSSL: protocol error during read:\n" + + IceUtilInternal::lastErrorToString()); + } + + SecBuffer* dataBuffer = getSecBufferWithType(inBufferDesc, SECBUFFER_DATA); + assert(dataBuffer); + DWORD remaining = min(static_cast<DWORD>(buffer.b.end() - i), dataBuffer->cbBuffer); + length += remaining; + if(remaining) + { + memcpy(i, dataBuffer->pvBuffer, remaining); + + // + // Copy remaining decrypted data to unprocessed buffer + // + if(dataBuffer->cbBuffer > remaining) + { + _readUnprocessed.b.resize(dataBuffer->cbBuffer - remaining); + memcpy(_readUnprocessed.b.begin(), reinterpret_cast<Byte*>(dataBuffer->pvBuffer) + remaining, + dataBuffer->cbBuffer - remaining); + } + } + + // + // Move any remaining encrypted data to the begining of the input buffer + // + SecBuffer* extraBuffer = getSecBufferWithType(inBufferDesc, SECBUFFER_EXTRA); + if(extraBuffer && extraBuffer->cbBuffer > 0) + { + memmove(_readBuffer.b.begin(), _readBuffer.i - extraBuffer->cbBuffer, extraBuffer->cbBuffer); + _readBuffer.i = _readBuffer.b.begin() + extraBuffer->cbBuffer; + } + else + { + _readBuffer.i = _readBuffer.b.begin(); + } + } + return length; +} + +// +// Encrypt a message and return the number of bytes that has been encrypted, if the +// number of bytes is less than the message size, the function must be called again. +// +size_t +IceSSL::TransceiverI::encryptMessage(IceInternal::Buffer& buffer) +{ + // + // Limit the message size to cbMaximumMessage which is the maximun size data that can be + // embeded in a SSL record. + // + DWORD length = std::min(static_cast<DWORD>(buffer.b.end() - buffer.i), _sizes.cbMaximumMessage); + + // + // Resize the buffer to hold the encrypted data + // + _writeBuffer.b.resize(_sizes.cbHeader + length + _sizes.cbTrailer); + _writeBuffer.i = _writeBuffer.b.begin(); + + SecBuffer buffers[4] = { + { _sizes.cbHeader, SECBUFFER_STREAM_HEADER, _writeBuffer.i }, + { length, SECBUFFER_DATA, _writeBuffer.i + _sizes.cbHeader }, + { _sizes.cbTrailer, SECBUFFER_STREAM_TRAILER, _writeBuffer.i + _sizes.cbHeader + length }, + { 0, SECBUFFER_EMPTY, 0 } + }; + SecBufferDesc buffersDesc = { SECBUFFER_VERSION, 4, buffers }; + + // Data is encrypted in place, copy the data to be encrypted to the data buffer. + memcpy(buffers[1].pvBuffer, buffer.i, length); + + SECURITY_STATUS err = EncryptMessage(&_ssl, 0, &buffersDesc, 0); + if(err != SEC_E_OK) + { + throw ProtocolException(__FILE__, __LINE__, "IceSSL: protocol error encrypting message:\n" + + IceUtilInternal::lastErrorToString()); + } + + // EncryptMessage resizes the buffers, so resize the write buffer as well to reflect this. + _writeBuffer.b.resize(buffers[0].cbBuffer + buffers[1].cbBuffer + buffers[2].cbBuffer); + _writeBuffer.i = _writeBuffer.b.begin(); + + return length; +} + +IceInternal::SocketOperation +IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::Buffer& writeBuffer, bool& hasMoreData) +{ + try + { + if(_state == StateNeedConnect) + { + _state = StateConnectPending; + return IceInternal::SocketOperationConnect; + } + else if(_state <= StateConnectPending) + { + IceInternal::doFinishConnectAsync(_fd, _write); + + _desc = IceInternal::fdToString(_fd, _proxy, _addr, true); + + if(_proxy) + { + // + // Prepare the read & write buffers in advance. + // + _proxy->beginWriteConnectRequest(_addr, writeBuffer); + _proxy->beginReadConnectRequestResponse(readBuffer); + + // + // Return SocketOperationWrite to indicate we need to start a write. + // + _state = StateProxyConnectRequest; // Send proxy connect request + return IceInternal::SocketOperationWrite; + } + + _state = StateConnected; + } + else if(_state == StateProxyConnectRequest) + { + // + // Write completed. + // + _proxy->endWriteConnectRequest(writeBuffer); + _state = StateProxyConnectRequestPending; // Wait for proxy response + return IceInternal::SocketOperationRead; + } + else if(_state == StateProxyConnectRequestPending) + { + // + // Read completed. + // + _proxy->endReadConnectRequestResponse(readBuffer); + _state = StateConnected; + } + + assert(_state >= StateConnected && _state <= StateHandshakeWriteContinue); + + if(!_credentialsInitialized) + { + _readBuffer.b.resize(2048); + _readBuffer.i = _readBuffer.b.begin(); + + _credentials = _engine->newCredentialsHandle(_incoming); + _credentialsInitialized = true; + } + + IceInternal::SocketOperation op = sslHandshake(); + if(op != IceInternal::SocketOperationNone) + { + return op; + } + + if(!_incoming || _engine->getVerifyPeer() > 0) + { + // + // Build the peer certificate chain and verify it. + // + PCCERT_CONTEXT cert = 0; + SECURITY_STATUS err = QueryContextAttributes(&_ssl, SECPKG_ATTR_REMOTE_CERT_CONTEXT, &cert); + if(err && err != SEC_E_NO_CREDENTIALS) + { + throw ProtocolException(__FILE__, __LINE__, "IceSSL: certificate verification failure:" + + IceUtilInternal::lastErrorToString()); + } + + if(!cert && (!_incoming || _engine->getVerifyPeer() == 2)) + { + // Clients require server certificate if VerifyPeer>0 + // and servers require client certificate if + // VerifyPeer=2 + throw ProtocolException(__FILE__, __LINE__, "IceSSL: certificate required:" + + IceUtilInternal::lastErrorToString()); + } + else if(cert) // Verify the remote certificate + { + try + { + CERT_CHAIN_PARA chainP; + memset(&chainP, 0, sizeof(chainP)); + chainP.cbSize = sizeof(chainP); + + PCCERT_CHAIN_CONTEXT certChain; + if(!CertGetCertificateChain(_engine->chainEngine(), cert, 0, 0, &chainP, + CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY, 0, &certChain)) + { + CertFreeCertificateContext(cert); + throw IceUtilInternal::lastErrorToString(); + } + + CERT_SIMPLE_CHAIN* simpleChain = certChain->rgpChain[0]; + + string trustError; + if(simpleChain->TrustStatus.dwErrorStatus != CERT_TRUST_NO_ERROR) + { + trustError = trustStatusToString(certChain->TrustStatus.dwErrorStatus); + } + + CertFreeCertificateChain(certChain); + CertFreeCertificateContext(cert); + if(!trustError.empty()) + { + throw trustError; + } + } + catch(const string& reason) + { + if(_engine->getVerifyPeer() == 0) + { + if(_instance->traceLevel() >= 1) + { + _instance->logger()->trace(_instance->traceCategory(), + "IceSSL: ignoring certificate verification failure\n" + reason); + } + } + else + { + ostringstream os; + os << "IceSSL: certificate verification failure\n" << reason; + string msg = os.str(); + if(_instance->traceLevel() >= 1) + { + _instance->logger()->trace(_instance->traceCategory(), msg); + } + throw ProtocolException(__FILE__, __LINE__, msg); + } + } + } + } + _engine->verifyPeer(_fd, _host, getNativeConnectionInfo()); + _state = StateHandshakeComplete; + } + catch(const Ice::LocalException& ex) + { + if(_instance->traceLevel() >= 2) + { + Trace out(_instance->logger(), _instance->traceCategory()); + out << "failed to establish " << _instance->protocol() << " connection\n"; + if(_incoming) + { + out << IceInternal::fdToString(_fd) << "\n" << ex; + } + else + { + out << IceInternal::fdToString(_fd, _proxy, _addr, false) << "\n" << ex; + } + } + throw; + } + + if(_instance->traceLevel() >= 1) + { + Trace out(_instance->logger(), _instance->traceCategory()); + if(_incoming) + { + out << "accepted " << _instance->protocol() << " connection\n" << _desc; + } + else + { + out << _instance->protocol() << " connection established\n" << _desc; + } + } + + if(_instance->engine()->securityTraceLevel() >= 1) + { + string sslCipherName; + string sslKeyExchangeAlgorithm; + string sslProtocolName; + SecPkgContext_ConnectionInfo info; + if(QueryContextAttributes(&_ssl, SECPKG_ATTR_CONNECTION_INFO, &info) == SEC_E_OK) + { + sslCipherName = _engine->getCipherName(info.aiCipher); + sslKeyExchangeAlgorithm = _engine->getCipherName(info.aiExch); + sslProtocolName = protocolName(info.dwProtocol); + } + + Trace out(_instance->logger(), _instance->traceCategory()); + out << "SSL summary for " << (_incoming ? "incoming" : "outgoing") << " connection\n"; + + if(sslCipherName.empty()) + { + out << "unknown cipher\n"; + } + else + { + out << "cipher = " << sslCipherName + << "\nkey exchange = " << sslKeyExchangeAlgorithm + << "\nprotocol = " << sslProtocolName << "\n"; + } + out << IceInternal::fdToString(_fd); + } + hasMoreData = !_readUnprocessed.b.empty() || _readBuffer.i != _readBuffer.b.begin(); + return IceInternal::SocketOperationNone; +} + +IceInternal::SocketOperation +IceSSL::TransceiverI::closing(bool initiator, const Ice::LocalException&) +{ + // If we are initiating the connection closure, wait for the peer + // to close the TCP/IP connection. Otherwise, close immediately. + return initiator ? IceInternal::SocketOperationRead : IceInternal::SocketOperationNone; +} + +void +IceSSL::TransceiverI::close() +{ + if(_state == StateHandshakeComplete && _instance->traceLevel() >= 1) + { + Trace out(_instance->logger(), _instance->traceCategory()); + out << "closing " << _instance->protocol() << " connection\n" << toString(); + } + if(_sslInitialized) + { + DeleteSecurityContext(&_ssl); + } + + if(_credentialsInitialized) + { + FreeCredentialsHandle(&_credentials); + } + + assert(_fd != INVALID_SOCKET); + try + { + IceInternal::closeSocket(_fd); + _fd = INVALID_SOCKET; + } + catch(const SocketException&) + { + _fd = INVALID_SOCKET; + throw; + } +} + +IceInternal::SocketOperation +IceSSL::TransceiverI::write(IceInternal::Buffer& buf) +{ + if(buf.i == buf.b.end()) + { + return IceInternal::SocketOperationNone; + } + assert(_state == StateHandshakeComplete); + + while(buf.i != buf.b.end()) + { + if(_bufferedW == 0) + { + assert(_writeBuffer.i == _writeBuffer.b.end()); + _bufferedW = encryptMessage(buf); + } + + if(!writeRaw(_writeBuffer)) + { + return IceInternal::SocketOperationWrite; + } + + assert(_writeBuffer.i == _writeBuffer.b.end()); // Finished writing the encrypted data + + if(_instance->traceLevel() >= 3) + { + Trace out(_instance->logger(), _instance->traceCategory()); + out << "sent " << _bufferedW << " of " << (buf.b.end() - buf.i) << " bytes via " << _instance->protocol() + << '\n' << toString(); + } + + buf.i += _bufferedW; + _bufferedW = 0; + } + return IceInternal::SocketOperationNone; +} + +IceInternal::SocketOperation +IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool& hasMoreData) +{ + if(buf.i == buf.b.end()) + { + return IceInternal::SocketOperationNone; + } + assert(_state == StateHandshakeComplete); + + hasMoreData = false; + while(buf.i != buf.b.end()) + { + if(_readUnprocessed.b.empty() && _readBuffer.i == _readBuffer.b.begin() && !readRaw(_readBuffer)) + { + return IceInternal::SocketOperationRead; + } + + size_t decrypted = decryptMessage(buf); + if(decrypted == 0) + { + if(!readRaw(_readBuffer)) + { + return IceInternal::SocketOperationRead; + } + continue; + } + + if(_instance->traceLevel() >= 3) + { + Trace out(_instance->logger(), _instance->traceCategory()); + out << "received " << decrypted << " of " << buf.b.end() - buf.i << " bytes via " << _instance->protocol() + << '\n' << toString(); + } + buf.i += decrypted; + } + hasMoreData = !_readUnprocessed.b.empty() || _readBuffer.i != _readBuffer.b.begin(); + return IceInternal::SocketOperationNone; +} + +#ifdef ICE_USE_IOCP + +bool +IceSSL::TransceiverI::startWrite(IceInternal::Buffer& buffer) +{ + if(_state == StateConnectPending) + { + IceInternal::Address addr = _proxy ? _proxy->getAddress() : _addr; + doConnectAsync(_fd, addr, _write); + return false; + } + + IceInternal::Buffer& buf = _state == StateProxyConnectRequest ? buffer : _writeBuffer; + + if(_state == StateHandshakeComplete && _bufferedW == 0) + { + assert(_writeBuffer.i == _writeBuffer.b.end()); + _bufferedW = encryptMessage(buf); + } + + assert(buf.i != buf.b.end()); + int packetSize = static_cast<int>(buf.b.end() - buf.i); + if(_maxSendPacketSize > 0 && packetSize > _maxSendPacketSize) + { + packetSize = _maxSendPacketSize; + } + assert(packetSize > 0); + _write.buf.len = static_cast<DWORD>(packetSize); + _write.buf.buf = reinterpret_cast<char*>(buf.i); + int err = WSASend(_fd, &_write.buf, 1, &_write.count, 0, &_write, NULL); + if(err == SOCKET_ERROR) + { + if(!IceInternal::wouldBlock()) + { + if(IceInternal::connectionLost()) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + else + { + SocketException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + } + } + return packetSize == static_cast<int>(buf.b.end() - buf.i); +} + +void +IceSSL::TransceiverI::finishWrite(IceInternal::Buffer& buf) +{ + if(_state < StateConnected && _state != StateProxyConnectRequest) + { + return; + } + + if(static_cast<int>(_write.count) == SOCKET_ERROR) + { + WSASetLastError(_write.error); + if(IceInternal::connectionLost()) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + else + { + SocketException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + } + + if(_state == StateProxyConnectRequest) + { + buf.i += _write.count; + } + else + { + _writeBuffer.i += _write.count; + if(_writeBuffer.i == _writeBuffer.b.end()) + { + if(_instance->traceLevel() >= 3) + { + Trace out(_instance->logger(), _instance->traceCategory()); + out << "sent " << _bufferedW << " of " << (buf.b.end() - buf.i) << " bytes via " + << _instance->protocol() << '\n' << toString(); + } + buf.i += _bufferedW; + _bufferedW = 0; + } + } +} + +void +IceSSL::TransceiverI::startRead(IceInternal::Buffer& buffer) +{ + IceInternal::Buffer& buf = _state == StateProxyConnectRequest ? buffer : _readBuffer; + + int packetSize = static_cast<int>(buf.b.end() - buf.i); + if(_maxReceivePacketSize > 0 && packetSize > _maxReceivePacketSize) + { + packetSize = _maxReceivePacketSize; + } + assert(!buf.b.empty() && buf.i != buf.b.end()); + + _read.buf.len = static_cast<DWORD>(packetSize); + _read.buf.buf = reinterpret_cast<char*>(buf.i); + + int err = WSARecv(_fd, &_read.buf, 1, &_read.count, &_read.flags, &_read, NULL); + if(err == SOCKET_ERROR) + { + if(!IceInternal::wouldBlock()) + { + if(IceInternal::connectionLost()) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + else + { + SocketException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + } + } +} + +void +IceSSL::TransceiverI::finishRead(IceInternal::Buffer& buf, bool& hasMoreData) +{ + if(static_cast<int>(_read.count) == SOCKET_ERROR) + { + WSASetLastError(_read.error); + if(IceInternal::connectionLost()) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + else + { + SocketException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + } + else if(_read.count == 0) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = 0; + throw ex; + } + + if(_state == StateProxyConnectRequest) + { + buf.i += _read.count; + } + else + { + _readBuffer.i += _read.count; + if(_state == StateHandshakeComplete) + { + size_t decrypted = decryptMessage(buf); + if(decrypted > 0) + { + if(_instance->traceLevel() >= 3) + { + Trace out(_instance->logger(), _instance->traceCategory()); + out << "received " << decrypted << " of " << buf.b.end() - buf.i << " bytes via " + << _instance->protocol() << '\n' << toString(); + } + buf.i += decrypted; + hasMoreData = !_readUnprocessed.b.empty() || _readBuffer.i != _readBuffer.b.begin(); + } + else + { + hasMoreData = false; + } + } + } +} +#endif + +string +IceSSL::TransceiverI::protocol() const +{ + return _instance->protocol(); +} + +string +IceSSL::TransceiverI::toString() const +{ + return _desc; +} + +Ice::ConnectionInfoPtr +IceSSL::TransceiverI::getInfo() const +{ + return getNativeConnectionInfo(); +} + +void +IceSSL::TransceiverI::checkSendSize(const IceInternal::Buffer& buf, size_t messageSizeMax) +{ + if(buf.b.size() > messageSizeMax) + { + IceInternal::Ex::throwMemoryLimitException(__FILE__, __LINE__, buf.b.size(), messageSizeMax); + } +} + +IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const IceInternal::NetworkProxyPtr& proxy, + const string& host, const IceInternal::Address& addr) : + IceInternal::NativeInfo(fd), + _instance(instance), + _engine(SChannelEnginePtr::dynamicCast(instance->engine())), + _proxy(proxy), + _host(host), + _addr(addr), + _incoming(false), + _state(StateNeedConnect), + _writeBuffer(0), + _bufferedW(0), + _readBuffer(0), + _readUnprocessed(0), + _sslInitialized(false), + _credentialsInitialized(false) +#ifdef ICE_USE_IOCP + , _read(IceInternal::SocketOperationRead), + _write(IceInternal::SocketOperationWrite) +#endif +{ + IceInternal::setBlock(fd, false); + IceInternal::setTcpBufSize(fd, _instance->properties(), _instance->logger()); + + // + // On Windows, limiting the buffer size is important to prevent + // poor throughput performances when transfering large amount of + // data. See Microsoft KB article KB823764. + // + _maxSendPacketSize = IceInternal::getSendBufferSize(_fd) / 2; + if(_maxSendPacketSize < 512) + { + _maxSendPacketSize = 0; + } + + _maxReceivePacketSize = IceInternal::getRecvBufferSize(_fd); + if(_maxReceivePacketSize < 512) + { + _maxReceivePacketSize = 0; + } + +#ifndef ICE_USE_IOCP + IceInternal::Address connectAddr = proxy ? proxy->getAddress() : addr; + if(IceInternal::doConnect(_fd, connectAddr)) + { + _state = StateConnected; + _desc = IceInternal::fdToString(_fd, _proxy, _addr, true); + if(_instance->traceLevel() >= 1) + { + Trace out(_instance->logger(), _instance->traceCategory()); + out << _instance->protocol() << " connection established\n" << _desc; + } + } + else + { + _desc = IceInternal::fdToString(_fd, _proxy, _addr, true); + } +#endif +} + +IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const string& adapterName) : + IceInternal::NativeInfo(fd), + _instance(instance), + _engine(SChannelEnginePtr::dynamicCast(instance->engine())), + _addr(IceInternal::Address()), + _adapterName(adapterName), + _incoming(true), + _state(StateHandshakeReadContinue), + _desc(IceInternal::fdToString(fd)), + _writeBuffer(0), + _bufferedW(0), + _readBuffer(0), + _readUnprocessed(0), + _sslInitialized(false), + _credentialsInitialized(false) +#ifdef ICE_USE_IOCP + , _read(IceInternal::SocketOperationRead), + _write(IceInternal::SocketOperationWrite) +#endif +{ + IceInternal::setBlock(fd, false); + IceInternal::setTcpBufSize(fd, _instance->properties(), _instance->logger()); + + // + // On Windows, limiting the buffer size is important to prevent + // poor throughput performances when transfering large amount of + // data. See Microsoft KB article KB823764. + // + _maxSendPacketSize = IceInternal::getSendBufferSize(_fd) / 2; + if(_maxSendPacketSize < 512) + { + _maxSendPacketSize = 0; + } + + _maxReceivePacketSize = IceInternal::getRecvBufferSize(_fd); + if(_maxReceivePacketSize < 512) + { + _maxReceivePacketSize = 0; + } +} + +IceSSL::TransceiverI::~TransceiverI() +{ + assert(_fd == INVALID_SOCKET); +} + +NativeConnectionInfoPtr +IceSSL::TransceiverI::getNativeConnectionInfo() const +{ + NativeConnectionInfoPtr info = new NativeConnectionInfo(); + IceInternal::fdToAddressAndPort(_fd, info->localAddress, info->localPort, info->remoteAddress, info->remotePort); + + if(_sslInitialized) + { + CtxtHandle* ssl = const_cast<CtxtHandle*>(&_ssl); + PCCERT_CONTEXT cert = 0; + PCCERT_CHAIN_CONTEXT certChain = 0; + SECURITY_STATUS err = QueryContextAttributes(ssl, SECPKG_ATTR_REMOTE_CERT_CONTEXT, &cert); + if(err == SEC_E_OK) + { + CERT_CHAIN_PARA chainP; + memset(&chainP, 0, sizeof(chainP)); + chainP.cbSize = sizeof(chainP); + + if(CertGetCertificateChain(_engine->chainEngine(), cert, 0, 0, &chainP, + CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY, 0, &certChain)) + { + CERT_SIMPLE_CHAIN* simpleChain = certChain->rgpChain[0]; + for(DWORD i = 0; i < simpleChain->cElement; ++i) + { + PCCERT_CONTEXT c = simpleChain->rgpElement[i]->pCertContext; + PCERT_SIGNED_CONTENT_INFO cc; + + DWORD length = 0; + if(!CryptDecodeObjectEx(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, X509_CERT, c->pbCertEncoded, + c->cbCertEncoded, CRYPT_DECODE_ALLOC_FLAG, 0, &cc, &length)) + { + CertFreeCertificateChain(certChain); + CertFreeCertificateContext(cert); + throw SecurityException(__FILE__, __LINE__, + "IceSSL: error decoding peer certificate chain:\n" + + IceUtilInternal::lastErrorToString()); + } + + CertificatePtr certificate = new Certificate(cc); + info->nativeCerts.push_back(certificate); + info->certs.push_back(certificate->encode()); + } + CertFreeCertificateChain(certChain); + } + } + CertFreeCertificateContext(cert); + + SecPkgContext_ConnectionInfo connInfo; + if(QueryContextAttributes(ssl, SECPKG_ATTR_CONNECTION_INFO, &connInfo) == SEC_E_OK) + { + info->cipher = _engine->getCipherName(connInfo.aiCipher); + } + } + + info->adapterName = _adapterName; + info->incoming = _incoming; + return info; +} + +bool +IceSSL::TransceiverI::writeRaw(IceInternal::Buffer& buf) +{ + int packetSize = static_cast<int>(buf.b.end() - buf.i); +#ifdef ICE_USE_IOCP + // + // Limit packet size to avoid performance problems on WIN32 + // + if(_maxSendPacketSize > 0 && packetSize > _maxSendPacketSize) + { + packetSize = _maxSendPacketSize; + } +#endif + + while(buf.i != buf.b.end()) + { + assert(_fd != INVALID_SOCKET); + + int ret = ::send(_fd, reinterpret_cast<const char*>(buf.i), packetSize, 0); + if(ret == 0) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = 0; + throw ex; + } + + if(ret == SOCKET_ERROR) + { + if(IceInternal::interrupted()) + { + continue; + } + + if(IceInternal::noBuffers() && packetSize > 1024) + { + packetSize /= 2; + continue; + } + + if(IceInternal::wouldBlock()) + { + return false; + } + + if(IceInternal::connectionLost()) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + else + { + SocketException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + } + buf.i += ret; + if(packetSize > static_cast<int>(buf.b.end() - buf.i)) + { + packetSize = static_cast<int>(buf.b.end() - buf.i); + } + } + return true; +} + +bool +IceSSL::TransceiverI::readRaw(IceInternal::Buffer& buf) +{ + assert(buf.i != buf.b.end()); + int packetSize = static_cast<int>(buf.b.end() - buf.i); + Byte* i = buf.i; + while(buf.i != buf.b.end()) + { + assert(_fd != INVALID_SOCKET); + ssize_t ret = ::recv(_fd, reinterpret_cast<char*>(buf.i), packetSize, 0); + + if(ret == 0) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = 0; + throw ex; + } + + if(ret == SOCKET_ERROR) + { + if(IceInternal::interrupted()) + { + continue; + } + + if(IceInternal::noBuffers() && packetSize > 1024) + { + packetSize /= 2; + continue; + } + + if(IceInternal::wouldBlock()) + { + return buf.i != i; + } + + if(IceInternal::connectionLost()) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + else + { + SocketException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + } + buf.i += ret; + packetSize = static_cast<int>(buf.b.end() - buf.i); + } + return buf.i != i; +} +#endif diff --git a/cpp/src/IceSSL/SChannelTransceiverI.h b/cpp/src/IceSSL/SChannelTransceiverI.h new file mode 100644 index 00000000000..7bf2fcb2137 --- /dev/null +++ b/cpp/src/IceSSL/SChannelTransceiverI.h @@ -0,0 +1,145 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_SSL_SCHANNELTRANSCEIVER_I_H +#define ICE_SSL_SCHANNELTRANSCEIVER_I_H + +#include <IceSSL/Config.h> +#include <IceSSL/InstanceF.h> +#include <IceSSL/Plugin.h> +#include <IceSSL/SSLEngineF.h> + +#include <Ice/Transceiver.h> +#include <Ice/Network.h> +#include <Ice/Buffer.h> + +#ifdef ICE_USE_SCHANNEL + +#ifdef SECURITY_WIN32 +# undef SECURITY_WIN32 +#endif + +#ifdef SECURITY_KERNEL +# undef SECURITY_KERNEL +#endif + +#define SECURITY_WIN32 1 +#include <security.h> +#include <sspi.h> +#include <schannel.h> +#undef SECURITY_WIN32 + +namespace IceSSL +{ + +class ConnectorI; +class AcceptorI; + +class TransceiverI : public IceInternal::Transceiver, public IceInternal::NativeInfo +{ + enum State + { + StateNeedConnect, + StateConnectPending, + StateProxyConnectRequest, + StateProxyConnectRequestPending, + StateConnected, + StateHandshakeReadContinue, + StateHandshakeWriteContinue, + StateHandshakeComplete + }; + +public: + + virtual IceInternal::NativeInfoPtr getNativeInfo(); + virtual IceInternal::AsyncInfo* getAsyncInfo(IceInternal::SocketOperation); + + virtual IceInternal::SocketOperation initialize(IceInternal::Buffer&, IceInternal::Buffer&, bool&); + virtual IceInternal::SocketOperation closing(bool, const Ice::LocalException&); + virtual void close(); + virtual IceInternal::SocketOperation write(IceInternal::Buffer&); + virtual IceInternal::SocketOperation read(IceInternal::Buffer&, bool&); + virtual bool startWrite(IceInternal::Buffer&); + virtual void finishWrite(IceInternal::Buffer&); + virtual void startRead(IceInternal::Buffer&); + virtual void finishRead(IceInternal::Buffer&, bool&); + virtual std::string protocol() const; + virtual std::string toString() const; + virtual Ice::ConnectionInfoPtr getInfo() const; + virtual void checkSendSize(const IceInternal::Buffer&, size_t); + +private: + + TransceiverI(const InstancePtr&, SOCKET, const IceInternal::NetworkProxyPtr&, const std::string&, + const IceInternal::Address&); + TransceiverI(const InstancePtr&, SOCKET, const std::string&); + virtual ~TransceiverI(); + + virtual NativeConnectionInfoPtr getNativeConnectionInfo() const; + + IceInternal::SocketOperation sslHandshake(); + + size_t decryptMessage(IceInternal::Buffer&); + size_t encryptMessage(IceInternal::Buffer&); + + bool writeRaw(IceInternal::Buffer&); + bool readRaw(IceInternal::Buffer&); + + friend class ConnectorI; + friend class AcceptorI; + + const InstancePtr _instance; + const SChannelEnginePtr _engine; + + const IceInternal::NetworkProxyPtr _proxy; + const std::string _host; + const IceInternal::Address _addr; + + const std::string _adapterName; + const bool _incoming; + + State _state; + std::string _desc; + + // + // Buffered encrypted data that has not been written. + // + IceInternal::Buffer _writeBuffer; + size_t _bufferedW; + + // + // Buffered data that has not been decrypted. + // + IceInternal::Buffer _readBuffer; + + // + // Buffered data that was decrypted but not yet processed. + // + IceInternal::Buffer _readUnprocessed; + + CtxtHandle _ssl; + bool _sslInitialized; + CredHandle _credentials; + bool _credentialsInitialized; + +#ifdef ICE_USE_IOCP + IceInternal::AsyncInfo _read; + IceInternal::AsyncInfo _write; + int _maxSendPacketSize; + int _maxReceivePacketSize; +#endif + SecPkgContext_StreamSizes _sizes; +}; +typedef IceUtil::Handle<TransceiverI> TransceiverIPtr; + +} + +#endif + +#endif diff --git a/cpp/src/IceSSL/SSLEngine.cpp b/cpp/src/IceSSL/SSLEngine.cpp index adbfb439bc0..cd5c77e4597 100644 --- a/cpp/src/IceSSL/SSLEngine.cpp +++ b/cpp/src/IceSSL/SSLEngine.cpp @@ -148,11 +148,11 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn vector<string> dnsNames; for(vector<pair<int, string> >::const_iterator p = subjectAltNames.begin(); p != subjectAltNames.end(); ++p) { - if(p->first == 7) + if(p->first == AltNAmeIP) { ipAddresses.push_back(IceUtilInternal::toLower(p->second)); } - else if(p->first == 2) + else if(p->first == AltNameDNS) { dnsNames.push_back(IceUtilInternal::toLower(p->second)); } @@ -237,7 +237,7 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn string msg = ostr.str(); if(_securityTraceLevel >= 1) { - Trace out(getLogger(), _securityTraceCategory); + Trace out(_logger, _securityTraceCategory); out << msg; } if(_checkCertName) @@ -258,7 +258,7 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn string msg = ostr.str(); if(_securityTraceLevel >= 1) { - getLogger()->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd)); + _logger->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd)); } SecurityException ex(__FILE__, __LINE__); ex.reason = msg; @@ -270,7 +270,7 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn string msg = string(info->incoming ? "incoming" : "outgoing") + " connection rejected by trust manager"; if(_securityTraceLevel >= 1) { - getLogger()->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd)); + _logger->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd)); } SecurityException ex(__FILE__, __LINE__); ex.reason = msg; @@ -282,7 +282,7 @@ IceSSL::SSLEngine::verifyPeer(SOCKET fd, const string& address, const NativeConn string msg = string(info->incoming ? "incoming" : "outgoing") + " connection rejected by certificate verifier"; if(_securityTraceLevel >= 1) { - getLogger()->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd)); + _logger->trace(_securityTraceCategory, msg + "\n" + IceInternal::fdToString(fd)); } SecurityException ex(__FILE__, __LINE__); ex.reason = msg; diff --git a/cpp/src/IceSSL/SSLEngine.h b/cpp/src/IceSSL/SSLEngine.h index 645f23151e8..f8bd39d9447 100644 --- a/cpp/src/IceSSL/SSLEngine.h +++ b/cpp/src/IceSSL/SSLEngine.h @@ -15,15 +15,30 @@ #include <IceSSL/SSLEngineF.h> #include <IceSSL/TrustManagerF.h> -#include <IceUtil/ScopedArray.h> -#include <IceUtil/UniquePtr.h> #include <IceUtil/Shared.h> #include <IceUtil/Mutex.h> #include <Ice/CommunicatorF.h> #include <Ice/Network.h> -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) # include <Security/Security.h> +#elif defined(ICE_USE_SCHANNEL) + +// +// SECURITY_WIN32 or SECURITY_KERNEL, must be defined before including security.h +// indicating who is compiling the code. +// +# ifdef SECURITY_WIN32 +# undef SECURITY_WIN32 +# endif +# ifdef SECURITY_KERNEL +# undef SECURITY_KERNEL +# endif +# define SECURITY_WIN32 1 +# include <security.h> +# include <sspi.h> +# include <schannel.h> +# undef SECURITY_WIN32 #endif namespace IceSSL @@ -57,8 +72,7 @@ public: // // Verify peer certificate // - virtual void verifyPeer(SOCKET, const std::string&, const NativeConnectionInfoPtr&); - + void verifyPeer(SOCKET, const std::string&, const NativeConnectionInfoPtr&); CertificateVerifierPtr getCertificateVerifier() const; PasswordPromptPtr getPasswordPrompt() const; @@ -87,7 +101,7 @@ private: std::string _securityTraceCategory; }; -#ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) class SecureTransportEngine : public SSLEngine { @@ -102,36 +116,131 @@ public: SSLContextRef newContext(bool); CFArrayRef getCertificateAuthorities() const; std::string getCipherName(SSLCipherSuite) const; - SecCertificateRef getCertificate() const; - SecKeychainRef getKeychain() const; private: - void parseCiphers(const std::string& ciphers); + void parseCiphers(const std::string&); bool _initialized; - SSLContextRef _ctx; - CFArrayRef _certificateAuthorities; - SecCertificateRef _cert; - SecKeyRef _key; - SecIdentityRef _identity; - SecKeychainRef _keychain; + CFArrayRef _certificateAuthorities; + CFMutableArrayRef _chain; SSLProtocol _protocolVersionMax; SSLProtocol _protocolVersionMin; std::string _defaultDir; - - - IceUtil::UniquePtr< IceUtil::ScopedArray<char> > _dhParams; - size_t _dhParamsLength; + + std::vector<char> _dhParams; std::vector<SSLCipherSuite> _ciphers; - bool _allCiphers; IceUtil::Mutex _mutex; }; -#else +#elif defined(ICE_USE_SCHANNEL) + + +#ifdef __MINGW32__ + +// +// Add some definitions missing from MinGW headers. +// + +# ifndef CERT_TRUST_IS_EXPLICIT_DISTRUST +# define CERT_TRUST_IS_EXPLICIT_DISTRUST 0x04000000 +# endif + +# ifndef CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT +# define CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT 0x08000000 +# endif + +# ifndef SECBUFFER_ALERT +# define SECBUFFER_ALERT 17 +# endif + +# ifndef SCH_SEND_ROOT_CERT +# define SCH_SEND_ROOT_CERT 0x00040000 +# endif + +# ifndef SP_PROT_TLS1_1_SERVER +# define SP_PROT_TLS1_1_SERVER 0x00000100 +# endif + +# ifndef SP_PROT_TLS1_1_CLIENT +# define SP_PROT_TLS1_1_CLIENT 0x00000200 +# endif + +# ifndef SP_PROT_TLS1_2_SERVER +# define SP_PROT_TLS1_2_SERVER 0x00000400 +# endif + +# ifndef SP_PROT_TLS1_2_CLIENT +# define SP_PROT_TLS1_2_CLIENT 0x00000800 +# endif + +// +// CERT_CHAIN_ENGINE_CONFIG struct in mingw headers doesn't include +// new members added in Windows 7, we add our ouwn definition and +// then cast it to CERT_CHAIN_ENGINE_CONFIG this works because the +// linked libraries include the new version. +// +struct CertChainEngineConfig +{ + DWORD cbSize; + HCERTSTORE hRestrictedRoot; + HCERTSTORE hRestrictedTrust; + HCERTSTORE hRestrictedOther; + DWORD cAdditionalStore; + HCERTSTORE *rghAdditionalStore; + DWORD dwFlags; + DWORD dwUrlRetrievalTimeout; + DWORD MaximumCachedCertificates; + DWORD CycleDetectionModulus; + HCERTSTORE hExclusiveRoot; + HCERTSTORE hExclusiveTrustedPeople; +}; + +#endif +class SChannelEngine : public SSLEngine +{ +public: + + SChannelEngine(const Ice::CommunicatorPtr&); + + // + // Setup the engine. + // + virtual void initialize(); + + virtual bool initialized() const; + + // + // Destroy the engine. + // + virtual void destroy(); + + std::string getCipherName(ALG_ID) const; + + CredHandle newCredentialsHandle(bool); + + HCERTCHAINENGINE chainEngine() const; + +private: + + void parseCiphers(const std::string&); + + bool _initialized; + std::vector<PCCERT_CONTEXT> _certs; + DWORD _protocols; + IceUtil::Mutex _mutex; + + std::vector<HCERTSTORE> _stores; + + HCERTSTORE _rootStore; + + HCERTCHAINENGINE _chainEngine; + std::vector<ALG_ID> _ciphers; +}; +#else // OpenSSL class OpenSSLEngine : public SSLEngine { public: @@ -142,12 +251,11 @@ public: virtual void initialize(); virtual bool initialized() const; virtual void destroy(); - virtual void verifyPeer(SSL*, SOCKET, const std::string&, const NativeConnectionInfoPtr&); int verifyCallback(int , SSL*, X509_STORE_CTX*); -# ifndef OPENSSL_NO_DH +# ifndef OPENSSL_NO_DH DH* dhParams(int); -# endif +# endif SSL_CTX* context() const; void context(SSL_CTX*); std::string sslErrors() const; @@ -165,9 +273,9 @@ private: SSL_CTX* _ctx; std::string _defaultDir; -# ifndef OPENSSL_NO_DH +# ifndef OPENSSL_NO_DH DHParamsPtr _dhParams; -# endif +# endif IceUtil::Mutex _mutex; }; #endif diff --git a/cpp/src/IceSSL/SSLEngineF.h b/cpp/src/IceSSL/SSLEngineF.h index c064c2f4250..a485da2d4fd 100644 --- a/cpp/src/IceSSL/SSLEngineF.h +++ b/cpp/src/IceSSL/SSLEngineF.h @@ -22,15 +22,19 @@ class SSLEngine; ICE_SSL_API IceUtil::Shared* upCast(IceSSL::SSLEngine*); typedef IceInternal::Handle<SSLEngine> SSLEnginePtr; -# ifdef ICE_USE_SECURE_TRANSPORT +#if defined(ICE_USE_SECURE_TRANSPORT) class SecureTransportEngine; ICE_SSL_API IceUtil::Shared* upCast(IceSSL::SecureTransportEngine*); typedef IceInternal::Handle<SecureTransportEngine> SecureTransportEnginePtr; -# else +#elif defined(ICE_USE_SCHANNEL) +class SChannelEngine; +ICE_SSL_API IceUtil::Shared* upCast(IceSSL::SChannelEngine*); +typedef IceInternal::Handle<SChannelEngine> SChannelEnginePtr; +#else // OpenSSL class OpenSSLEngine; ICE_SSL_API IceUtil::Shared* upCast(IceSSL::OpenSSLEngine*); typedef IceInternal::Handle<OpenSSLEngine> OpenSSLEnginePtr; -# endif +#endif } diff --git a/cpp/src/IceSSL/SecureTransportEngine.cpp b/cpp/src/IceSSL/SecureTransportEngine.cpp index f2ac0d7947a..37ae0a2dceb 100644 --- a/cpp/src/IceSSL/SecureTransportEngine.cpp +++ b/cpp/src/IceSSL/SecureTransportEngine.cpp @@ -26,7 +26,6 @@ #ifdef ICE_USE_SECURE_TRANSPORT #include <regex.h> -#include <dirent.h> using namespace std; using namespace IceUtil; @@ -56,39 +55,13 @@ public: Init init; -vector<string> -dir(const string& path) -{ - vector<string> result; - - DIR* d = opendir(path.c_str()); - if(!d) - { - ostringstream os; - os << "failed to open dir `" << path << "'"; - throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, os.str()); - } - - struct dirent* dp = 0; - while((dp = readdir(d))) - { - string name(dp->d_name); - if(IceUtilInternal::fileExists(path + "/" + name)) - { - result.push_back(name); - } - } - closedir(d); - return result; -} - class RegExp : public IceUtil::Shared { public: - RegExp(const std::string&); + RegExp(const string&); ~RegExp(); - bool match(const std::string&); + bool match(const string&); private: @@ -96,14 +69,12 @@ private: }; typedef IceUtil::Handle<RegExp> RegExpPtr; -RegExp::RegExp(const std::string& regexp) +RegExp::RegExp(const string& regexp) { int err = regcomp(&_preg, regexp.c_str(), REG_EXTENDED | REG_NOSUB); - if(err != 0) + if(err) { - ostringstream os; - os << "failed to compiler regular expression `" << regexp << "' (error = " << err << ")"; - throw IllegalArgumentException(__FILE__, __LINE__, os.str()); + throw IceUtil::SyscallException(__FILE__, __LINE__, err); } } @@ -113,7 +84,7 @@ RegExp::~RegExp() } bool -RegExp::match(const std::string& value) +RegExp::match(const string& value) { return regexec(&_preg, value.c_str(), 0, 0, 0) == 0; } @@ -132,6 +103,7 @@ public: static void initialize(); static SSLCipherSuite cipherForName(const string& name); static string cipherName(SSLCipherSuite cipher); + static map<string, SSLCipherSuite> ciphers(); private: @@ -376,8 +348,7 @@ CiphersHelper::cipherForName(const string& name) map<string, SSLCipherSuite>::const_iterator i = _ciphers.find(name); if(i == _ciphers.end() || i->second == SSL_NO_SUCH_CIPHERSUITE) { - PluginInitializationException ex(__FILE__, __LINE__, "IceSSL: no such cipher " + name); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: no such cipher " + name); } return i->second; } @@ -773,8 +744,14 @@ CiphersHelper::cipherName(SSLCipherSuite cipher) } } +map<string, SSLCipherSuite> +CiphersHelper::ciphers() +{ + return _ciphers; +} + SSLProtocol -parseProtocol(const std::string& prot) +parseProtocol(const string& prot) { if(prot == "ssl2" || prot == "sslv2") { @@ -798,9 +775,7 @@ parseProtocol(const std::string& prot) } else { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: unrecognized protocol `" + prot + "'"; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: unrecognized protocol `" + prot + "'"); } } @@ -811,17 +786,10 @@ IceUtil::Shared* IceSSL::upCast(IceSSL::SecureTransportEngine* p) { return p; } IceSSL::SecureTransportEngine::SecureTransportEngine(const Ice::CommunicatorPtr& communicator) : SSLEngine(communicator), _initialized(false), - _ctx(0), _certificateAuthorities(0), - _cert(0), - _key(0), - _identity(0), - _keychain(0), + _chain(0), _protocolVersionMax(kSSLProtocolUnknown), - _protocolVersionMin(kSSLProtocolUnknown), - _dhParams(0), - _dhParamsLength(0), - _allCiphers(false) + _protocolVersionMin(kSSLProtocolUnknown) { } @@ -863,296 +831,369 @@ IceSSL::SecureTransportEngine::initialize() bool usePassword = !keychainPassword.empty(); size_t size = keychainPassword.size(); const char* password = usePassword ? keychainPassword.c_str() : 0; - OSStatus err = noErr; - if(keychainPath.empty()) + + CFDataRef hash = 0; + SecKeychainRef keychain = 0; + SecCertificateRef cert = 0; + SecKeyRef key = 0; + SecIdentityRef identity = 0; + + try { - err = SecKeychainCopyDefault(&_keychain); - if(err != noErr) + OSStatus err = 0; + if(keychainPath.empty()) { - ostringstream os; - os << "IceSSL: unable to retrieve default keychain:\n" << errorToString(err); - throw PluginInitializationException(__FILE__, __LINE__, os.str()); - } - } - else - { - // - // KeyChain path is relative to the current working directory. - // - if(!IceUtilInternal::isAbsolutePath(keychainPath)) - { - string cwd; - if(IceUtilInternal::getcwd(cwd) == 0) + if((err = SecKeychainCopyDefault(&keychain))) { - keychainPath = string(cwd) + '/' + keychainPath; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to retrieve default keychain:\n" + errorToString(err)); } } - - err = SecKeychainOpen(keychainPath.c_str(), &_keychain); - if(err != noErr) + else { - ostringstream os; - os << "IceSSL: unable to open keychain: `" << keychainPath << "'\n" << errorToString(err); - throw PluginInitializationException(__FILE__, __LINE__, os.str()); + // + // KeyChain path is relative to the current working directory. + // + if(!IceUtilInternal::isAbsolutePath(keychainPath)) + { + string cwd; + if(IceUtilInternal::getcwd(cwd) == 0) + { + keychainPath = string(cwd) + '/' + keychainPath; + } + } + + if((err = SecKeychainOpen(keychainPath.c_str(), &keychain))) + { + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: unable to open keychain: `" + + keychainPath + "'\n" + errorToString(err)); + } } - } - - SecKeychainStatus status; - err = SecKeychainGetStatus(_keychain, &status); + + SecKeychainStatus status; + err = SecKeychainGetStatus(keychain, &status); - if(err == noErr) - { - err = SecKeychainUnlock(_keychain, size, password, usePassword); - if(err != noErr) + if(err == noErr) { - ostringstream os; - os << "IceSSL: unable to unlock keychain:\n" << errorToString(err); - throw PluginInitializationException(__FILE__, __LINE__, os.str()); - } - } - else if(err == errSecNoSuchKeychain) - { - err = SecKeychainCreate(keychainPath.c_str(), size, password, keychainPassword.empty(), 0, &_keychain); - if(err != noErr) - { - ostringstream os; - os << "IceSSL: unable to create keychain:\n" << errorToString(err); - throw PluginInitializationException(__FILE__, __LINE__, os.str()); + if((err = SecKeychainUnlock(keychain, size, password, usePassword))) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to unlock keychain:\n" + errorToString(err)); + } } - } - else - { - ostringstream os; - os << "IceSSL: unable to open keychain:\n" << errorToString(err); - throw PluginInitializationException(__FILE__, __LINE__, os.str()); - } - - int passwordRetryMax = properties->getPropertyAsIntWithDefault(propPrefix + "PasswordRetryMax", 3); - PasswordPromptPtr passwordPrompt = getPasswordPrompt(); - - // - // Load the CA certificates used to authenticate peers into - // _certificateAuthorities array. - // - { - try + else if(err == errSecNoSuchKeychain) { - string caFile = properties->getProperty(propPrefix + "CertAuthFile"); - if(!caFile.empty()) + if((err = SecKeychainCreate(keychainPath.c_str(), size, password, keychainPassword.empty(), 0, &keychain))) { - if(!checkPath(caFile, defaultDir, false)) - { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: CA certificate file not found:\n" + caFile; - throw ex; - } - _certificateAuthorities = loadCACertificates(caFile); + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to create keychain:\n" + errorToString(err)); } } - catch(const CertificateReadException& ce) + else { - PluginInitializationException ex(__FILE__, __LINE__, ce.reason); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to open keychain:\n" + errorToString(err)); } - catch(const CertificateEncodingException& ce) + + // + // Set keychain settings to avoid keychain lock. + // + SecKeychainSettings settings; + settings.version = SEC_KEYCHAIN_SETTINGS_VERS1; + settings.lockOnSleep = FALSE; + settings.useLockInterval = FALSE; + settings.lockInterval = INT_MAX; + + if((err = SecKeychainSetSettings(keychain, &settings))) { - PluginInitializationException ex(__FILE__, __LINE__, ce.reason); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error setting keychain settings:\n" + errorToString(err)); } - string caDir = properties->getPropertyWithDefault(propPrefix + "CertAuthDir", defaultDir); - if(!caDir.empty()) + int passwordRetryMax = properties->getPropertyAsIntWithDefault(propPrefix + "PasswordRetryMax", 3); + PasswordPromptPtr passwordPrompt = getPasswordPrompt(); + + // + // Load the CA certificates used to authenticate peers into + // _certificateAuthorities array. + // { - CFMutableArrayRef certificateAuthorities; - if(_certificateAuthorities) + try { - certificateAuthorities = CFArrayCreateMutableCopy(kCFAllocatorDefault, 0, _certificateAuthorities); - CFRelease(_certificateAuthorities); + string caFile = properties->getProperty(propPrefix + "CertAuthFile"); + if(!caFile.empty()) + { + if(!checkPath(caFile, defaultDir, false)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: CA certificate file not found:\n" + caFile); + } + _certificateAuthorities = loadCACertificates(caFile); + } } - else + catch(const CertificateReadException& ce) { - certificateAuthorities = CFArrayCreateMutable(kCFAllocatorDefault, 0, &kCFTypeArrayCallBacks); + throw PluginInitializationException(__FILE__, __LINE__, ce.reason); } - - vector<string> files = dir(caDir); - for(vector<string>::const_iterator i = files.begin(); i != files.end(); ++i) + catch(const CertificateEncodingException& ce) { - try - { - CFArrayRef tmp = loadCACertificates(caDir + "/" + *i); - - CFArrayAppendArray(certificateAuthorities, tmp, CFRangeMake(0, CFArrayGetCount(tmp))); - CFRelease(tmp); - } - catch(const CertificateReadException&) - { - // - // Some files in CertAuthDir might not be certificates, we just ignore those files. - // - } - catch(const CertificateEncodingException&) - { - // - // Some files in CertAuthDir might not be certificates, we just ignore those files. - // - } + throw PluginInitializationException(__FILE__, __LINE__, ce.reason); } - _certificateAuthorities = certificateAuthorities; } - } - - // - // Import the application certificate and private keys into the application - // keychain. - // - { - string certFile = properties->getProperty(propPrefix + "CertFile"); - string keyFile = properties->getProperty(propPrefix + "KeyFile"); - vector<string>::size_type numCerts = 0; - CFDataRef hash = 0; - - if(!certFile.empty()) + // + // Import the application certificate and private keys into the application + // keychain. + // { - vector<string> files; - if(!IceUtilInternal::splitString(certFile, IceUtilInternal::pathsep, files) || files.size() > 2) + string certFile = properties->getProperty(propPrefix + "CertFile"); + string keyFile = properties->getPropertyWithDefault(propPrefix + "KeyFile", certFile); + vector<string>::size_type numCerts = 0; + + if(!certFile.empty()) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: invalid value for " + propPrefix + "CertFile:\n" + certFile; - throw ex; + vector<string> files; + if(!IceUtilInternal::splitString(certFile, IceUtilInternal::pathsep, files) || files.size() > 2) + { + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: invalid value for " + propPrefix + + "CertFile:\n" + certFile); + } + numCerts = files.size(); + for(vector<string>::iterator p = files.begin(); p != files.end();) + { + string file = *p; + if(!checkPath(file, defaultDir, false)) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: certificate file not found:\n" + file); + } + + try + { + loadCertificate(&cert, &hash, &key, keychain, file, + properties->getProperty(propPrefix + "Password"), passwordPrompt, + passwordRetryMax); + break; + } + catch(const CertificateReadException& ce) + { + // + // If this is the last certificate rethrow the exception as PluginInitializationException, + // otherwise try the next certificate. + // + if(++p == files.end()) + { + throw PluginInitializationException(__FILE__, __LINE__, ce.reason); + } + } + } } - numCerts = files.size(); - for(vector<string>::iterator p = files.begin(); p != files.end();) + + if(!key && !keyFile.empty()) { - string file = *p; - if(!checkPath(file, defaultDir, false)) + vector<string> files; + if(!IceUtilInternal::splitString(keyFile, IceUtilInternal::pathsep, files) || files.size() > 2) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: certificate file not found:\n" + file; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: invalid value for " + propPrefix + "KeyFile:\n" + keyFile); } - - try + if(files.size() != numCerts) { - loadCertificate(&_cert, &hash, keyFile.empty() ? &_key : 0, _keychain, file, - properties->getProperty(propPrefix + "Password"), passwordPrompt, - passwordRetryMax); - break; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: IceSSL.KeyFile does not agree with IceSSL.CertFile"); } - catch(const CertificateReadException& ce) + for(vector<string>::iterator p = files.begin(); p != files.end();) { - // - // If this is the last certificate rethrow the exception as PluginInitializationException, - // otherwise try the next certificate. - // - if(++p == files.end()) + string file = *p; + if(!checkPath(file, defaultDir, false)) { - PluginInitializationException ex(__FILE__, __LINE__, ce.reason); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: key file not found:\n" + file); + } + + try + { + loadPrivateKey(&key, keyLabel(cert), hash, keychain, file, + properties->getProperty(propPrefix + "Password"), + passwordPrompt, passwordRetryMax); + break; + } + catch(const CertificateReadException& ce) + { + // + // If this is the last key rethrow the exception as PluginInitializationException, + // otherwise try the next certificate. + // + if(++p == files.end()) + { + PluginInitializationException ex(__FILE__, __LINE__, ce.reason); + throw ex; + } } } } - } - - if(!keyFile.empty()) - { - vector<string> files; - if(!IceUtilInternal::splitString(keyFile, IceUtilInternal::pathsep, files) || files.size() > 2) - { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: invalid value for " + propPrefix + "KeyFile:\n" + keyFile; - throw ex; - } - if(files.size() != numCerts) - { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: " + propPrefix + "KeyFile does not agree with " + propPrefix + "CertFile"; - throw ex; - } - for(vector<string>::iterator p = files.begin(); p != files.end();) + + if(cert) { - string file = *p; - if(!checkPath(file, defaultDir, false)) + if((err = SecIdentityCreateWithCertificate(keychain, cert, &identity)) != noErr) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: key file not found:\n" + file; - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error creating certificate identity:\n" + errorToString(err)); } - + } + + if(identity) + { + SecTrustRef trust = 0; try { - loadPrivateKey(&_key, keyLabel(_cert), hash, _keychain, file, - properties->getProperty(propPrefix + "Password"), - passwordPrompt, passwordRetryMax); - break; - } - catch(const CertificateReadException& ce) - { // - // If this is the last key rethrow the exception as PluginInitializationException, - // otherwise try the next certificate. + // Retrieve the certificate chain // - if(++p == files.end()) + SecPolicyRef policy = SecPolicyCreateSSL(true, 0); + err = SecTrustCreateWithCertificates((CFArrayRef)cert, policy, &trust); + CFRelease(policy); + if(err || !trust) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error creating trust object" + (err ? ":\n" + errorToString(err) : "")); + } + + if((err = SecTrustSetAnchorCertificates(trust, _certificateAuthorities))) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error while establish the anchor certificates:\n" + errorToString(err)); + } + + SecTrustResultType trustResult; + if((err = SecTrustEvaluate(trust, &trustResult))) + { + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: error evaluating trust:\n" + errorToString(err)); + } + + int chainLength = SecTrustGetCertificateCount(trust); + _chain = CFArrayCreateMutable(kCFAllocatorDefault, chainLength, &kCFTypeArrayCallBacks); + CFArrayAppendValue(_chain, identity); + for(int i = 1; i < chainLength; ++i) + { + CFArrayAppendValue(_chain, SecTrustGetCertificateAtIndex(trust, i)); + } + CFRelease(trust); + } + catch(...) + { + if(trust) { - PluginInitializationException ex(__FILE__, __LINE__, ce.reason); - throw ex; + CFRelease(trust); } + throw; } } - } - - if(_cert) - { - err = SecIdentityCreateWithCertificate(_keychain, _cert, &_identity); - if(err != noErr) + + if(hash) + { + CFRelease(hash); + } + + if(keychain) { - ostringstream os; - os << "IceSSL: unable to create the certificate identity:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + CFRelease(keychain); + } + + if(cert) + { + CFRelease(cert); + } + + if(key) + { + CFRelease(key); + } + + if(identity) + { + CFRelease(identity); } } - + } + catch(...) + { if(hash) { CFRelease(hash); } + + if(keychain) + { + CFRelease(keychain); + } + + if(cert) + { + CFRelease(cert); + } + + if(key) + { + CFRelease(key); + } + + if(identity) + { + CFRelease(identity); + } + + throw; } - // // DiffieHellmanParams in DER format. // + string dhFile = properties->getProperty(propPrefix + "DHParams"); + if(!dhFile.empty()) { - string dhParams = properties->getProperty(propPrefix + "DHParams"); - if(!dhParams.empty()) + if(!checkPath(dhFile, defaultDir, false)) { - if(!checkPath(dhParams, defaultDir, false)) - { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: DH params file not found:\n" + dhParams; - throw ex; - } - - ScopedArray<char> buffer; - _dhParamsLength = readFile(dhParams, buffer); - _dhParams.reset(new ScopedArray<char>(buffer)); + throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: DH params file not found:\n" + dhFile); } + + readFile(dhFile, _dhParams); } // // Establish the cipher list. // string ciphers = properties->getProperty(propPrefix + "Ciphers"); + CiphersHelper::initialize(); + if(!ciphers.empty()) { - // - // Context used to get the cipher list - // - _ctx = SSLCreateContext(kCFAllocatorDefault, kSSLServerSide, kSSLStreamType); - CiphersHelper::initialize(); parseCiphers(ciphers); } + if(securityTraceLevel() >= 1) + { + ostringstream os; + os << "enabling SSL ciphersuites:"; + + if(_ciphers.empty()) + { + map<string, SSLCipherSuite> enabled = CiphersHelper::ciphers(); + for(map<string, SSLCipherSuite>::const_iterator i = enabled.begin(); i != enabled.end(); ++i) + { + os << "\n " << i->first; + } + } + else + { + for(vector<SSLCipherSuite>::const_iterator i = _ciphers.begin(); i != _ciphers.end(); ++i) + { + os << "\n " << getCipherName(*i); + } + } + getLogger()->trace(securityTraceCategory(), os.str()); + } + // // Parse protocols // @@ -1182,45 +1223,21 @@ IceSSL::SecureTransportEngine::destroy() _certificateAuthorities = 0; } - if(_identity) - { - CFRelease(_identity); - _identity = 0; - } - - if(_cert) + if(_chain) { - CFRelease(_cert); - _cert = 0; - } - - if(_key) - { - CFRelease(_key); - _key = 0; - } - - if(_keychain) - { - CFRelease(_keychain); - _keychain = 0; - } - - if(_ctx) - { - CFRelease(_ctx); - _ctx = 0; + CFRelease(_chain); + _chain = 0; } } SSLContextRef IceSSL::SecureTransportEngine::newContext(bool incoming) { - SSLContextRef ssl = SSLCreateContext(kCFAllocatorDefault, incoming ? kSSLServerSide : kSSLClientSide, kSSLStreamType); + SSLContextRef ssl = SSLCreateContext(kCFAllocatorDefault, incoming ? kSSLServerSide : kSSLClientSide, + kSSLStreamType); if(!ssl) { - PluginInitializationException ex(__FILE__, __LINE__, "IceSSL: unable to create SSL context"); - throw ex; + throw SecurityException(__FILE__, __LINE__, "IceSSL: unable to create SSL context"); } OSStatus err = noErr; @@ -1250,125 +1267,53 @@ IceSSL::SecureTransportEngine::newContext(bool incoming) } } - if(_dhParamsLength > 0) + if(!_dhParams.empty()) { - err = SSLSetDiffieHellmanParams(ssl, _dhParams->get(), _dhParamsLength); - if(err != noErr) + if((err = SSLSetDiffieHellmanParams(ssl, &_dhParams[0], _dhParams.size()))) { - ostringstream os; - os << "IceSSL: unable to create the trust object:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw SecurityException(__FILE__, __LINE__, + "IceSSL: unable to create the trust object:\n" + errorToString(err)); } } } - if(_cert) - { - // - // Retrieve the certificate chain - // - SecPolicyRef policy = SecPolicyCreateSSL(incoming, 0); - SecTrustRef trust; - err = SecTrustCreateWithCertificates((CFArrayRef)_cert, policy, &trust); - CFRelease(policy); - if(err != noErr || !trust) - { - ostringstream os; - os << "IceSSL: unable to create the trust object"; - if(err != noErr) - { - os << ":\n" << errorToString(err); - } - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; - } - - err = SecTrustSetAnchorCertificates(trust, _certificateAuthorities); - if(err != noErr) - { - ostringstream os; - os << "IceSSL: unable to establish the anchor certificates:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; - } - - SecTrustResultType trustResult; - err = SecTrustEvaluate(trust, &trustResult); - if(err != noErr) - { - ostringstream os; - os << "IceSSL: unable to evaluate trust:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; - } - - int chainLength = SecTrustGetCertificateCount(trust); - CFMutableArrayRef chain = CFArrayCreateMutable(kCFAllocatorDefault, chainLength, &kCFTypeArrayCallBacks); - CFArrayAppendValue(chain, _identity); - for(int i = 1; i < chainLength; ++i) - { - CFArrayAppendValue(chain, SecTrustGetCertificateAtIndex(trust, i)); - } - CFRelease(trust); - - err = SSLSetCertificate(ssl, chain); - - CFRelease(chain); - - if(err != noErr) - { - ostringstream os; - os << "IceSSL: unable to set the SSL context certificate identity:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; - } + if(_chain && (err = SSLSetCertificate(ssl, _chain))) + { + throw SecurityException(__FILE__, __LINE__, + "IceSSL: error while set the SSL context certificate:\n" + errorToString(err)); } if(!_ciphers.empty()) { - err = SSLSetEnabledCiphers(ssl, reinterpret_cast<SSLCipherSuite*>(&_ciphers[0]), _ciphers.size()); - if(err != noErr) + if((err = SSLSetEnabledCiphers(ssl, &_ciphers[0], _ciphers.size()))) { - ostringstream os; - os << "IceSSL: failed to set enabled ciphers:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw SecurityException(__FILE__, __LINE__, "IceSSL: error while set ciphers:\n" + errorToString(err)); } } - err = SSLSetSessionOption(ssl, incoming ? kSSLSessionOptionBreakOnClientAuth : kSSLSessionOptionBreakOnServerAuth, - true); - if(err != noErr) + if((err = SSLSetSessionOption(ssl, incoming ? kSSLSessionOptionBreakOnClientAuth : + kSSLSessionOptionBreakOnServerAuth, + true))) { - ostringstream os; - os << "IceSSL: failed to set SSL option:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw SecurityException(__FILE__, __LINE__, "IceSSL: error while set SSL option:\n" + errorToString(err)); } if(_protocolVersionMax != kSSLProtocolUnknown) { - err = SSLSetProtocolVersionMax(ssl, _protocolVersionMax); - if(err != noErr) + if((err = SSLSetProtocolVersionMax(ssl, _protocolVersionMax))) { - ostringstream os; - os << "IceSSL: failed to set SSL protocol version max:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw SecurityException(__FILE__, __LINE__, + "IceSSL: error while set SSL protocol version max:\n" + errorToString(err)); } } if(_protocolVersionMin != kSSLProtocolUnknown) { - err = SSLSetProtocolVersionMin(ssl, _protocolVersionMin); - if(err != noErr) + if((err = SSLSetProtocolVersionMin(ssl, _protocolVersionMin))) { - ostringstream os; - os << "IceSSL: failed to set SSL protocol version min:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw SecurityException(__FILE__, __LINE__, + "IceSSL: error while set SSL protocol version min:\n" + errorToString(err)); } } @@ -1393,6 +1338,7 @@ IceSSL::SecureTransportEngine::parseCiphers(const string& ciphers) vector<string> tokens; vector<CipherExpression> cipherExpressions; + bool allCiphers = false; IceUtilInternal::splitString(ciphers, " \t", tokens); for(vector<string>::const_iterator i = tokens.begin(); i != tokens.end(); ++i) { @@ -1401,21 +1347,17 @@ IceSSL::SecureTransportEngine::parseCiphers(const string& ciphers) { if(i != tokens.begin()) { - ostringstream os; - os << "IceSSL: `ALL' must be first in cipher list `" << ciphers << "'"; - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: `ALL' must be first in cipher list `" + ciphers + "'"); } - _allCiphers = true; + allCiphers = true; } else if(token == "NONE") { if(i != tokens.begin()) { - ostringstream os; - os << "IceSSL: `NONE' must be first in cipher list `" << ciphers << "'"; - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: `NONE' must be first in cipher list `" + ciphers + "'"); } } else @@ -1430,10 +1372,8 @@ IceSSL::SecureTransportEngine::parseCiphers(const string& ciphers) } else { - ostringstream os; - os << "IceSSL: invalid cipher expression `" << token << "'"; - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: invalid cipher expression `" + token + "'"); } } else @@ -1445,10 +1385,8 @@ IceSSL::SecureTransportEngine::parseCiphers(const string& ciphers) { if(token.rfind(')') != token.size() - 1) { - ostringstream os; - os << "IceSSL: invalid cipher expression `" << token << "'"; - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: invalid cipher expression `" + token + "'"); } try @@ -1457,10 +1395,8 @@ IceSSL::SecureTransportEngine::parseCiphers(const string& ciphers) } catch(const Ice::SyscallException&) { - ostringstream os; - os << "IceSSL: invalid cipher expression `" << token << "'"; - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: invalid cipher expression `" + token + "'"); } } else @@ -1472,25 +1408,25 @@ IceSSL::SecureTransportEngine::parseCiphers(const string& ciphers) } } + // + // Context used to get the cipher list + // + SSLContextRef ctx = SSLCreateContext(kCFAllocatorDefault, kSSLServerSide, kSSLStreamType); size_t numSupportedCiphers = 0; - SSLGetNumberSupportedCiphers(_ctx, &numSupportedCiphers); + SSLGetNumberSupportedCiphers(ctx, &numSupportedCiphers); vector<SSLCipherSuite> supported; supported.resize(numSupportedCiphers); - OSStatus err = SSLGetSupportedCiphers(_ctx, - reinterpret_cast<SSLCipherSuite*>(&supported[0]), - &numSupportedCiphers); - if(err != noErr) + OSStatus err = SSLGetSupportedCiphers(ctx, &supported[0], &numSupportedCiphers); + if(err) { - ostringstream os; - os << "IceSSL: unable to get supported ciphers list:\n" << errorToString(err); - PluginInitializationException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw PluginInitializationException(__FILE__, __LINE__, + "IceSSL: unable to get supported ciphers list:\n" + errorToString(err)); } vector<SSLCipherSuite> enabled; - if(_allCiphers) + if(allCiphers) { enabled = supported; } @@ -1555,17 +1491,4 @@ IceSSL::SecureTransportEngine::parseCiphers(const string& ciphers) } _ciphers = enabled; } - -SecCertificateRef -IceSSL::SecureTransportEngine::getCertificate() const -{ - return _cert; -} - -SecKeychainRef -IceSSL::SecureTransportEngine::getKeychain() const -{ - return _keychain; -} - #endif diff --git a/cpp/src/IceSSL/SecureTransportTransceiverI.cpp b/cpp/src/IceSSL/SecureTransportTransceiverI.cpp index 6454743acb5..a64b4d8ee65 100644 --- a/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +++ b/cpp/src/IceSSL/SecureTransportTransceiverI.cpp @@ -8,17 +8,10 @@ // ********************************************************************** #include <IceSSL/SecureTransportTransceiverI.h> -#include <IceUtil/FileUtil.h> -#include <IceUtil/Mutex.h> -#include <IceUtil/MutexPtrLock.h> - -#include <IceSSL/ConnectionInfo.h> #include <IceSSL/Instance.h> #include <IceSSL/SSLEngine.h> -#include <IceSSL/Util.h> -#include <Ice/Communicator.h> + #include <Ice/LoggerUtil.h> -#include <Ice/Buffer.h> #include <Ice/LocalException.h> #ifdef ICE_USE_SECURE_TRANSPORT @@ -46,7 +39,7 @@ trustResultDescription(SecTrustResultType result) case kSecTrustResultRecoverableTrustFailure: case kSecTrustResultFatalTrustFailure: { - return "Trust denied; no simple fix is available"; + return "Trust denied"; } case kSecTrustResultOtherError: { @@ -102,6 +95,76 @@ socketRead(SSLConnectionRef connection, void* data, size_t* length) return transceiver->readRaw(reinterpret_cast<char*>(data), length); } +void +checkTrustResult(SecTrustRef trust, const SecureTransportEnginePtr& engine, const InstancePtr& instance) +{ + OSStatus err = noErr; + SecTrustResultType trustResult = kSecTrustResultOtherError; + if(trust) + { + if((err = SecTrustSetAnchorCertificates(trust, engine->getCertificateAuthorities()))) + { + throw SecurityException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + errorToString(err)); + } + + // + // Disable network fetch, we don't want this to block. + // + if((err = SecTrustSetNetworkFetchAllowed(trust, false))) + { + throw ProtocolException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + errorToString(err)); + } + + // + // Evaluate the trust + // + if((err = SecTrustEvaluate(trust, &trustResult))) + { + throw ProtocolException(__FILE__, __LINE__, "IceSSL: handshake failure:\n" + errorToString(err)); + } + } + + switch(trustResult) + { + case kSecTrustResultUnspecified: + case kSecTrustResultProceed: + { + // + // Trust verify success. + // + break; + } + case kSecTrustResultInvalid: + //case kSecTrustResultConfirm: // Used in old OS X versions + case kSecTrustResultDeny: + case kSecTrustResultRecoverableTrustFailure: + case kSecTrustResultFatalTrustFailure: + case kSecTrustResultOtherError: + { + if(engine->getVerifyPeer() == 0) + { + if(instance->traceLevel() >= 1) + { + ostringstream os; + os << "IceSSL: ignoring certificate verification failure\n" << trustResultDescription(trustResult); + instance->logger()->trace(instance->traceCategory(), os.str()); + } + break; + } + else + { + ostringstream os; + os << "IceSSL: certificate verification failure\n" << trustResultDescription(trustResult); + string msg = os.str(); + if(instance->traceLevel() >= 1) + { + instance->logger()->trace(instance->traceCategory(), msg); + } + throw ProtocolException(__FILE__, __LINE__, msg); + } + } + } +} } IceInternal::NativeInfoPtr @@ -194,26 +257,23 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B assert(_state == StateConnected); - OSStatus err = noErr; - + OSStatus err = 0; if(!_ssl) { // // Initialize SSL context // _ssl = _engine->newContext(_incoming); - if((err = SSLSetIOFuncs(_ssl, socketRead, socketWrite)) != noErr) + if((err = SSLSetIOFuncs(_ssl, socketRead, socketWrite))) { - ostringstream os; - os << "IceSSL: cannot set SSL IO functions\n" << errorToString(err); - throw PluginInitializationException(__FILE__, __LINE__, os.str()); + throw SecurityException(__FILE__, __LINE__, "IceSSL: setting IO functions failed\n" + + errorToString(err)); } - if((err = SSLSetConnection(_ssl, reinterpret_cast<SSLConnectionRef>(this))) != noErr) + if((err = SSLSetConnection(_ssl, reinterpret_cast<SSLConnectionRef>(this)))) { - ostringstream os; - os << "IceSSL: cannot set SSL connection\n" << errorToString(err); - throw PluginInitializationException(__FILE__, __LINE__, os.str()); + throw SecurityException(__FILE__, __LINE__, "IceSSL: setting SSL connection failed\n" + + errorToString(err)); } } @@ -226,136 +286,41 @@ IceSSL::TransceiverI::initialize(IceInternal::Buffer& readBuffer, IceInternal::B while(state == kSSLHandshake || state == kSSLIdle) { err = SSLHandshake(_ssl); - if(err != noErr) + if(err == noErr) + { + break; // We're done! + } + else if(err == errSSLWouldBlock) { - switch(err) + assert(_flags & SSLWantRead || _flags & SSLWantWrite); + return _flags & SSLWantRead ? IceInternal::SocketOperationRead : IceInternal::SocketOperationWrite; + } + else if(err == errSSLPeerAuthCompleted) + { + assert(!_trust); + err = SSLCopyPeerTrust(_ssl, &_trust); + if(err == noErr) { - case errSSLWouldBlock: - { - assert(_flags & SSLWantRead || _flags & SSLWantWrite); - return _flags & SSLWantRead ? IceInternal::SocketOperationRead : IceInternal::SocketOperationWrite; - } - case errSSLPeerAuthCompleted: - { - assert(!_trust); - err = SSLCopyPeerTrust(_ssl, &_trust); - if(err != noErr) - { - break; - } - - SecTrustResultType trustResult = kSecTrustResultOtherError; - - if(_trust) - { - err = SecTrustSetAnchorCertificates(_trust, _engine->getCertificateAuthorities()); - - if(err != noErr) - { - ostringstream os; - os << "SSL handsake failure:\n" << errorToString(err); - throw SecurityException(__FILE__, __LINE__, os.str()); - } - - // - // Disable network fetch, we don't want this to block. - // - err = SecTrustSetNetworkFetchAllowed(_trust, false); - if(err != noErr) - { - ostringstream os; - os << "SSL handsake failure:\n" << errorToString(err); - throw SecurityException(__FILE__, __LINE__, os.str()); - } - - // - // Evaluate the trust - // - err = SecTrustEvaluate(_trust, &trustResult); - if(err != noErr) - { - ostringstream os; - os << "SSL handsake failure:\n" << errorToString(err); - throw SecurityException(__FILE__, __LINE__, os.str());; - } - } - - switch(trustResult) - { - case kSecTrustResultUnspecified: - case kSecTrustResultProceed: - { - // - // Trust verify success. - // - break; - } - case kSecTrustResultInvalid: - //case kSecTrustResultConfirm: // Used in old OS X versions - case kSecTrustResultDeny: - case kSecTrustResultRecoverableTrustFailure: - case kSecTrustResultFatalTrustFailure: - case kSecTrustResultOtherError: - { - if(_engine->getVerifyPeer() == 0) - { - if(_instance->traceLevel() >= 1) - { - ostringstream os; - os << "IceSSL: ignoring certificate verification failure\n" - << trustResultDescription(trustResult); - _instance->logger()->trace(_instance->traceCategory(), os.str()); - } - break; - } - else - { - ostringstream os; - os << "IceSSL: certificate verification failure\n" - << trustResultDescription(trustResult); - string msg = os.str(); - if(_instance->traceLevel() >= 1) - { - _instance->logger()->trace(_instance->traceCategory(), msg); - } - throw ProtocolException(__FILE__, __LINE__, msg); - } - } - } - // - // Call SSLHandshake to resume the handsake. - // - continue; - } - default: - { - break; - } + checkTrustResult(_trust, _engine, _instance); + continue; // Call SSLHandshake to resume the handsake. } + // Let it fall through, this will raise a SecurityException with the SSLCopyPeerTrust error. + } + else if(err == errSSLClosedGraceful || err == errSSLClosedAbort) + { + throw ConnectionLostException(__FILE__, __LINE__, 0); + } - if(err == errSSLClosedGraceful || err == errSSLClosedAbort) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = 0; - throw ex; - } - else - { - IceInternal::Address remoteAddr; - string desc = "<not available>"; - if(IceInternal::fdToRemoteAddress(_fd, remoteAddr)) - { - desc = IceInternal::addrToString(remoteAddr); - } - ostringstream os; - os << "SSL error occurred for new " << (_incoming ? "incoming" : "outgoing") - << " connection:\nremote address = " << desc << "\n" - << errorToString(err); - ProtocolException ex(__FILE__, __LINE__, os.str()); - throw ex; - } + IceInternal::Address remoteAddr; + string desc = "<not available>"; + if(IceInternal::fdToRemoteAddress(_fd, remoteAddr)) + { + desc = IceInternal::addrToString(remoteAddr); } - break; + ostringstream os; + os << "IceSSL: ssl error occurred for new " << (_incoming ? "incoming" : "outgoing") << " connection:\n" + << "remote address = " << desc << "\n" << errorToString(err); + throw ProtocolException(__FILE__, __LINE__, os.str()); } _engine->verifyPeer(_fd, _host, getNativeConnectionInfo()); _state = StateHandshakeComplete; @@ -474,22 +439,6 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf) return writeRaw(buf) ? IceInternal::SocketOperationNone : IceInternal::SocketOperationWrite; } - size_t processed = 0; - - if(_buffered > 0) - { - // - // Required to flush SSL buffers - // - if(SSLWrite(_ssl, 0, 0, &processed) == errSSLWouldBlock) - { - return IceInternal::SocketOperationWrite; - } - - buf.i += _buffered; - _buffered = 0; - } - if(buf.i == buf.b.end()) { return IceInternal::SocketOperationNone; @@ -503,58 +452,71 @@ IceSSL::TransceiverI::write(IceInternal::Buffer& buf) while(buf.i != buf.b.end()) { assert(_fd != INVALID_SOCKET); - OSStatus ret = SSLWrite(_ssl, reinterpret_cast<const void*>(buf.i), packetSize, &processed); - if(ret != noErr) + size_t processed = 0; + OSStatus err = _buffered ? SSLWrite(_ssl, 0, 0, &processed) : + SSLWrite(_ssl, reinterpret_cast<const void*>(buf.i), packetSize, &processed); + + if(err) { - if(ret == errSSLWouldBlock) + if(err == errSSLWouldBlock) { - _buffered = processed; + if(_buffered == 0) + { + _buffered = processed; + } assert(_flags & SSLWantWrite); return IceInternal::SocketOperationWrite; } - if(ret == errSSLClosedGraceful) + if(err == errSSLClosedGraceful) { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = 0; - throw ex; + throw ConnectionLostException(__FILE__, __LINE__, 0); } // // SSL protocol errors are defined in SecureTransport.h are in the range // -9800 to -9849 // - if(ret <= -9800 && ret >= -9849) + if(err <= -9800 && err >= -9849) { - ProtocolException ex(__FILE__, __LINE__); - ostringstream os; - os << "SSL protocol error during read:\n" << errorToString(ret); - ex.reason = os.str(); - throw ex; + throw ProtocolException(__FILE__, __LINE__, "IceSSL: error during read:\n" + errorToString(err)); } - errno = ret; + errno = err; if(IceInternal::connectionLost()) { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; + throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno()); } else { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; + throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno()); } } if(_instance->traceLevel() >= 3) { Trace out(_instance->logger(), _instance->traceCategory()); - out << "sent " << processed << " of " << packetSize << " bytes via " << protocol() << "\n" << toString(); + out << "sent "; + if(_buffered) + { + out << _buffered << " of " << _buffered; + } + else + { + out << processed << " of " << packetSize; + } + out << " bytes via " << protocol() << "\n" << toString(); } - buf.i += processed; + if(_buffered) + { + buf.i += _buffered; + _buffered = 0; + } + else + { + buf.i += processed; + } if(packetSize > buf.b.end() - buf.i) { @@ -587,73 +549,65 @@ IceSSL::TransceiverI::read(IceInternal::Buffer& buf, bool&) { return IceInternal::SocketOperationNone; } - // - // It's impossible for packetSize to be more than an Int. - // + size_t packetSize = buf.b.end() - buf.i; - size_t processed = 0; - packetSize = std::min(packetSize, _maxReceivePacketSize); - + while(buf.i != buf.b.end()) { assert(_fd != INVALID_SOCKET); - OSStatus ret = SSLRead(_ssl, reinterpret_cast<void*>(buf.i), packetSize, &processed); - if(ret != noErr) + size_t processed = 0; + OSStatus err = SSLRead(_ssl, reinterpret_cast<void*>(buf.i), packetSize, &processed); + + if(processed) { - if(ret == errSSLWouldBlock) + if(_instance->traceLevel() >= 3) + { + Trace out(_instance->logger(), _instance->traceCategory()); + out << "received " << processed << " of " << packetSize << " bytes via " << protocol() << "\n" + << toString(); + } + } + + if(err) + { + if(err == errSSLWouldBlock) { buf.i += processed; assert(_flags & SSLWantRead); return IceInternal::SocketOperationRead; } - if(ret == errSSLClosedGraceful || ret == errSSLPeerBadRecordMac || ret == errSSLPeerDecryptionFail) + if(err == errSSLClosedGraceful || err == errSSLPeerBadRecordMac || err == errSSLPeerDecryptionFail) { // // Forcefully closing a connection can result in SSLRead reporting // "decryption failed or bad record mac". We trap that error and // treat it as the loss of a connection. // - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = 0; - throw ex; + throw ConnectionLostException(__FILE__, __LINE__, 0); } // // SSL protocol errors are defined in SecureTransport.h are in the range // -9800 to -9849 // - if(ret <= -9800 && ret >= -9849) + if(err <= -9800 && err >= -9849) { - ProtocolException ex(__FILE__, __LINE__); - ostringstream os; - os << "SSL protocol error during read:\n" << errorToString(ret); - ex.reason = os.str(); - throw ex; + throw ProtocolException(__FILE__, __LINE__, "IceSSL: error during read:\n" + errorToString(err)); } - errno = ret; + errno = err; if(IceInternal::connectionLost()) { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; + throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno()); } else { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; + throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno()); } } - if(_instance->traceLevel() >= 3) - { - Trace out(_instance->logger(), _instance->traceCategory()); - out << "received " << processed << " of " << packetSize << " bytes via " << protocol() << "\n" - << toString(); - } buf.i += processed; if(packetSize > buf.b.end() - buf.i) @@ -726,8 +680,8 @@ IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const } // - // Limit the size of packet passed to SSLWrite/SSLRead to avoid blocking and - // holding too much memory. + // Limit the size of packets passed to SSLWrite/SSLRead to avoid + // blocking and holding too much memory. // _maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(fd)); _maxReceivePacketSize = std::max(512, IceInternal::getRecvBufferSize(fd)); @@ -751,8 +705,8 @@ IceSSL::TransceiverI::TransceiverI(const InstancePtr& instance, SOCKET fd, const IceInternal::setTcpBufSize(fd, _instance->properties(), _instance->logger()); // - // Limit the size of packet passed to SSLWrite/SSLRead to avoid blocking and - // holding too much memory. + // Limit the size of packets passed to SSLWrite/SSLRead to avoid + // blocking and holding too much memory. // _maxSendPacketSize = std::max(512, IceInternal::getSendBufferSize(fd)); _maxReceivePacketSize = std::max(512, IceInternal::getRecvBufferSize(fd)); @@ -827,15 +781,11 @@ IceSSL::TransceiverI::writeRaw(IceInternal::Buffer& buf) if(IceInternal::connectionLost()) { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; + throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno()); } else { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; + throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno()); } } @@ -867,9 +817,7 @@ IceSSL::TransceiverI::readRaw(IceInternal::Buffer& buf) if(ret == 0) { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = 0; - throw ex; + throw ConnectionLostException(__FILE__, __LINE__, 0); } if(ret == SOCKET_ERROR) @@ -892,15 +840,11 @@ IceSSL::TransceiverI::readRaw(IceInternal::Buffer& buf) if(IceInternal::connectionLost()) { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; + throw ConnectionLostException(__FILE__, __LINE__, IceInternal::getSocketErrno()); } else { - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; + throw SocketException(__FILE__, __LINE__, IceInternal::getSocketErrno()); } } @@ -911,7 +855,10 @@ IceSSL::TransceiverI::readRaw(IceInternal::Buffer& buf) } buf.i += ret; - packetSize = buf.b.end() - buf.i; + if(packetSize > buf.b.end() - buf.i) + { + packetSize = buf.b.end() - buf.i; + } } return true; @@ -1010,7 +957,10 @@ IceSSL::TransceiverI::readRaw(char* data, size_t* length) const } i += ret; - packetSize = end - i; + if(packetSize > end - i) + { + packetSize = end - i; + } } *length = i - data; diff --git a/cpp/src/IceSSL/SecureTransportTransceiverI.h b/cpp/src/IceSSL/SecureTransportTransceiverI.h index bef04b5c8c0..ea5051814df 100644 --- a/cpp/src/IceSSL/SecureTransportTransceiverI.h +++ b/cpp/src/IceSSL/SecureTransportTransceiverI.h @@ -68,8 +68,6 @@ private: virtual NativeConnectionInfoPtr getNativeConnectionInfo() const; - void traceConnection(); - bool writeRaw(IceInternal::Buffer&); bool readRaw(IceInternal::Buffer&); diff --git a/cpp/src/IceSSL/Util.cpp b/cpp/src/IceSSL/Util.cpp index 27fd312c3d6..37a4888e11f 100644 --- a/cpp/src/IceSSL/Util.cpp +++ b/cpp/src/IceSSL/Util.cpp @@ -13,18 +13,14 @@ #endif #include <IceSSL/Util.h> -#include <IceUtil/ScopedArray.h> #include <IceUtil/FileUtil.h> +#include <IceUtil/StringUtil.h> #include <Ice/LocalException.h> #include <Ice/Network.h> #include <Ice/Object.h> #ifdef ICE_USE_OPENSSL -# ifdef _WIN32 -# include <direct.h> -# include <sys/types.h> -# endif # include <openssl/err.h> #endif @@ -33,6 +29,27 @@ using namespace Ice; using namespace IceUtil; using namespace IceSSL; +void +IceSSL::readFile(const string& file, vector<char>& buffer) +{ + IceUtilInternal::ifstream is(file, ios::in | ios::binary); + if(!is.good()) + { + throw CertificateReadException(__FILE__, __LINE__, "error opening file " + file); + } + + is.seekg(0, is.end); + buffer.resize(static_cast<int>(is.tellg())); + is.seekg(0, is.beg); + + is.read(&buffer[0], buffer.size()); + + if(!is.good()) + { + throw CertificateReadException(__FILE__, __LINE__, "error reading file " + file); + } +} + #ifdef ICE_USE_OPENSSL namespace { @@ -179,8 +196,6 @@ convertDH(unsigned char* p, int plen, unsigned char* g, int glen) return dh; } -IceUtil::Shared* IceSSL::upCast(IceSSL::DHParams* p) { return p; } - IceSSL::DHParams::DHParams() : _dh512(0), _dh1024(0), _dh2048(0), _dh4096(0) { @@ -370,37 +385,14 @@ IceSSL::fromCFString(CFStringRef v) if(v) { CFIndex size = CFStringGetMaximumSizeForEncoding(CFStringGetLength(v), kCFStringEncodingUTF8); - IceUtil::ScopedArray<char> buffer(new char[size + 1]); - CFStringGetCString(v, buffer.get(), size + 1, kCFStringEncodingUTF8); - s.assign(buffer.get()); + vector<char> buffer; + buffer.resize(size + 1); + CFStringGetCString(v, &buffer[0], buffer.size(), kCFStringEncodingUTF8); + s.assign(&buffer[0]); } return s; } -int -IceSSL::readFile(const string& file, ScopedArray<char>& buffer) -{ - IceUtilInternal::ifstream is(file); - - if(!is.good()) - { - throw CertificateReadException(__FILE__, __LINE__, "error opening file " + file); - } - - is.seekg (0, is.end); - streampos length = is.tellg(); - is.seekg (0, is.beg); - - buffer.reset(new char[length]); - is.read(buffer.get(), length); - - if(!is.good()) - { - throw CertificateReadException(__FILE__, __LINE__, "error reading file " + file); - } - return length; -} - CFDictionaryRef IceSSL::getCertificateProperty(SecCertificateRef cert, CFTypeRef key) { @@ -519,10 +511,8 @@ copyMatching(SecKeychainRef keychain, CFDataRef hash, CFTypeRef type) if(err != noErr && err != errSecItemNotFound) { - ostringstream os; - os << "Error searching for keychain items\n" << errorToString(err); - CertificateReadException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateReadException(__FILE__, __LINE__, + "Error searching for keychain items\n" + errorToString(err)); } return item; @@ -561,8 +551,7 @@ addToKeychain(SecKeychainRef keychain, SecKeychainItemRef item, CFDataRef hash, ostringstream os; os << "Failure adding " << (type == kSecClassKey ? "key" : "certificate") << " to keychain\n" << errorToString(err); - CertificateReadException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateReadException(__FILE__, __LINE__, os.str()); } newItem = (SecKeychainItemRef)CFArrayGetValueAtIndex(added, 0); CFRetain(newItem); @@ -579,73 +568,105 @@ addToKeychain(SecKeychainRef keychain, SecKeychainItemRef item, CFDataRef hash, // the list of items, the caller must release it. // void -loadKeychainItems(CFArrayRef* items, CFTypeRef type, const string& file, const string& passphrase, - const PasswordPromptPtr& prompt, int passwordRetryMax) +loadKeychainItems(CFArrayRef* items, CFTypeRef type, const string& file, SecExternalFormat* format, + SecKeychainRef keychain, const string& passphrase, const PasswordPromptPtr& prompt, + int passwordRetryMax) { assert(type == kSecClassCertificate || type == kSecClassKey); - ScopedArray<char> buffer; - int length = readFile(file, buffer); + vector<char> buffer; + readFile(file, buffer); + CFDataRef data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, - (const UInt8*)buffer.get(), - length, + reinterpret_cast<const UInt8*>(&buffer[0]), + buffer.size(), kCFAllocatorNull); - - SecExternalFormat format = kSecFormatUnknown; - SecExternalItemType itemType = type == kSecClassKey ? kSecItemTypePrivateKey : kSecItemTypeCertificate; + SecExternalItemType itemType = kSecItemTypeUnknown; SecItemImportExportKeyParameters params; memset(¶ms, 0, sizeof(params)); params.version = SEC_KEY_IMPORT_EXPORT_PARAMS_VERSION; - if(type == kSecClassKey) + { - params.flags |= kSecKeyNoAccessControl; + const void* values[] = {kSecACLAuthorizationAny}; + params.keyUsage = CFArrayCreate(0, values, 1, 0); + } + + params.flags |= kSecKeyNoAccessControl; + + OSStatus err = noErr; + int count = 0; + + while(true) + { + if(!passphrase.empty()) + { + assert(!params.passphrase); + params.passphrase = toCFString(passphrase); + } + err = SecItemImport(data, 0, format, &itemType, 0, ¶ms, *format == kSecFormatPKCS12 ? keychain : 0, + items); + if(params.passphrase) + { + CFRelease(params.passphrase); + params.passphrase = 0; + } + + if(err == noErr) + { + break; + } // - // If the application doesn't provide an password prompt configure - // the default OS X password prompt. + // Try PKCS12 format. // - if(!prompt) + if(err == errSecUnknownFormat && *format != kSecFormatPKCS12) + { + *format = kSecFormatPKCS12; + itemType = kSecItemTypeAggregate; + continue; + } + + // + // Error + // + if(!passphrase.empty() || (err != errSecPassphraseRequired && + err != errSecInvalidData && + err != errSecPkcs12VerifyFailure)) + { + break; + } + + if(prompt && count < passwordRetryMax) + { + params.passphrase = toCFString(prompt->getPassword()); + } + // + // Configure the default OS X password prompt if passphrase is required + // and the user doesn't provide a passphrase or password prompt. + // + else if(!prompt && !(params.flags & kSecKeySecurePassphrase)) { params.flags |= kSecKeySecurePassphrase; ostringstream os; os << "Enter the password for\n" << file; - params.alertPrompt = toCFString(os.str()); + continue; } - } - - if(!passphrase.empty()) - { - params.passphrase = toCFString(passphrase); - } - OSStatus err = SecItemImport(data, 0, &format, &itemType, 0, ¶ms, 0, items); - if(params.passphrase) - { - CFRelease(params.passphrase); - } - - if(prompt && err == errSecPassphraseRequired) - { - for(int i = 0; i < passwordRetryMax; ++i) + // + // Password retry. + // + if(++count >= passwordRetryMax) { - params.passphrase = toCFString(prompt->getPassword()); - err = SecItemImport(data, 0, &format, &itemType, 0, ¶ms, 0, items); - if(params.passphrase) - { - CFRelease(params.passphrase); - } - - if(err != errSecPassphraseRequired && err != errSecInvalidData) - { - break; - } + break; } } + if(params.alertPrompt) { CFRelease(params.alertPrompt); } + CFRelease(data); if(err != noErr) @@ -653,8 +674,7 @@ loadKeychainItems(CFArrayRef* items, CFTypeRef type, const string& file, const s ostringstream os; os << "Error reading " << (type == kSecClassCertificate ? "certificate " : "private key ") << "from file: `" << file << "'\n" << errorToString(err); - CertificateReadException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateReadException(__FILE__, __LINE__, os.str()); } } @@ -671,10 +691,7 @@ IceSSL::keyLabel(SecCertificateRef cert) OSStatus err = SecCertificateCopyCommonName(cert, &commonName); if(err != noErr) { - ostringstream os; - os << "certificate error:\n" << errorToString(err); - CertificateReadException ex(__FILE__, __LINE__, os.str()); - throw ex; + throw CertificateReadException(__FILE__, __LINE__, "certificate error:\n" + errorToString(err)); } string label = fromCFString(commonName); CFRelease(commonName); @@ -693,73 +710,80 @@ IceSSL::loadPrivateKey(SecKeyRef* key, const string& label, CFDataRef hash, SecK CFArrayRef items = 0; try { - loadKeychainItems(&items, kSecClassKey, file, passphrase, prompt, passwordRetryMax); - if(items && CFArrayGetCount(items) > 0) + SecExternalFormat format = kSecFormatUnknown; + loadKeychainItems(&items, kSecClassKey, file, &format, keychain, passphrase, prompt, passwordRetryMax); + if(items) { - SecKeychainItemRef item = (SecKeychainItemRef)CFArrayGetValueAtIndex(items, 0); - assert(SecKeyGetTypeID() == CFGetTypeID(item)); - CFRetain(item); - *key = (SecKeyRef)item; - - CFRelease(items); - items = 0; - - if(keychain) + int count = CFArrayGetCount(items); + for(int i = 0; i < count; ++i) { - SecKeychainItemRef newItem = addToKeychain(keychain, item, hash, kSecClassKey); - assert(newItem); - CFRelease(*key); - *key = (SecKeyRef)newItem; - if(hash) + SecKeychainItemRef item = (SecKeychainItemRef)CFArrayGetValueAtIndex(items, 0); + if(SecKeyGetTypeID() == CFGetTypeID(item)) { - // - // Create the association between the private key and the certificate, - // kSecKeyLabel attribute should match the subject key identifier. - // - SecKeychainAttribute attr; - attr.tag = kSecKeyLabel; - attr.data = (void*)CFDataGetBytePtr(hash); - attr.length = CFDataGetLength(hash); + CFRetain(item); + *key = (SecKeyRef)item; - SecKeychainAttributeList attrs; - attrs.attr = &attr; - attrs.count = 1; + CFRelease(items); + items = 0; - SecKeychainItemModifyAttributesAndData(newItem, &attrs, 0, 0); - } - - if(!label.empty()) - { - // - // kSecKeyPrintName attribute correspond to the keychain display - // name. - // - SecKeychainAttribute att; - att.tag = kSecKeyPrintName; - att.data = (void*)label.c_str(); - att.length = label.size(); - - SecKeychainAttributeList attrs; - attrs.attr = &att; - attrs.count = 1; - - SecKeychainItemModifyAttributesAndData(newItem, &attrs, 0, 0); + if(keychain) + { + SecKeychainItemRef newItem = addToKeychain(keychain, item, hash, kSecClassKey); + assert(newItem); + CFRelease(*key); + *key = (SecKeyRef)newItem; + if(hash) + { + // + // Create the association between the private key and the certificate, + // kSecKeyLabel attribute should match the subject key identifier. + // + SecKeychainAttribute attr; + attr.tag = kSecKeyLabel; + attr.data = (void*)CFDataGetBytePtr(hash); + attr.length = CFDataGetLength(hash); + + SecKeychainAttributeList attrs; + attrs.attr = &attr; + attrs.count = 1; + + SecKeychainItemModifyAttributesAndData(newItem, &attrs, 0, 0); + } + + if(!label.empty()) + { + // + // kSecKeyPrintName attribute correspond to the keychain display + // name. + // + SecKeychainAttribute att; + att.tag = kSecKeyPrintName; + att.data = (void*)label.c_str(); + att.length = label.size(); + + SecKeychainAttributeList attrs; + attrs.attr = &att; + attrs.count = 1; + + SecKeychainItemModifyAttributesAndData(newItem, &attrs, 0, 0); + } + } + break; } } } - } - catch(...) - { - if(hash) + + if(!*key) { - CFRelease(hash); - hash = 0; + throw CertificateReadException(__FILE__, __LINE__, + "Certificate error:\n error importing certificate from " + file); } - + } + catch(...) + { if(items) { CFRelease(items); - items = 0; } if(*key) @@ -773,6 +797,8 @@ IceSSL::loadPrivateKey(SecKeyRef* key, const string& label, CFDataRef hash, SecK } // +// Imports a certificate and private key and optionally add then to a keychain. +// void IceSSL::loadCertificate(SecCertificateRef* cert, CFDataRef* hash, SecKeyRef* key, SecKeychainRef keychain, const string& file, const string& passphrase, const PasswordPromptPtr& prompt, @@ -780,42 +806,93 @@ IceSSL::loadCertificate(SecCertificateRef* cert, CFDataRef* hash, SecKeyRef* key { assert(cert); CFArrayRef items = 0; + SecIdentityRef identity = 0; + try { - loadKeychainItems(&items, kSecClassCertificate, file, passphrase, prompt, passwordRetryMax); - if(items && CFArrayGetCount(items) > 0) + SecExternalFormat format = kSecFormatUnknown; + loadKeychainItems(&items, kSecClassCertificate, file, &format, keychain, passphrase, prompt, passwordRetryMax); + + if(items) { - SecKeychainItemRef item = (SecKeychainItemRef)CFArrayGetValueAtIndex(items, 0); - assert(SecCertificateGetTypeID() == CFGetTypeID(item)); - CFRetain(item); - *cert = (SecCertificateRef)item; - - CFRelease(items); - items = 0; + int count = CFArrayGetCount(items); - // - // Copy the public key hash, that is used when added the private key - // to create an association between the certificate and the corresponding - // private key. - // - if(hash) + for(int i = 0; i < count; ++i) { - *hash = getSubjectKeyIdentifier(*cert); - - if(keychain) + SecKeychainItemRef item = (SecKeychainItemRef)CFArrayGetValueAtIndex(items, i); + if(format == kSecFormatPKCS12) { - SecKeychainItemRef newItem = addToKeychain(keychain, item, *hash, kSecClassCertificate); - assert(newItem); - CFRelease(*cert); - *cert = (SecCertificateRef)newItem; - + OSStatus err = noErr; + if(SecIdentityGetTypeID() == CFGetTypeID(item)) + { + if((err = SecIdentityCopyCertificate((SecIdentityRef)item, cert)) != noErr) + { + throw CertificateReadException(__FILE__, __LINE__, "Certificate error:\n" + + errorToString(err)); + } + + if((err = SecIdentityCopyPrivateKey((SecIdentityRef)item, key)) != noErr) + { + throw CertificateReadException(__FILE__, __LINE__, "Certificate error:\n" + + errorToString(err)); + } + break; + } + else if(SecCertificateGetTypeID() == CFGetTypeID(item)) + { + CFRetain(item); + *cert = (SecCertificateRef)item; + + if((err = SecIdentityCreateWithCertificate(keychain, *cert, &identity)) != noErr) + { + throw CertificateReadException(__FILE__, __LINE__, "Certificate error:\n" + + errorToString(err)); + } + if((err = SecIdentityCopyPrivateKey(identity, key)) != noErr) + { + throw CertificateReadException(__FILE__, __LINE__, "Certificate error:\n" + + errorToString(err)); + } + + CFRelease(identity); + identity = 0; + break; + } + } + else if(SecCertificateGetTypeID() == CFGetTypeID(item)) + { + CFRetain(item); + *cert = (SecCertificateRef)item; + + // + // Copy the public key hash, that is used when added the private key + // to create an association between the certificate and the corresponding + // private key. + // + if(hash) + { + *hash = getSubjectKeyIdentifier(*cert); + + if(keychain) + { + SecKeychainItemRef newItem = addToKeychain(keychain, item, *hash, kSecClassCertificate); + assert(newItem); + CFRelease(*cert); + *cert = (SecCertificateRef)newItem; + } + } + break; } } - if(key) - { - loadPrivateKey(key, keyLabel(*cert), hash ? *hash : 0, keychain, file, passphrase, prompt, passwordRetryMax); - } + CFRelease(items); + items = 0; + } + + if(!*cert) + { + throw CertificateReadException(__FILE__, __LINE__, + "Certificate error:\n error importing certificate from " + file); } } catch(...) @@ -826,7 +903,7 @@ IceSSL::loadCertificate(SecCertificateRef* cert, CFDataRef* hash, SecKeyRef* key *cert = 0; } - if(*hash) + if(hash && *hash) { CFRelease(*hash); *hash = 0; @@ -835,7 +912,11 @@ IceSSL::loadCertificate(SecCertificateRef* cert, CFDataRef* hash, SecKeyRef* key if(items) { CFRelease(items); - items = 0; + } + + if(identity) + { + CFRelease(identity); } if(key && *key) @@ -853,7 +934,8 @@ IceSSL::loadCACertificates(const string& file, const string& passphrase, const P int passwordRetryMax) { CFArrayRef items = 0; - loadKeychainItems(&items, kSecClassCertificate, file, passphrase, prompt, passwordRetryMax); + SecExternalFormat format = kSecFormatUnknown; + loadKeychainItems(&items, kSecClassCertificate, file, &format, 0, passphrase, prompt, passwordRetryMax); CFMutableArrayRef certificateAuthorities = CFArrayCreateMutable(kCFAllocatorDefault, 0, &kCFTypeArrayCallBacks); if(items) { @@ -869,8 +951,7 @@ IceSSL::loadCACertificates(const string& file, const string& passphrase, const P } return certificateAuthorities; } - -#endif // End ICE_USE_OPENSSL +#endif bool IceSSL::checkPath(string& path, const string& defaultDir, bool dir) diff --git a/cpp/src/IceSSL/Util.h b/cpp/src/IceSSL/Util.h index 5b8784e29e5..6204dedbb4d 100644 --- a/cpp/src/IceSSL/Util.h +++ b/cpp/src/IceSSL/Util.h @@ -10,27 +10,41 @@ #ifndef ICE_SSL_UTIL_H #define ICE_SSL_UTIL_H -#include <IceSSL/Config.h> -#include <IceSSL/UtilF.h> -#include <Ice/Network.h> #include <IceUtil/Mutex.h> #include <IceUtil/Shared.h> -#include <IceUtil/ScopedArray.h> +#include <IceUtil/Handle.h> #include <IceSSL/Plugin.h> -#include <list> - -#ifdef ICE_USE_OPENSSL +#if defined(ICE_USE_OPENSSL) # include <openssl/ssl.h> -#else +# include <list> +#elif defined(ICE_USE_SECURE_TRANSPORT) # include <Security/Security.h> # include <CoreFoundation/CoreFoundation.h> +#elif defined(ICE_USE_SCHANNEL) +# include <wincrypt.h> #endif -#ifdef ICE_USE_OPENSSL namespace IceSSL { + +// +// Constants for X509 certificate alt names (AltNameOther, AltNameORAddress, AltNameEDIPartyName and +// AltNameObjectIdentifier) are not supported. +// + +//const int AltNameOther = 0; +const int AltNameEmail = 1; +const int AltNameDNS = 2; +//const int AltNameORAddress = 3; +const int AltNameDirectory = 4; +//const int AltNameEDIPartyName = 5; +const int AltNameURL = 6; +const int AltNAmeIP = 7; +//const AltNameObjectIdentifier = 8; + +#ifdef ICE_USE_OPENSSL # ifndef OPENSSL_NO_DH class DHParams : public IceUtil::Shared, public IceUtil::Mutex @@ -54,6 +68,7 @@ private: DH* _dh2048; DH* _dh4096; }; +typedef IceUtil::Handle<DHParams> DHParamsPtr; # endif // @@ -61,12 +76,8 @@ private: // std::string getSslErrors(bool); -} #elif defined(ICE_USE_SECURE_TRANSPORT) -namespace IceSSL -{ - // // Helper functions to use by Secure Transport. // @@ -80,51 +91,40 @@ toCFString(const std::string& s) } std::string errorToString(CFErrorRef); - std::string errorToString(OSStatus); // -// Read a while file into memory buffer and return the number of bytes read. -// -int readFile(const std::string&, IceUtil::ScopedArray<char>&); - - -// // Retrieve a certificate property // -CFDictionaryRef -getCertificateProperty(SecCertificateRef, CFTypeRef); - +CFDictionaryRef getCertificateProperty(SecCertificateRef, CFTypeRef); std::string keyLabel(SecCertificateRef); // // Read a private key from an file and optionaly import into a keychain. // -void loadPrivateKey(SecKeyRef*, const std::string&, CFDataRef, SecKeychainRef, - const std::string&, const std::string&, const PasswordPromptPtr&, - int); +void loadPrivateKey(SecKeyRef*, const std::string&, CFDataRef, SecKeychainRef, const std::string&, const std::string&, + const PasswordPromptPtr&, int); // -// Read a certificate and key from an file and optionaly import then into a -// keychain. +// Read a certificate and key from an file and optionaly import then +// into a keychain. // -void loadCertificate(SecCertificateRef*, CFDataRef*, SecKeyRef*, SecKeychainRef, - const std::string&, const std::string& = "", - const PasswordPromptPtr& = 0, int = 0); +void loadCertificate(SecCertificateRef*, CFDataRef*, SecKeyRef*, SecKeychainRef, const std::string&, + const std::string& = "", const PasswordPromptPtr& = 0, int = 0); -CFArrayRef loadCACertificates(const std::string&, const std::string& = "", const PasswordPromptPtr& = 0, - int = 0); - -} +CFArrayRef loadCACertificates(const std::string&, const std::string& = "", const PasswordPromptPtr& = 0, int = 0); #endif -namespace IceSSL -{ +// +// Read a file into memory buffer. +// +void readFile(const std::string&, std::vector<char>&); // -// Determine if a file or directory exists, with an optional default directory. +// Determine if a file or directory exists, with an optional default +// directory. // bool checkPath(std::string&, const std::string&, bool); diff --git a/cpp/src/IceSSL/UtilF.h b/cpp/src/IceSSL/UtilF.h deleted file mode 100644 index e44a5b00a4f..00000000000 --- a/cpp/src/IceSSL/UtilF.h +++ /dev/null @@ -1,30 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#ifndef ICE_SSL_UTIL_F_H -#define ICE_SSL_UTIL_F_H - -#include <IceUtil/Shared.h> - -#include <Ice/Handle.h> - -#include <openssl/ssl.h> - -#ifndef OPENSSL_NO_DH -namespace IceSSL -{ - -class DHParams; -IceUtil::Shared* upCast(IceSSL::DHParams*); -typedef IceInternal::Handle<DHParams> DHParamsPtr; - -} -#endif - -#endif diff --git a/cpp/src/IceUtil/.depend b/cpp/src/IceUtil/.depend index 6428d3d5aaf..db2895f3265 100644 --- a/cpp/src/IceUtil/.depend +++ b/cpp/src/IceUtil/.depend @@ -20,3 +20,4 @@ Unicode$(OBJEXT): Unicode.cpp ../IceUtil/Unicode.h $(includedir)/IceUtil/Config. MutexProtocol$(OBJEXT): MutexProtocol.cpp $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/Config.h FileUtil$(OBJEXT): FileUtil.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/StringConverter.h StringConverter$(OBJEXT): StringConverter.cpp $(includedir)/IceUtil/StringConverter.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/StringUtil.h ../IceUtil/Unicode.h +SHA1$(OBJEXT): SHA1.cpp $(includedir)/IceUtil/SHA1.h $(includedir)/IceUtil/Config.h diff --git a/cpp/src/IceUtil/.depend.mak b/cpp/src/IceUtil/.depend.mak index 1670182391c..bfaf9740cd1 100644 --- a/cpp/src/IceUtil/.depend.mak +++ b/cpp/src/IceUtil/.depend.mak @@ -20,3 +20,4 @@ Unicode$(OBJEXT): Unicode.cpp ../IceUtil/Unicode.h "$(includedir)/IceUtil/Config MutexProtocol$(OBJEXT): MutexProtocol.cpp "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/Config.h" FileUtil$(OBJEXT): FileUtil.cpp "$(includedir)/IceUtil/DisableWarnings.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/StringConverter.h" StringConverter$(OBJEXT): StringConverter.cpp "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/StringUtil.h" ../IceUtil/Unicode.h +SHA1$(OBJEXT): SHA1.cpp "$(includedir)/IceUtil/SHA1.h" "$(includedir)/IceUtil/Config.h" diff --git a/cpp/src/IceUtil/Makefile b/cpp/src/IceUtil/Makefile index 0ff4e4e525b..f5571c56242 100644 --- a/cpp/src/IceUtil/Makefile +++ b/cpp/src/IceUtil/Makefile @@ -35,7 +35,8 @@ OBJS = ArgVector.o \ Unicode.o \ MutexProtocol.o \ FileUtil.o \ - StringConverter.o + StringConverter.o \ + SHA1.o SRCS = $(OBJS:.o=.cpp) diff --git a/cpp/src/IceUtil/Makefile.mak b/cpp/src/IceUtil/Makefile.mak index 799d2091f28..3d5a3de8ff4 100644 --- a/cpp/src/IceUtil/Makefile.mak +++ b/cpp/src/IceUtil/Makefile.mak @@ -35,7 +35,8 @@ OBJS = ArgVector.obj \ UUID.obj \ Unicode.obj \ MutexProtocol.obj \ - StringConverter.obj + StringConverter.obj \ + SHA1.obj SRCS = $(OBJS:.obj=.cpp) diff --git a/cpp/src/IceUtil/SHA1.cpp b/cpp/src/IceUtil/SHA1.cpp new file mode 100644 index 00000000000..eda08e35e38 --- /dev/null +++ b/cpp/src/IceUtil/SHA1.cpp @@ -0,0 +1,128 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/SHA1.h> + +#if defined(_WIN32) && !defined(ICE_OS_WINRT) +# include <IceUtil/Exception.h> +#endif + +using namespace std; +using namespace IceUtil; + +#ifndef ICE_OS_WINRT +# if defined(_WIN32) + +namespace +{ +const int SHA_DIGEST_LENGTH = 20; +} + +IceUtil::SHA1::SHA1() : + _ctx(0), + _hash(0) +{ + if(!CryptAcquireContext(&_ctx, 0, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) + { + throw IceUtil::SyscallException(__FILE__, __LINE__, GetLastError()); + } + + if(!CryptCreateHash(_ctx, CALG_SHA1, 0, 0, &_hash)) + { + throw IceUtil::SyscallException(__FILE__, __LINE__, GetLastError()); + } +} + +IceUtil::SHA1::~SHA1() +{ + if(_hash) + { + CryptDestroyHash(_hash); + } + + if(_ctx) + { + CryptReleaseContext(_ctx, 0); + } +} +# elif defined(__APPLE__) +IceUtil::SHA1::SHA1() +{ + CC_SHA1_Init(&_ctx); +} +# else +IceUtil::SHA1::SHA1() +{ + SHA1_Init(&_ctx); +} +# endif + +void +IceUtil::SHA1::update(const unsigned char* data, size_t length) +{ +# if defined(_WIN32) + if(!CryptHashData(_hash, data, static_cast<DWORD>(length), 0)) + { + throw IceUtil::SyscallException(__FILE__, __LINE__, GetLastError()); + } +# elif defined(__APPLE__) + CC_SHA1_Update(&_ctx, reinterpret_cast<const void*>(data), length); +# else + SHA1_Update(&_ctx, reinterpret_cast<const void*>(data), length); +# endif +} + +void +IceUtil::SHA1::finalize(vector<unsigned char>& md) +{ +# if defined(_WIN32) + md.resize(SHA_DIGEST_LENGTH); + DWORD length = SHA_DIGEST_LENGTH; + if(!CryptGetHashParam(_hash, HP_HASHVAL, &md[0], &length, 0)) + { + throw IceUtil::SyscallException(__FILE__, __LINE__, GetLastError()); + } +# elif defined(__APPLE__) + md.resize(CC_SHA1_DIGEST_LENGTH); + CC_SHA1_Final(&md[0], &_ctx); +# else + md.resize(SHA_DIGEST_LENGTH); + SHA1_Final(&md[0], &_ctx); +# endif +} +#endif + +void +IceUtil::sha1(const unsigned char* data, size_t length, vector<unsigned char>& md) +{ +#if defined(ICE_OS_WINRT) + auto dataA = ref new Platform::Array<unsigned char>(const_cast<unsigned char*>(&data[0]), + static_cast<unsigned int>(data.size())); + auto hasher = Windows::Security::Cryptography::Core::HashAlgorithmProvider::OpenAlgorithm("SHA1"); + auto hashed = hasher->HashData(Windows::Security::Cryptography::CryptographicBuffer::CreateFromByteArray(dataA)); + auto reader = ::Windows::Storage::Streams::DataReader::FromBuffer(hashed); + md.resize(reader->UnconsumedBufferLength); + if(!md.empty()) + { + reader->ReadBytes(::Platform::ArrayReference<unsigned char>(&result[0], + static_cast<unsigned int>(result.size()))); + } + return md; +#elif defined(_WIN32) + SHA1 hasher; + hasher.update(data, length); + hasher.finalize(md); +#elif defined(__APPLE__) + md.resize(CC_SHA1_DIGEST_LENGTH); + CC_SHA1(&data[0], length, &md[0]); +#else + md.resize(SHA_DIGEST_LENGTH); + ::SHA1(&data[0], length, &md[0]); +#endif +} diff --git a/cpp/src/IceWS/.depend b/cpp/src/IceWS/.depend index f79518265a8..5ada30c5f1f 100644 --- a/cpp/src/IceWS/.depend +++ b/cpp/src/IceWS/.depend @@ -5,7 +5,7 @@ ConnectionInfo$(OBJEXT): ConnectionInfo.cpp $(includedir)/IceWS/ConnectionInfo.h EndpointI$(OBJEXT): EndpointI.cpp ../IceWS/EndpointI.h ../Ice/EndpointI.h ../Ice/EndpointIF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Version.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/IPEndpointIF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h ../Ice/ProtocolInstanceF.h ../IceWS/InstanceF.h $(includedir)/IceWS/EndpointInfo.h ../IceWS/AcceptorI.h $(includedir)/Ice/LoggerF.h ../Ice/Acceptor.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h ../IceWS/ConnectorI.h ../Ice/Connector.h ../IceWS/TransceiverI.h $(includedir)/IceWS/Plugin.h $(includedir)/Ice/Plugin.h ../IceWS/Util.h ../Ice/Transceiver.h ../IceWS/Instance.h ../Ice/ProtocolInstance.h $(includedir)/Ice/LocalException.h ../Ice/IPEndpointI.h ../Ice/HashUtil.h Instance$(OBJEXT): Instance.cpp ../IceWS/Instance.h ../IceWS/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceWS/EndpointI.h ../Ice/EndpointI.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/BuiltinSequences.h ../Ice/TransceiverF.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h $(includedir)/IceWS/EndpointInfo.h ../Ice/ProtocolPluginFacade.h ../Ice/ProtocolPluginFacadeF.h PluginI$(OBJEXT): PluginI.cpp ../IceWS/PluginI.h $(includedir)/IceWS/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h ../IceWS/InstanceF.h $(includedir)/Ice/CommunicatorF.h ../IceWS/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceWS/EndpointI.h ../Ice/EndpointI.h $(includedir)/Ice/Endpoint.h ../Ice/TransceiverF.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h $(includedir)/IceWS/EndpointInfo.h ../Ice/ProtocolPluginFacade.h ../Ice/ProtocolPluginFacadeF.h -TransceiverI$(OBJEXT): TransceiverI.cpp ../IceWS/TransceiverI.h ../IceWS/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/IceWS/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h ../IceWS/Util.h ../Ice/Transceiver.h ../Ice/TransceiverF.h $(includedir)/Ice/ConnectionF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/IceWS/EndpointInfo.h $(includedir)/Ice/Endpoint.h $(includedir)/IceWS/ConnectionInfo.h $(includedir)/Ice/Connection.h ../IceWS/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h ../Ice/Base64.h $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/DisableWarnings.h +TransceiverI$(OBJEXT): TransceiverI.cpp ../IceWS/TransceiverI.h ../IceWS/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/IceWS/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/LoggerF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/BuiltinSequences.h ../IceWS/Util.h ../Ice/Transceiver.h ../Ice/TransceiverF.h $(includedir)/Ice/ConnectionF.h ../Ice/Network.h ../Ice/NetworkF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/IceWS/EndpointInfo.h $(includedir)/Ice/Endpoint.h $(includedir)/IceWS/ConnectionInfo.h $(includedir)/Ice/Connection.h ../IceWS/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h ../Ice/Base64.h $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/SHA1.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/DisableWarnings.h Util$(OBJEXT): Util.cpp $(includedir)/IceUtil/Config.h ../IceWS/Util.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Object.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/DisableWarnings.h $(HDIR)/EndpointInfo.h EndpointInfo.cpp: $(slicedir)/IceWS/EndpointInfo.ice $(slicedir)/Ice/Endpoint.ice $(slicedir)/Ice/Version.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/EndpointF.ice $(SLICE2CPP) $(SLICEPARSERLIB) $(HDIR)/ConnectionInfo.h ConnectionInfo.cpp: $(slicedir)/IceWS/ConnectionInfo.ice $(slicedir)/Ice/Connection.ice $(slicedir)/Ice/ObjectAdapterF.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/Endpoint.ice $(slicedir)/Ice/Version.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/EndpointF.ice $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/src/IceWS/.depend.mak b/cpp/src/IceWS/.depend.mak index f9b7a4ed0e7..a7412c1823f 100644 --- a/cpp/src/IceWS/.depend.mak +++ b/cpp/src/IceWS/.depend.mak @@ -5,7 +5,7 @@ ConnectionInfo$(OBJEXT): ConnectionInfo.cpp "$(includedir)/IceWS/ConnectionInfo. EndpointI$(OBJEXT): EndpointI.cpp ../IceWS/EndpointI.h ../Ice/EndpointI.h ../Ice/EndpointIF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Version.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" ../Ice/TransceiverF.h ../Ice/ConnectorF.h ../Ice/AcceptorF.h ../Ice/IPEndpointIF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h ../Ice/ProtocolInstanceF.h ../IceWS/InstanceF.h "$(includedir)/IceWS/EndpointInfo.h" ../IceWS/AcceptorI.h "$(includedir)/Ice/LoggerF.h" ../Ice/Acceptor.h ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" ../IceWS/ConnectorI.h ../Ice/Connector.h ../IceWS/TransceiverI.h "$(includedir)/IceWS/Plugin.h" "$(includedir)/Ice/Plugin.h" ../IceWS/Util.h ../Ice/Transceiver.h ../IceWS/Instance.h ../Ice/ProtocolInstance.h "$(includedir)/Ice/LocalException.h" ../Ice/IPEndpointI.h ../Ice/HashUtil.h Instance$(OBJEXT): Instance.cpp ../IceWS/Instance.h ../IceWS/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceWS/EndpointI.h ../Ice/EndpointI.h "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/BuiltinSequences.h" ../Ice/TransceiverF.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h "$(includedir)/IceWS/EndpointInfo.h" ../Ice/ProtocolPluginFacade.h ../Ice/ProtocolPluginFacadeF.h PluginI$(OBJEXT): PluginI.cpp ../IceWS/PluginI.h "$(includedir)/IceWS/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" ../IceWS/InstanceF.h "$(includedir)/Ice/CommunicatorF.h" ../IceWS/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h ../Ice/NetworkF.h ../IceWS/EndpointI.h ../Ice/EndpointI.h "$(includedir)/Ice/Endpoint.h" ../Ice/TransceiverF.h ../Ice/AcceptorF.h ../Ice/EndpointFactory.h ../Ice/EndpointFactoryF.h "$(includedir)/IceWS/EndpointInfo.h" ../Ice/ProtocolPluginFacade.h ../Ice/ProtocolPluginFacadeF.h -TransceiverI$(OBJEXT): TransceiverI.cpp ../IceWS/TransceiverI.h ../IceWS/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceWS/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" ../IceWS/Util.h ../Ice/Transceiver.h ../Ice/TransceiverF.h "$(includedir)/Ice/ConnectionF.h" ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/IceWS/EndpointInfo.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/IceWS/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" ../IceWS/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LocalException.h" ../Ice/Base64.h "$(includedir)/IceUtil/Random.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/DisableWarnings.h" +TransceiverI$(OBJEXT): TransceiverI.cpp ../IceWS/TransceiverI.h ../IceWS/InstanceF.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Handle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceWS/Plugin.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/BuiltinSequences.h" ../IceWS/Util.h ../Ice/Transceiver.h ../Ice/TransceiverF.h "$(includedir)/Ice/ConnectionF.h" ../Ice/Network.h ../Ice/NetworkF.h "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/IceWS/EndpointInfo.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/IceWS/ConnectionInfo.h" "$(includedir)/Ice/Connection.h" ../IceWS/Instance.h ../Ice/ProtocolInstance.h ../Ice/ProtocolInstanceF.h ../Ice/EndpointIF.h ../Ice/ConnectorF.h ../Ice/IPEndpointIF.h "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LocalException.h" ../Ice/Base64.h "$(includedir)/IceUtil/Random.h" "$(includedir)/IceUtil/SHA1.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/DisableWarnings.h" Util$(OBJEXT): Util.cpp "$(includedir)/IceUtil/Config.h" ../IceWS/Util.h "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Object.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceUtil/StringUtil.h" "$(includedir)/IceUtil/DisableWarnings.h" $(HDIR)\EndpointInfo.h EndpointInfo.cpp: "$(slicedir)/IceWS/EndpointInfo.ice" "$(slicedir)/Ice/Endpoint.ice" "$(slicedir)/Ice/Version.ice" "$(slicedir)/Ice/BuiltinSequences.ice" "$(slicedir)/Ice/EndpointF.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)" $(HDIR)\ConnectionInfo.h ConnectionInfo.cpp: "$(slicedir)/IceWS/ConnectionInfo.ice" "$(slicedir)/Ice/Connection.ice" "$(slicedir)/Ice/ObjectAdapterF.ice" "$(slicedir)/Ice/Identity.ice" "$(slicedir)/Ice/Endpoint.ice" "$(slicedir)/Ice/Version.ice" "$(slicedir)/Ice/BuiltinSequences.ice" "$(slicedir)/Ice/EndpointF.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)" diff --git a/cpp/src/IceWS/Makefile b/cpp/src/IceWS/Makefile index 3e961791839..b1d034552c8 100644 --- a/cpp/src/IceWS/Makefile +++ b/cpp/src/IceWS/Makefile @@ -38,7 +38,7 @@ include $(top_srcdir)/config/Make.rules CPPFLAGS := -I.. $(CPPFLAGS) -DICE_WS_API_EXPORTS $(OPENSSL_FLAGS) SLICE2CPPFLAGS := --ice --include-dir IceWS --dll-export ICE_WS_API $(SLICE2CPPFLAGS) -LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil $(OPENSSL_LIBS) $(CXXLIBS) +LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil $(ICEWS_OS_LIBS) $(CXXLIBS) ifeq ($(STATICLIBS),yes) $(libdir)/$(LIBNAME): $(OBJS) diff --git a/cpp/src/IceWS/TransceiverI.cpp b/cpp/src/IceWS/TransceiverI.cpp index 3c4f8ad5127..6f1a287ea9a 100644 --- a/cpp/src/IceWS/TransceiverI.cpp +++ b/cpp/src/IceWS/TransceiverI.cpp @@ -18,6 +18,7 @@ #include <Ice/LocalException.h> #include <Ice/Base64.h> #include <IceUtil/Random.h> +#include <IceUtil/SHA1.h> #include <IceUtil/StringUtil.h> #include <IceUtil/DisableWarnings.h> @@ -589,9 +590,16 @@ IceWS::TransceiverI::read(Buffer& buf, bool& hasMoreData) } while(postRead(buf)); - hasMoreData = _readI < _readBuffer.i; - - s = buf.i == buf.b.end() ? SocketOperationNone : SocketOperationRead; + if(buf.i == buf.b.end()) + { + hasMoreData |= _readI < _readBuffer.i; + s = SocketOperationNone; + } + else + { + hasMoreData = false; + s = SocketOperationRead; + } if(((_state == StateClosingRequestPending && !_closingInitiator) || (_state == StateClosingResponsePending && _closingInitiator) || @@ -723,18 +731,18 @@ IceWS::TransceiverI::startRead(Buffer& buf) } void -IceWS::TransceiverI::finishRead(Buffer& buf) +IceWS::TransceiverI::finishRead(Buffer& buf, bool& hasMoreData) { _readPending = false; if(_state < StateOpened) { if(_state < StateConnected) { - _delegate->finishRead(buf); + _delegate->finishRead(buf, hasMoreData); } else { - _delegate->finishRead(_readBuffer); + _delegate->finishRead(_readBuffer, hasMoreData); } return; } @@ -745,11 +753,11 @@ IceWS::TransceiverI::finishRead(Buffer& buf) } else if(_readState == ReadStatePayload) { - _delegate->finishRead(buf); + _delegate->finishRead(buf, hasMoreData); } else { - _delegate->finishRead(_readBuffer); + _delegate->finishRead(_readBuffer, hasMoreData); } postRead(buf); } @@ -807,7 +815,9 @@ IceWS::TransceiverI::TransceiverI(const InstancePtr& instance, const Transceiver _writeBuffer(0), _writeBufferSize(1024), _readPending(false), - _writePending(false) + _writePending(false), + _closingInitiator(false), + _closingReason(CLOSURE_NORMAL) { // // For client connections, the sent frame payload must be @@ -841,7 +851,9 @@ IceWS::TransceiverI::TransceiverI(const InstancePtr& instance, const Transceiver _writeBuffer(0), _writeBufferSize(1024), _readPending(false), - _writePending(false) + _writePending(false), + _closingInitiator(false), + _closingReason(CLOSURE_NORMAL) { // // Write and read buffer size must be large enough to hold the frame header! @@ -973,8 +985,8 @@ IceWS::TransceiverI::handleRequest(Buffer& responseBuffer) // out << "Sec-WebSocket-Accept: "; string input = key + _wsUUID; - vector<unsigned char> v(&input[0], &input[0] + input.size()); - vector<unsigned char> hash = calcSHA1(v); + vector<unsigned char> hash; + IceUtil::sha1(reinterpret_cast<const unsigned char*>(&input[0]), input.size(), hash); out << IceInternal::Base64::encode(hash) << "\r\n" << "\r\n"; // EOM string str = out.str(); @@ -1071,8 +1083,8 @@ IceWS::TransceiverI::handleResponse() throw WebSocketException("missing value for Sec-WebSocket-Accept"); } string input = _key + _wsUUID; - vector<unsigned char> v(&input[0], &input[0] + input.size()); - vector<unsigned char> hash = calcSHA1(v); + vector<unsigned char> hash; + IceUtil::sha1(reinterpret_cast<const unsigned char*>(&input[0]), input.size(), hash); if(val != IceInternal::Base64::encode(hash)) { throw WebSocketException("invalid value `" + val + "' for Sec-WebSocket-Accept"); diff --git a/cpp/src/IceWS/TransceiverI.h b/cpp/src/IceWS/TransceiverI.h index cba5439b8b5..f7e1ecea6cd 100644 --- a/cpp/src/IceWS/TransceiverI.h +++ b/cpp/src/IceWS/TransceiverI.h @@ -45,7 +45,7 @@ public: virtual bool startWrite(IceInternal::Buffer&); virtual void finishWrite(IceInternal::Buffer&); virtual void startRead(IceInternal::Buffer&); - virtual void finishRead(IceInternal::Buffer&); + virtual void finishRead(IceInternal::Buffer&, bool&); #endif virtual std::string protocol() const; virtual std::string toString() const; @@ -133,12 +133,12 @@ private: unsigned char _writeMask[4]; size_t _writePayloadLength; - bool _closingInitiator; - int _closingReason; - bool _readPending; bool _writePending; + bool _closingInitiator; + int _closingReason; + std::vector<Ice::Byte> _pingPayload; }; typedef IceUtil::Handle<TransceiverI> TransceiverIPtr; diff --git a/cpp/src/IceWS/Util.cpp b/cpp/src/IceWS/Util.cpp index 16820ca0999..fc4388aff44 100644 --- a/cpp/src/IceWS/Util.cpp +++ b/cpp/src/IceWS/Util.cpp @@ -13,40 +13,12 @@ #include <Ice/LocalException.h> #include <IceUtil/StringUtil.h> -#ifndef ICE_OS_WINRT -# include <openssl/err.h> -# include <openssl/sha.h> -#endif - #include <IceUtil/DisableWarnings.h> using namespace std; using namespace Ice; using namespace IceWS; -vector<unsigned char> -IceWS::calcSHA1(const vector<unsigned char>& data) -{ -#ifndef ICE_OS_WINRT - vector<unsigned char> hash(SHA_DIGEST_LENGTH); - ::SHA1(&data[0], static_cast<unsigned long>(data.size()), &hash[0]); - return hash; -#else - auto dataA = ref new Platform::Array<unsigned char>(const_cast<unsigned char*>(&data[0]), - static_cast<unsigned int>(data.size())); - auto hasher = Windows::Security::Cryptography::Core::HashAlgorithmProvider::OpenAlgorithm("SHA1"); - auto hashed = hasher->HashData(Windows::Security::Cryptography::CryptographicBuffer::CreateFromByteArray(dataA)); - auto reader = ::Windows::Storage::Streams::DataReader::FromBuffer(hashed); - std::vector<unsigned char> result(reader->UnconsumedBufferLength); - if(!result.empty()) - { - reader->ReadBytes(::Platform::ArrayReference<unsigned char>(&result[0], - static_cast<unsigned int>(result.size()))); - } - return result; -#endif -} - WebSocketException::WebSocketException(const string& r) : reason(r) { diff --git a/cpp/test/Ice/background/AllTests.cpp b/cpp/test/Ice/background/AllTests.cpp index 6d67466ef30..92b355a1321 100644 --- a/cpp/test/Ice/background/AllTests.cpp +++ b/cpp/test/Ice/background/AllTests.cpp @@ -73,7 +73,8 @@ public: { } - void noResponse() + void + noResponse() { test(false); } @@ -737,7 +738,8 @@ validationTests(const ConfigurationPtr& configuration, configuration->readException(0); } - if(background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-ssl") + if(background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-ssl" && + background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-wss") { try { @@ -803,7 +805,8 @@ validationTests(const ConfigurationPtr& configuration, test(r->isCompleted() && r2->isCompleted()); #if defined(ICE_USE_IOCP) || defined(ICE_USE_CFSTREAM) - if(background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-ssl") + if(background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-ssl" && + background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-wss") { #endif try @@ -1059,7 +1062,8 @@ readWriteTests(const ConfigurationPtr& configuration, configuration->readReady(true); #if defined(ICE_USE_IOCP) || defined(ICE_USE_CFSTREAM) - if(background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-ssl") + if(background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-ssl" && + background->ice_getCommunicator()->getProperties()->getProperty("Ice.Default.Protocol") != "test-wss") { #endif try diff --git a/cpp/test/Ice/background/Transceiver.cpp b/cpp/test/Ice/background/Transceiver.cpp index 47b27c843d9..da862c9869b 100644 --- a/cpp/test/Ice/background/Transceiver.cpp +++ b/cpp/test/Ice/background/Transceiver.cpp @@ -119,7 +119,7 @@ Transceiver::read(IceInternal::Buffer& buf, bool& moreData) _readBufferPos += available; buf.i += available; } - moreData = _readBufferPos < _readBuffer.i; + moreData |= _readBufferPos < _readBuffer.i; return IceInternal::SocketOperationNone; } else @@ -147,7 +147,7 @@ void Transceiver::startRead(IceInternal::Buffer& buf) { _configuration->checkReadException(); - if(_buffered) + if(_buffered && _initialized) { size_t available = _readBuffer.i - _readBufferPos; if(available > 0) @@ -182,14 +182,14 @@ Transceiver::startRead(IceInternal::Buffer& buf) } void -Transceiver::finishRead(IceInternal::Buffer& buf) +Transceiver::finishRead(IceInternal::Buffer& buf, bool& hasMoreData) { _configuration->checkReadException(); - if(_buffered) + if(_buffered && _initialized) { if(buf.i != buf.b.end()) { - _transceiver->finishRead(_readBuffer); + _transceiver->finishRead(_readBuffer, hasMoreData); size_t requested = buf.b.end() - buf.i; size_t available = _readBuffer.i - _readBufferPos; @@ -208,7 +208,7 @@ Transceiver::finishRead(IceInternal::Buffer& buf) } else { - _transceiver->finishRead(buf); + _transceiver->finishRead(buf, hasMoreData); } } #endif diff --git a/cpp/test/Ice/background/Transceiver.h b/cpp/test/Ice/background/Transceiver.h index 407e347712a..1da179ad6df 100644 --- a/cpp/test/Ice/background/Transceiver.h +++ b/cpp/test/Ice/background/Transceiver.h @@ -27,7 +27,7 @@ public: virtual bool startWrite(IceInternal::Buffer&); virtual void finishWrite(IceInternal::Buffer&); virtual void startRead(IceInternal::Buffer&); - virtual void finishRead(IceInternal::Buffer&); + virtual void finishRead(IceInternal::Buffer&, bool&); #endif virtual std::string protocol() const; virtual std::string toString() const; diff --git a/cpp/test/Ice/timeout/AllTests.cpp b/cpp/test/Ice/timeout/AllTests.cpp index 35b83246cb7..c5be82c13d1 100644 --- a/cpp/test/Ice/timeout/AllTests.cpp +++ b/cpp/test/Ice/timeout/AllTests.cpp @@ -96,7 +96,7 @@ allTests(const Ice::CommunicatorPtr& communicator) // Expect ConnectTimeoutException. // TimeoutPrx to = TimeoutPrx::uncheckedCast(obj->ice_timeout(250)); - to->holdAdapter(500); + to->holdAdapter(1000); to->ice_getConnection()->close(true); // Force a reconnect. try { @@ -127,7 +127,8 @@ allTests(const Ice::CommunicatorPtr& communicator) } cout << "ok" << endl; - ByteSeq seq(10000000); + // The sequence needs to be large enough to fill the write/recv buffers + ByteSeq seq(20000000); cout << "testing connection timeout... " << flush; { diff --git a/cpp/test/Ice/timeout/Client.cpp b/cpp/test/Ice/timeout/Client.cpp index d0df0c07416..203ac9ce2cf 100644 --- a/cpp/test/Ice/timeout/Client.cpp +++ b/cpp/test/Ice/timeout/Client.cpp @@ -50,7 +50,7 @@ main(int argc, char* argv[]) // We need to send messages large enough to cause the transport // buffers to fill up. // - initData.properties->setProperty("Ice.MessageSizeMax", "10000"); + initData.properties->setProperty("Ice.MessageSizeMax", "20000"); communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); diff --git a/cpp/test/IceSSL/certs/3bb63662.0 b/cpp/test/IceSSL/certs/3bb63662.0 index f63b05fd929..770241b9d74 100644 --- a/cpp/test/IceSSL/certs/3bb63662.0 +++ b/cpp/test/IceSSL/certs/3bb63662.0 @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDtTCCAx6gAwIBAgIJAMUVxdyE24rJMA0GCSqGSIb3DQEBBAUAMIGZMQswCQYD +MIIDtTCCAx6gAwIBAgIJAOOgyMo5anfPMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD VQQGEwJVUzEQMA4GA1UECBMHRmxvcmlkYTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBH YXJkZW5zMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNlMRgwFgYD VQQDEw9aZXJvQyBUZXN0IENBIDIxHTAbBgkqhkiG9w0BCQEWDmluZm9AemVyb2Mu -Y29tMB4XDTEwMDMxNzE0NTAzM1oXDTIwMDMxNDE0NTAzM1owgZkxCzAJBgNVBAYT +Y29tMB4XDTE0MDcxMTE3MTczNVoXDTI0MDcwODE3MTczNVowgZkxCzAJBgNVBAYT AlVTMRAwDgYDVQQIEwdGbG9yaWRhMRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRl bnMxFDASBgNVBAoTC1plcm9DLCBJbmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMT D1plcm9DIFRlc3QgQ0EgMjEdMBsGCSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb20w -gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALaAI4V1BCJT/7basy1ws8sf7Am0 -T+avRuxr9/7QZ17F6J4rFW6SRYvjw2z03eN6+YuZBaocozUxt9TkI0sDhc1+Dr7p -j7mj+NoGjjSb7AMwQWu6rLEwD1SRCdewTMOQQ1ntHrCm5thhFxyahqhEXipBdfET -/26f+QZphtaTCSxFAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE -FClxCfTPV07zPCt/Sc5Pf2RFzl8FMIHOBgNVHSMEgcYwgcOAFClxCfTPV07zPCt/ -Sc5Pf2RFzl8FoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANsP1iadrxeJEmsiCP8px+rt6k7I +LMsNVfQpStH7LMnLF4vTiqgLp5pWxMySPDwYqt4f0apl7klAL2y+GWxlwUgqxs1y +goYPEd09q68T1OxUKqnDrBO5EB10p6LGiphVNhUg2xu2F6RnWYa6iUqk44QkyOV/ +ZGce2rGdaMHHANh/AgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE +FOaiY5WPjE1/ejxiGsMqulO7wr+xMIHOBgNVHSMEgcYwgcOAFOaiY5WPjE1/ejxi +GsMqulO7wr+xoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk YTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJvQywg SW5jLjEMMAoGA1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDIxHTAb -BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkAxRXF3ITbiskwDQYJKoZIhvcN -AQEEBQADgYEAf96l4YCA6Q/CloSoSZdnxVRpUUb8OlyEISRNYVef51KXUjeQ8Kj1 -kza7n/RcCWUS0uaAqAiOEINc4JnQYNNSP+2BXcBqd0imwBOpS+itW0fmGyWFiBaA -mtPmLuRxEl7sYfP4KTafLLLOan3pegeoz7g4OqHMsmG30fLgU+CcWBQ= +BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkA46DIyjlqd88wDQYJKoZIhvcN +AQELBQADgYEAk3P/0Ug+PySNOmoWLWbsiUTAWe6jfH6gkIJe7rbzjXpigeq2EVkq +UHq53xhVnKtbSQF3P1l7OLEeEgqNaOG8tLzqMs2HXia5CDOIY1rQG+ZFdGZxkXmR +lG/G9jfYRawlFTOQk9i5a1XbA19bX2mIEo9wjIXr0EgbIC+0cGx8O/Q= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/86907d1c.0 b/cpp/test/IceSSL/certs/86907d1c.0 index f63b05fd929..770241b9d74 100644 --- a/cpp/test/IceSSL/certs/86907d1c.0 +++ b/cpp/test/IceSSL/certs/86907d1c.0 @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDtTCCAx6gAwIBAgIJAMUVxdyE24rJMA0GCSqGSIb3DQEBBAUAMIGZMQswCQYD +MIIDtTCCAx6gAwIBAgIJAOOgyMo5anfPMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD VQQGEwJVUzEQMA4GA1UECBMHRmxvcmlkYTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBH YXJkZW5zMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNlMRgwFgYD VQQDEw9aZXJvQyBUZXN0IENBIDIxHTAbBgkqhkiG9w0BCQEWDmluZm9AemVyb2Mu -Y29tMB4XDTEwMDMxNzE0NTAzM1oXDTIwMDMxNDE0NTAzM1owgZkxCzAJBgNVBAYT +Y29tMB4XDTE0MDcxMTE3MTczNVoXDTI0MDcwODE3MTczNVowgZkxCzAJBgNVBAYT AlVTMRAwDgYDVQQIEwdGbG9yaWRhMRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRl bnMxFDASBgNVBAoTC1plcm9DLCBJbmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMT D1plcm9DIFRlc3QgQ0EgMjEdMBsGCSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb20w -gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALaAI4V1BCJT/7basy1ws8sf7Am0 -T+avRuxr9/7QZ17F6J4rFW6SRYvjw2z03eN6+YuZBaocozUxt9TkI0sDhc1+Dr7p -j7mj+NoGjjSb7AMwQWu6rLEwD1SRCdewTMOQQ1ntHrCm5thhFxyahqhEXipBdfET -/26f+QZphtaTCSxFAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE -FClxCfTPV07zPCt/Sc5Pf2RFzl8FMIHOBgNVHSMEgcYwgcOAFClxCfTPV07zPCt/ -Sc5Pf2RFzl8FoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANsP1iadrxeJEmsiCP8px+rt6k7I +LMsNVfQpStH7LMnLF4vTiqgLp5pWxMySPDwYqt4f0apl7klAL2y+GWxlwUgqxs1y +goYPEd09q68T1OxUKqnDrBO5EB10p6LGiphVNhUg2xu2F6RnWYa6iUqk44QkyOV/ +ZGce2rGdaMHHANh/AgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE +FOaiY5WPjE1/ejxiGsMqulO7wr+xMIHOBgNVHSMEgcYwgcOAFOaiY5WPjE1/ejxi +GsMqulO7wr+xoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk YTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJvQywg SW5jLjEMMAoGA1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDIxHTAb -BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkAxRXF3ITbiskwDQYJKoZIhvcN -AQEEBQADgYEAf96l4YCA6Q/CloSoSZdnxVRpUUb8OlyEISRNYVef51KXUjeQ8Kj1 -kza7n/RcCWUS0uaAqAiOEINc4JnQYNNSP+2BXcBqd0imwBOpS+itW0fmGyWFiBaA -mtPmLuRxEl7sYfP4KTafLLLOan3pegeoz7g4OqHMsmG30fLgU+CcWBQ= +BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkA46DIyjlqd88wDQYJKoZIhvcN +AQELBQADgYEAk3P/0Ug+PySNOmoWLWbsiUTAWe6jfH6gkIJe7rbzjXpigeq2EVkq +UHq53xhVnKtbSQF3P1l7OLEeEgqNaOG8tLzqMs2HXia5CDOIY1rQG+ZFdGZxkXmR +lG/G9jfYRawlFTOQk9i5a1XbA19bX2mIEo9wjIXr0EgbIC+0cGx8O/Q= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/c_dsa_ca1.pfx b/cpp/test/IceSSL/certs/c_dsa_ca1.pfx Binary files differnew file mode 100644 index 00000000000..21b62620c2e --- /dev/null +++ b/cpp/test/IceSSL/certs/c_dsa_ca1.pfx diff --git a/cpp/test/IceSSL/certs/c_dsa_nopass_ca1_priv.pem b/cpp/test/IceSSL/certs/c_dsa_nopass_ca1_priv.pem index a7108da3c2f..13ae5e8ac41 100644 --- a/cpp/test/IceSSL/certs/c_dsa_nopass_ca1_priv.pem +++ b/cpp/test/IceSSL/certs/c_dsa_nopass_ca1_priv.pem @@ -1,9 +1,9 @@ -----BEGIN PRIVATE KEY----- -MIIBSgIBADCCASsGByqGSM44BAEwggEeAoGBAMKkmY+ulRg+rL4f3aU777ZTI+g2 -cTz8XD+sNDwxVSBZOhL+PemltYpMQBd4jTDEZzYhue+ybFm34SNGgVc79a8zpJ4l -58MbiO4BtrKMC6pBD1aKj9qIw/4PNmAUETdBMdAYtv8mc3mu9cKgu4Mj8QG7olEc -b+BvfUMIxxm/KeRLAhUA8w0Jb9OJ8A59+ZpiwTwXAX4WdOUCgYBeIif8AfJYANdo -89NInffnnT0FSgkhF9+TrGWT3bNtT2tp6fKlh6f2N8SFxe14bcL6LDAv5TeLtpi2 -GXNqjKg/gcKNo1/WQpB1bbICDPKWq48YwVi/mIi2kgZr1AdFj9/a8HemnlXcBRSK -GvBegDgG0+M+bQub7wCyROxQYjDVrwQWAhRb23V5PhUzzFToWqZ1MH9O9kXBgw== +MIIBSgIBADCCASsGByqGSM44BAEwggEeAoGBAKAeWKhMAYp5sWH5rsmokCackilB +9lCSqGZ8UoBX5YhFZovv/QWqr1MhcnBbLgAFvg1tS6RXuJcl2xnddUhQ7DcgVxpo +3Pn2Mh9H0o4GLLJRDfqGOegyD2kWlFx8wNxEn/9rLg15zGv/wY218S3spaSqFeNV +k46daWFAo/SwNalxAhUAsBYQGKVHx/hqE7DhOwgRkiGwMOkCgYAN6C5PuxXOQ5yj +0UdNeOFDuHVLip2H1nnuMQImSCECMp+eiidSsWcg4K0otPwvNt31i2WBWEGv0WLw +1+ECNbHi8t1uo+oseMvdKk/l4uvWAja7diiFH4PUmOlfV/pfcYI3vkQxtv5DnpOR +KvkSwO3BDcEUe9tTUvp6AOMHByqz/QQWAhQ9Cy4VqKZybc57V7Ous51rRB6wbQ== -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/c_dsa_nopass_ca1_pub.pem b/cpp/test/IceSSL/certs/c_dsa_nopass_ca1_pub.pem index 898ec38f696..04302f8e292 100644 --- a/cpp/test/IceSSL/certs/c_dsa_nopass_ca1_pub.pem +++ b/cpp/test/IceSSL/certs/c_dsa_nopass_ca1_pub.pem @@ -2,93 +2,93 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:34 2010 GMT - Not After : Mar 14 14:50:34 2020 GMT + Not Before: Jul 11 17:17:36 2014 GMT + Not After : Jul 8 17:17:36 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Client Subject Public Key Info: Public Key Algorithm: dsaEncryption pub: - 00:86:b1:4a:aa:7c:c3:5a:ad:87:2f:7d:39:c7:3f: - 6e:68:6e:03:c1:7d:c6:64:6d:a3:87:04:c4:4c:dd: - bb:0b:c3:21:a8:91:c3:28:44:3a:44:91:6a:3f:79: - bd:a2:e0:d7:01:45:d7:bb:0a:ab:85:10:92:d7:24: - a4:82:85:f8:56:f8:6d:e4:ee:bb:f1:68:f6:5f:5b: - 11:63:95:e7:19:ae:51:7f:ce:01:af:17:81:dd:29: - 0d:40:6f:60:d4:2f:fe:44:99:ad:65:03:33:5b:b5: - b2:13:2a:80:e4:53:7b:5e:2e:29:b9:f0:18:0f:af: - fe:1c:08:e3:15:be:84:4b:cd + 3c:0a:93:23:46:4f:28:62:e2:88:0f:9c:c7:7a:1d: + bd:7a:3e:3f:6f:f7:ff:7b:21:0a:ea:bd:c1:bd:d7: + e4:86:6e:53:f8:4f:84:90:63:ad:71:f7:8a:0c:a8: + c5:e8:0b:ed:25:68:8e:f6:3b:3b:35:c2:0e:bb:e2: + 28:dc:6b:32:0e:ce:9a:e1:d5:a7:c0:48:b3:47:96: + 30:8b:5d:53:c8:1d:52:02:8f:3f:22:76:b4:e2:e6: + c3:c9:02:8c:77:c0:b4:35:e6:8b:eb:27:a8:3c:68: + 43:8c:6a:42:7b:44:fb:e8:44:4d:5e:10:07:e2:da: + 55:43:cb:a4:d0:cf:03:e5 P: - 00:c2:a4:99:8f:ae:95:18:3e:ac:be:1f:dd:a5:3b: - ef:b6:53:23:e8:36:71:3c:fc:5c:3f:ac:34:3c:31: - 55:20:59:3a:12:fe:3d:e9:a5:b5:8a:4c:40:17:78: - 8d:30:c4:67:36:21:b9:ef:b2:6c:59:b7:e1:23:46: - 81:57:3b:f5:af:33:a4:9e:25:e7:c3:1b:88:ee:01: - b6:b2:8c:0b:aa:41:0f:56:8a:8f:da:88:c3:fe:0f: - 36:60:14:11:37:41:31:d0:18:b6:ff:26:73:79:ae: - f5:c2:a0:bb:83:23:f1:01:bb:a2:51:1c:6f:e0:6f: - 7d:43:08:c7:19:bf:29:e4:4b + 00:a0:1e:58:a8:4c:01:8a:79:b1:61:f9:ae:c9:a8: + 90:26:9c:92:29:41:f6:50:92:a8:66:7c:52:80:57: + e5:88:45:66:8b:ef:fd:05:aa:af:53:21:72:70:5b: + 2e:00:05:be:0d:6d:4b:a4:57:b8:97:25:db:19:dd: + 75:48:50:ec:37:20:57:1a:68:dc:f9:f6:32:1f:47: + d2:8e:06:2c:b2:51:0d:fa:86:39:e8:32:0f:69:16: + 94:5c:7c:c0:dc:44:9f:ff:6b:2e:0d:79:cc:6b:ff: + c1:8d:b5:f1:2d:ec:a5:a4:aa:15:e3:55:93:8e:9d: + 69:61:40:a3:f4:b0:35:a9:71 Q: - 00:f3:0d:09:6f:d3:89:f0:0e:7d:f9:9a:62:c1:3c: - 17:01:7e:16:74:e5 + 00:b0:16:10:18:a5:47:c7:f8:6a:13:b0:e1:3b:08: + 11:92:21:b0:30:e9 G: - 5e:22:27:fc:01:f2:58:00:d7:68:f3:d3:48:9d:f7: - e7:9d:3d:05:4a:09:21:17:df:93:ac:65:93:dd:b3: - 6d:4f:6b:69:e9:f2:a5:87:a7:f6:37:c4:85:c5:ed: - 78:6d:c2:fa:2c:30:2f:e5:37:8b:b6:98:b6:19:73: - 6a:8c:a8:3f:81:c2:8d:a3:5f:d6:42:90:75:6d:b2: - 02:0c:f2:96:ab:8f:18:c1:58:bf:98:88:b6:92:06: - 6b:d4:07:45:8f:df:da:f0:77:a6:9e:55:dc:05:14: - 8a:1a:f0:5e:80:38:06:d3:e3:3e:6d:0b:9b:ef:00: - b2:44:ec:50:62:30:d5:af + 0d:e8:2e:4f:bb:15:ce:43:9c:a3:d1:47:4d:78:e1: + 43:b8:75:4b:8a:9d:87:d6:79:ee:31:02:26:48:21: + 02:32:9f:9e:8a:27:52:b1:67:20:e0:ad:28:b4:fc: + 2f:36:dd:f5:8b:65:81:58:41:af:d1:62:f0:d7:e1: + 02:35:b1:e2:f2:dd:6e:a3:ea:2c:78:cb:dd:2a:4f: + e5:e2:eb:d6:02:36:bb:76:28:85:1f:83:d4:98:e9: + 5f:57:fa:5f:71:82:37:be:44:31:b6:fe:43:9e:93: + 91:2a:f9:12:c0:ed:c1:0d:c1:14:7b:db:53:52:fa: + 7a:00:e3:07:07:2a:b3:fd X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 2E:AA:D3:9F:76:7C:3F:0D:CE:DB:9D:F6:17:99:A6:32:07:CF:0D:89 + 9D:B6:A2:C0:C5:1F:A9:79:9E:6F:3D:D4:4F:07:A9:BC:3C:A2:19:6F X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Subject Alternative Name: DNS:client, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 5c:15:67:3e:2a:ec:4b:8f:e6:d8:bc:bb:43:01:4a:36:15:ba: - 3b:7a:2b:f0:44:3b:d0:e5:6f:e5:72:d0:bd:8f:8c:77:64:d8: - b4:57:a0:3d:6f:bc:46:ff:da:c5:39:04:a5:06:c5:fe:42:08: - 2e:74:b6:47:2e:36:e6:11:f7:47:b1:b4:5d:d4:5e:01:18:6b: - 51:97:fc:b0:9f:60:9f:a3:b3:cb:0b:b1:18:69:b5:4b:eb:40: - 69:c9:ba:a5:19:8e:a8:df:1a:62:a0:51:7a:96:4e:71:5f:04: - 7f:df:ba:46:71:27:20:df:60:95:51:6d:68:4c:ca:6b:8a:27: - 79:60 + Signature Algorithm: sha256WithRSAEncryption + 1b:ca:b4:aa:da:31:3e:66:73:78:e4:4b:91:2b:73:5e:b1:41: + 93:69:d9:e8:bb:4a:d0:3d:af:7e:92:ac:55:07:46:1c:4a:0a: + 98:be:5c:16:d5:8e:3b:ef:e0:fd:60:48:91:0d:02:83:e5:ad: + 40:7d:3e:d0:7c:f5:3a:7e:af:ee:4e:1e:7f:56:8e:45:4c:29: + 25:05:26:ba:64:84:5b:aa:5c:a8:45:75:99:3d:a1:fb:07:8f: + 1a:1d:ea:12:ca:bd:c2:1a:1a:6a:3e:18:b6:17:13:cf:6c:3b: + 6d:78:d9:45:25:e9:5f:aa:66:68:90:01:86:4b:a2:61:12:a9: + 3e:2f -----BEGIN CERTIFICATE----- -MIIEtjCCBB+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIEtTCCBB6gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzRaFw0yMDAzMTQxNDUwMzRaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0yNDA3MDgxNzE3MzZaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGQ2xpZW50 -MIIBtzCCASsGByqGSM44BAEwggEeAoGBAMKkmY+ulRg+rL4f3aU777ZTI+g2cTz8 -XD+sNDwxVSBZOhL+PemltYpMQBd4jTDEZzYhue+ybFm34SNGgVc79a8zpJ4l58Mb -iO4BtrKMC6pBD1aKj9qIw/4PNmAUETdBMdAYtv8mc3mu9cKgu4Mj8QG7olEcb+Bv -fUMIxxm/KeRLAhUA8w0Jb9OJ8A59+ZpiwTwXAX4WdOUCgYBeIif8AfJYANdo89NI -nffnnT0FSgkhF9+TrGWT3bNtT2tp6fKlh6f2N8SFxe14bcL6LDAv5TeLtpi2GXNq -jKg/gcKNo1/WQpB1bbICDPKWq48YwVi/mIi2kgZr1AdFj9/a8HemnlXcBRSKGvBe -gDgG0+M+bQub7wCyROxQYjDVrwOBhQACgYEAhrFKqnzDWq2HL305xz9uaG4DwX3G -ZG2jhwTETN27C8MhqJHDKEQ6RJFqP3m9ouDXAUXXuwqrhRCS1ySkgoX4Vvht5O67 -8Wj2X1sRY5XnGa5Rf84BrxeB3SkNQG9g1C/+RJmtZQMzW7WyEyqA5FN7Xi4pufAY -D6/+HAjjFb6ES82jggEYMIIBFDAJBgNVHRMEAjAAMB0GA1UdDgQWBBQuqtOfdnw/ -Dc7bnfYXmaYyB88NiTCBzgYDVR0jBIHGMIHDgBSi2YAq5JGOC4W35NUoYk/HyYvo -0aGBn6SBnDCBmTELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNV -BAcTElBhbG0gQmVhY2ggR2FyZGVuczEUMBIGA1UEChMLWmVyb0MsIEluYy4xDDAK -BgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVyb0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcN -AQkBFg5pbmZvQHplcm9jLmNvbYIJAJQxcKxQahWZMBcGA1UdEQQQMA6CBmNsaWVu -dIcEfwAAATANBgkqhkiG9w0BAQUFAAOBgQBcFWc+KuxLj+bYvLtDAUo2Fbo7eivw -RDvQ5W/lctC9j4x3ZNi0V6A9b7xG/9rFOQSlBsX+QggudLZHLjbmEfdHsbRd1F4B -GGtRl/ywn2Cfo7PLC7EYabVL60BpybqlGY6o3xpioFF6lk5xXwR/37pGcScg32CV -UW1oTMpriid5YA== +MIIBtjCCASsGByqGSM44BAEwggEeAoGBAKAeWKhMAYp5sWH5rsmokCackilB9lCS +qGZ8UoBX5YhFZovv/QWqr1MhcnBbLgAFvg1tS6RXuJcl2xnddUhQ7DcgVxpo3Pn2 +Mh9H0o4GLLJRDfqGOegyD2kWlFx8wNxEn/9rLg15zGv/wY218S3spaSqFeNVk46d +aWFAo/SwNalxAhUAsBYQGKVHx/hqE7DhOwgRkiGwMOkCgYAN6C5PuxXOQ5yj0UdN +eOFDuHVLip2H1nnuMQImSCECMp+eiidSsWcg4K0otPwvNt31i2WBWEGv0WLw1+EC +NbHi8t1uo+oseMvdKk/l4uvWAja7diiFH4PUmOlfV/pfcYI3vkQxtv5DnpORKvkS +wO3BDcEUe9tTUvp6AOMHByqz/QOBhAACgYA8CpMjRk8oYuKID5zHeh29ej4/b/f/ +eyEK6r3Bvdfkhm5T+E+EkGOtcfeKDKjF6AvtJWiO9js7NcIOu+Io3GsyDs6a4dWn +wEizR5Ywi11TyB1SAo8/Ina04ubDyQKMd8C0NeaL6yeoPGhDjGpCe0T76ERNXhAH +4tpVQ8uk0M8D5aOCARgwggEUMAkGA1UdEwQCMAAwHQYDVR0OBBYEFJ22osDFH6l5 +nm891E8Hqbw8ohlvMIHOBgNVHSMEgcYwgcOAFNNkonhsjB+t8iZ5+BsFJcWLYqnz +oYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlkYTEbMBkGA1UE +BxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoG +A1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDExHTAbBgkqhkiG9w0B +CQEWDmluZm9AemVyb2MuY29tggkA+eb4EbC3hQAwFwYDVR0RBBAwDoIGY2xpZW50 +hwR/AAABMA0GCSqGSIb3DQEBCwUAA4GBABvKtKraMT5mc3jkS5Erc16xQZNp2ei7 +StA9r36SrFUHRhxKCpi+XBbVjjvv4P1gSJENAoPlrUB9PtB89Tp+r+5OHn9WjkVM +KSUFJrpkhFuqXKhFdZk9ofsHjxod6hLKvcIaGmo+GLYXE89sO2142UUl6V+qZmiQ +AYZLomESqT4v -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/c_rsa_ca1.pfx b/cpp/test/IceSSL/certs/c_rsa_ca1.pfx Binary files differnew file mode 100644 index 00000000000..9d0ae244be9 --- /dev/null +++ b/cpp/test/IceSSL/certs/c_rsa_ca1.pfx diff --git a/cpp/test/IceSSL/certs/c_rsa_ca1_exp.pfx b/cpp/test/IceSSL/certs/c_rsa_ca1_exp.pfx Binary files differnew file mode 100644 index 00000000000..dfacc00e1c9 --- /dev/null +++ b/cpp/test/IceSSL/certs/c_rsa_ca1_exp.pfx diff --git a/cpp/test/IceSSL/certs/c_rsa_ca2.pfx b/cpp/test/IceSSL/certs/c_rsa_ca2.pfx Binary files differnew file mode 100644 index 00000000000..437192906f5 --- /dev/null +++ b/cpp/test/IceSSL/certs/c_rsa_ca2.pfx diff --git a/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_exp_priv.pem b/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_exp_priv.pem index 8be85029ac7..e25492477cb 100644 --- a/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_exp_priv.pem +++ b/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_exp_priv.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANaFy95MZsJ4IyMs -EcMvuzSZqaIjidJFU+ysTMT3iQVCfnzs82ZHmuyktssB00oTPz0a7S04nvuDhLuj -nVhw2Iwy0dAo8GxQmSckGYN9TpYJI5cyXBbldvthas//GbLbFIPM0Pr5kdgimzMT -GN6M6Ef5v22YmaY/X2DAV8EWpyJBAgMBAAECgYBhGxuXuvnhGcS+DRrVQev5+Xzi -Gjgu6Jb+0VfG6U4rBViAcDoVmGA2srDT4DWmmGPN4zxtde3xaC1TStLUz/AVYlT/ -0bZnAEOnlNpy0FYOqkQmZd7Qt4LJd2Ko22l1MX6N9KHxU8dd7uhaS1aZVeqFdZ2/ -peuk1q1Hvojy1icYKQJBAO21FPH9Ic90R8/fGFXivVogApNo7Wrh9dDLsPbMqdsU -ywvFayzKzDQhtHz+npixMJiiOLTy0cZK/YPrVAgZo1MCQQDnB/e3yRZKcfgFoZyl -P25MKmymOPxyoU00bIQrIGGiD7VGWmZ8FinbH/9FTmra3P0KjPsk5Wdk/UZClDaG -2OWbAkEA0Sp6V8VqLuYfGqcw/sIZ5GguXBAEefyDFUtnWIQXIpRVZvI8sJlyvpy5 -+RMD81BXdreoNnFEbbwnACHfO5FzyQJAfENq2C2OkcgvMUg16yPs/YasHdP05Osh -jZr4lAG8weBVDlw9V2zMYpIZSXveOY43hF9EDhpdvJIGInV5xpoPFQJACbSW9Uoj -mD2JYfwYRlJzZITG+33XjSF2pdHmDb6bq2pzwnJRhWNkAvKT7QGClsEJuGIRoh0u -hImtaCUg6HM3/w== +MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMWv/FTXQHPGCGPS +dYwYKOSE8pRAPU9aI5NjMrbDGgR9DXw7YDWCQyQDbitnSZcxqt9VaakpyXUAM8XM +DhcMnbr+Ha88RWHURl7sW4lOyfNoM4izlY8LXQi3RW2BpPgAp/IsE4cc4NlBKlfD +I9oGQqL3Z2ErWBA+S3j0QB3NktjrAgMBAAECgYBPzK2INefflCYY3YDzz2DadkxR +yei12oYX3eg/3FvpSe2io3k/wFiH9haH0MblEHiQdLMVRTf8UduUUb2yUjZs6cQL +FaBc3SfX6CtLIJl3Yjn0edb3/NEF13Y6O3YYfeKSgKaVmimpJrvhUzKitJ+y0b6I +b3AlruP+WxN9bWibcQJBAPmLOO8k4Jj/LcC1APD1OYsz++cCGootNFi38rtNl9vP +E1+/08t+Tvk2qy8vkwyFEqAsAMNHj0Sg7WLJCAbrLskCQQDKzU7pAaGMDaJA6w+c +U+YZVHKROUxFQhzEPGQQ+bHf3E1ENkzD+aP4G7JkmKYCTPDaW+YLJGD5Q00JN5mu +e2ATAkBBTy6XaA9f+2j+BmE4rvVgeTp0Oxi3ER2iGoJsguI7pPZtGMdVerkwgB5N +OyZBIJK/WMTaVuAoFfYK5JI1PVgBAkA6iO/RySq7pePDIRWsZXrwrLM0v3kINIDh +Ex0+2RNCLfAPVCzsE84D+tqOtpCT8WlDXWsUpDdpOsetdWLiPbIJAkEA1hoMNZDd +ngOunRuUYbuTt2IzylzhW4W+BxCHRaj85zK5W0NzzOlXGf53A4yB8Db7Qxx2AHnT +waOVv/S24Tleag== -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_exp_pub.pem b/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_exp_pub.pem index 8971325069a..11a6e3c6c5a 100644 --- a/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_exp_pub.pem +++ b/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_exp_pub.pem @@ -2,66 +2,66 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:34 2010 GMT + Not Before: Jul 11 17:17:36 2014 GMT Not After : Dec 31 00:00:00 2005 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Client Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:d6:85:cb:de:4c:66:c2:78:23:23:2c:11:c3:2f: - bb:34:99:a9:a2:23:89:d2:45:53:ec:ac:4c:c4:f7: - 89:05:42:7e:7c:ec:f3:66:47:9a:ec:a4:b6:cb:01: - d3:4a:13:3f:3d:1a:ed:2d:38:9e:fb:83:84:bb:a3: - 9d:58:70:d8:8c:32:d1:d0:28:f0:6c:50:99:27:24: - 19:83:7d:4e:96:09:23:97:32:5c:16:e5:76:fb:61: - 6a:cf:ff:19:b2:db:14:83:cc:d0:fa:f9:91:d8:22: - 9b:33:13:18:de:8c:e8:47:f9:bf:6d:98:99:a6:3f: - 5f:60:c0:57:c1:16:a7:22:41 + 00:c5:af:fc:54:d7:40:73:c6:08:63:d2:75:8c:18: + 28:e4:84:f2:94:40:3d:4f:5a:23:93:63:32:b6:c3: + 1a:04:7d:0d:7c:3b:60:35:82:43:24:03:6e:2b:67: + 49:97:31:aa:df:55:69:a9:29:c9:75:00:33:c5:cc: + 0e:17:0c:9d:ba:fe:1d:af:3c:45:61:d4:46:5e:ec: + 5b:89:4e:c9:f3:68:33:88:b3:95:8f:0b:5d:08:b7: + 45:6d:81:a4:f8:00:a7:f2:2c:13:87:1c:e0:d9:41: + 2a:57:c3:23:da:06:42:a2:f7:67:61:2b:58:10:3e: + 4b:78:f4:40:1d:cd:92:d8:eb Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 76:01:3F:85:33:E8:6B:C9:14:0E:DA:33:56:7F:43:AE:17:90:A1:1C + F4:C8:94:EC:B9:E2:64:15:3D:8F:A6:70:BC:49:11:16:B1:0F:7C:54 X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Subject Alternative Name: DNS:client, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 78:88:01:44:5c:49:7a:f0:49:bc:fe:a4:36:65:86:51:0a:0e: - c5:05:9f:71:3a:7b:c7:e7:5f:51:b9:e7:31:a8:45:a8:36:ed: - 25:4b:61:55:5e:33:39:bb:f8:c7:f8:d6:49:92:53:9d:15:11: - a6:85:4c:6d:2f:05:ab:26:bb:40:86:9b:f4:61:e5:4d:fc:72: - 64:34:5c:83:66:90:f0:60:c2:12:8d:04:cf:f5:5d:7e:7c:15: - fb:f5:2a:2e:f2:11:f4:ff:95:d2:67:47:f6:85:82:09:78:fd: - 4e:d3:cf:eb:2f:bc:b8:b0:e9:93:c2:37:9c:e7:a0:2a:17:6e: - 7d:89 + Signature Algorithm: sha256WithRSAEncryption + 06:58:45:a0:7f:77:29:e7:29:57:71:8a:ad:27:d9:2a:1c:31: + 9a:33:b1:0e:f2:47:7b:6e:a0:92:61:7c:77:f1:c5:98:65:3e: + cc:fd:3a:aa:33:a2:4b:3c:76:d2:c9:94:da:86:48:39:bf:4e: + 70:ea:3a:66:01:5d:93:99:21:85:68:48:93:9c:41:9d:f8:72: + d9:57:6e:f7:a1:cb:4d:c5:0d:bc:18:24:23:dc:1d:f8:69:7d: + 92:86:c7:38:46:bc:0c:6c:81:9b:db:7f:62:8d:d8:e1:9c:77: + 8a:58:00:8c:43:9c:3e:97:8f:3e:e8:6d:bb:b1:e3:83:17:26: + 38:e9 -----BEGIN CERTIFICATE----- -MIIDnTCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDnTCCAwagAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzRaFw0wNTEyMzEwMDAwMDBaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0wNTEyMzEwMDAwMDBaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGQ2xpZW50 -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWhcveTGbCeCMjLBHDL7s0mami -I4nSRVPsrEzE94kFQn587PNmR5rspLbLAdNKEz89Gu0tOJ77g4S7o51YcNiMMtHQ -KPBsUJknJBmDfU6WCSOXMlwW5Xb7YWrP/xmy2xSDzND6+ZHYIpszExjejOhH+b9t -mJmmP19gwFfBFqciQQIDAQABo4IBGDCCARQwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -dgE/hTPoa8kUDtozVn9DrheQoRwwgc4GA1UdIwSBxjCBw4AUotmAKuSRjguFt+TV -KGJPx8mL6NGhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFr/xU10Bzxghj0nWMGCjkhPKU +QD1PWiOTYzK2wxoEfQ18O2A1gkMkA24rZ0mXMarfVWmpKcl1ADPFzA4XDJ26/h2v +PEVh1EZe7FuJTsnzaDOIs5WPC10It0VtgaT4AKfyLBOHHODZQSpXwyPaBkKi92dh +K1gQPkt49EAdzZLY6wIDAQABo4IBGDCCARQwCQYDVR0TBAIwADAdBgNVHQ4EFgQU +9MiU7LniZBU9j6ZwvEkRFrEPfFQwgc4GA1UdIwSBxjCBw4AU02SieGyMH63yJnn4 +GwUlxYtiqfOhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh MRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9DLCBJ bmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMTEdMBsG -CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQCUMXCsUGoVmTAXBgNVHREEEDAO -ggZjbGllbnSHBH8AAAEwDQYJKoZIhvcNAQEFBQADgYEAeIgBRFxJevBJvP6kNmWG -UQoOxQWfcTp7x+dfUbnnMahFqDbtJUthVV4zObv4x/jWSZJTnRURpoVMbS8Fqya7 -QIab9GHlTfxyZDRcg2aQ8GDCEo0Ez/VdfnwV+/UqLvIR9P+V0mdH9oWCCXj9TtPP -6y+8uLDpk8I3nOegKhdufYk= +CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQD55vgRsLeFADAXBgNVHREEEDAO +ggZjbGllbnSHBH8AAAEwDQYJKoZIhvcNAQELBQADgYEABlhFoH93KecpV3GKrSfZ +KhwxmjOxDvJHe26gkmF8d/HFmGU+zP06qjOiSzx20smU2oZIOb9OcOo6ZgFdk5kh +hWhIk5xBnfhy2Vdu96HLTcUNvBgkI9wd+Gl9kobHOEa8DGyBm9t/Yo3Y4Zx3ilgA +jEOcPpePPuhtu7HjgxcmOOk= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_priv.pem b/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_priv.pem index 7b10f97b123..1ed66f4b472 100644 --- a/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_priv.pem +++ b/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_priv.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBANlKL8B9l1wb90KC -ns3Ajlvk3iHXpGORSTKMub6MMNkuE2uisAtsT9vNjakLm47P9M/ZgmOEHvTBnHWP -1VxrrINl4+3YsTWgkLSQIYGqKTmw3cAg2UssIIxrrw6g6RMrQhygWBC3o2Yv8hcQ -vsQOTa4oaVzLfTdF36rs0bY2JoafAgMBAAECgYAvq7DyQBt238PNWa7RYQ9aZcm+ -DvtHxNYUOv99KHCHFS65jIWm2+phRKVxktRb7o+9EfEjOBc6h0d2G0op7o14FtX0 -kthhptFBHXzqdLAXE6/ZAnnkJgPP6CCnFEnIUqsynSkBhqiKb8g2S3sDP7G24aRA -QxGiaact2TDib0Q1IQJBAPOQUflN/T8e3R8VlNSnaNwfiyg6wHvqOruf7H94Xfav -ZqSWzOG+URDeflkgmArld02pLu7AeYc8r/Hp9Dq+FdcCQQDkYm7iCpQE8xJBitcM -OtlqwFTD3Wr2Jp3SqXsjhqH3y6DcPzSHewQ8jM+9eGB0RgS6Jb2PgEjirmJroiWd -tOx5AkBGY6MNJZjWsRi+bwJAItGPLB6PVctjBGJM7v7uJ98f97j2QA6d/t52vZZO -M7k9DOvZqddCcKWui79dbnuCroSpAkAP14wdfeJanYnMphbYsFRYhVLb60X6IR+d -d0glZLdjeuqDnJbGNxBKKvJWED2QkzLMvsVxaNKldrc5BBxb3irxAkAl+C5Z7k5a -c5g5hWAZNxQ2u3wRluktJjpAD5cpHUQHZ/CxNqlkkT0+KWFbOgdnALlG7zu0xqMy -537h5PjDP0Ht +MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALNWoAgElLfLZ9Ck +JkB9nUdN2i0canIr62eA8/Qxung45i+PE8QShgXMt27ArPVdaTwDBnbuW5zv8FHq +r7ljoC1Yb8Bi8qXFl6KE/O5YsuhvDANPY075+92Y4bLwOSY7s3vV84CuOAgsahNk +jTYLpNHl6mQx6KwtO9X9Sw0SPBBnAgMBAAECgYBBTiUeZlSljStzvaK0T0nLolz1 +mmhkxPuHCF1NqiImD0o7PVXMS5aEXCTb7svM2cQtd0iOXIP95R3VJqnwz4eO/0LM +C7bbmWmVHW/hZUFNbRUmP8uTeXSD3cBm1SRVGqR4yEYihQquyhMsHsnFVhYkaf9Y +lO+bk/pJHaaNFO6pAQJBAOUqk4RqtiaQz+ZEo7imXmlrNcZZ3V47ieORJTxEI7js +Y83Nk47fMtqc5Sbb+mC7SCBVy9HX/AIv8AwYg/F42ecCQQDIVmvHFTJUXV+P2jDN +yAz2YP69nKBKwHPHdj3xHCZnV7M43wBi4c7oSoNLvDHanDDrI2XLXYqpBqFX+fbc +LUWBAkBhkr88ojLsOLxMTu1msW+BcyRyT9DxTmhnfGVeQ6TyF7Rm7CDntCDy89qd +sQvqI9OR8PXXYx7pz39lpwqGxe4BAkEAgRBT/Pzl4L4K65UIrfn8h9mzI5q9FYto +y46clzGoeBli5/eauxl4f+RJM8h5YboQNdwnH14TD5Oq7A+ofu5XgQJBAMe3ggKk ++fixBXkZrHwFPTWNYnKcjzAQ2FJKUjggo0KQnuMAYSPO5amkp+ddt2Hk8CxeI/gs +w52OD7b/P8EKkUo= -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_pub.pem b/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_pub.pem index e48fbd2fe9c..abe7f382f74 100644 --- a/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_pub.pem +++ b/cpp/test/IceSSL/certs/c_rsa_nopass_ca1_pub.pem @@ -2,66 +2,66 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:34 2010 GMT - Not After : Mar 14 14:50:34 2020 GMT + Not Before: Jul 11 17:17:36 2014 GMT + Not After : Jul 8 17:17:36 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Client Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:d9:4a:2f:c0:7d:97:5c:1b:f7:42:82:9e:cd:c0: - 8e:5b:e4:de:21:d7:a4:63:91:49:32:8c:b9:be:8c: - 30:d9:2e:13:6b:a2:b0:0b:6c:4f:db:cd:8d:a9:0b: - 9b:8e:cf:f4:cf:d9:82:63:84:1e:f4:c1:9c:75:8f: - d5:5c:6b:ac:83:65:e3:ed:d8:b1:35:a0:90:b4:90: - 21:81:aa:29:39:b0:dd:c0:20:d9:4b:2c:20:8c:6b: - af:0e:a0:e9:13:2b:42:1c:a0:58:10:b7:a3:66:2f: - f2:17:10:be:c4:0e:4d:ae:28:69:5c:cb:7d:37:45: - df:aa:ec:d1:b6:36:26:86:9f + 00:b3:56:a0:08:04:94:b7:cb:67:d0:a4:26:40:7d: + 9d:47:4d:da:2d:1c:6a:72:2b:eb:67:80:f3:f4:31: + ba:78:38:e6:2f:8f:13:c4:12:86:05:cc:b7:6e:c0: + ac:f5:5d:69:3c:03:06:76:ee:5b:9c:ef:f0:51:ea: + af:b9:63:a0:2d:58:6f:c0:62:f2:a5:c5:97:a2:84: + fc:ee:58:b2:e8:6f:0c:03:4f:63:4e:f9:fb:dd:98: + e1:b2:f0:39:26:3b:b3:7b:d5:f3:80:ae:38:08:2c: + 6a:13:64:8d:36:0b:a4:d1:e5:ea:64:31:e8:ac:2d: + 3b:d5:fd:4b:0d:12:3c:10:67 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 87:FC:AE:41:A0:C9:34:E7:05:43:C9:89:96:2C:A9:8D:10:56:14:62 + 54:72:19:52:20:4A:A8:AA:B7:37:6A:BF:DA:B9:87:E2:47:51:03:4B X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Subject Alternative Name: DNS:client, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 7d:a2:77:2f:a4:0f:93:9c:c8:35:e2:fe:c5:15:9b:41:47:36: - be:93:27:d3:c5:d5:d8:59:a7:46:98:4e:ae:c4:03:37:40:3e: - 45:0d:90:0e:b6:5e:00:af:6d:15:1f:c7:4d:1a:4d:67:e4:fa: - b8:8d:63:58:13:cc:c4:60:23:a9:25:cb:dc:42:66:67:16:46: - 6b:64:93:a3:97:63:20:7a:f4:59:5b:b7:74:11:ea:d2:5c:af: - 2e:3c:8b:60:82:d6:8b:da:c6:db:bf:6a:f2:09:95:67:53:50: - 64:c6:35:55:ca:74:2e:8f:41:5b:8e:b8:ba:7a:91:6d:8b:28: - 1d:69 + Signature Algorithm: sha256WithRSAEncryption + 2c:7d:9b:27:57:91:85:3f:67:f4:a4:6f:57:19:70:bd:b6:a4: + 9f:25:72:36:18:ba:a0:14:60:99:36:e7:98:95:0a:ed:fb:5c: + 93:e7:f5:3b:fa:ac:dd:3c:07:ec:a1:2d:40:65:84:a1:f4:aa: + 96:30:62:bc:a1:99:4a:5b:aa:e4:8d:42:af:c8:01:89:6e:33: + 61:54:2d:14:1a:25:46:29:c0:28:b6:3d:bc:67:9e:ef:d5:9f: + cd:1f:d9:bd:08:95:76:19:77:a7:25:78:66:44:50:ff:69:84: + 31:59:ec:1b:e5:53:fe:4f:66:b2:73:1e:69:3a:a9:31:68:f8: + 2a:91 -----BEGIN CERTIFICATE----- -MIIDnTCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDnTCCAwagAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzRaFw0yMDAzMTQxNDUwMzRaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0yNDA3MDgxNzE3MzZaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGQ2xpZW50 -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDZSi/AfZdcG/dCgp7NwI5b5N4h -16RjkUkyjLm+jDDZLhNrorALbE/bzY2pC5uOz/TP2YJjhB70wZx1j9Vca6yDZePt -2LE1oJC0kCGBqik5sN3AINlLLCCMa68OoOkTK0IcoFgQt6NmL/IXEL7EDk2uKGlc -y303Rd+q7NG2NiaGnwIDAQABo4IBGDCCARQwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -h/yuQaDJNOcFQ8mJliypjRBWFGIwgc4GA1UdIwSBxjCBw4AUotmAKuSRjguFt+TV -KGJPx8mL6NGhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzVqAIBJS3y2fQpCZAfZ1HTdot +HGpyK+tngPP0Mbp4OOYvjxPEEoYFzLduwKz1XWk8AwZ27luc7/BR6q+5Y6AtWG/A +YvKlxZeihPzuWLLobwwDT2NO+fvdmOGy8DkmO7N71fOArjgILGoTZI02C6TR5epk +MeisLTvV/UsNEjwQZwIDAQABo4IBGDCCARQwCQYDVR0TBAIwADAdBgNVHQ4EFgQU +VHIZUiBKqKq3N2q/2rmH4kdRA0swgc4GA1UdIwSBxjCBw4AU02SieGyMH63yJnn4 +GwUlxYtiqfOhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh MRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9DLCBJ bmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMTEdMBsG -CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQCUMXCsUGoVmTAXBgNVHREEEDAO -ggZjbGllbnSHBH8AAAEwDQYJKoZIhvcNAQEFBQADgYEAfaJ3L6QPk5zINeL+xRWb -QUc2vpMn08XV2FmnRphOrsQDN0A+RQ2QDrZeAK9tFR/HTRpNZ+T6uI1jWBPMxGAj -qSXL3EJmZxZGa2STo5djIHr0WVu3dBHq0lyvLjyLYILWi9rG279q8gmVZ1NQZMY1 -Vcp0Lo9BW464unqRbYsoHWk= +CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQD55vgRsLeFADAXBgNVHREEEDAO +ggZjbGllbnSHBH8AAAEwDQYJKoZIhvcNAQELBQADgYEALH2bJ1eRhT9n9KRvVxlw +vbaknyVyNhi6oBRgmTbnmJUK7ftck+f1O/qs3TwH7KEtQGWEofSqljBivKGZSluq +5I1Cr8gBiW4zYVQtFBolRinAKLY9vGee79WfzR/ZvQiVdhl3pyV4ZkRQ/2mEMVns +G+VT/k9msnMeaTqpMWj4KpE= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/c_rsa_nopass_ca2_priv.pem b/cpp/test/IceSSL/certs/c_rsa_nopass_ca2_priv.pem index 0f28d169d74..0b4950514c0 100644 --- a/cpp/test/IceSSL/certs/c_rsa_nopass_ca2_priv.pem +++ b/cpp/test/IceSSL/certs/c_rsa_nopass_ca2_priv.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALoDzS3M4t7jkj4s -Q054QUqvIxBMS4T8vcbwyAG+q9EtC/wm+GENSRun6rzWWJWoaChnl2fpkDPw4W5O -D3YW7mdMRAvYHtnzcaF35sV/vNgnO+z/Judk3/kyifROAV5V2RqysRs/K4g1JGHo -nuV9Xtrpp4ECVJcD2QxLPrwtxzZDAgMBAAECgYAJSjFQDUBzUzg1hK5j19ui6DY/ -FSBcZubvbYz/kU8xZieIE0YqSqiRCgTOI4JPDxcMlYfZN6/s+CW6BYn+Is0LI9Ik -PzmITP0vlb/Xsuj3R+rkmW5TTHAQsneJrRL3D5Bx/bnba7owa9tFMCda5b6GMyN9 -Q6X8ommpKOCv+1HuWQJBAOOBMzCe04FQqtlX5Rrxp9S1Ad7+a1uKEg5ZST1yEUN3 -rbeHNhBXOaqQL7XJV/RfKHWOA1kH/w0Nc/HB3wAXXCcCQQDRUEFHO9uzAn4YEmZ5 -jA3CmLYR7cQDcOBzj4heBXl0+JK+8w33P5tsfW6MRT2rTXKn5xaj9fyYrcAKgHkP -0LqFAkEAlCbw5PqpFY8okzzvz2oLNzNgsozP8N6q/3kZftAned4X3GpKxL1oqjAX -QbSKeHL3cAY5G+NfLmrSVF9CD1cnBQJAYUy+W5++vFMfTI9ZJY1uZBRbJrBxWuwg -2ndRe+ttj2txw+P2jQX7eQ5B0mDpjvUcpGJvCt7xggPa7sbT//8WhQJBAMyJJ8cD -dn6meyLPKGiunka7n8Sse5DeX4rXaGvVI8dN8G2BPfund+kJIe85VHIAIdyW7W4L -8QRFTVbPvumZoqM= +MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAPtzYUipfz5maazs +gt9JamKhg6QQzau6Vt9YHFx0oGV/qqPaCEbBGmxIEQO5XgpvN7tYZveUYuuJdZ+i +OT5v6fATqMBp20MN5d8CNeE699dotH6H77Gt/Z/BEeW5ftCgnFvKkzQu2DgMMAWt +3GhYsrz2OgJSuCW8CwDlhjJI+boZAgMBAAECgYEAn18379gOYDyFCic1o9Ria3U3 +fItx8EBAw3qTLz50UyChxQxyZnYKC0t6DUQ2CKMJTeLwEEeqkuMi/DTT13ETcedE +qFWG1FszAMkqq8H3g+Li8qdi18VGDXjiN8PQKPA0jKti4seGrSkl1kAgd4BhvHXy +EmCOpRaa1ze5qbzEqUkCQQD+z2AxA6eCBsR/jOc+zyxsWEZu+rBoPWV4GBsUy/m+ +C+qUO0F+6cYM9suXxz1XjO3HVnDpZfKZh/MLsOCDNvZ7AkEA/J/8+LCx59o/Rype +rDREhElzCeXP5+a99WguBzilgSq1uI8OiqYANC63avrtlz8yIF2U66Nkye/xkkmR +4LDXewJAIKfVDRMJ0akqX6pgLHWCnPQHOsvX9dQAgA6e0eB+RjPiwVKCx1AQeLLc +TrxTCThfdM+IMvFE0RZSOKpXa5mMpwJAZ1QxLq9nNURJmZw0+Q6v78PzL9s1/M6e +aCBio0WCPKDxjznEYuWfM7jgAPv97l1E7YQZg4Bjm01va7x31IXAvQJAWptK3chY +I6AEMnLFx4BgWUDhzaG0en8jVlW+hgHxFCCNCBRPeptnUSUFXekml6ZIQaBurpiJ +zId6YcIqUy/uFw== -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/c_rsa_nopass_ca2_pub.pem b/cpp/test/IceSSL/certs/c_rsa_nopass_ca2_pub.pem index d449a068a04..edf84039200 100644 --- a/cpp/test/IceSSL/certs/c_rsa_nopass_ca2_pub.pem +++ b/cpp/test/IceSSL/certs/c_rsa_nopass_ca2_pub.pem @@ -2,66 +2,66 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 2/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:34 2010 GMT - Not After : Mar 14 14:50:34 2020 GMT + Not Before: Jul 11 17:17:36 2014 GMT + Not After : Jul 8 17:17:36 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Client Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:ba:03:cd:2d:cc:e2:de:e3:92:3e:2c:43:4e:78: - 41:4a:af:23:10:4c:4b:84:fc:bd:c6:f0:c8:01:be: - ab:d1:2d:0b:fc:26:f8:61:0d:49:1b:a7:ea:bc:d6: - 58:95:a8:68:28:67:97:67:e9:90:33:f0:e1:6e:4e: - 0f:76:16:ee:67:4c:44:0b:d8:1e:d9:f3:71:a1:77: - e6:c5:7f:bc:d8:27:3b:ec:ff:26:e7:64:df:f9:32: - 89:f4:4e:01:5e:55:d9:1a:b2:b1:1b:3f:2b:88:35: - 24:61:e8:9e:e5:7d:5e:da:e9:a7:81:02:54:97:03: - d9:0c:4b:3e:bc:2d:c7:36:43 + 00:fb:73:61:48:a9:7f:3e:66:69:ac:ec:82:df:49: + 6a:62:a1:83:a4:10:cd:ab:ba:56:df:58:1c:5c:74: + a0:65:7f:aa:a3:da:08:46:c1:1a:6c:48:11:03:b9: + 5e:0a:6f:37:bb:58:66:f7:94:62:eb:89:75:9f:a2: + 39:3e:6f:e9:f0:13:a8:c0:69:db:43:0d:e5:df:02: + 35:e1:3a:f7:d7:68:b4:7e:87:ef:b1:ad:fd:9f:c1: + 11:e5:b9:7e:d0:a0:9c:5b:ca:93:34:2e:d8:38:0c: + 30:05:ad:dc:68:58:b2:bc:f6:3a:02:52:b8:25:bc: + 0b:00:e5:86:32:48:f9:ba:19 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 7D:37:65:25:0A:DB:24:C7:23:B1:AD:EB:63:75:97:3D:14:BA:1E:8D + DF:14:07:62:70:8B:BA:BB:36:CE:09:FE:50:8B:AE:9E:68:27:0E:66 X509v3 Authority Key Identifier: - keyid:29:71:09:F4:CF:57:4E:F3:3C:2B:7F:49:CE:4F:7F:64:45:CE:5F:05 + keyid:E6:A2:63:95:8F:8C:4D:7F:7A:3C:62:1A:C3:2A:BA:53:BB:C2:BF:B1 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 2/emailAddress=info@zeroc.com - serial:C5:15:C5:DC:84:DB:8A:C9 + serial:E3:A0:C8:CA:39:6A:77:CF X509v3 Subject Alternative Name: DNS:client, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 8a:41:b1:17:ca:11:25:bc:07:ca:b2:a5:68:9d:fb:97:b4:a4: - 73:54:75:4e:97:2f:ca:d0:45:d2:d5:17:21:a4:3d:fd:6b:a6: - 12:47:c0:95:2a:de:2b:c7:70:94:79:88:be:f9:83:5e:4f:2b: - 1e:36:24:b7:73:4c:54:cf:15:59:f9:cc:af:37:c0:05:c3:ad: - 92:e6:5a:96:92:6b:7d:c9:63:0d:fb:c2:5c:b6:ad:d0:ea:19: - c7:1e:b7:02:9a:1f:45:f2:15:65:d2:00:b7:1f:b5:73:38:4e: - 49:11:f6:81:f5:ab:8b:70:fa:b2:88:a6:35:84:48:1d:fb:61: - b7:11 + Signature Algorithm: sha256WithRSAEncryption + 24:7b:f6:3a:82:8a:27:9e:8c:c4:e8:27:2e:64:eb:2e:a4:59: + 08:95:9a:d5:41:d4:62:32:21:33:7b:11:26:ef:33:08:97:98: + e2:40:fa:c2:8a:3f:87:f2:c7:17:42:79:b0:34:88:c6:74:3f: + 5d:fe:28:3d:32:c3:2a:8a:cf:8e:ae:29:21:5d:52:df:cf:5c: + ee:10:ff:32:70:ba:ae:c2:c7:14:89:f6:38:5b:fb:6c:e3:e3: + eb:50:40:ad:c7:0b:46:d4:38:78:c4:b4:22:32:7a:72:13:16: + e3:de:f6:26:de:28:34:44:19:1f:9e:ae:c5:61:13:23:73:6a: + 9b:d7 -----BEGIN CERTIFICATE----- -MIIDnTCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDnTCCAwagAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAyMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzRaFw0yMDAzMTQxNDUwMzRaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0yNDA3MDgxNzE3MzZaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGQ2xpZW50 -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6A80tzOLe45I+LENOeEFKryMQ -TEuE/L3G8MgBvqvRLQv8JvhhDUkbp+q81liVqGgoZ5dn6ZAz8OFuTg92Fu5nTEQL -2B7Z83Ghd+bFf7zYJzvs/ybnZN/5Mon0TgFeVdkasrEbPyuINSRh6J7lfV7a6aeB -AlSXA9kMSz68Lcc2QwIDAQABo4IBGDCCARQwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -fTdlJQrbJMcjsa3rY3WXPRS6Ho0wgc4GA1UdIwSBxjCBw4AUKXEJ9M9XTvM8K39J -zk9/ZEXOXwWhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD7c2FIqX8+Zmms7ILfSWpioYOk +EM2rulbfWBxcdKBlf6qj2ghGwRpsSBEDuV4Kbze7WGb3lGLriXWfojk+b+nwE6jA +adtDDeXfAjXhOvfXaLR+h++xrf2fwRHluX7QoJxbypM0Ltg4DDAFrdxoWLK89joC +UrglvAsA5YYySPm6GQIDAQABo4IBGDCCARQwCQYDVR0TBAIwADAdBgNVHQ4EFgQU +3xQHYnCLurs2zgn+UIuunmgnDmYwgc4GA1UdIwSBxjCBw4AU5qJjlY+MTX96PGIa +wyq6U7vCv7GhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh MRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9DLCBJ bmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMjEdMBsG -CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQDFFcXchNuKyTAXBgNVHREEEDAO -ggZjbGllbnSHBH8AAAEwDQYJKoZIhvcNAQEFBQADgYEAikGxF8oRJbwHyrKlaJ37 -l7Skc1R1TpcvytBF0tUXIaQ9/WumEkfAlSreK8dwlHmIvvmDXk8rHjYkt3NMVM8V -WfnMrzfABcOtkuZalpJrfcljDfvCXLat0OoZxx63ApofRfIVZdIAtx+1czhOSRH2 -gfWri3D6soimNYRIHfthtxE= +CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQDjoMjKOWp3zzAXBgNVHREEEDAO +ggZjbGllbnSHBH8AAAEwDQYJKoZIhvcNAQELBQADgYEAJHv2OoKKJ56MxOgnLmTr +LqRZCJWa1UHUYjIhM3sRJu8zCJeY4kD6woo/h/LHF0J5sDSIxnQ/Xf4oPTLDKorP +jq4pIV1S389c7hD/MnC6rsLHFIn2OFv7bOPj61BArccLRtQ4eMS0IjJ6chMW4972 +Jt4oNEQZH56uxWETI3Nqm9c= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/c_rsa_pass_ca1.pfx b/cpp/test/IceSSL/certs/c_rsa_pass_ca1.pfx Binary files differnew file mode 100644 index 00000000000..53bf5d70d8d --- /dev/null +++ b/cpp/test/IceSSL/certs/c_rsa_pass_ca1.pfx diff --git a/cpp/test/IceSSL/certs/c_rsa_pass_ca1_priv.pem b/cpp/test/IceSSL/certs/c_rsa_pass_ca1_priv.pem index da66af69a0a..c8225432714 100644 --- a/cpp/test/IceSSL/certs/c_rsa_pass_ca1_priv.pem +++ b/cpp/test/IceSSL/certs/c_rsa_pass_ca1_priv.pem @@ -1,17 +1,17 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIxCo3iRA151ACAggA -MBQGCCqGSIb3DQMHBAhBlN2Q6FMWUwSCAoBrCtl5Wepn2aMPGZ1Tmv5Z2zGB5YiR -po242sQI3z+pVeEBg5T6Dhia19ZwC+BPminubAy8SqFu77BOqpt7kyONRg6CISKg -fJ8CcIgfOZcrOPITaWRCM+dqcWUSTvchxyXfLl8DQ3cPd7eg+hyupcnilVX44KEA -vxW4kuEKsTL8TKDjO9gp+xGC6xT35THRizYNHY6kM2fhAMxdObhhOFz9UEcrQpD5 -eOeZyZHmU13lWtcZGQJGdFImzEzqfBSwNfUbR3gYnIoNy95biCDTUQX0XYEwQBmd -Qu18STLCIJkHsr4Tf7QQ8XpUelXJzeXbg56XnophqYpIQjfeQLI6sfHftn4EeJ6Y -lRuGcRd1NHlbXupwbUxXIEEGDQncfFfgIsXZLHue8iroL0msgYOuavDADMUoXpy3 -nNLvOg065Ul+4a1CviKyMIm4t+xkFiPDwHX6CEesDNYSwDayzthOex9F1239+LSf -+NVyjSz/fcK02mC6p0eZm3qdonWr6V02/aTGWyvCuQy/sc4uohgKdkVdTNMwUGU+ -Fd4zwlt/xxTOwyM/YQwcfHGvQKPgVOqXfOxS4HZ2Vl4YxhgFa6aIJbbcllhgX+bR -6MGOEQC9TdbLegsp5GJk/C8Wv+JnK5b/vVFms5gkrGGIvrUZP9oXTvrY8eYLFsmW -nSFzbYJTa2YwXczewLXl0BJ/GvNAs1dErUxmsJKkGoE3F7aEY8GdpmGm7Ri262Ym -DMCrTLAvxrjFxddnJNdXUzyBbHGQAg7aTB1mUG6hzT+WqEOHYtdrh/gMgnaSxRgx -ZFbclXSxIyyH83euxxMFmQ2HShw2TY/fPDQpCFLhozzv05bbnrqtmRU9 +MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIRlDVaMQMJqoCAggA +MBQGCCqGSIb3DQMHBAgOv0empB42jQSCAoBlHTQpqkNQyZ3/m1xKyYOMaqQQUP3f +o4VxnJ4H29UL2mY2hobv+g8BVKaGpilBRAVm3pHRFvUBiI2lmn2IWe3ExbpXecF0 +iG0g/tOJ1yjirvuD0JFrPNRuqp18Lsj0QYE0rgUaVqlHH04UtbnaOxFtJLp+CcyL +qjaEeh6v1X6BTr6m2K5bmTXs58Dc2JRgWDpSZdE7X80XCOAer0G/4qn6+MNxbPAc +1oZJqEQ4oIJdbyIVKLGDNuOjzFbzXq+Nfpiajx3E/A3r8O4HWXQsW9cGQvvXOb/j +nbY5wvPrpfQ+v+zJz3iJlXPMaEts7Zkqq0mDr2G0Wzh5mT/4i6e05iTQymGf7N/3 +ApQCp0BYrUNCZMwry2cduLO9aREyMewhzQZeo9aBKZxCTyjD16cdbkfTT5u/ZbQt +Z1MEZqJ4lLmfylrj4qe0PV+7z3Zf4XlS1kE7MrluvpGrE19KH7meiqBLoHW4Lt2B +oEAlXm3Z77wQWwUgBZigFirMkURqrBfdDarcy7pVQEuO0EHOBufVo/sAcplMcUJa +towPFx9zMlQ2fQATdN4tq2t6yYkQmjD1Mtn06xCikpCPydh48yRjys9V3iKIrGRE +/vGTmzdwUM4o+dUEtlaq2kQRojtjoMAhuHjvDksucUbHZ8tIrQJhn9GZ/ILwvgCA +JdZ6FOB5v92vQYlrU5oiyvFc/uYGRdcmXVxvD2mjcq/PbuvcemG/XskGX3ufKIsU +49vHg1iIyDPwrROkQQ4utk853sXlJwMISbEngHSbOANe4PhdCiHE09cmZH/gQxP0 +q95y13L4dlz2RUdCgBN6REqAEkoH0o6T4B6yZdSgbibnhd6Ta+DWMmbk -----END ENCRYPTED PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/c_rsa_pass_ca1_pub.pem b/cpp/test/IceSSL/certs/c_rsa_pass_ca1_pub.pem index 03d9837d3f7..af1a5572659 100644 --- a/cpp/test/IceSSL/certs/c_rsa_pass_ca1_pub.pem +++ b/cpp/test/IceSSL/certs/c_rsa_pass_ca1_pub.pem @@ -2,66 +2,66 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:34 2010 GMT - Not After : Mar 14 14:50:34 2020 GMT + Not Before: Jul 11 17:17:36 2014 GMT + Not After : Jul 8 17:17:36 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Client Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:eb:26:2d:df:c1:5b:a3:ae:74:60:cb:74:7f:d0: - a4:89:39:db:6b:08:6b:fd:2d:bc:42:3a:ec:00:dd: - 19:09:38:e8:dc:fb:e5:38:83:19:7e:d8:48:37:04: - 5b:7c:d0:7b:99:c6:7d:45:1f:50:36:a6:b4:5e:d7: - 2b:45:0e:b5:69:8e:02:df:54:19:39:16:3a:d3:0b: - b7:de:52:bf:a8:70:e2:b4:d0:a2:08:e1:aa:ea:3f: - 5e:5d:32:0b:1c:ff:06:b3:72:2b:db:7f:6d:a6:4e: - c3:54:51:9c:ca:9f:f8:55:8a:39:e0:da:07:b6:20: - 4e:e3:15:e1:41:b3:d8:32:e5 + 00:94:71:42:6e:d1:2a:5d:a0:9d:b6:13:05:5a:40: + 0f:42:85:28:a7:cb:da:28:93:63:f3:03:52:78:88: + e3:6e:b6:64:f3:32:8f:88:f5:0c:53:be:0e:4e:20: + 5a:2c:f5:f3:d2:a0:8f:9f:26:d6:1c:af:81:56:5e: + 0f:9e:c6:a0:a8:b8:21:1e:61:27:81:3e:ad:91:b7: + 44:a6:ee:29:bc:32:56:2b:2f:07:d3:57:79:00:98: + 8d:f3:af:6f:0c:8f:a9:27:04:52:1e:00:76:a6:9d: + 22:ca:ec:e2:4a:06:1f:df:4a:9a:9e:52:9e:60:29: + 46:08:95:9c:3e:28:b1:d7:7b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - BC:67:37:CB:29:51:25:C5:38:49:42:80:8C:C3:77:6E:AF:96:73:77 + CC:7B:FA:66:DA:CC:EC:93:5E:BE:65:E3:DA:A9:8E:3D:4E:16:1C:6B X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Subject Alternative Name: DNS:client, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 13:35:86:c6:73:44:95:59:95:76:24:ef:56:00:c5:8b:f0:74: - ce:a4:fa:f1:b7:6d:58:14:22:8f:db:65:06:a6:cf:60:cd:6b: - 75:c5:c3:0d:5b:6f:73:be:1a:8c:84:ba:05:29:7d:dd:36:62: - 36:1f:a4:fa:e1:31:5c:49:16:4c:27:d7:97:e3:48:9f:17:18: - 6c:18:62:61:47:e6:d9:d4:9f:56:5b:e0:16:64:c5:f6:e3:aa: - 39:80:c5:af:54:73:e4:4d:54:ed:fd:6c:cd:f3:d2:09:38:68: - 84:a1:d8:71:25:3f:7c:42:df:ac:ba:58:d7:2b:d8:d7:da:f9: - 44:fa + Signature Algorithm: sha256WithRSAEncryption + 92:75:e4:28:91:3b:20:48:67:33:0d:60:5b:6d:14:a2:b2:af: + 47:89:93:50:e2:d0:85:0c:3c:2d:85:af:f8:bb:42:6d:41:1c: + fb:7a:8f:9c:43:08:51:76:ef:6f:36:a1:73:7b:58:4e:fa:50: + 2e:91:00:0d:cb:5c:0c:68:8f:92:05:61:8d:4f:79:c9:77:f8: + b8:78:5a:11:7b:55:80:3c:41:c8:d5:ff:39:e9:30:2a:ca:ce: + 2f:98:78:d6:9e:2c:f1:e0:6d:97:85:19:9a:fc:67:cc:7c:09: + e4:c4:63:50:ca:60:52:42:24:61:2e:ee:69:b8:19:f2:f2:e7: + 30:08 -----BEGIN CERTIFICATE----- -MIIDnTCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDnTCCAwagAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzRaFw0yMDAzMTQxNDUwMzRaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0yNDA3MDgxNzE3MzZaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGQ2xpZW50 -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrJi3fwVujrnRgy3R/0KSJOdtr -CGv9LbxCOuwA3RkJOOjc++U4gxl+2Eg3BFt80HuZxn1FH1A2prRe1ytFDrVpjgLf -VBk5FjrTC7feUr+ocOK00KII4arqP15dMgsc/wazcivbf22mTsNUUZzKn/hVijng -2ge2IE7jFeFBs9gy5QIDAQABo4IBGDCCARQwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -vGc3yylRJcU4SUKAjMN3bq+Wc3cwgc4GA1UdIwSBxjCBw4AUotmAKuSRjguFt+TV -KGJPx8mL6NGhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUcUJu0SpdoJ22EwVaQA9ChSin +y9ook2PzA1J4iONutmTzMo+I9QxTvg5OIFos9fPSoI+fJtYcr4FWXg+exqCouCEe +YSeBPq2Rt0Sm7im8MlYrLwfTV3kAmI3zr28Mj6knBFIeAHamnSLK7OJKBh/fSpqe +Up5gKUYIlZw+KLHXewIDAQABo4IBGDCCARQwCQYDVR0TBAIwADAdBgNVHQ4EFgQU +zHv6ZtrM7JNevmXj2qmOPU4WHGswgc4GA1UdIwSBxjCBw4AU02SieGyMH63yJnn4 +GwUlxYtiqfOhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh MRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9DLCBJ bmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMTEdMBsG -CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQCUMXCsUGoVmTAXBgNVHREEEDAO -ggZjbGllbnSHBH8AAAEwDQYJKoZIhvcNAQEFBQADgYEAEzWGxnNElVmVdiTvVgDF -i/B0zqT68bdtWBQij9tlBqbPYM1rdcXDDVtvc74ajIS6BSl93TZiNh+k+uExXEkW -TCfXl+NInxcYbBhiYUfm2dSfVlvgFmTF9uOqOYDFr1Rz5E1U7f1szfPSCThohKHY -cSU/fELfrLpY1yvY19r5RPo= +CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQD55vgRsLeFADAXBgNVHREEEDAO +ggZjbGllbnSHBH8AAAEwDQYJKoZIhvcNAQELBQADgYEAknXkKJE7IEhnMw1gW20U +orKvR4mTUOLQhQw8LYWv+LtCbUEc+3qPnEMIUXbvbzahc3tYTvpQLpEADctcDGiP +kgVhjU95yXf4uHhaEXtVgDxByNX/OekwKsrOL5h41p4s8eBtl4UZmvxnzHwJ5MRj +UMpgUkIkYS7uabgZ8vLnMAg= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/cacert1.pem b/cpp/test/IceSSL/certs/cacert1.pem index 224da8829f6..1920d91f92d 100644 --- a/cpp/test/IceSSL/certs/cacert1.pem +++ b/cpp/test/IceSSL/certs/cacert1.pem @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDtTCCAx6gAwIBAgIJAJQxcKxQahWZMA0GCSqGSIb3DQEBBAUAMIGZMQswCQYD +MIIDtTCCAx6gAwIBAgIJAPnm+BGwt4UAMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD VQQGEwJVUzEQMA4GA1UECBMHRmxvcmlkYTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBH YXJkZW5zMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNlMRgwFgYD VQQDEw9aZXJvQyBUZXN0IENBIDExHTAbBgkqhkiG9w0BCQEWDmluZm9AemVyb2Mu -Y29tMB4XDTEwMDMxNzE0NTAzM1oXDTIwMDMxNDE0NTAzM1owgZkxCzAJBgNVBAYT +Y29tMB4XDTE0MDcxMTE3MTczNVoXDTI0MDcwODE3MTczNVowgZkxCzAJBgNVBAYT AlVTMRAwDgYDVQQIEwdGbG9yaWRhMRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRl bnMxFDASBgNVBAoTC1plcm9DLCBJbmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMT D1plcm9DIFRlc3QgQ0EgMTEdMBsGCSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb20w -gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKjr2OoeWxpC48D2b3pv6EADXwT4 -1tZr5JilYnUbwpf9D2UWtmB1cwdVHkmpGgEs5nx4hl9+4TXuCNQAG7j9YWIPrBei -8bshMC8Ndp41i433Ybzn2LmzqFEcs32LoShwjB3vhH4jNMC2SchiBOXHR9Muobtd -lQi02oadqeK1skOxAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE -FKLZgCrkkY4Lhbfk1ShiT8fJi+jRMIHOBgNVHSMEgcYwgcOAFKLZgCrkkY4Lhbfk -1ShiT8fJi+jRoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMvEq209nJQXzzw/30CCTdqKopFD +DrU+dWz29XLGXwxYq96KgBd0RJ8SooltvTq9lPXJ27T3hMjL8EzvelhNfzFbqFlg +CVWXgRWwXZ6b8ATzuJNSLHfKcRdxS/gKcZyAgug/iNqf0OYIfVupbh1bS0YK/i2E +R80a/9OBRU7hFrTvAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE +FNNkonhsjB+t8iZ5+BsFJcWLYqnzMIHOBgNVHSMEgcYwgcOAFNNkonhsjB+t8iZ5 ++BsFJcWLYqnzoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk YTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJvQywg SW5jLjEMMAoGA1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDExHTAb -BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkAlDFwrFBqFZkwDQYJKoZIhvcN -AQEEBQADgYEAGjLQC2Syy/mI5b7Ggl50sHxhkPvnGJIRwV+MAsv0iUZ/r/RKiPGr -lAOi3ypiR4G20AYpx5qO3J0tY+hmTY5Wq6jsVsHVDoSftnUIESyayEoy6KEOZU1s -GLCJ+/EZ7ap7+SYxb3tjYAupcO9gSK07b2Hxi6n1cGFNHD7O+k6Ca+k= +BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkA+eb4EbC3hQAwDQYJKoZIhvcN +AQELBQADgYEAw5pAUloxXHHcmm0AlrQs9icEv83+EfukmMWM9SCgFxv98LYAFQYl +zZ/6WOF6+c+cVWbMSgiNbSwT6Sp0/m17rv1s6ysS8ZCC6Bu9xlsVwOEselipsKeL +UFVFd5d2Gl+mFfvC18uoebmms6ZOFkvoUFLMedgg0oIhIk/yvkZhjfI= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/cacert2.pem b/cpp/test/IceSSL/certs/cacert2.pem index f63b05fd929..770241b9d74 100644 --- a/cpp/test/IceSSL/certs/cacert2.pem +++ b/cpp/test/IceSSL/certs/cacert2.pem @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDtTCCAx6gAwIBAgIJAMUVxdyE24rJMA0GCSqGSIb3DQEBBAUAMIGZMQswCQYD +MIIDtTCCAx6gAwIBAgIJAOOgyMo5anfPMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD VQQGEwJVUzEQMA4GA1UECBMHRmxvcmlkYTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBH YXJkZW5zMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNlMRgwFgYD VQQDEw9aZXJvQyBUZXN0IENBIDIxHTAbBgkqhkiG9w0BCQEWDmluZm9AemVyb2Mu -Y29tMB4XDTEwMDMxNzE0NTAzM1oXDTIwMDMxNDE0NTAzM1owgZkxCzAJBgNVBAYT +Y29tMB4XDTE0MDcxMTE3MTczNVoXDTI0MDcwODE3MTczNVowgZkxCzAJBgNVBAYT AlVTMRAwDgYDVQQIEwdGbG9yaWRhMRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRl bnMxFDASBgNVBAoTC1plcm9DLCBJbmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMT D1plcm9DIFRlc3QgQ0EgMjEdMBsGCSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb20w -gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALaAI4V1BCJT/7basy1ws8sf7Am0 -T+avRuxr9/7QZ17F6J4rFW6SRYvjw2z03eN6+YuZBaocozUxt9TkI0sDhc1+Dr7p -j7mj+NoGjjSb7AMwQWu6rLEwD1SRCdewTMOQQ1ntHrCm5thhFxyahqhEXipBdfET -/26f+QZphtaTCSxFAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE -FClxCfTPV07zPCt/Sc5Pf2RFzl8FMIHOBgNVHSMEgcYwgcOAFClxCfTPV07zPCt/ -Sc5Pf2RFzl8FoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANsP1iadrxeJEmsiCP8px+rt6k7I +LMsNVfQpStH7LMnLF4vTiqgLp5pWxMySPDwYqt4f0apl7klAL2y+GWxlwUgqxs1y +goYPEd09q68T1OxUKqnDrBO5EB10p6LGiphVNhUg2xu2F6RnWYa6iUqk44QkyOV/ +ZGce2rGdaMHHANh/AgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE +FOaiY5WPjE1/ejxiGsMqulO7wr+xMIHOBgNVHSMEgcYwgcOAFOaiY5WPjE1/ejxi +GsMqulO7wr+xoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk YTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJvQywg SW5jLjEMMAoGA1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDIxHTAb -BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkAxRXF3ITbiskwDQYJKoZIhvcN -AQEEBQADgYEAf96l4YCA6Q/CloSoSZdnxVRpUUb8OlyEISRNYVef51KXUjeQ8Kj1 -kza7n/RcCWUS0uaAqAiOEINc4JnQYNNSP+2BXcBqd0imwBOpS+itW0fmGyWFiBaA -mtPmLuRxEl7sYfP4KTafLLLOan3pegeoz7g4OqHMsmG30fLgU+CcWBQ= +BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkA46DIyjlqd88wDQYJKoZIhvcN +AQELBQADgYEAk3P/0Ug+PySNOmoWLWbsiUTAWe6jfH6gkIJe7rbzjXpigeq2EVkq +UHq53xhVnKtbSQF3P1l7OLEeEgqNaOG8tLzqMs2HXia5CDOIY1rQG+ZFdGZxkXmR +lG/G9jfYRawlFTOQk9i5a1XbA19bX2mIEo9wjIXr0EgbIC+0cGx8O/Q= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/cakey1.pem b/cpp/test/IceSSL/certs/cakey1.pem index 181032efc88..4441ddb56e8 100644 --- a/cpp/test/IceSSL/certs/cakey1.pem +++ b/cpp/test/IceSSL/certs/cakey1.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKjr2OoeWxpC48D2 -b3pv6EADXwT41tZr5JilYnUbwpf9D2UWtmB1cwdVHkmpGgEs5nx4hl9+4TXuCNQA -G7j9YWIPrBei8bshMC8Ndp41i433Ybzn2LmzqFEcs32LoShwjB3vhH4jNMC2Schi -BOXHR9MuobtdlQi02oadqeK1skOxAgMBAAECgYBWQtIrhELrnzrlIDN/Z8RHZDFS -vawgJUrANLyZpwpxSRZiff22NmP+W5Yy8XrJHN+6smWUQJvLSXoSoNeHWUUv1OxR -70Anm0w2puNv7xaplgBNFsgqd+mB3MnlYSeNlZ5brjmvod0NIrj6Xc4VMtZ7euEH -TgalrDBJzGWLPhQOTQJBANYnQ4Dc5f5gqKd8Rj+Awhzlz28BgvQMLskCA4OfGN1b -pTEr7G7SnOekb17c+UzFirMV1c3wHtfUIcPYNr8NLZcCQQDJ7eiVQ6XElHj7DBtQ -L1bxl/Q9tZ25HaWErHr6urW9beqZa3yuGRixyLuZN40hW8QvS0oC+yl4Ah46HxXu -tdH3AkAv3+k0Vq3H913cy2h869D5WtrLqx/WZR7UavHUK+4IFmPQoUwi3kybcGRB -Zc8JvaOrM3dvqX2LrG279YsPnOeTAkBbKkHbQdNRUQbdsLWUGgtSv5vRUHGI5c2Y -fJZ5JFpwz3MfGNwNbd8sRMgNgHsDGH8WKxObDPHH8IzdCLPKNeQ5AkAB8wlt1ojS -sR8sauxLho1oJv7LqqrooXaMVI/qkb7OZhLNZXeV+TFcU2DZBAOqCcJjajCvfcWG -MlLkGKgCO1Kc +MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMvEq209nJQXzzw/ +30CCTdqKopFDDrU+dWz29XLGXwxYq96KgBd0RJ8SooltvTq9lPXJ27T3hMjL8Ezv +elhNfzFbqFlgCVWXgRWwXZ6b8ATzuJNSLHfKcRdxS/gKcZyAgug/iNqf0OYIfVup +bh1bS0YK/i2ER80a/9OBRU7hFrTvAgMBAAECgYAi43CKirMFdDIqWbFK5USZN4Vw +I7Af/iqy1nHeDfL2NTRwLPyTh3e8WL91klGE/jLEBqTUjlCw5KInOhWTiulM5sIn +s+poEVMT8l2ti/ezaDDJV4tQZkAwrYzgmeW7aWCzK5PhKNK+wzvgvntbLyjS0pWf +Gk84e7fDjraeadOYmQJBAPUCOK0K3iQ3WmgRfwJAeGoe8cgZBvQi53+iRS3xEUGR +XF93Ql/SYVJnMKBaQ/ouXwFpclwT1slC0vuT6YaDc8sCQQDU6NOP7QOVEqDxyzlp +ViGEjcFhc48ZUhE95VT8QIrmse1sVI+WWUiM3oY9NMFMZbQbQIHwsDDuSOqQXbW9 +0UbtAkEAyxTmSXiCnN5Mz4oBDqrFpKC1pDgqbV4pKMAmO2hf90s3l+HQYICPLrBd +u+xWAB9DnHX81pmTJQuAugrmPBrldQJBALarsGDLJQiw+/+YsoBrEsTs7t8Sy9MY +s4xciCcJpWM7g44vmyaPIg0jGx/GdJZ8qCO9m/8K3GCFlSMaE8Vxmh0CQEbS9gk1 +te4uEn4rH68xXs0ji2Hv8jFI4Gs9fAkRNADZ2E6fxgDjCJOJWvN9S4aifCq+9VYI +BJE5lTKr5VZvpPM= -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/cakey2.pem b/cpp/test/IceSSL/certs/cakey2.pem index 3362f1fe358..9e89d31d6fb 100644 --- a/cpp/test/IceSSL/certs/cakey2.pem +++ b/cpp/test/IceSSL/certs/cakey2.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBALaAI4V1BCJT/7ba -sy1ws8sf7Am0T+avRuxr9/7QZ17F6J4rFW6SRYvjw2z03eN6+YuZBaocozUxt9Tk -I0sDhc1+Dr7pj7mj+NoGjjSb7AMwQWu6rLEwD1SRCdewTMOQQ1ntHrCm5thhFxya -hqhEXipBdfET/26f+QZphtaTCSxFAgMBAAECgYBKXMwchSG6GyAHEfYQfevEyK0V -BzPHe4QasaPLYH++TkYKrON+uns8FQJ8UwpWtrUX/LIiLqkR88BELvFyj2zlLYUo -InVbDwD26CwddFVufOwiJB7PGO2d5UtdhV5Mq9yttbkxC6sNSlhfJ/MjQ+Z8qaHk -57qBpigZfiHtnXDgAQJBAO6jU+QRALypgoUA1o9mRxThCgVbQBVnb3b7jACCp+81 -NWMMvwScufuBjTlsLxECfDWP0SjnSYwA/HjMpc5QbMUCQQDDxz3aavWaMf0TFfrN -6d5KDqLlAwf2BzwyWvYXNhJUHp3YE7g4pP2FR9smBzFZTd6rIGzTU0L7VXQtNHq0 -yLmBAkEAp/JEeS7KMPyvQcGsPzHA9t3F+q0UtbudA8TW7AkH/V6aGwJ+cNWIQowT -gwUzPqpcFioIDtxvs1uCU9XbHw8U7QJBAI0GMF/tPA1ehNYCty8sj5r5AA3HKSzn -+UysiSgfIwTFKR5E1ia3codXQ10ZQUr69LKAIOP4zf8Nhyoo61reXAECQQCws7oK -MSiBHTl/kJnK0qW2vvTnGyvtWI+AfZEKfGtU/h6RElHEu5YKdioatFqgB2k4y+W5 -gzMQSGyB++MZWs1R +MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANsP1iadrxeJEmsi +CP8px+rt6k7ILMsNVfQpStH7LMnLF4vTiqgLp5pWxMySPDwYqt4f0apl7klAL2y+ +GWxlwUgqxs1ygoYPEd09q68T1OxUKqnDrBO5EB10p6LGiphVNhUg2xu2F6RnWYa6 +iUqk44QkyOV/ZGce2rGdaMHHANh/AgMBAAECgYEAp0aEhKBMH3Cv+9bVf+Lrod1i +2h3I9pSMWhFd7NIb9Ut8A23Zp1Ce/x/az0ura0h60XsCo1eKiazViffvefKJj6QU +Gx/LYD7Vu0QZhAOg4bjSgzlk9MA4GfPahP79LHs6lXFancF4SprJhyzrOu0NUzpm +gi8szjm8SQDDraI5eUECQQD1hT3DXwdnN3cISYt4plll43kAkam5TZwcmnSJlXlM +/h9le4r0B7xcsvuRPki9Fx8ZkEWR/q5ftvSDvUEhDueHAkEA5Gl8l/Z/paITvMGD +CPn1kb9sxxJnBqvssBOZ8Tyt9QJyxoZYcjq7pM9/m7RDxWvFkIBxfY6osQILUjPz +iFdVSQJBAJPTJIvUVJ3F3Gpl9Y6wAdWB72HzUhBa9SqXqKEKGV3NB9RPXStu2O+r +aCJcMOmA2V3H6strX0wL2Q7UzTj9Q1MCQQCUVAhsKtBEAJeuqT/t0VzulBAQytuK +0pT21xPOO+h/xmJAl7fSHmACrBkjRRIJn24B49dPgRf9MuWlMUWCEay5AkAmwDMH +OK78L9KGMDsOjNgTjuAtfAaULSrLYewZUjjxi5bXyulYp8qYc4kni0l1hlenBoy6 +m72lAuWnjktFI9uk -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/client.cnf b/cpp/test/IceSSL/certs/client.cnf index 313354beb9f..ef9963f1dcd 100644 --- a/cpp/test/IceSSL/certs/client.cnf +++ b/cpp/test/IceSSL/certs/client.cnf @@ -31,7 +31,7 @@ certs = $dir # Where issued certs are kept. RANDFILE = $dir/.rand # Private random number file. default_days = 3650 # How long certs are valid. -default_md = sha1 # The Message Digest type. +default_md = sha256 # The Message Digest type. preserve = yes # Keep passed DN ordering? policy = ca_policy @@ -59,7 +59,7 @@ subjectAltName = DNS:client, IP:127.0.0.1 [ req ] default_bits = 1024 default_keyfile = c_rsa1024_priv.pem -default_md = sha1 +default_md = sha256 prompt = no distinguished_name = root_ca_distinguished_name x509_extensions = root_ca_extensions diff --git a/cpp/test/IceSSL/certs/dfea7658.0 b/cpp/test/IceSSL/certs/dfea7658.0 index 224da8829f6..1920d91f92d 100644 --- a/cpp/test/IceSSL/certs/dfea7658.0 +++ b/cpp/test/IceSSL/certs/dfea7658.0 @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDtTCCAx6gAwIBAgIJAJQxcKxQahWZMA0GCSqGSIb3DQEBBAUAMIGZMQswCQYD +MIIDtTCCAx6gAwIBAgIJAPnm+BGwt4UAMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD VQQGEwJVUzEQMA4GA1UECBMHRmxvcmlkYTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBH YXJkZW5zMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNlMRgwFgYD VQQDEw9aZXJvQyBUZXN0IENBIDExHTAbBgkqhkiG9w0BCQEWDmluZm9AemVyb2Mu -Y29tMB4XDTEwMDMxNzE0NTAzM1oXDTIwMDMxNDE0NTAzM1owgZkxCzAJBgNVBAYT +Y29tMB4XDTE0MDcxMTE3MTczNVoXDTI0MDcwODE3MTczNVowgZkxCzAJBgNVBAYT AlVTMRAwDgYDVQQIEwdGbG9yaWRhMRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRl bnMxFDASBgNVBAoTC1plcm9DLCBJbmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMT D1plcm9DIFRlc3QgQ0EgMTEdMBsGCSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb20w -gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKjr2OoeWxpC48D2b3pv6EADXwT4 -1tZr5JilYnUbwpf9D2UWtmB1cwdVHkmpGgEs5nx4hl9+4TXuCNQAG7j9YWIPrBei -8bshMC8Ndp41i433Ybzn2LmzqFEcs32LoShwjB3vhH4jNMC2SchiBOXHR9Muobtd -lQi02oadqeK1skOxAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE -FKLZgCrkkY4Lhbfk1ShiT8fJi+jRMIHOBgNVHSMEgcYwgcOAFKLZgCrkkY4Lhbfk -1ShiT8fJi+jRoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMvEq209nJQXzzw/30CCTdqKopFD +DrU+dWz29XLGXwxYq96KgBd0RJ8SooltvTq9lPXJ27T3hMjL8EzvelhNfzFbqFlg +CVWXgRWwXZ6b8ATzuJNSLHfKcRdxS/gKcZyAgug/iNqf0OYIfVupbh1bS0YK/i2E +R80a/9OBRU7hFrTvAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE +FNNkonhsjB+t8iZ5+BsFJcWLYqnzMIHOBgNVHSMEgcYwgcOAFNNkonhsjB+t8iZ5 ++BsFJcWLYqnzoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk YTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJvQywg SW5jLjEMMAoGA1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDExHTAb -BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkAlDFwrFBqFZkwDQYJKoZIhvcN -AQEEBQADgYEAGjLQC2Syy/mI5b7Ggl50sHxhkPvnGJIRwV+MAsv0iUZ/r/RKiPGr -lAOi3ypiR4G20AYpx5qO3J0tY+hmTY5Wq6jsVsHVDoSftnUIESyayEoy6KEOZU1s -GLCJ+/EZ7ap7+SYxb3tjYAupcO9gSK07b2Hxi6n1cGFNHD7O+k6Ca+k= +BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkA+eb4EbC3hQAwDQYJKoZIhvcN +AQELBQADgYEAw5pAUloxXHHcmm0AlrQs9icEv83+EfukmMWM9SCgFxv98LYAFQYl +zZ/6WOF6+c+cVWbMSgiNbSwT6Sp0/m17rv1s6ysS8ZCC6Bu9xlsVwOEselipsKeL +UFVFd5d2Gl+mFfvC18uoebmms6ZOFkvoUFLMedgg0oIhIk/yvkZhjfI= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/dh_params1024.der b/cpp/test/IceSSL/certs/dh_params1024.der Binary files differindex c389d364e4b..31d9a4fbab3 100644 --- a/cpp/test/IceSSL/certs/dh_params1024.der +++ b/cpp/test/IceSSL/certs/dh_params1024.der diff --git a/cpp/test/IceSSL/certs/dh_params512.der b/cpp/test/IceSSL/certs/dh_params512.der Binary files differindex fce094731f9..531fb0a15b0 100644 --- a/cpp/test/IceSSL/certs/dh_params512.der +++ b/cpp/test/IceSSL/certs/dh_params512.der diff --git a/cpp/test/IceSSL/certs/dsaparam1024.pem b/cpp/test/IceSSL/certs/dsaparam1024.pem index 3333e2dff00..1c7eb74624c 100644 --- a/cpp/test/IceSSL/certs/dsaparam1024.pem +++ b/cpp/test/IceSSL/certs/dsaparam1024.pem @@ -1,9 +1,9 @@ -----BEGIN DSA PARAMETERS----- -MIIBHgKBgQDCpJmPrpUYPqy+H92lO++2UyPoNnE8/Fw/rDQ8MVUgWToS/j3ppbWK -TEAXeI0wxGc2IbnvsmxZt+EjRoFXO/WvM6SeJefDG4juAbayjAuqQQ9Wio/aiMP+ -DzZgFBE3QTHQGLb/JnN5rvXCoLuDI/EBu6JRHG/gb31DCMcZvynkSwIVAPMNCW/T -ifAOffmaYsE8FwF+FnTlAoGAXiIn/AHyWADXaPPTSJ335509BUoJIRffk6xlk92z -bU9raenypYen9jfEhcXteG3C+iwwL+U3i7aYthlzaoyoP4HCjaNf1kKQdW2yAgzy -lquPGMFYv5iItpIGa9QHRY/f2vB3pp5V3AUUihrwXoA4BtPjPm0Lm+8AskTsUGIw -1a8= +MIIBHgKBgQCgHlioTAGKebFh+a7JqJAmnJIpQfZQkqhmfFKAV+WIRWaL7/0Fqq9T +IXJwWy4ABb4NbUukV7iXJdsZ3XVIUOw3IFcaaNz59jIfR9KOBiyyUQ36hjnoMg9p +FpRcfMDcRJ//ay4Necxr/8GNtfEt7KWkqhXjVZOOnWlhQKP0sDWpcQIVALAWEBil +R8f4ahOw4TsIEZIhsDDpAoGADeguT7sVzkOco9FHTXjhQ7h1S4qdh9Z57jECJkgh +AjKfnoonUrFnIOCtKLT8Lzbd9YtlgVhBr9Fi8NfhAjWx4vLdbqPqLHjL3SpP5eLr +1gI2u3YohR+D1JjpX1f6X3GCN75EMbb+Q56TkSr5EsDtwQ3BFHvbU1L6egDjBwcq +s/0= -----END DSA PARAMETERS----- diff --git a/cpp/test/IceSSL/certs/fd61172a.0 b/cpp/test/IceSSL/certs/fd61172a.0 index 224da8829f6..1920d91f92d 100644 --- a/cpp/test/IceSSL/certs/fd61172a.0 +++ b/cpp/test/IceSSL/certs/fd61172a.0 @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDtTCCAx6gAwIBAgIJAJQxcKxQahWZMA0GCSqGSIb3DQEBBAUAMIGZMQswCQYD +MIIDtTCCAx6gAwIBAgIJAPnm+BGwt4UAMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD VQQGEwJVUzEQMA4GA1UECBMHRmxvcmlkYTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBH YXJkZW5zMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNlMRgwFgYD VQQDEw9aZXJvQyBUZXN0IENBIDExHTAbBgkqhkiG9w0BCQEWDmluZm9AemVyb2Mu -Y29tMB4XDTEwMDMxNzE0NTAzM1oXDTIwMDMxNDE0NTAzM1owgZkxCzAJBgNVBAYT +Y29tMB4XDTE0MDcxMTE3MTczNVoXDTI0MDcwODE3MTczNVowgZkxCzAJBgNVBAYT AlVTMRAwDgYDVQQIEwdGbG9yaWRhMRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRl bnMxFDASBgNVBAoTC1plcm9DLCBJbmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMT D1plcm9DIFRlc3QgQ0EgMTEdMBsGCSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb20w -gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKjr2OoeWxpC48D2b3pv6EADXwT4 -1tZr5JilYnUbwpf9D2UWtmB1cwdVHkmpGgEs5nx4hl9+4TXuCNQAG7j9YWIPrBei -8bshMC8Ndp41i433Ybzn2LmzqFEcs32LoShwjB3vhH4jNMC2SchiBOXHR9Muobtd -lQi02oadqeK1skOxAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE -FKLZgCrkkY4Lhbfk1ShiT8fJi+jRMIHOBgNVHSMEgcYwgcOAFKLZgCrkkY4Lhbfk -1ShiT8fJi+jRoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk +gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMvEq209nJQXzzw/30CCTdqKopFD +DrU+dWz29XLGXwxYq96KgBd0RJ8SooltvTq9lPXJ27T3hMjL8EzvelhNfzFbqFlg +CVWXgRWwXZ6b8ATzuJNSLHfKcRdxS/gKcZyAgug/iNqf0OYIfVupbh1bS0YK/i2E +R80a/9OBRU7hFrTvAgMBAAGjggEBMIH+MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYE +FNNkonhsjB+t8iZ5+BsFJcWLYqnzMIHOBgNVHSMEgcYwgcOAFNNkonhsjB+t8iZ5 ++BsFJcWLYqnzoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk YTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJvQywg SW5jLjEMMAoGA1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDExHTAb -BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkAlDFwrFBqFZkwDQYJKoZIhvcN -AQEEBQADgYEAGjLQC2Syy/mI5b7Ggl50sHxhkPvnGJIRwV+MAsv0iUZ/r/RKiPGr -lAOi3ypiR4G20AYpx5qO3J0tY+hmTY5Wq6jsVsHVDoSftnUIESyayEoy6KEOZU1s -GLCJ+/EZ7ap7+SYxb3tjYAupcO9gSK07b2Hxi6n1cGFNHD7O+k6Ca+k= +BgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkA+eb4EbC3hQAwDQYJKoZIhvcN +AQELBQADgYEAw5pAUloxXHHcmm0AlrQs9icEv83+EfukmMWM9SCgFxv98LYAFQYl +zZ/6WOF6+c+cVWbMSgiNbSwT6Sp0/m17rv1s6ysS8ZCC6Bu9xlsVwOEselipsKeL +UFVFd5d2Gl+mFfvC18uoebmms6ZOFkvoUFLMedgg0oIhIk/yvkZhjfI= -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/makecerts b/cpp/test/IceSSL/certs/makecerts index f7d188bf9c5..87993784581 100755 --- a/cpp/test/IceSSL/certs/makecerts +++ b/cpp/test/IceSSL/certs/makecerts @@ -67,6 +67,9 @@ if ! [ -f cakey1.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config server.cnf -batch -in $TMP/req.pem -out s_rsa_nopass_ca1_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem + + openssl pkcs12 -in s_rsa_nopass_ca1_pub.pem -inkey s_rsa_nopass_ca1_priv.pem -export -out s_rsa_ca1.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password # # Create a server certificate and key (with password). @@ -79,7 +82,10 @@ if ! [ -f cakey1.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config server.cnf -batch -in $TMP/req.pem -out s_rsa_pass_ca1_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem -key server - + + openssl pkcs12 -in c_rsa_nopass_ca1_pub.pem -inkey c_rsa_nopass_ca1_priv.pem -export -out c_rsa_ca1.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password -passin pass:password + # # Create an expired server certificate and key (no password). # @@ -91,6 +97,9 @@ if ! [ -f cakey1.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config server.cnf -batch -in $TMP/req.pem -out s_rsa_nopass_ca1_exp_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem -enddate 051231000000Z + + openssl pkcs12 -in s_rsa_nopass_ca1_exp_pub.pem -inkey s_rsa_nopass_ca1_exp_priv.pem -export -out s_rsa_ca1_exp.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password # # Create a server certificate and key using "127.0.0.1" as the common name and without @@ -106,6 +115,9 @@ if ! [ -f cakey1.pem ]; then openssl ca -config server_cn.cnf -batch -in $TMP/req.pem -out s_rsa_nopass_ca1_cn1_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem rm -f server_cn.cnf + + openssl pkcs12 -in s_rsa_nopass_ca1_cn1_pub.pem -inkey s_rsa_nopass_ca1_cn1_priv.pem -export -out s_rsa_ca1_cn1.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password # # Create a server certificate and key using "127.0.0.11" as the common name and without @@ -122,6 +134,9 @@ if ! [ -f cakey1.pem ]; then openssl ca -config server_cn.cnf -batch -in $TMP/req.pem -out s_rsa_nopass_ca1_cn2_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem rm -f server_cn.cnf + + openssl pkcs12 -in s_rsa_nopass_ca1_cn2_pub.pem -inkey s_rsa_nopass_ca1_cn2_priv.pem -export -out s_rsa_ca1_cn2.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password # # Create a client certificate and key (no password). @@ -135,6 +150,8 @@ if ! [ -f cakey1.pem ]; then openssl ca -config client.cnf -batch -in $TMP/req.pem -out c_rsa_nopass_ca1_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem + openssl pkcs12 -in c_rsa_nopass_ca1_pub.pem -inkey c_rsa_nopass_ca1_priv.pem -export -out c_rsa_ca1.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password # # Create a client certificate and key (with password). # @@ -146,6 +163,9 @@ if ! [ -f cakey1.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config client.cnf -batch -in $TMP/req.pem -out c_rsa_pass_ca1_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem -key client + + openssl pkcs12 -in c_rsa_pass_ca1_pub.pem -inkey c_rsa_pass_ca1_priv.pem -export -out c_rsa_pass_ca1.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:client -passin pass:client # # Create an expired client certificate and key (no password). @@ -158,6 +178,9 @@ if ! [ -f cakey1.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config client.cnf -batch -in $TMP/req.pem -out c_rsa_nopass_ca1_exp_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem -enddate 051231000000Z + + openssl pkcs12 -in c_rsa_nopass_ca1_exp_pub.pem -inkey c_rsa_nopass_ca1_exp_priv.pem -export -out c_rsa_ca1_exp.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password # # Create a server certificate and key (no password) using a different CA. @@ -170,7 +193,10 @@ if ! [ -f cakey1.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config server.cnf -batch -in $TMP/req.pem -out s_rsa_nopass_ca2_pub.pem \ -cert cacert2.pem -keyfile cakey2.pem - + + openssl pkcs12 -in s_rsa_nopass_ca2_pub.pem -inkey s_rsa_nopass_ca2_priv.pem -export -out s_rsa_nopass_ca2.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password + # # Create a client certificate and key (no password) using a different CA. # @@ -182,6 +208,9 @@ if ! [ -f cakey1.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config client.cnf -batch -in $TMP/req.pem -out c_rsa_nopass_ca2_pub.pem \ -cert cacert2.pem -keyfile cakey2.pem + + openssl pkcs12 -in c_rsa_nopass_ca2_pub.pem -inkey c_rsa_nopass_ca2_priv.pem -export -out c_rsa_ca2.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password rm -f dsaparam1024.pem fi @@ -211,6 +240,9 @@ if ! [ -f dsaparam1024.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config server.cnf -batch -in $TMP/req.pem -out s_dsa_nopass_ca1_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem + + openssl pkcs12 -in s_dsa_nopass_ca1_pub.pem -inkey s_dsa_nopass_ca1_priv.pem -export -out s_dsa_ca1.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password # # Create a client certificate and key (no password). @@ -223,6 +255,9 @@ if ! [ -f dsaparam1024.pem ]; then -keyform PEM -out $TMP/req.pem openssl ca -config client.cnf -batch -in $TMP/req.pem -out c_dsa_nopass_ca1_pub.pem \ -cert cacert1.pem -keyfile cakey1.pem + + openssl pkcs12 -in c_dsa_nopass_ca1_pub.pem -inkey c_dsa_nopass_ca1_priv.pem -export -out c_dsa_ca1.pfx \ + -certpbe PBE-SHA1-RC4-40 -keypbe PBE-SHA1-RC4-40 -passout pass:password fi # diff --git a/cpp/test/IceSSL/certs/s_dsa_ca1.pfx b/cpp/test/IceSSL/certs/s_dsa_ca1.pfx Binary files differnew file mode 100644 index 00000000000..5ba0726be1a --- /dev/null +++ b/cpp/test/IceSSL/certs/s_dsa_ca1.pfx diff --git a/cpp/test/IceSSL/certs/s_dsa_nopass_ca1_priv.pem b/cpp/test/IceSSL/certs/s_dsa_nopass_ca1_priv.pem index 8b7552ab92f..4c0f9e2ed55 100644 --- a/cpp/test/IceSSL/certs/s_dsa_nopass_ca1_priv.pem +++ b/cpp/test/IceSSL/certs/s_dsa_nopass_ca1_priv.pem @@ -1,9 +1,9 @@ -----BEGIN PRIVATE KEY----- -MIIBSwIBADCCASsGByqGSM44BAEwggEeAoGBAMKkmY+ulRg+rL4f3aU777ZTI+g2 -cTz8XD+sNDwxVSBZOhL+PemltYpMQBd4jTDEZzYhue+ybFm34SNGgVc79a8zpJ4l -58MbiO4BtrKMC6pBD1aKj9qIw/4PNmAUETdBMdAYtv8mc3mu9cKgu4Mj8QG7olEc -b+BvfUMIxxm/KeRLAhUA8w0Jb9OJ8A59+ZpiwTwXAX4WdOUCgYBeIif8AfJYANdo -89NInffnnT0FSgkhF9+TrGWT3bNtT2tp6fKlh6f2N8SFxe14bcL6LDAv5TeLtpi2 -GXNqjKg/gcKNo1/WQpB1bbICDPKWq48YwVi/mIi2kgZr1AdFj9/a8HemnlXcBRSK -GvBegDgG0+M+bQub7wCyROxQYjDVrwQXAhUA20lBJyO3GZDvPqyVG3eIO0qAnoc= +MIIBSgIBADCCASsGByqGSM44BAEwggEeAoGBAKAeWKhMAYp5sWH5rsmokCackilB +9lCSqGZ8UoBX5YhFZovv/QWqr1MhcnBbLgAFvg1tS6RXuJcl2xnddUhQ7DcgVxpo +3Pn2Mh9H0o4GLLJRDfqGOegyD2kWlFx8wNxEn/9rLg15zGv/wY218S3spaSqFeNV +k46daWFAo/SwNalxAhUAsBYQGKVHx/hqE7DhOwgRkiGwMOkCgYAN6C5PuxXOQ5yj +0UdNeOFDuHVLip2H1nnuMQImSCECMp+eiidSsWcg4K0otPwvNt31i2WBWEGv0WLw +1+ECNbHi8t1uo+oseMvdKk/l4uvWAja7diiFH4PUmOlfV/pfcYI3vkQxtv5DnpOR +KvkSwO3BDcEUe9tTUvp6AOMHByqz/QQWAhRDQEbgqB1i+KcPlBxW8y5NNkXsHA== -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/s_dsa_nopass_ca1_pub.pem b/cpp/test/IceSSL/certs/s_dsa_nopass_ca1_pub.pem index 31cc2dc6c39..e7ee11f584c 100644 --- a/cpp/test/IceSSL/certs/s_dsa_nopass_ca1_pub.pem +++ b/cpp/test/IceSSL/certs/s_dsa_nopass_ca1_pub.pem @@ -2,95 +2,95 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:34 2010 GMT - Not After : Mar 14 14:50:34 2020 GMT + Not Before: Jul 11 17:17:36 2014 GMT + Not After : Jul 8 17:17:36 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Server Subject Public Key Info: Public Key Algorithm: dsaEncryption pub: - 21:c0:ea:72:c2:8e:c1:f0:ba:93:98:c1:bc:51:84: - ea:9d:54:c4:ba:d2:d0:80:90:4e:7c:59:dd:e4:b0: - 4f:4d:c4:09:2b:ed:15:46:29:dd:43:77:e5:25:66: - 49:5a:4b:be:f4:99:aa:b2:31:b4:95:7e:ad:57:c1: - 22:c0:41:96:13:f8:af:13:27:55:5d:be:7a:1d:a3: - 4e:2d:fa:89:3d:1c:85:55:1f:1c:34:91:57:61:6d: - 95:b0:d2:9d:fb:65:5b:1d:f2:85:a8:a9:9e:4f:5b: - c4:33:85:93:a1:9b:c1:f8:f9:e2:bc:94:06:c0:ca: - 79:47:95:00:f8:86:aa:94 + 00:84:7d:97:1d:0f:2a:5c:0d:bb:3d:ef:0d:31:1d: + ca:bf:95:0a:dd:1f:47:4c:fc:32:72:4a:8f:78:a5: + e8:31:d2:93:e0:6e:97:61:bf:b8:00:92:a4:e8:73: + 41:3d:cc:9e:1c:b2:cf:c5:ae:9c:a9:ea:3d:4f:90: + d2:7c:bd:0a:11:e9:da:cc:e2:d3:2b:8a:af:5b:1f: + 3f:33:60:5c:70:cd:50:e2:35:ea:71:f7:95:45:48: + 8f:a3:89:2a:ae:12:84:09:a2:ec:b7:52:bb:b2:af: + f3:64:4d:58:f0:58:0e:a5:25:04:c8:c4:48:89:b3: + f9:1a:a8:aa:2a:b2:3b:8f:06 P: - 00:c2:a4:99:8f:ae:95:18:3e:ac:be:1f:dd:a5:3b: - ef:b6:53:23:e8:36:71:3c:fc:5c:3f:ac:34:3c:31: - 55:20:59:3a:12:fe:3d:e9:a5:b5:8a:4c:40:17:78: - 8d:30:c4:67:36:21:b9:ef:b2:6c:59:b7:e1:23:46: - 81:57:3b:f5:af:33:a4:9e:25:e7:c3:1b:88:ee:01: - b6:b2:8c:0b:aa:41:0f:56:8a:8f:da:88:c3:fe:0f: - 36:60:14:11:37:41:31:d0:18:b6:ff:26:73:79:ae: - f5:c2:a0:bb:83:23:f1:01:bb:a2:51:1c:6f:e0:6f: - 7d:43:08:c7:19:bf:29:e4:4b + 00:a0:1e:58:a8:4c:01:8a:79:b1:61:f9:ae:c9:a8: + 90:26:9c:92:29:41:f6:50:92:a8:66:7c:52:80:57: + e5:88:45:66:8b:ef:fd:05:aa:af:53:21:72:70:5b: + 2e:00:05:be:0d:6d:4b:a4:57:b8:97:25:db:19:dd: + 75:48:50:ec:37:20:57:1a:68:dc:f9:f6:32:1f:47: + d2:8e:06:2c:b2:51:0d:fa:86:39:e8:32:0f:69:16: + 94:5c:7c:c0:dc:44:9f:ff:6b:2e:0d:79:cc:6b:ff: + c1:8d:b5:f1:2d:ec:a5:a4:aa:15:e3:55:93:8e:9d: + 69:61:40:a3:f4:b0:35:a9:71 Q: - 00:f3:0d:09:6f:d3:89:f0:0e:7d:f9:9a:62:c1:3c: - 17:01:7e:16:74:e5 + 00:b0:16:10:18:a5:47:c7:f8:6a:13:b0:e1:3b:08: + 11:92:21:b0:30:e9 G: - 5e:22:27:fc:01:f2:58:00:d7:68:f3:d3:48:9d:f7: - e7:9d:3d:05:4a:09:21:17:df:93:ac:65:93:dd:b3: - 6d:4f:6b:69:e9:f2:a5:87:a7:f6:37:c4:85:c5:ed: - 78:6d:c2:fa:2c:30:2f:e5:37:8b:b6:98:b6:19:73: - 6a:8c:a8:3f:81:c2:8d:a3:5f:d6:42:90:75:6d:b2: - 02:0c:f2:96:ab:8f:18:c1:58:bf:98:88:b6:92:06: - 6b:d4:07:45:8f:df:da:f0:77:a6:9e:55:dc:05:14: - 8a:1a:f0:5e:80:38:06:d3:e3:3e:6d:0b:9b:ef:00: - b2:44:ec:50:62:30:d5:af + 0d:e8:2e:4f:bb:15:ce:43:9c:a3:d1:47:4d:78:e1: + 43:b8:75:4b:8a:9d:87:d6:79:ee:31:02:26:48:21: + 02:32:9f:9e:8a:27:52:b1:67:20:e0:ad:28:b4:fc: + 2f:36:dd:f5:8b:65:81:58:41:af:d1:62:f0:d7:e1: + 02:35:b1:e2:f2:dd:6e:a3:ea:2c:78:cb:dd:2a:4f: + e5:e2:eb:d6:02:36:bb:76:28:85:1f:83:d4:98:e9: + 5f:57:fa:5f:71:82:37:be:44:31:b6:fe:43:9e:93: + 91:2a:f9:12:c0:ed:c1:0d:c1:14:7b:db:53:52:fa: + 7a:00:e3:07:07:2a:b3:fd X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - A1:C2:EE:A9:AA:1A:59:CF:A3:32:8D:0A:A2:4C:DA:82:F3:5B:AD:6B + ED:94:32:2B:1F:41:F9:66:B7:78:D2:D8:53:78:EC:8F:46:C7:37:99 X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Subject Alternative Name: DNS:server, IP Address:127.0.0.1 X509v3 Issuer Alternative Name: email:issuer@zeroc.com, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 26:ec:6e:ec:82:e2:6c:2d:20:df:79:c6:9f:db:a1:25:32:53: - 7c:e7:40:d2:cb:7e:e4:27:c2:be:4c:43:6f:b7:fc:b0:8c:bc: - e0:08:99:d2:7f:62:0c:a9:54:13:87:e6:f3:10:78:0d:a8:f6: - d7:4a:70:80:49:be:11:73:38:12:ca:e9:2f:b3:af:2d:2f:7b: - 32:3e:45:3d:d6:29:9e:b5:d0:a7:d4:b6:4f:a3:91:d3:40:9e: - 13:8c:fc:83:e4:0a:7d:92:db:b1:fe:2c:de:b2:d8:1e:2f:fc: - 48:fc:e2:e6:50:f1:eb:26:3d:69:f6:d2:f3:a4:ed:6d:17:19: - 12:e7 + Signature Algorithm: sha256WithRSAEncryption + 4f:e6:32:93:f7:6f:27:27:d2:1f:9c:24:f6:8e:a3:35:87:6c: + 16:7c:a6:5a:35:82:d0:6b:22:76:b2:8f:fe:7b:8a:6b:1e:00: + 8a:af:c3:fe:1a:78:47:9d:fb:49:72:b9:7e:8e:cf:ad:a6:85: + 47:ea:a6:c2:84:cc:92:c6:5a:43:47:15:83:78:fd:e9:8b:f9: + 83:4f:59:2e:40:81:47:92:6e:c3:93:aa:09:f9:51:8f:bd:5d: + 4a:53:cf:8d:3b:e4:2d:2e:51:de:b9:82:cf:f1:17:e3:f9:ac: + a1:ea:b3:68:f4:e9:c9:e5:54:10:ae:01:1b:3f:d1:97:1b:12: + ab:b5 -----BEGIN CERTIFICATE----- -MIIE2DCCBEGgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIE2TCCBEKgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzRaFw0yMDAzMTQxNDUwMzRaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0yNDA3MDgxNzE3MzZaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGU2VydmVy -MIIBtjCCASsGByqGSM44BAEwggEeAoGBAMKkmY+ulRg+rL4f3aU777ZTI+g2cTz8 -XD+sNDwxVSBZOhL+PemltYpMQBd4jTDEZzYhue+ybFm34SNGgVc79a8zpJ4l58Mb -iO4BtrKMC6pBD1aKj9qIw/4PNmAUETdBMdAYtv8mc3mu9cKgu4Mj8QG7olEcb+Bv -fUMIxxm/KeRLAhUA8w0Jb9OJ8A59+ZpiwTwXAX4WdOUCgYBeIif8AfJYANdo89NI -nffnnT0FSgkhF9+TrGWT3bNtT2tp6fKlh6f2N8SFxe14bcL6LDAv5TeLtpi2GXNq -jKg/gcKNo1/WQpB1bbICDPKWq48YwVi/mIi2kgZr1AdFj9/a8HemnlXcBRSKGvBe -gDgG0+M+bQub7wCyROxQYjDVrwOBhAACgYAhwOpywo7B8LqTmMG8UYTqnVTEutLQ -gJBOfFnd5LBPTcQJK+0VRindQ3flJWZJWku+9JmqsjG0lX6tV8EiwEGWE/ivEydV -Xb56HaNOLfqJPRyFVR8cNJFXYW2VsNKd+2VbHfKFqKmeT1vEM4WToZvB+PnivJQG -wMp5R5UA+IaqlKOCATswggE3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFKHC7qmqGlnP -ozKNCqJM2oLzW61rMIHOBgNVHSMEgcYwgcOAFKLZgCrkkY4Lhbfk1ShiT8fJi+jR -oYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlkYTEbMBkGA1UE -BxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoG -A1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDExHTAbBgkqhkiG9w0B -CQEWDmluZm9AemVyb2MuY29tggkAlDFwrFBqFZkwFwYDVR0RBBAwDoIGc2VydmVy -hwR/AAABMCEGA1UdEgQaMBiBEGlzc3VlckB6ZXJvYy5jb22HBH8AAAEwDQYJKoZI -hvcNAQEFBQADgYEAJuxu7ILibC0g33nGn9uhJTJTfOdA0st+5CfCvkxDb7f8sIy8 -4AiZ0n9iDKlUE4fm8xB4Daj210pwgEm+EXM4EsrpL7OvLS97Mj5FPdYpnrXQp9S2 -T6OR00CeE4z8g+QKfZLbsf4s3rLYHi/8SPzi5lDx6yY9afbS86TtbRcZEuc= +MIIBtzCCASsGByqGSM44BAEwggEeAoGBAKAeWKhMAYp5sWH5rsmokCackilB9lCS +qGZ8UoBX5YhFZovv/QWqr1MhcnBbLgAFvg1tS6RXuJcl2xnddUhQ7DcgVxpo3Pn2 +Mh9H0o4GLLJRDfqGOegyD2kWlFx8wNxEn/9rLg15zGv/wY218S3spaSqFeNVk46d +aWFAo/SwNalxAhUAsBYQGKVHx/hqE7DhOwgRkiGwMOkCgYAN6C5PuxXOQ5yj0UdN +eOFDuHVLip2H1nnuMQImSCECMp+eiidSsWcg4K0otPwvNt31i2WBWEGv0WLw1+EC +NbHi8t1uo+oseMvdKk/l4uvWAja7diiFH4PUmOlfV/pfcYI3vkQxtv5DnpORKvkS +wO3BDcEUe9tTUvp6AOMHByqz/QOBhQACgYEAhH2XHQ8qXA27Pe8NMR3Kv5UK3R9H +TPwyckqPeKXoMdKT4G6XYb+4AJKk6HNBPcyeHLLPxa6cqeo9T5DSfL0KEenazOLT +K4qvWx8/M2BccM1Q4jXqcfeVRUiPo4kqrhKECaLst1K7sq/zZE1Y8FgOpSUEyMRI +ibP5GqiqKrI7jwajggE7MIIBNzAJBgNVHRMEAjAAMB0GA1UdDgQWBBTtlDIrH0H5 +Zrd40thTeOyPRsc3mTCBzgYDVR0jBIHGMIHDgBTTZKJ4bIwfrfImefgbBSXFi2Kp +86GBn6SBnDCBmTELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNV +BAcTElBhbG0gQmVhY2ggR2FyZGVuczEUMBIGA1UEChMLWmVyb0MsIEluYy4xDDAK +BgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVyb0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcN +AQkBFg5pbmZvQHplcm9jLmNvbYIJAPnm+BGwt4UAMBcGA1UdEQQQMA6CBnNlcnZl +cocEfwAAATAhBgNVHRIEGjAYgRBpc3N1ZXJAemVyb2MuY29thwR/AAABMA0GCSqG +SIb3DQEBCwUAA4GBAE/mMpP3bycn0h+cJPaOozWHbBZ8plo1gtBrInayj/57imse +AIqvw/4aeEed+0lyuX6Oz62mhUfqpsKEzJLGWkNHFYN4/emL+YNPWS5AgUeSbsOT +qgn5UY+9XUpTz4075C0uUd65gs/xF+P5rKHqs2j06cnlVBCuARs/0ZcbEqu1 -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/s_rsa_ca1.pfx b/cpp/test/IceSSL/certs/s_rsa_ca1.pfx Binary files differnew file mode 100644 index 00000000000..d5512e4234c --- /dev/null +++ b/cpp/test/IceSSL/certs/s_rsa_ca1.pfx diff --git a/cpp/test/IceSSL/certs/s_rsa_ca1_cn1.pfx b/cpp/test/IceSSL/certs/s_rsa_ca1_cn1.pfx Binary files differnew file mode 100644 index 00000000000..39fa6c7e96c --- /dev/null +++ b/cpp/test/IceSSL/certs/s_rsa_ca1_cn1.pfx diff --git a/cpp/test/IceSSL/certs/s_rsa_ca1_cn2.pfx b/cpp/test/IceSSL/certs/s_rsa_ca1_cn2.pfx Binary files differnew file mode 100644 index 00000000000..63cbb1e626c --- /dev/null +++ b/cpp/test/IceSSL/certs/s_rsa_ca1_cn2.pfx diff --git a/cpp/test/IceSSL/certs/s_rsa_ca1_exp.pfx b/cpp/test/IceSSL/certs/s_rsa_ca1_exp.pfx Binary files differnew file mode 100644 index 00000000000..686ce5ba7ad --- /dev/null +++ b/cpp/test/IceSSL/certs/s_rsa_ca1_exp.pfx diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn1_priv.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn1_priv.pem index 2c6b68217d0..7d59754928b 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn1_priv.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn1_priv.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANH+00Sh/34xwDRS -P1vvMSn7twkYEDcOewTQsCwKn4x3rUjLVuNlrdtP2ODzQBGjeyzXWHr3Nv0wRqBI -rCUT4AIEptuNPo3sm5xeKMTx1PyQLiTnkfNWjdEnlwCtdoij0vvnWBjouHPXmC1i -sZWnykSG76TkKd9eUwAh3lm6PkyJAgMBAAECgYBZYpabCDmwhYzCuJ+vikjrDfID -NPLx/H/wtMPIe10edXKVIbiCYq12RK6UUfZbi7LKi39mGASYEQx+/XAI+ETI0ThI -cbOzrElRV4Y9YuPj4j2/FCiCw7RtZxecRk/kUh13Uzz1kKkn+8U11PofJHjJKJwk -c/4TV5dYYH7lEu6HYQJBAPlu65DzuXySFWkDrx3syZ6wu5mvVWwbCrnkdGnMRKft -DdEAlxZgx6rvzwrr0ai2YCKKXMvtYKm40yWzcW6fY0cCQQDXhhwXDQm8yLkXujh4 -MwVLxqr+YUTAKxyDPFFndCJXW4dMjnzstdvZbiKizbrn4Ql0RzVMjvJbOxpWxOHR -bJmvAkEAlauuJGtq6MnLmRkB0kYMcXGBEGX6LwVG+WaRSA6vP8hp2vissFvgU7zU -EqyQQNk2dGNr7V4B+7WQ1XWIYiW37wJAHNCHTOWnWaAUbwGsrxVTLfBfyCbFBFQ/ -OaSE1aoHNVq9WhTqytL9k7JP2yhaRsolc3BZxeSOrnfWa6di8ZbtbQJBAJj89Kj7 -TfGUh7a2iVyYkyq5ckWMI4KKyACDUc7CSXpW/uJIyPxMnIefL4ACKGNfP8RdJI4c -dHg9PnDMZG4GuiE= +MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALulBH1rmk/AN6KH +EdZEmcEb+nIAu5Fm0ccOGOY7awVV+eaCKk9iAlxmDBJXjc4gtz7yxtru3t0ZQo1k +TWlPSTCThLhUjvCc8YquLN/+TOPXWvR68a+TzzA4u7FkcDmcWMuiNB1swj4Vn62p +8ul+VCjKQhuRArAX+ANhwxf8CWu1AgMBAAECgYA7BNMds6tsbBPTndIhZ6BImcky +9EIKoKFYj3mLaKLnobwhIU23fCcr8rjXSAyFCcs5FFkxYTJdrmU9XY/vkI1/HPKF +UD/p2MEtewbbfs0xpcwvfZZzgZpJxMWYFLzL35N6FAYvSFsjIk2ezCdHVofuUft+ +Jmvp2miLKAoEEhum4QJBAN7jvEihXqKqg4ZrQKtK4gFroe6yVBYGPhFTBqACrRl7 +Nsv4jzjKdV/Xgz2Agky/xgIzJ6xD7SDVBXaSCb0guo0CQQDXhPNrAflZFiFLpOCk +Twnu5lojjZkdj/lIKqWMC61E0GvSaqiDTCes5Ie+0s7yf5kEkVqtV3dqHC3Wdir+ +t3/JAkBnM9l1Y8qW1Q8LSVPrPEQDVlvnUwjeHcvVZ7UUl8igmM2ZiiB+sjfAxeAN +tRggA1fiot8Gw3jjj970tM/vk1ztAkEAvDOflZx9sGwA21u5yAI1fGev40gto4Es +gPas5iT0RBl1bqQxT6bbJsHSQLM6gM0oRLLh6mltID5HUPaUCScY8QJAN5OSf4Ad +Zd0FnCDLjH3JnySL/8aGwJKyjUhY2KoCafrzFZh0k00RIvxOtOcuiqOWZAt87Clh +IJXbEIDizt+WtQ== -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn1_pub.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn1_pub.pem index 4fa5fbd50f3..261fb4bc6d1 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn1_pub.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn1_pub.pem @@ -2,66 +2,66 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:33 2010 GMT - Not After : Mar 14 14:50:33 2020 GMT + Not Before: Jul 11 17:17:36 2014 GMT + Not After : Jul 8 17:17:36 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=127.0.0.1 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:d1:fe:d3:44:a1:ff:7e:31:c0:34:52:3f:5b:ef: - 31:29:fb:b7:09:18:10:37:0e:7b:04:d0:b0:2c:0a: - 9f:8c:77:ad:48:cb:56:e3:65:ad:db:4f:d8:e0:f3: - 40:11:a3:7b:2c:d7:58:7a:f7:36:fd:30:46:a0:48: - ac:25:13:e0:02:04:a6:db:8d:3e:8d:ec:9b:9c:5e: - 28:c4:f1:d4:fc:90:2e:24:e7:91:f3:56:8d:d1:27: - 97:00:ad:76:88:a3:d2:fb:e7:58:18:e8:b8:73:d7: - 98:2d:62:b1:95:a7:ca:44:86:ef:a4:e4:29:df:5e: - 53:00:21:de:59:ba:3e:4c:89 + 00:bb:a5:04:7d:6b:9a:4f:c0:37:a2:87:11:d6:44: + 99:c1:1b:fa:72:00:bb:91:66:d1:c7:0e:18:e6:3b: + 6b:05:55:f9:e6:82:2a:4f:62:02:5c:66:0c:12:57: + 8d:ce:20:b7:3e:f2:c6:da:ee:de:dd:19:42:8d:64: + 4d:69:4f:49:30:93:84:b8:54:8e:f0:9c:f1:8a:ae: + 2c:df:fe:4c:e3:d7:5a:f4:7a:f1:af:93:cf:30:38: + bb:b1:64:70:39:9c:58:cb:a2:34:1d:6c:c2:3e:15: + 9f:ad:a9:f2:e9:7e:54:28:ca:42:1b:91:02:b0:17: + f8:03:61:c3:17:fc:09:6b:b5 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 71:33:DF:63:B7:1B:F2:3A:F0:97:B2:CE:67:62:E2:53:A9:57:4A:77 + 5A:08:77:65:5C:5E:98:9C:FE:5A:79:9A:F2:C5:81:F5:5E:EB:0F:AE X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Issuer Alternative Name: email:issuer@zeroc.com, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 9b:b7:97:1a:37:42:4d:27:d6:99:8d:47:43:19:73:39:90:b7: - d5:b2:fd:3a:ee:24:e3:1f:dc:54:72:01:6f:80:06:70:b9:c4: - b9:94:1e:25:c3:1f:e7:11:55:66:42:10:1b:7d:d7:88:b8:56: - 11:d8:ce:d3:50:2b:bb:72:c6:83:94:94:51:95:73:1b:10:59: - 7f:89:0b:7a:bb:d1:9b:b9:07:1d:26:87:4d:fb:52:dc:c5:a9: - f9:d1:6a:a8:8f:85:b2:47:22:8d:4f:af:a7:ff:e9:ee:a8:c8: - d7:0b:72:b6:d8:be:0f:90:9d:dd:d6:81:2d:ba:a0:2d:ed:1d: - 3b:60 + Signature Algorithm: sha256WithRSAEncryption + c8:3b:dc:9f:2d:9f:b7:a1:79:69:cc:f1:7e:af:bf:37:da:37: + 8f:99:39:70:e8:67:8e:a0:da:0d:8a:75:68:7a:01:bb:7c:c7: + 35:67:8d:da:22:53:72:08:cd:cc:be:40:12:a3:d6:61:fa:52: + fb:a7:48:9f:2f:6e:d2:90:57:7d:c2:8c:cf:f2:45:57:3d:9c: + ac:6c:57:be:89:91:bb:a6:3b:9f:63:b8:b5:a0:7d:43:e5:5f: + 05:3f:f2:dc:ce:b5:59:79:1a:61:78:48:78:b3:a2:24:a8:b5: + 51:0e:da:39:4d:b3:df:d3:53:3f:62:05:c4:85:3a:22:a4:2f: + ec:7a -----BEGIN CERTIFICATE----- -MIIDqjCCAxOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDqjCCAxOgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzNaFw0yMDAzMTQxNDUwMzNaMHYxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0yNDA3MDgxNzE3MzZaMHYxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTESMBAGA1UEAxMJMTI3LjAu -MC4xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDR/tNEof9+McA0Uj9b7zEp -+7cJGBA3DnsE0LAsCp+Md61Iy1bjZa3bT9jg80ARo3ss11h69zb9MEagSKwlE+AC -BKbbjT6N7JucXijE8dT8kC4k55HzVo3RJ5cArXaIo9L751gY6Lhz15gtYrGVp8pE -hu+k5CnfXlMAId5Zuj5MiQIDAQABo4IBIjCCAR4wCQYDVR0TBAIwADAdBgNVHQ4E -FgQUcTPfY7cb8jrwl7LOZ2LiU6lXSncwgc4GA1UdIwSBxjCBw4AUotmAKuSRjguF -t+TVKGJPx8mL6NGhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9y +MC4xMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7pQR9a5pPwDeihxHWRJnB +G/pyALuRZtHHDhjmO2sFVfnmgipPYgJcZgwSV43OILc+8sba7t7dGUKNZE1pT0kw +k4S4VI7wnPGKrizf/kzj11r0evGvk88wOLuxZHA5nFjLojQdbMI+FZ+tqfLpflQo +ykIbkQKwF/gDYcMX/AlrtQIDAQABo4IBIjCCAR4wCQYDVR0TBAIwADAdBgNVHQ4E +FgQUWgh3ZVxemJz+Wnma8sWB9V7rD64wgc4GA1UdIwSBxjCBw4AU02SieGyMH63y +Jnn4GwUlxYtiqfOhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9y aWRhMRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9D LCBJbmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMTEd -MBsGCSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQCUMXCsUGoVmTAhBgNVHRIE -GjAYgRBpc3N1ZXJAemVyb2MuY29thwR/AAABMA0GCSqGSIb3DQEBBQUAA4GBAJu3 -lxo3Qk0n1pmNR0MZczmQt9Wy/TruJOMf3FRyAW+ABnC5xLmUHiXDH+cRVWZCEBt9 -14i4VhHYztNQK7tyxoOUlFGVcxsQWX+JC3q70Zu5Bx0mh037UtzFqfnRaqiPhbJH -Io1Pr6f/6e6oyNcLcrbYvg+Qnd3WgS26oC3tHTtg +MBsGCSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQD55vgRsLeFADAhBgNVHRIE +GjAYgRBpc3N1ZXJAemVyb2MuY29thwR/AAABMA0GCSqGSIb3DQEBCwUAA4GBAMg7 +3J8tn7eheWnM8X6vvzfaN4+ZOXDoZ46g2g2KdWh6Abt8xzVnjdoiU3IIzcy+QBKj +1mH6UvunSJ8vbtKQV33CjM/yRVc9nKxsV76JkbumO59juLWgfUPlXwU/8tzOtVl5 +GmF4SHizoiSotVEO2jlNs9/TUz9iBcSFOiKkL+x6 -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn2_priv.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn2_priv.pem index 51980be3840..1558f3a98bf 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn2_priv.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn2_priv.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALO58wCUe5dt4ZFr -TgiKHvDV1lvYueYKNRKi75rDyy76OTh0Ii0u3LKs3opykjV6jwQDhK3EWVxZxy4Y -WYMa21cN2ACAnAdIZtmUU42U45ZLpPxJp0ZTw5GVAQDDbUZfS628o1RjPW7Zyfl/ -zXklRrv37aQTs1EKsk95NVx12GjDAgMBAAECgYByTUCOjeBMXkWnBmeKZs1mvZim -sR8JflRild1swDjol5rsnG9f7P3PZMHjqxnxiRCLrPEk0ktCwJY8aqADEYGMuxiI -o/NfBSOXq04DqWbovCK7gVwzjVJU/vDmb2vxJOIhv6avMc+qW71HFPt8LVshAysz -aaf2ajfIt5LnL7hQgQJBANhC9OwIH6Pipx3Q4DPpt/PCcjpFaG2Ixp5ex4OSlK6d -7tevekbiOmr3Uum+A1bMrQ3i4Cu6rkqn906cDzcNg80CQQDUwFxIozeVkBuSe7TN -TkWCwnScjXg6HkeQsFeD8UsWql0aKhsESVe9sFYWSlF9W2hBIoG9Jx5D7uiIYLRR -LC7PAkBIg5MKfeLWGg69Maer4Id85ctVfKZ6a+1ldxRhKspODsjia4WNtRevfETB -+aO2/CRezp8qKot8nvuO0UdMx2xVAkEAiSHwmfVyx5na2+GXGdrA3VcAGUTq4PNR -h8bSsj5e+x4W4t2PCoVH5AH8i2OeASJhIdLfM5A6Zulgwz8qG0RSawJAQdYsp2B3 -/h7ofKRLBXmPC5V0C8EIzueXkbeR8LWxeKyhC0gl1X/9gc2BxJrgQ8WEzLVqxZKP -7mGBNdohU+ujxw== +MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALy+FsEDzmeOMFuO +0J/5eKgHaNESkBM3DNU9u+9/JW6LJgegL2J5pdTGpm4a/PByuL4OmhL7Q8eDiOfU +Gz1vvzUtV4oPSlPyfcyT8rW7V8/pnoOnEz/TtCDUecoqy4pZudHxZNoa7T2e7XF6 ++6ecpuhTmiYizCogafwrbOjRKzIzAgMBAAECgYAiEFyi8UDrR6pKm/fjJ28zREMS +mLsP/LuAMOgeTWBAFzUB41Mp/rKDOGcJMC2+Z7YX9yKvklGlTIQE8y8HY4eqjWNn +ddYC4O61Aea1LcDt1bdWrgNDwgE84WzgdAjkgy3XkWJvzs8+jyo2FfKOGzuDz/Uv +AhzDsDJrOLsZ8oZKgQJBAPdED/ovKIlCsixKsXnSXgOesSyoCaouR6kRYB2BcjjR +Gwh3LaNcgzFM1Xo3cbIQxY3RZ1iP0TlFYxn2xDHG/pECQQDDaNIaAk6rbQO1lEww +a6eakVhK7xzEupidNwa7RkXsvYqDl9pTDTE+FNn8mNX0ExVHRxRXLvnS1sfACAyb +Ow6DAkEAuWHnFKysmJRPnxN1Eh+dattcfF2TuWqvQVuMkzKM33ou6V7o8ZSXq6uu +Vc4hyN34L0ZzVBunQmf6T+oJ2EQYcQJAUc1Qnti2bCbvtZTGLEL038zWhFAC4Awp +FS9S3xT08r0J/jqUh83u/kkmVAr7DfjrIHKN/k1JAc0tw6La/CTF1wJASOsd5W1/ +ijdBsuihY5rnLrLk5eQwuirfkxSXdxvw/JGzCT/Lig4KETzUugPko1kS0lZ+XdIO +hKbMY3AgX4//Sw== -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn2_pub.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn2_pub.pem index 2e7b3ad0d1e..ec0fb9ec064 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn2_pub.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_cn2_pub.pem @@ -2,66 +2,66 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:34 2010 GMT - Not After : Mar 14 14:50:34 2020 GMT + Not Before: Jul 11 17:17:36 2014 GMT + Not After : Jul 8 17:17:36 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=127.0.0.11 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:b3:b9:f3:00:94:7b:97:6d:e1:91:6b:4e:08:8a: - 1e:f0:d5:d6:5b:d8:b9:e6:0a:35:12:a2:ef:9a:c3: - cb:2e:fa:39:38:74:22:2d:2e:dc:b2:ac:de:8a:72: - 92:35:7a:8f:04:03:84:ad:c4:59:5c:59:c7:2e:18: - 59:83:1a:db:57:0d:d8:00:80:9c:07:48:66:d9:94: - 53:8d:94:e3:96:4b:a4:fc:49:a7:46:53:c3:91:95: - 01:00:c3:6d:46:5f:4b:ad:bc:a3:54:63:3d:6e:d9: - c9:f9:7f:cd:79:25:46:bb:f7:ed:a4:13:b3:51:0a: - b2:4f:79:35:5c:75:d8:68:c3 + 00:bc:be:16:c1:03:ce:67:8e:30:5b:8e:d0:9f:f9: + 78:a8:07:68:d1:12:90:13:37:0c:d5:3d:bb:ef:7f: + 25:6e:8b:26:07:a0:2f:62:79:a5:d4:c6:a6:6e:1a: + fc:f0:72:b8:be:0e:9a:12:fb:43:c7:83:88:e7:d4: + 1b:3d:6f:bf:35:2d:57:8a:0f:4a:53:f2:7d:cc:93: + f2:b5:bb:57:cf:e9:9e:83:a7:13:3f:d3:b4:20:d4: + 79:ca:2a:cb:8a:59:b9:d1:f1:64:da:1a:ed:3d:9e: + ed:71:7a:fb:a7:9c:a6:e8:53:9a:26:22:cc:2a:20: + 69:fc:2b:6c:e8:d1:2b:32:33 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 1E:F4:0E:50:93:AC:8D:44:FB:1B:3C:CB:32:EB:A6:F4:8B:2D:ED:4D + 1A:8F:B8:95:A0:80:AF:F1:2B:CB:0B:E0:1F:E5:8E:D6:23:4A:9C:04 X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Issuer Alternative Name: email:issuer@zeroc.com, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 07:d8:09:34:9a:9c:ab:61:95:d2:a1:d9:a8:83:a9:9a:d6:c1: - 7b:c6:cf:a4:98:2f:14:de:b2:01:62:8e:cb:5c:a3:7d:d1:7b: - 39:d7:da:f7:7d:38:a0:3f:96:aa:ba:d1:97:e3:c6:05:c7:3d: - 8e:37:ea:83:2c:8b:06:5e:ca:84:03:3a:d1:e5:90:c2:e2:8e: - 20:00:32:c9:48:b6:45:f5:fb:77:b4:90:16:ad:4d:29:33:5e: - 0d:c0:e1:0f:2a:e1:22:dd:10:e3:96:66:06:35:3e:dd:d7:e9: - c6:b5:8b:83:dd:85:0b:7e:49:e3:f0:96:b2:a0:51:0c:ec:ee: - 00:79 + Signature Algorithm: sha256WithRSAEncryption + 49:35:59:63:c6:4e:2d:c9:a1:b9:ca:9f:f0:4d:ca:dc:24:62: + 3b:5e:ad:a0:da:e9:b7:39:82:ca:e4:06:aa:3e:8a:92:1b:ec: + 87:50:ba:5f:aa:bb:44:dd:3e:a0:8e:ca:86:3d:af:cd:81:e2: + 58:77:a0:d1:7e:c7:43:89:58:27:9c:3e:b7:f9:50:5c:60:a2: + 7d:73:ca:cb:4b:73:e9:8d:d7:97:81:44:b8:db:d0:68:77:9c: + 6a:2f:0a:f0:c9:a0:68:47:54:35:94:58:5d:6a:2d:e5:a9:50: + 76:4f:48:2d:a2:89:5f:2a:53:4c:9b:48:33:99:ba:27:43:38: + 8a:e7 -----BEGIN CERTIFICATE----- -MIIDqzCCAxSgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDqzCCAxSgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzRaFw0yMDAzMTQxNDUwMzRaMHcxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0yNDA3MDgxNzE3MzZaMHcxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTETMBEGA1UEAxMKMTI3LjAu -MC4xMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAs7nzAJR7l23hkWtOCIoe -8NXWW9i55go1EqLvmsPLLvo5OHQiLS7csqzeinKSNXqPBAOErcRZXFnHLhhZgxrb -Vw3YAICcB0hm2ZRTjZTjlkuk/EmnRlPDkZUBAMNtRl9LrbyjVGM9btnJ+X/NeSVG -u/ftpBOzUQqyT3k1XHXYaMMCAwEAAaOCASIwggEeMAkGA1UdEwQCMAAwHQYDVR0O -BBYEFB70DlCTrI1E+xs8yzLrpvSLLe1NMIHOBgNVHSMEgcYwgcOAFKLZgCrkkY4L -hbfk1ShiT8fJi+jRoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxv +MC4xMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvL4WwQPOZ44wW47Qn/l4 +qAdo0RKQEzcM1T27738lbosmB6AvYnml1Mambhr88HK4vg6aEvtDx4OI59QbPW+/ +NS1Xig9KU/J9zJPytbtXz+meg6cTP9O0INR5yirLilm50fFk2hrtPZ7tcXr7p5ym +6FOaJiLMKiBp/Cts6NErMjMCAwEAAaOCASIwggEeMAkGA1UdEwQCMAAwHQYDVR0O +BBYEFBqPuJWggK/xK8sL4B/ljtYjSpwEMIHOBgNVHSMEgcYwgcOAFNNkonhsjB+t +8iZ5+BsFJcWLYqnzoYGfpIGcMIGZMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxv cmlkYTEbMBkGA1UEBxMSUGFsbSBCZWFjaCBHYXJkZW5zMRQwEgYDVQQKEwtaZXJv QywgSW5jLjEMMAoGA1UECxMDSWNlMRgwFgYDVQQDEw9aZXJvQyBUZXN0IENBIDEx -HTAbBgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkAlDFwrFBqFZkwIQYDVR0S -BBowGIEQaXNzdWVyQHplcm9jLmNvbYcEfwAAATANBgkqhkiG9w0BAQUFAAOBgQAH -2Ak0mpyrYZXSodmog6ma1sF7xs+kmC8U3rIBYo7LXKN90Xs519r3fTigP5aqutGX -48YFxz2ON+qDLIsGXsqEAzrR5ZDC4o4gADLJSLZF9ft3tJAWrU0pM14NwOEPKuEi -3RDjlmYGNT7d1+nGtYuD3YULfknj8JayoFEM7O4AeQ== +HTAbBgkqhkiG9w0BCQEWDmluZm9AemVyb2MuY29tggkA+eb4EbC3hQAwIQYDVR0S +BBowGIEQaXNzdWVyQHplcm9jLmNvbYcEfwAAATANBgkqhkiG9w0BAQsFAAOBgQBJ +NVljxk4tyaG5yp/wTcrcJGI7Xq2g2um3OYLK5AaqPoqSG+yHULpfqrtE3T6gjsqG +Pa/NgeJYd6DRfsdDiVgnnD63+VBcYKJ9c8rLS3PpjdeXgUS429Bod5xqLwrwyaBo +R1Q1lFhdai3lqVB2T0gtoolfKlNMm0gzmbonQziK5w== -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_exp_priv.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_exp_priv.pem index d76551e1bc8..9b8852e9b8a 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_exp_priv.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_exp_priv.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAOl9pccWILOh5A0J -SwV135Mn2YBpKwySC9N4P8Bzi74eDybzLze3Llk1uOBWCqq7fip2iO7ZXEqCbANK -L9vTCII7t7RMRagpx9+k3sNoHHPXfGhCyLEEbTe7+AVr4RXnq0HlTfBz02VQFonY -SwGoyw00kH1pDZSIsmCERLMPoBeRAgMBAAECgYEAjK9oc8yhZ5rkDfbLfT7It6IL -K5QynCBjf8e0ogD88lCqUI22pZt6EcaM3p75TmYqXuuNFl1hfoOXEWRh8dH2DVvH -lxnjacrHg7qSrdpw4XjYpqHPWybqLyIRcn9W2Rsh8LMe/VEHjo0RZ/e3dMDicExm -igKUMX8jXSvC9wisYQECQQD3sZdfVdyeoRmWIjmEIo3/+7SMuQDamj+qb7c4M3Lg -dLtCxrNr7oIb4S4xEnpdkM+EPwu0L3c4L2ruKI8+s82XAkEA8VIgcVQt/i1RdD6O -/eqSltCTYlBvFd+wNaA8qrJ1EF+Gf5L08KCjLIhpST9LLnLD0PKy/vDc4MPqs1w5 -ux45FwJBANzkxghBfGUDatwXXY/XeSfHA7dT7c0GLq0CwDUgvNwrfi0JI02oAOR4 -J0egIPx8fnSD/R4ODpZOw1/tUAItO7UCQBrFB4BK3EdD87M3dVlJejVssczIK2p7 -w+pO+ivdXAsS7bKdNLq0tyUrhLJxaP+gD4TQR3bsdTQhx5lZ87WEJsUCQQDGhVQ+ -WvaZrcG/2dY1arqbRBriHC1L7bb7OPMLinRGi164gigUOB/vehy4V6sp8nkV7P00 -QDxx1bHMMmvbyexy +MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKZI/y2AXF/H6yPk +hoyzY5rMwiZxH5j46x1ci20xlnm+D0ZihGR16WyP0flfBujoVBj0OacB/v1R0Lz8 +2QcJE5FztbvYTJvzT0soVfofMrcB5SuJ+y/h9ow7z5PnsiFrMHUOYgPHJOtlCRE1 +51F7AbChFIDxGzLjgwpuFHmgKJORAgMBAAECgYEAhA6u0SUCt3JetKeVj4Ib1WFN +wxfN3z+4AR5xACwEc/TTzrMIr3vRAE2LlP65zxhLSXIToyV7qxRhsOUhOmwj4/Tf +9nOlnRozqjhLGtqSHH5CtLUyiU2uPx0tfaJ9OEviIoXXZP0YwZk6Uorw66O9QAOY +oCscL7WVBdixwFlLzo0CQQDU7FGxJIgdhiHbW36xx4ZRno2f28JRWAaFW7LTt4oa +xqFGLfHVehevTAhUUic/ksb2huly5mOI9HMhyNj2rs/DAkEAx+01+mCD3N1mQKkc +zKnLUZTVRPBtkZrsQlhrXtEKHo+ZsXC8wX2U/hZCga6NVZxaL4Kop8gfteb3hIb1 ++HQOGwJBAKV1v0XZDa1jvoun3hxo4IgsngHL1IVB0k9votfDmR6VnF3c9kDeT+l5 +PD/KV5Wfid2pmWAgiNi0nYNzgKax0eECQQClH1YlpPFDydhaL1KJ9vLmPnamqazV +RY88fKqxdRVWiGP4GZTMelxEPz5OvUweGTSjaNbDPJZ0Nn7YBl/BBJlhAkAsWpwC +2msg2BZgD4iQeKFY9kPyiz0wKF55WOw4Ls0r+mtJOUiTaBph7Av6NyWeL1eA4t+M +fL469PZvDSTWzm1n -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_exp_pub.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_exp_pub.pem index 6e2fe449874..e775d530115 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_exp_pub.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_exp_pub.pem @@ -2,69 +2,69 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:33 2010 GMT + Not Before: Jul 11 17:17:36 2014 GMT Not After : Dec 31 00:00:00 2005 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Server Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:e9:7d:a5:c7:16:20:b3:a1:e4:0d:09:4b:05:75: - df:93:27:d9:80:69:2b:0c:92:0b:d3:78:3f:c0:73: - 8b:be:1e:0f:26:f3:2f:37:b7:2e:59:35:b8:e0:56: - 0a:aa:bb:7e:2a:76:88:ee:d9:5c:4a:82:6c:03:4a: - 2f:db:d3:08:82:3b:b7:b4:4c:45:a8:29:c7:df:a4: - de:c3:68:1c:73:d7:7c:68:42:c8:b1:04:6d:37:bb: - f8:05:6b:e1:15:e7:ab:41:e5:4d:f0:73:d3:65:50: - 16:89:d8:4b:01:a8:cb:0d:34:90:7d:69:0d:94:88: - b2:60:84:44:b3:0f:a0:17:91 + 00:a6:48:ff:2d:80:5c:5f:c7:eb:23:e4:86:8c:b3: + 63:9a:cc:c2:26:71:1f:98:f8:eb:1d:5c:8b:6d:31: + 96:79:be:0f:46:62:84:64:75:e9:6c:8f:d1:f9:5f: + 06:e8:e8:54:18:f4:39:a7:01:fe:fd:51:d0:bc:fc: + d9:07:09:13:91:73:b5:bb:d8:4c:9b:f3:4f:4b:28: + 55:fa:1f:32:b7:01:e5:2b:89:fb:2f:e1:f6:8c:3b: + cf:93:e7:b2:21:6b:30:75:0e:62:03:c7:24:eb:65: + 09:11:35:e7:51:7b:01:b0:a1:14:80:f1:1b:32:e3: + 83:0a:6e:14:79:a0:28:93:91 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 62:27:02:DD:C0:04:A6:A9:17:DB:2C:3C:0C:B4:08:E4:1E:73:B6:2C + 22:5D:51:5A:6D:84:EA:3C:BD:6C:E2:41:B5:5E:BA:55:38:90:20:22 X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Subject Alternative Name: DNS:server, IP Address:127.0.0.1 X509v3 Issuer Alternative Name: email:issuer@zeroc.com, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 5c:1c:01:bc:06:ee:e9:b8:12:dd:66:11:f3:15:17:4b:68:49: - ff:5a:ec:f0:9b:e3:e8:64:1f:08:5a:10:72:b4:74:49:52:81: - 78:81:66:ee:2c:e7:a0:5c:77:e9:39:4f:a1:c7:3a:37:98:c4: - dd:a2:87:c6:e5:a7:19:f6:a7:32:94:03:60:24:2f:f0:32:c2: - 9a:3c:e8:20:f0:1e:40:06:e2:df:74:b3:89:f2:a5:70:06:52: - 16:3d:9f:cd:83:5b:a2:c2:d7:ec:b6:64:79:38:45:34:a6:8b: - 97:90:00:cb:3b:d5:82:fc:54:ed:bc:4b:dd:7c:d9:05:fa:3c: - 77:19 + Signature Algorithm: sha256WithRSAEncryption + 3c:82:81:4c:bb:bc:a6:07:a6:44:88:4c:d3:9c:d5:e8:cb:58: + 1e:ee:89:c8:86:d3:2a:0a:ee:34:36:fb:76:ad:62:d3:77:e0: + 90:31:0e:03:cf:69:da:15:7f:b6:4f:b2:b6:9e:90:fe:8d:fd: + a0:68:35:eb:8d:9c:7b:3c:41:38:91:a6:e5:49:4a:02:2a:e8: + ec:b5:47:3a:e0:aa:e2:a0:b3:8e:00:df:69:20:93:b0:cc:07: + 5f:02:83:ed:c2:62:57:20:63:e9:3c:d7:78:00:bf:05:c1:3f: + aa:01:7a:c4:7f:ed:2f:57:0f:fd:90:1f:25:04:2c:e3:58:21: + 4f:5d -----BEGIN CERTIFICATE----- -MIIDwDCCAymgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDwDCCAymgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzNaFw0wNTEyMzEwMDAwMDBaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0wNTEyMzEwMDAwMDBaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGU2VydmVy -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDpfaXHFiCzoeQNCUsFdd+TJ9mA -aSsMkgvTeD/Ac4u+Hg8m8y83ty5ZNbjgVgqqu34qdoju2VxKgmwDSi/b0wiCO7e0 -TEWoKcffpN7DaBxz13xoQsixBG03u/gFa+EV56tB5U3wc9NlUBaJ2EsBqMsNNJB9 -aQ2UiLJghESzD6AXkQIDAQABo4IBOzCCATcwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -YicC3cAEpqkX2yw8DLQI5B5ztiwwgc4GA1UdIwSBxjCBw4AUotmAKuSRjguFt+TV -KGJPx8mL6NGhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmSP8tgFxfx+sj5IaMs2OazMIm +cR+Y+OsdXIttMZZ5vg9GYoRkdelsj9H5Xwbo6FQY9DmnAf79UdC8/NkHCRORc7W7 +2Eyb809LKFX6HzK3AeUrifsv4faMO8+T57IhazB1DmIDxyTrZQkRNedRewGwoRSA +8Rsy44MKbhR5oCiTkQIDAQABo4IBOzCCATcwCQYDVR0TBAIwADAdBgNVHQ4EFgQU +Il1RWm2E6jy9bOJBtV66VTiQICIwgc4GA1UdIwSBxjCBw4AU02SieGyMH63yJnn4 +GwUlxYtiqfOhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh MRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9DLCBJ bmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMTEdMBsG -CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQCUMXCsUGoVmTAXBgNVHREEEDAO +CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQD55vgRsLeFADAXBgNVHREEEDAO ggZzZXJ2ZXKHBH8AAAEwIQYDVR0SBBowGIEQaXNzdWVyQHplcm9jLmNvbYcEfwAA -ATANBgkqhkiG9w0BAQUFAAOBgQBcHAG8Bu7puBLdZhHzFRdLaEn/Wuzwm+PoZB8I -WhBytHRJUoF4gWbuLOegXHfpOU+hxzo3mMTdoofG5acZ9qcylANgJC/wMsKaPOgg -8B5ABuLfdLOJ8qVwBlIWPZ/Ng1uiwtfstmR5OEU0pouXkADLO9WC/FTtvEvdfNkF -+jx3GQ== +ATANBgkqhkiG9w0BAQsFAAOBgQA8goFMu7ymB6ZEiEzTnNXoy1ge7onIhtMqCu40 +Nvt2rWLTd+CQMQ4Dz2naFX+2T7K2npD+jf2gaDXrjZx7PEE4kablSUoCKujstUc6 +4KrioLOOAN9pIJOwzAdfAoPtwmJXIGPpPNd4AL8FwT+qAXrEf+0vVw/9kB8lBCzj +WCFPXQ== -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_priv.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_priv.pem index 34344e68515..2fc63e0dbf7 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_priv.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_priv.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKDewPM5NdDyjWh9 -qk9u1Plow7txd6Crg4kj2tWsdVt/RVcQSB/hyJ+bq1Qnf8Tli9B3wTFJPvKzMNka -ucCJ+5KHjF4/zMrcn9N6/Q+8ATh+Ot1bROZ1hIX+XLTjUmGaV3dkOSx/aX9GxUOY -QdOec/eVaiL7g4Fy4foZVJ2BnpbLAgMBAAECgYAkfaLjCS0t8nclJqxFTGy/Doan -tDtglMdHinyPT4lncd02vJi/sqWhntwkQLl43mDyrteB6I2A3CjOdoOAK0yHOlUd -Bajq81A3vcYnBXELXfSCVZnihhQei2ljmejPbYogtdHlI+tpxaZI0kz7J9j6qpoa -xkBvGKNyVcS9linVgQJBANPisB2Nv41lSP2BBDQPmaX0etsOsh62+CxnQWKgiE09 -PvQd1SAImaaLHBCEd5hHu+tSazd4fLODLB3ZrzaT0SsCQQDCXP2/gUODYv2yCxlq -8YDUWc30ckR1RaxpbnWdnjqXS8baNYjMcZJdGcWR5zbzibJ1a0hO/d+RNcTEAvvh -u0DhAkEA0PJXIo3KPDGJjRRRhNVte45gKO2REWD10zPv8sbEIwcmsa1JotFYVDgS -cOdw2KbE1gbs3ELhFlVgh/9HHdcfCQJAQvl2OuJZGFIpJ4vpk09q3EGh1aT2cA61 -LZNxlgGrIO1stU6TOBe+nrQ9v1wUNHFzfECepxGWU1xa1ExO7WbwIQJAf35BQ2JZ -Str8HCXpRshk63HX44PXnq2FRlPc0tg1qhIONzDLAzw+w6IDCgZGlPwF3zurVrTF -titHrpv7Z7PwaQ== +MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMeHA4gTTGDqiBbc +H8EcA9K2gtjwRVkP8ft3/APEUKPaP0oTVB0nI11w1TTbQTOeNF9FP80KZ4QtsbIM +F8sncQCQ1UCfH38B8Lw05SinYWxamFBBMX+Tykwd+vyUOn6UaXAbmMkcLN5NkDJl +I1gBkdZ3e4VauwQgAyWb6wlQIi8xAgMBAAECgYEAwlJA4z8ATQc9YR4jIvy40HgF ++WgP8gxwfJu/ap/AdcPxjaBDdF0QuUlRrDe5SZ9TnFGiMHxokre57xCN/8I67zuU +T9i0k21R1VnaiuvbWORCRThp8wCXeLCWPa97U4kmYhTd0d0NL/RccR4ipmCt4V5c +hPZsy4bvSUBOJD+ZGp0CQQD0LC3Csyjfapd00JfXorxTRHNQO35IiWjCXJ6EZzDx +6Q4D6cz9xfwypEINAKVZQBq4ce5n2i+b4N5ug49ALgGDAkEA0TE4UXY9G41XH6zX +mewchPuL4SAfCUPkH6xAep0wXJrZi+HMnWetZodG3iu4YCnG9adOglfP3FM1pcm9 +fl7yOwJBANkev8I11c501iDFq3/P8W6Jm5Bolq6hoUnTWhGaQOebuR65s9KlTtEp +RqKRRHbMjfYdOUWXumX920yiJ6uGPUkCQQCQ6l/xTs+WPpuUPdA9uOso1HlaQz48 +1OM7bcBdMHdIL5104b81a5Ub6aqWTgMz2r0RgA1LDjnYj2wipVa4LF3xAkAq3rlZ +JmDasqLbys4IKGYQGluFBWIUyBU+GcT5e+ehadyql+Nsi/5HNJrS/RDJoSbRkQpH +bnBtJZ4MOIZFgXiw -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_pub.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_pub.pem index 2700c087a21..27a90aac61c 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_pub.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca1_pub.pem @@ -2,69 +2,69 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:33 2010 GMT - Not After : Mar 14 14:50:33 2020 GMT + Not Before: Jul 11 17:17:35 2014 GMT + Not After : Jul 8 17:17:35 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Server Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:a0:de:c0:f3:39:35:d0:f2:8d:68:7d:aa:4f:6e: - d4:f9:68:c3:bb:71:77:a0:ab:83:89:23:da:d5:ac: - 75:5b:7f:45:57:10:48:1f:e1:c8:9f:9b:ab:54:27: - 7f:c4:e5:8b:d0:77:c1:31:49:3e:f2:b3:30:d9:1a: - b9:c0:89:fb:92:87:8c:5e:3f:cc:ca:dc:9f:d3:7a: - fd:0f:bc:01:38:7e:3a:dd:5b:44:e6:75:84:85:fe: - 5c:b4:e3:52:61:9a:57:77:64:39:2c:7f:69:7f:46: - c5:43:98:41:d3:9e:73:f7:95:6a:22:fb:83:81:72: - e1:fa:19:54:9d:81:9e:96:cb + 00:c7:87:03:88:13:4c:60:ea:88:16:dc:1f:c1:1c: + 03:d2:b6:82:d8:f0:45:59:0f:f1:fb:77:fc:03:c4: + 50:a3:da:3f:4a:13:54:1d:27:23:5d:70:d5:34:db: + 41:33:9e:34:5f:45:3f:cd:0a:67:84:2d:b1:b2:0c: + 17:cb:27:71:00:90:d5:40:9f:1f:7f:01:f0:bc:34: + e5:28:a7:61:6c:5a:98:50:41:31:7f:93:ca:4c:1d: + fa:fc:94:3a:7e:94:69:70:1b:98:c9:1c:2c:de:4d: + 90:32:65:23:58:01:91:d6:77:7b:85:5a:bb:04:20: + 03:25:9b:eb:09:50:22:2f:31 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 13:1C:98:41:95:F7:35:BD:34:03:0C:2F:0E:5F:D7:8D:05:D5:1E:5E + BF:D3:42:A7:69:2F:12:F5:0D:C7:38:31:0E:2E:71:B5:9D:D2:19:93 X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Subject Alternative Name: DNS:server, IP Address:127.0.0.1 X509v3 Issuer Alternative Name: email:issuer@zeroc.com, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 01:ad:3b:77:8f:89:48:c0:4f:84:97:fa:bf:7d:74:33:87:e0: - ca:8d:c6:6a:71:1d:e1:b2:30:fb:65:7e:27:45:4c:6c:a3:d1: - e3:66:b2:51:06:37:22:09:e5:01:9b:63:f0:25:e4:07:e7:33: - 9e:a0:e1:c0:27:3a:db:c2:36:6a:7f:d9:6a:00:06:d1:01:c2: - 9a:37:b7:77:22:96:e7:6d:c9:67:c3:bb:b3:9a:7d:2c:37:27: - 36:83:ce:e0:39:04:03:c7:b2:b8:3b:39:fc:be:5f:8c:e9:34: - 52:e9:fe:5b:86:87:fe:18:49:25:dd:9f:71:89:b6:f0:12:18: - 4b:3c + Signature Algorithm: sha256WithRSAEncryption + bf:f2:6e:79:3f:4f:34:4d:56:20:94:48:e2:c6:38:09:8e:f4: + 6c:b4:53:bb:87:0c:12:73:15:19:ac:30:a6:9e:c8:30:1c:83: + 4c:7a:54:90:96:39:fc:f3:2c:a2:66:71:87:c6:fd:d6:ce:f7: + 46:ab:76:53:00:b4:e5:8b:d2:29:be:36:ea:eb:07:6a:08:f5: + c5:e9:29:74:21:da:b1:07:19:70:3b:bc:db:80:5c:f9:9d:03: + 74:6b:58:93:6d:27:53:3a:f4:ed:9c:3b:b5:f5:cc:c8:d6:a7: + f6:70:02:e1:65:20:35:41:50:8f:4f:6a:45:e9:f1:57:ed:a2: + fc:36 -----BEGIN CERTIFICATE----- -MIIDwDCCAymgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDwDCCAymgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzNaFw0yMDAzMTQxNDUwMzNaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzVaFw0yNDA3MDgxNzE3MzVaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGU2VydmVy -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCg3sDzOTXQ8o1ofapPbtT5aMO7 -cXegq4OJI9rVrHVbf0VXEEgf4cifm6tUJ3/E5YvQd8ExST7yszDZGrnAifuSh4xe -P8zK3J/Tev0PvAE4fjrdW0TmdYSF/ly041Jhmld3ZDksf2l/RsVDmEHTnnP3lWoi -+4OBcuH6GVSdgZ6WywIDAQABo4IBOzCCATcwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -ExyYQZX3Nb00AwwvDl/XjQXVHl4wgc4GA1UdIwSBxjCBw4AUotmAKuSRjguFt+TV -KGJPx8mL6NGhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHhwOIE0xg6ogW3B/BHAPStoLY +8EVZD/H7d/wDxFCj2j9KE1QdJyNdcNU020EznjRfRT/NCmeELbGyDBfLJ3EAkNVA +nx9/AfC8NOUop2FsWphQQTF/k8pMHfr8lDp+lGlwG5jJHCzeTZAyZSNYAZHWd3uF +WrsEIAMlm+sJUCIvMQIDAQABo4IBOzCCATcwCQYDVR0TBAIwADAdBgNVHQ4EFgQU +v9NCp2kvEvUNxzgxDi5xtZ3SGZMwgc4GA1UdIwSBxjCBw4AU02SieGyMH63yJnn4 +GwUlxYtiqfOhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh MRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9DLCBJ bmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMTEdMBsG -CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQCUMXCsUGoVmTAXBgNVHREEEDAO +CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQD55vgRsLeFADAXBgNVHREEEDAO ggZzZXJ2ZXKHBH8AAAEwIQYDVR0SBBowGIEQaXNzdWVyQHplcm9jLmNvbYcEfwAA -ATANBgkqhkiG9w0BAQUFAAOBgQABrTt3j4lIwE+El/q/fXQzh+DKjcZqcR3hsjD7 -ZX4nRUxso9HjZrJRBjciCeUBm2PwJeQH5zOeoOHAJzrbwjZqf9lqAAbRAcKaN7d3 -Ipbnbclnw7uzmn0sNyc2g87gOQQDx7K4Ozn8vl+M6TRS6f5bhof+GEkl3Z9xibbw -EhhLPA== +ATANBgkqhkiG9w0BAQsFAAOBgQC/8m55P080TVYglEjixjgJjvRstFO7hwwScxUZ +rDCmnsgwHINMelSQljn88yyiZnGHxv3WzvdGq3ZTALTli9Ipvjbq6wdqCPXF6Sl0 +IdqxBxlwO7zbgFz5nQN0a1iTbSdTOvTtnDu19czI1qf2cALhZSA1QVCPT2pF6fFX +7aL8Ng== -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca2.pfx b/cpp/test/IceSSL/certs/s_rsa_nopass_ca2.pfx Binary files differnew file mode 100644 index 00000000000..fffaf777f0d --- /dev/null +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca2.pfx diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca2_priv.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca2_priv.pem index ca04adb04b6..09a5dd8be6f 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca2_priv.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca2_priv.pem @@ -1,16 +1,16 @@ -----BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMfBo+BrulMxbiZ8 -BzLPYNBkiDNtaM6UlJbDNTjZ/8Fz6AJFit2TLHj1vO3xzdtdRJUHltnjQFe6qo0I -sAzxN+r37IRulcTtognQVA2Cl/A4FX9RUyHgUiw3x5ZP77OUlwnkREkOdrxgt3bG -yg7xqHzdGEedb21sKXlmL5dauW1fAgMBAAECgYEAuLlET5uvsZFLeIFHst/9epkN -LumleywBgK3CgPFvxrjlu3wN37ti6/TrouryYEKO0nYzNQknDjnL0CJRk5ZaCuio -PHCPzYwUUgik46GsSJeg+Z76ehhRoiYMTmwClhofLWwveaxvMc1CoH29V2Z6+KOn -qJf+gv+n/V0FlhDhuBECQQDmu6bxTh+JN+q8UWu2zg7lgMoe81mYWuTIXCWHcxWM -v90u5S6c7vHRXWLyI8BQ856qi3Y/5XqVnuBXId/Hub75AkEA3aGXt4u0MaMzabrQ -KmIDZxyZdAhhuLHntNYRHoS6IE0LjVyLSj0YkGOhD59lXeA5LVlWhsyWbWIUmr5x -ipOtFwJAOoNkNtXFEZtooBFV66oeBP3ARFEaa5TBaD5WFh+NW4Bcq0Pbqli+YoX4 -TcfbQaxGlKGBf3rGt6Lu6anhglkMoQJBANHzWSjL1AhNpM+c48Oyk6yjIA8WPZRc -G7ZoL1FsxHEC61WffGf4VoO5jYKiKcFzPlbiUaBiwIGgLwqkLCTtXkMCQHYbQ0Nb -GDaHMJXrNTJteY0dsLhctkO/ibErmIfEr+eZh80+OLAhbFFJRszI7mpT+Outav0s -fEtDC1uz3kB38/4= +MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL7+tNkgWa08qyaY +P+pSX3o6/q13+AbBGPp0bVE0xQ+pnw/CLyhjyN/5iVuEuTW+9UTBj/0anMLKUHj6 +qmshS0/c287Y3SQud1tq2K7N+cWPmL+A8hm8k3ZCxVLVzKFbAE3y+qjKkWls743w +Im7Z5/J7t8VfOVI7ohvOpTfrSxNrAgMBAAECgYACgN4n9meWgLQRlm9IB/peZMWP +yoHCvOcx6TLBnLp0gRmnoDj0A5LPdLrbKzsuPCmE1DCp9Z5WY0Z4v3haXR5akM/0 +sEwm2AuhR4ZJTlIn8YgBaQz9BsnBnopI+wSHLahjlJX2IUlakgr4+Ueef+smhVM9 +8emYKo6cGucXwcwBUQJBAO0jnAdZTyYMs04blAiyvLYRtgO1SEwJH7DhMmsfCFNp +jLCsvvjbicngsnLdaHyHHqDLQiiQKeazFrxvl72ROnkCQQDOL448QQiIIFpIYREN +jxOr8gtCtOXFioPH3IVbB4qrVNJA82ZRatCeILvS7EfE5VDh2VvUJzJrWhwp/f9H +uYQDAkEAtsiS1KtHManqb1MciJPUl3YRWMxbnJgPwFPke+MglMKvueJ9FO6LR3sV +sSnuBsZTmlbxeLieQ39ZEAfn6ytM6QJAWAzA7gRLs241f+FL2gF2wiAMJQGBehmL +60bGADi5RC9l1mzbDfvSeSS7cPiMMY5IOxqKd5ABnQyPKHOal7OmpwJAVfQ8mtaF +VetDuqRYbUHGdmVQzaCQ3/8MxCw4msnED+DC2ZjdHxoRGhbg+euih+iDHOT00jR6 +me0k0ObGMzDEIg== -----END PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/s_rsa_nopass_ca2_pub.pem b/cpp/test/IceSSL/certs/s_rsa_nopass_ca2_pub.pem index 94c40a3fc6c..43de10ba4dc 100644 --- a/cpp/test/IceSSL/certs/s_rsa_nopass_ca2_pub.pem +++ b/cpp/test/IceSSL/certs/s_rsa_nopass_ca2_pub.pem @@ -2,69 +2,69 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 2/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:34 2010 GMT - Not After : Mar 14 14:50:34 2020 GMT + Not Before: Jul 11 17:17:36 2014 GMT + Not After : Jul 8 17:17:36 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Server Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:c7:c1:a3:e0:6b:ba:53:31:6e:26:7c:07:32:cf: - 60:d0:64:88:33:6d:68:ce:94:94:96:c3:35:38:d9: - ff:c1:73:e8:02:45:8a:dd:93:2c:78:f5:bc:ed:f1: - cd:db:5d:44:95:07:96:d9:e3:40:57:ba:aa:8d:08: - b0:0c:f1:37:ea:f7:ec:84:6e:95:c4:ed:a2:09:d0: - 54:0d:82:97:f0:38:15:7f:51:53:21:e0:52:2c:37: - c7:96:4f:ef:b3:94:97:09:e4:44:49:0e:76:bc:60: - b7:76:c6:ca:0e:f1:a8:7c:dd:18:47:9d:6f:6d:6c: - 29:79:66:2f:97:5a:b9:6d:5f + 00:be:fe:b4:d9:20:59:ad:3c:ab:26:98:3f:ea:52: + 5f:7a:3a:fe:ad:77:f8:06:c1:18:fa:74:6d:51:34: + c5:0f:a9:9f:0f:c2:2f:28:63:c8:df:f9:89:5b:84: + b9:35:be:f5:44:c1:8f:fd:1a:9c:c2:ca:50:78:fa: + aa:6b:21:4b:4f:dc:db:ce:d8:dd:24:2e:77:5b:6a: + d8:ae:cd:f9:c5:8f:98:bf:80:f2:19:bc:93:76:42: + c5:52:d5:cc:a1:5b:00:4d:f2:fa:a8:ca:91:69:6c: + ef:8d:f0:22:6e:d9:e7:f2:7b:b7:c5:5f:39:52:3b: + a2:1b:ce:a5:37:eb:4b:13:6b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 0E:AA:EF:2E:74:AC:99:9E:19:9F:1B:40:44:17:7D:C9:6B:5F:4B:E6 + CE:04:E2:8C:3C:F8:C6:05:3C:C4:6C:7E:0A:76:1B:94:0B:C2:13:E5 X509v3 Authority Key Identifier: - keyid:29:71:09:F4:CF:57:4E:F3:3C:2B:7F:49:CE:4F:7F:64:45:CE:5F:05 + keyid:E6:A2:63:95:8F:8C:4D:7F:7A:3C:62:1A:C3:2A:BA:53:BB:C2:BF:B1 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 2/emailAddress=info@zeroc.com - serial:C5:15:C5:DC:84:DB:8A:C9 + serial:E3:A0:C8:CA:39:6A:77:CF X509v3 Subject Alternative Name: DNS:server, IP Address:127.0.0.1 X509v3 Issuer Alternative Name: email:issuer@zeroc.com, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 1e:62:76:df:b4:49:c3:c0:4d:52:64:d4:62:6b:5a:fb:53:db: - 32:f1:01:84:56:3a:b0:00:48:1d:8c:18:1c:04:0f:ec:5f:2c: - db:f1:dd:b6:93:ba:34:65:82:4f:e7:0d:eb:f5:41:e5:9b:ad: - b8:0c:0c:7b:fa:e7:7f:ba:c6:b7:23:a3:dd:c9:51:20:f0:60: - b0:e4:04:4a:9f:0d:73:77:f2:e5:a1:07:1c:7e:4a:e0:9a:87: - 09:9a:00:1f:b5:96:59:70:d1:af:fb:12:c6:e5:64:75:72:f3: - fc:3e:90:6c:58:8f:49:2b:78:6c:b8:00:a2:af:12:5e:db:bf: - 56:ef + Signature Algorithm: sha256WithRSAEncryption + b6:25:8d:b4:aa:3b:9f:55:ca:54:36:e6:d0:d6:b2:29:09:d4: + 60:cb:61:bf:29:09:f4:4b:09:00:1a:03:e1:41:be:91:4a:2a: + e1:7f:5f:d8:f1:5a:ec:8a:d2:ca:22:0e:2a:11:4e:0e:f3:94: + eb:d0:8c:49:bf:75:11:28:8a:36:f5:0d:39:a4:06:71:8f:ba: + 67:e4:b5:cb:e6:86:76:a2:e3:24:e7:ee:01:4f:b2:70:57:a5: + 70:1f:27:70:cb:cd:6f:78:b2:10:69:d9:8c:d8:7a:9f:bf:8d: + 21:05:04:b0:bf:55:90:ec:31:34:ff:b9:d7:94:15:7b:b4:6e: + e0:4e -----BEGIN CERTIFICATE----- -MIIDwDCCAymgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDwDCCAymgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAyMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzRaFw0yMDAzMTQxNDUwMzRaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzZaFw0yNDA3MDgxNzE3MzZaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGU2VydmVy -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHwaPga7pTMW4mfAcyz2DQZIgz -bWjOlJSWwzU42f/Bc+gCRYrdkyx49bzt8c3bXUSVB5bZ40BXuqqNCLAM8Tfq9+yE -bpXE7aIJ0FQNgpfwOBV/UVMh4FIsN8eWT++zlJcJ5ERJDna8YLd2xsoO8ah83RhH -nW9tbCl5Zi+XWrltXwIDAQABo4IBOzCCATcwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -DqrvLnSsmZ4ZnxtARBd9yWtfS+Ywgc4GA1UdIwSBxjCBw4AUKXEJ9M9XTvM8K39J -zk9/ZEXOXwWhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+/rTZIFmtPKsmmD/qUl96Ov6t +d/gGwRj6dG1RNMUPqZ8Pwi8oY8jf+YlbhLk1vvVEwY/9GpzCylB4+qprIUtP3NvO +2N0kLndbatiuzfnFj5i/gPIZvJN2QsVS1cyhWwBN8vqoypFpbO+N8CJu2efye7fF +XzlSO6IbzqU360sTawIDAQABo4IBOzCCATcwCQYDVR0TBAIwADAdBgNVHQ4EFgQU +zgTijDz4xgU8xGx+CnYblAvCE+Uwgc4GA1UdIwSBxjCBw4AU5qJjlY+MTX96PGIa +wyq6U7vCv7GhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh MRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9DLCBJ bmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMjEdMBsG -CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQDFFcXchNuKyTAXBgNVHREEEDAO +CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQDjoMjKOWp3zzAXBgNVHREEEDAO ggZzZXJ2ZXKHBH8AAAEwIQYDVR0SBBowGIEQaXNzdWVyQHplcm9jLmNvbYcEfwAA -ATANBgkqhkiG9w0BAQUFAAOBgQAeYnbftEnDwE1SZNRia1r7U9sy8QGEVjqwAEgd -jBgcBA/sXyzb8d22k7o0ZYJP5w3r9UHlm624DAx7+ud/usa3I6PdyVEg8GCw5ARK -nw1zd/LloQccfkrgmocJmgAftZZZcNGv+xLG5WR1cvP8PpBsWI9JK3hsuACirxJe -279W7w== +ATANBgkqhkiG9w0BAQsFAAOBgQC2JY20qjufVcpUNubQ1rIpCdRgy2G/KQn0SwkA +GgPhQb6RSirhf1/Y8VrsitLKIg4qEU4O85Tr0IxJv3URKIo29Q05pAZxj7pn5LXL +5oZ2ouMk5+4BT7JwV6VwHydwy81veLIQadmM2Hqfv40hBQSwv1WQ7DE0/7nXlBV7 +tG7gTg== -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/s_rsa_pass_ca1_priv.pem b/cpp/test/IceSSL/certs/s_rsa_pass_ca1_priv.pem index c8f10b7d79b..9d4741a1fca 100644 --- a/cpp/test/IceSSL/certs/s_rsa_pass_ca1_priv.pem +++ b/cpp/test/IceSSL/certs/s_rsa_pass_ca1_priv.pem @@ -1,17 +1,17 @@ -----BEGIN ENCRYPTED PRIVATE KEY----- -MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIIl4lILgc9ToCAggA -MBQGCCqGSIb3DQMHBAhsdS4QtR0aBQSCAoAzttNbJnIxkzisUVlL8a7NMYMZqJMF -8eDuU/5s8f7vY5gJqD4eotuNOAlm+0olSaF18ngWvErc7XsPLuiNvWuruuDYOm+Y -NuA9K7mlycBG7n7o/m1ZKTZTqvm9B44oJUdqPUX7dq2i3U6yo+EfTGHpi7qAdidA -AxNJ7Nk4W3AJTsPt2KrPt2rjC5vj8sonpO5tq3r3k5ZiNeU4EMXpSIwRctywxhos -5BIInmUJbNxgpbd8/9j/3Ulf0GiQY52coS20pCOJq1Vkiibgy2UZAD8E7SySNFrP -e/7XlZF3q4hUMQwLJrZFIUT8g8c+53WHdcuiQqneVvCgmtWoB2EKLB2Mbix9pX4r -Rxjf4TeijlhiCQh0UsxWJUL7POPx8FvaatqrcLw6tJXzSCce5n5EVKQYbvsI8ebU -mg9p6Z39I10K0UH2XrSVrBzlkmks3Uf3KBFXztqqngOmIed+jZVWoHWC6lvS4e4a -BpRKZzTFLYrYkey7BW9bSlYnANkT7AJGLGqR41jfgBntLLDeGflUO97oPbe9n6E/ -G0ZIMzfI4hqeRe2ZVf0emhMNQmCp612dImTuEKZskYqaCdVemuIqXjVkaKQwLvUB -VDSnCINSVIgwMwU+PL8o1ODTkGWXmNlJFqainN3i/b6kL5zzut9nXRqkdytTC0mZ -OoO6f8ITI9jEj4zE09Y3pWgawogsG1hxm6x5zTpkO1Kv19p2+FpBQjR2YMFjh0yX -ZIv+QldYRnqaY3zcVbejZRx/J63KvRVrrZM8WOhGW8yc1Gy3mPyDemsyO1ymucc0 -m6cyuG1udwgzTzgCrm4d9Wisj4lrO5v7hup5bJAcHAr1rYEr/5j/gOYA +MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQInlfYWwzyGTECAggA +MBQGCCqGSIb3DQMHBAhYU9lqNli1SASCAoBARv/s3Y8KZYe4nMrQq0iOIH+lfFCJ +PR45ALfCeJ/8FlzXiyhXTGGEodCjHUJtC53lnXrj/7krv/4g1fLvJb4IXJ5qG6Jv +9JZ6wKZ0Sjsb+6wW+mXLbxXXf3rCNhvwgoC+DovMtg5g0mbL7j5qR9bp5Ch2wM3/ +IIVL1GgAR9d7Tt6+5p3jvOkR1M6u94u7gMrm4iXnsdGSWHsZbByDiUXVUGyGxwOD +4q/BiCefqwS5TGqZPHcGFV4qjEPAI2awGH2x0x23eKZVZK4TtK3dzmCV2JdAnbgS +Rwn3aUoLNVKaAnomC/HpMMKXG9R9W6MQciPaQ3pYGNwxKL9j+0PtPob63d+q1Suw +Y8SaXimNbOV1XY0LTckMCJferTrvHWxa86v/KQIWz8SFgU7o1PVmHZ34iftzh4rs +0BRv0fCBBNZu53wylAD9MWDpGvExzbOqINUz8uiOHmGF/HGfSWaRm5pPf613jWUd +HXPYAD1h206ByGlaGgVGqSNWmmxbeLr/vPBq463sXiN2LQdKGPTvh5Ej/hJgbt12 ++NstnuA0H17MnqLsMT9aVSkTMRuyuaFC8u2NKOJ2PPDiuVKHN4jXJQCau4grOHnI +o+f+8rOYi/1DPYd8mq6hYqyolpJMC2UjyqwFwY9YMjEJT1cOaHegk47c/l20Mhmx +w8jysAw3FjR1RtJakyZSMm+erVmHw82lo5nSHzUScnK9IF/qt4vytXUTuGlLVkl/ +70Vme0WPQR14H5ivbtgjsumiD/7D0GSjMI8IBQQEz3mdD+tRqUqbNUANQvztgXjS +G8j8jn7WJ9Ri6ZSTvxZ1RKKAJwx8/YDC2j3Eo2rRnVNt8GnREWFjORxL -----END ENCRYPTED PRIVATE KEY----- diff --git a/cpp/test/IceSSL/certs/s_rsa_pass_ca1_pub.pem b/cpp/test/IceSSL/certs/s_rsa_pass_ca1_pub.pem index 9a0d873dc55..446dcd89920 100644 --- a/cpp/test/IceSSL/certs/s_rsa_pass_ca1_pub.pem +++ b/cpp/test/IceSSL/certs/s_rsa_pass_ca1_pub.pem @@ -2,69 +2,69 @@ Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) - Signature Algorithm: sha1WithRSAEncryption + Signature Algorithm: sha256WithRSAEncryption Issuer: C=US, ST=Florida, L=Palm Beach Gardens, O=ZeroC, Inc., OU=Ice, CN=ZeroC Test CA 1/emailAddress=info@zeroc.com Validity - Not Before: Mar 17 14:50:33 2010 GMT - Not After : Mar 14 14:50:33 2020 GMT + Not Before: Jul 11 17:17:35 2014 GMT + Not After : Jul 8 17:17:35 2024 GMT Subject: C=US, ST=Florida, O=ZeroC, Inc., OU=Ice/emailAddress=info@zeroc.com, CN=Server Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: - 00:dd:ff:45:ed:21:09:d6:4b:91:3e:c3:71:28:0b: - 5e:92:40:da:80:5c:c7:0f:7b:3c:65:cb:1a:06:16: - 5b:71:0f:e4:83:2a:42:3b:6b:46:10:3c:77:18:96: - 5a:7f:e2:f3:90:59:3d:d6:aa:4e:d6:e6:10:13:18: - 10:be:97:99:8a:fc:dd:c5:6a:69:ff:c2:9b:8e:eb: - 1f:48:ee:b1:d5:fa:90:aa:9a:b7:a7:73:9e:e0:c9: - 1b:dc:f9:13:e4:67:8a:ae:ef:0f:00:4a:e8:85:09: - 99:2e:75:ce:27:47:ea:bb:fe:0f:8b:d7:58:71:8a: - ab:61:84:64:75:8a:59:de:ed + 00:bd:85:92:f3:47:e4:a6:ce:b2:95:68:94:6b:69: + 23:c2:63:5e:89:a4:96:f3:3a:15:f1:2d:18:32:ca: + f2:d0:8a:91:c5:58:fa:12:a3:c1:a5:72:fa:07:70: + da:a2:f5:6b:d8:fc:e1:e9:52:5a:1e:29:14:81:4d: + 71:a4:b4:ef:d6:e0:dc:99:a5:5a:d1:c6:a4:39:41: + 5f:c6:a8:e0:ed:16:83:fa:24:1c:55:36:6a:98:46: + 0e:50:7a:14:7a:78:07:e5:03:3e:29:92:38:8a:33: + dc:da:92:28:83:47:62:a0:4a:a1:1e:e7:fa:bc:3b: + 97:83:cb:9e:0d:e0:fb:d9:89 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Subject Key Identifier: - 6B:53:95:D2:AA:F0:D3:F7:22:D3:D1:39:CD:8A:8D:19:C7:11:84:5C + 19:93:2B:8B:02:99:F7:CC:34:C4:2F:17:E5:23:EC:F1:74:ED:DB:1C X509v3 Authority Key Identifier: - keyid:A2:D9:80:2A:E4:91:8E:0B:85:B7:E4:D5:28:62:4F:C7:C9:8B:E8:D1 + keyid:D3:64:A2:78:6C:8C:1F:AD:F2:26:79:F8:1B:05:25:C5:8B:62:A9:F3 DirName:/C=US/ST=Florida/L=Palm Beach Gardens/O=ZeroC, Inc./OU=Ice/CN=ZeroC Test CA 1/emailAddress=info@zeroc.com - serial:94:31:70:AC:50:6A:15:99 + serial:F9:E6:F8:11:B0:B7:85:00 X509v3 Subject Alternative Name: DNS:server, IP Address:127.0.0.1 X509v3 Issuer Alternative Name: email:issuer@zeroc.com, IP Address:127.0.0.1 - Signature Algorithm: sha1WithRSAEncryption - 14:35:61:b4:ac:49:96:67:a4:07:38:ba:16:6a:6a:bf:82:0b: - c7:f3:2b:94:4b:24:a6:89:aa:c9:51:b9:d4:57:fd:3f:37:60: - 28:12:a7:15:b7:18:18:c0:55:b9:32:bd:f8:58:ca:7a:b6:45: - 28:73:00:a5:43:3a:7d:ee:6b:64:a8:c2:7c:ad:c9:24:31:0b: - 30:92:54:35:86:4b:3c:f5:8b:f2:50:87:77:52:1b:6a:d5:84: - fa:d0:03:7e:5b:17:7d:27:17:1e:b2:6e:2c:47:07:7b:36:1c: - 50:5a:3b:bd:ae:2d:3b:c5:1d:11:84:d1:5d:f3:73:fc:be:a0: - f9:a7 + Signature Algorithm: sha256WithRSAEncryption + 16:2c:ea:17:ad:ed:89:74:86:d4:90:cf:9b:66:37:25:7a:52: + be:c0:40:e9:bc:33:84:ec:a4:b4:da:21:b3:68:93:8c:be:ed: + c8:8b:c7:6c:fd:0b:89:6f:04:e2:53:c9:fa:4e:9b:11:28:f1: + ea:e8:df:b5:f6:33:f2:d5:7f:3c:84:f6:49:db:cd:3e:b5:ea: + 44:f5:4c:ed:16:6d:21:93:f8:88:22:3e:19:04:25:11:ac:44: + 34:3a:08:18:93:f4:e9:73:a1:fd:90:00:96:7b:db:4a:e8:06: + 16:d1:68:fc:27:da:86:2a:a5:e3:6e:06:7e:f5:29:e7:64:4a: + 9c:87 -----BEGIN CERTIFICATE----- -MIIDwDCCAymgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBmTELMAkGA1UEBhMCVVMx +MIIDwDCCAymgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBmTELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0Zsb3JpZGExGzAZBgNVBAcTElBhbG0gQmVhY2ggR2FyZGVuczEU MBIGA1UEChMLWmVyb0MsIEluYy4xDDAKBgNVBAsTA0ljZTEYMBYGA1UEAxMPWmVy b0MgVGVzdCBDQSAxMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTAeFw0x -MDAzMTcxNDUwMzNaFw0yMDAzMTQxNDUwMzNaMHMxCzAJBgNVBAYTAlVTMRAwDgYD +NDA3MTExNzE3MzVaFw0yNDA3MDgxNzE3MzVaMHMxCzAJBgNVBAYTAlVTMRAwDgYD VQQIEwdGbG9yaWRhMRQwEgYDVQQKEwtaZXJvQywgSW5jLjEMMAoGA1UECxMDSWNl MR0wGwYJKoZIhvcNAQkBFg5pbmZvQHplcm9jLmNvbTEPMA0GA1UEAxMGU2VydmVy -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDd/0XtIQnWS5E+w3EoC16SQNqA -XMcPezxlyxoGFltxD+SDKkI7a0YQPHcYllp/4vOQWT3Wqk7W5hATGBC+l5mK/N3F -amn/wpuO6x9I7rHV+pCqmrenc57gyRvc+RPkZ4qu7w8ASuiFCZkudc4nR+q7/g+L -11hxiqthhGR1ilne7QIDAQABo4IBOzCCATcwCQYDVR0TBAIwADAdBgNVHQ4EFgQU -a1OV0qrw0/ci09E5zYqNGccRhFwwgc4GA1UdIwSBxjCBw4AUotmAKuSRjguFt+TV -KGJPx8mL6NGhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC9hZLzR+SmzrKVaJRraSPCY16J +pJbzOhXxLRgyyvLQipHFWPoSo8GlcvoHcNqi9WvY/OHpUloeKRSBTXGktO/W4NyZ +pVrRxqQ5QV/GqODtFoP6JBxVNmqYRg5QehR6eAflAz4pkjiKM9zakiiDR2KgSqEe +5/q8O5eDy54N4PvZiQIDAQABo4IBOzCCATcwCQYDVR0TBAIwADAdBgNVHQ4EFgQU +GZMriwKZ98w0xC8X5SPs8XTt2xwwgc4GA1UdIwSBxjCBw4AU02SieGyMH63yJnn4 +GwUlxYtiqfOhgZ+kgZwwgZkxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRh MRswGQYDVQQHExJQYWxtIEJlYWNoIEdhcmRlbnMxFDASBgNVBAoTC1plcm9DLCBJ bmMuMQwwCgYDVQQLEwNJY2UxGDAWBgNVBAMTD1plcm9DIFRlc3QgQ0EgMTEdMBsG -CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQCUMXCsUGoVmTAXBgNVHREEEDAO +CSqGSIb3DQEJARYOaW5mb0B6ZXJvYy5jb22CCQD55vgRsLeFADAXBgNVHREEEDAO ggZzZXJ2ZXKHBH8AAAEwIQYDVR0SBBowGIEQaXNzdWVyQHplcm9jLmNvbYcEfwAA -ATANBgkqhkiG9w0BAQUFAAOBgQAUNWG0rEmWZ6QHOLoWamq/ggvH8yuUSySmiarJ -UbnUV/0/N2AoEqcVtxgYwFW5Mr34WMp6tkUocwClQzp97mtkqMJ8rckkMQswklQ1 -hks89YvyUId3Uhtq1YT60AN+Wxd9Jxcesm4sRwd7NhxQWju9ri07xR0RhNFd83P8 -vqD5pw== +ATANBgkqhkiG9w0BAQsFAAOBgQAWLOoXre2JdIbUkM+bZjclelK+wEDpvDOE7KS0 +2iGzaJOMvu3Ii8ds/QuJbwTiU8n6TpsRKPHq6N+19jPy1X88hPZJ280+tepE9Uzt +Fm0hk/iIIj4ZBCURrEQ0OggYk/Tpc6H9kACWe9tK6AYW0Wj8J9qGKqXjbgZ+9Snn +ZEqchw== -----END CERTIFICATE----- diff --git a/cpp/test/IceSSL/certs/server.cnf b/cpp/test/IceSSL/certs/server.cnf index 9503e6f4c46..a7ac4ceaf81 100644 --- a/cpp/test/IceSSL/certs/server.cnf +++ b/cpp/test/IceSSL/certs/server.cnf @@ -29,7 +29,7 @@ certs = $dir # Where issued certs are kept. RANDFILE = $dir/.rand # Private random number file. default_days = 3650 # How long certs are valid. -default_md = sha1 # The Message Digest type. +default_md = sha256 # The Message Digest type. preserve = yes # Keep passed DN ordering? policy = ca_policy @@ -57,7 +57,7 @@ issuerAltName = email:issuer@zeroc.com, IP:127.0.0.1 [ req ] default_bits = 1024 -default_md = sha1 +default_md = sha256 prompt = no distinguished_name = root_ca_distinguished_name x509_extensions = root_ca_extensions diff --git a/cpp/test/IceSSL/certs/test_ca1.cnf b/cpp/test/IceSSL/certs/test_ca1.cnf index 67f30e4a4f3..a9a72cd1c78 100644 --- a/cpp/test/IceSSL/certs/test_ca1.cnf +++ b/cpp/test/IceSSL/certs/test_ca1.cnf @@ -21,13 +21,13 @@ default_ca = ice [ ice ] default_days = 3650 # How long certs are valid. -default_md = md5 # The Message Digest type. +default_md = sha256 # The Message Digest type. preserve = no # Keep passed DN ordering? [ req ] default_bits = 2048 -default_md = md5 +default_md = sha256 prompt = no distinguished_name = root_ca_distinguished_name x509_extensions = root_ca_extensions diff --git a/cpp/test/IceSSL/certs/test_ca2.cnf b/cpp/test/IceSSL/certs/test_ca2.cnf index 86f7ca0e478..07221423483 100644 --- a/cpp/test/IceSSL/certs/test_ca2.cnf +++ b/cpp/test/IceSSL/certs/test_ca2.cnf @@ -21,13 +21,13 @@ default_ca = ice [ ice ] default_days = 3650 # How long certs are valid. -default_md = md5 # The Message Digest type. +default_md = sha256 # The Message Digest type. preserve = no # Keep passed DN ordering? [ req ] default_bits = 2048 -default_md = md5 +default_md = sha256 prompt = no distinguished_name = root_ca_distinguished_name x509_extensions = root_ca_extensions diff --git a/cpp/test/IceSSL/configuration/.depend b/cpp/test/IceSSL/configuration/.depend index 1ef5a5370e8..5cd81c83880 100644 --- a/cpp/test/IceSSL/configuration/.depend +++ b/cpp/test/IceSSL/configuration/.depend @@ -1,7 +1,7 @@ Test$(OBJEXT): Test.cpp Test.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h -Client$(OBJEXT): Client.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h +Client$(OBJEXT): Client.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/IceSSL/IceSSL.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h $(includedir)/IceSSL/EndpointInfo.h AllTests$(OBJEXT): AllTests.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h ../../include/TestCommon.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/IconvStringConverter.h Test.h Util.h $(includedir)/IceSSL/IceSSL.h $(includedir)/IceSSL/EndpointInfo.h Test$(OBJEXT): Test.cpp Test.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h -TestI$(OBJEXT): TestI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h TestI.h Test.h ../../include/TestCommon.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/IconvStringConverter.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h Util.h $(includedir)/IceSSL/IceSSL.h $(includedir)/IceSSL/EndpointInfo.h $(includedir)/IceUtil/FileUtil.h +TestI$(OBJEXT): TestI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h TestI.h Test.h ../../include/TestCommon.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/IconvStringConverter.h $(includedir)/IceSSL/Plugin.h $(includedir)/IceSSL/Config.h $(includedir)/IceSSL/ConnectionInfo.h Util.h $(includedir)/IceSSL/IceSSL.h $(includedir)/IceSSL/EndpointInfo.h Server$(OBJEXT): Server.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/ThreadPoolF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h TestI.h Test.h Test.h Test.cpp: Test.ice $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/IceSSL/configuration/.depend.mak b/cpp/test/IceSSL/configuration/.depend.mak index c6c462639b5..e209ee5c9e9 100644 --- a/cpp/test/IceSSL/configuration/.depend.mak +++ b/cpp/test/IceSSL/configuration/.depend.mak @@ -1,7 +1,7 @@ Test$(OBJEXT): Test.cpp Test.h "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/ObjectFactory.h" -Client$(OBJEXT): Client.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" +Client$(OBJEXT): Client.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/IceSSL/IceSSL.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" "$(includedir)/IceSSL/EndpointInfo.h" AllTests$(OBJEXT): AllTests.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/IceUtil/FileUtil.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" ../../include/TestCommon.h "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/UUID.h" "$(includedir)/IceUtil/IconvStringConverter.h" Test.h Util.h "$(includedir)/IceSSL/IceSSL.h" "$(includedir)/IceSSL/EndpointInfo.h" Test$(OBJEXT): Test.cpp Test.h "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/ObjectFactory.h" -TestI$(OBJEXT): TestI.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" TestI.h Test.h ../../include/TestCommon.h "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/UUID.h" "$(includedir)/IceUtil/IconvStringConverter.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" Util.h "$(includedir)/IceSSL/IceSSL.h" "$(includedir)/IceSSL/EndpointInfo.h" "$(includedir)/IceUtil/FileUtil.h" +TestI$(OBJEXT): TestI.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" TestI.h Test.h ../../include/TestCommon.h "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/UUID.h" "$(includedir)/IceUtil/IconvStringConverter.h" "$(includedir)/IceSSL/Plugin.h" "$(includedir)/IceSSL/Config.h" "$(includedir)/IceSSL/ConnectionInfo.h" Util.h "$(includedir)/IceSSL/IceSSL.h" "$(includedir)/IceSSL/EndpointInfo.h" Server$(OBJEXT): Server.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/ThreadPoolF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" TestI.h Test.h Test.h Test.cpp: Test.ice "$(SLICE2CPP)" "$(SLICEPARSERLIB)" diff --git a/cpp/test/IceSSL/configuration/AllTests.cpp b/cpp/test/IceSSL/configuration/AllTests.cpp index 9637bf21715..4e493db54d2 100644 --- a/cpp/test/IceSSL/configuration/AllTests.cpp +++ b/cpp/test/IceSSL/configuration/AllTests.cpp @@ -74,6 +74,7 @@ public: { dnsNames.push_back(p->second); } + } test(find(dnsNames.begin(), dnsNames.end(), "server") != dnsNames.end()); @@ -140,7 +141,8 @@ private: typedef IceUtil::Handle<CertificateVerifierI> CertificateVerifierIPtr; static PropertiesPtr -createClientProps(const Ice::PropertiesPtr& defaultProperties, const string& defaultDir, const string& defaultHost) +createClientProps(const Ice::PropertiesPtr& defaultProperties, const string& defaultDir, + const string& defaultHost, bool password) { PropertiesPtr result = createProperties(); result->setProperty("Ice.Plugin.IceSSL", "IceSSL:createIceSSL"); @@ -153,6 +155,11 @@ createClientProps(const Ice::PropertiesPtr& defaultProperties, const string& def { result->setProperty("Ice.Default.Host", defaultHost); } + if(password) + { + result->setProperty("IceSSL.Password", "password"); + } + //result->setProperty("IceSSL.Trace.Security", "1"); #ifdef ICE_USE_SECURE_TRANSPORT const string keychainName = "client.keychain"; const string keychainPassword = "password"; @@ -164,7 +171,8 @@ createClientProps(const Ice::PropertiesPtr& defaultProperties, const string& def } static Test::Properties -createServerProps(const Ice::PropertiesPtr& defaultProperties, const string& defaultDir, const string& defaultHost) +createServerProps(const Ice::PropertiesPtr& defaultProperties, const string& defaultDir, const string& defaultHost, + bool password) { Test::Properties result; result["Ice.Plugin.IceSSL"] = "IceSSL:createIceSSL"; @@ -177,6 +185,11 @@ createServerProps(const Ice::PropertiesPtr& defaultProperties, const string& def { result["Ice.Default.Host"] = defaultHost; } + if(password) + { + result["IceSSL.Password"] = "password"; + } + //result["IceSSL.Trace.Security"] = "1"; #ifdef ICE_USE_SECURE_TRANSPORT result["IceSSL.Keychain"] = "server.keychain"; result["IceSSL.KeychainPassword"] = "password"; @@ -184,8 +197,22 @@ createServerProps(const Ice::PropertiesPtr& defaultProperties, const string& def return result; } +void verify(const IceSSL::CertificatePtr& cert, const IceSSL::CertificatePtr& ca) +{ + cerr << "Verify signature: "; + if(cert->verify(ca)) + { + cerr << " VALID"; + } + else + { + cerr << " INVALID"; + } + cerr << endl; +} + void -allTests(const CommunicatorPtr& communicator, const string& testDir) +allTests(const CommunicatorPtr& communicator, const string& testDir, bool pfx, bool shutdown) { string factoryRef = "factory:tcp -p 12010"; ObjectPrx base = communicator->stringToProxy(factoryRef); @@ -204,7 +231,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) cout << "testing manual initialization... " << flush; { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("Ice.InitPlugins", "0"); CommunicatorPtr comm = initialize(initData); ObjectPrx p = comm->stringToProxy("dummy:ssl -p 9999"); @@ -223,15 +250,20 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } comm->destroy(); } + +// +// Anonymous cipher are not supported with SChannel +// +#ifndef ICE_USE_SCHANNEL { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("Ice.InitPlugins", "0"); -#ifdef ICE_USE_OPENSSL +# ifdef ICE_USE_OPENSSL initData.properties->setProperty("IceSSL.Ciphers", "ADH"); -#else +# else initData.properties->setProperty("IceSSL.Ciphers", "DH_anon_WITH_AES_256_CBC_SHA"); -#endif +# endif initData.properties->setProperty("IceSSL.VerifyPeer", "0"); CommunicatorPtr comm = initialize(initData); PluginManagerPtr pm = comm->getPluginManager(); @@ -239,12 +271,12 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) ObjectPrx obj = comm->stringToProxy(factoryRef); test(obj); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(obj); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); -#ifdef ICE_USE_OPENSSL + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); +# ifdef ICE_USE_OPENSSL d["IceSSL.Ciphers"] = "ADH"; -#else +# else d["IceSSL.Ciphers"] = "DH_anon_WITH_AES_256_CBC_SHA"; -#endif +# endif d["IceSSL.VerifyPeer"] = "0"; Test::ServerPrx server = fact->createServer(d); try @@ -258,6 +290,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) fact->destroyServer(server); comm->destroy(); } +#endif cout << "ok" << endl; cout << "testing certificate verification... " << flush; @@ -271,25 +304,34 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // CA certificate. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.VerifyPeer", "0"); initData.properties->setProperty("IceSSL.DefaultDir", ""); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "0"; Test::ServerPrx server = fact->createServer(d); try { server->noCert(); } - catch(const LocalException&) + catch(const LocalException& ex) { + cerr << ex << endl; test(false); } // @@ -299,7 +341,14 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) { IceSSL::NativeConnectionInfoPtr info = IceSSL::NativeConnectionInfoPtr::dynamicCast(server->ice_getConnection()->getInfo()); +#ifdef ICE_USE_SCHANNEL + // + // SChannel doesn't seem to send the root certificate + // + test(info->nativeCerts.size() == 1); +#else test(info->nativeCerts.size() == 2); +#endif } catch(const Ice::LocalException&) { @@ -310,10 +359,17 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // // Test IceSSL.VerifyPeer=1. Client does not have a certificate. // - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "1"; server = fact->createServer(d); try @@ -330,10 +386,17 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // Test IceSSL.VerifyPeer=2. This should fail because the client // does not supply a certificate. // - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "2"; server = fact->createServer(d); try @@ -362,20 +425,37 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // // Test IceSSL.VerifyPeer=1. Client has a certificate. // - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } + initData.properties->setProperty("IceSSL.VerifyPeer", "0"); comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "1"; server = fact->createServer(d); + try { IceSSL::CertificatePtr clientCert = @@ -432,10 +512,17 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // // Test IceSSL.VerifyPeer=2. Client has a certificate. // - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "2"; server = fact->createServer(d); try @@ -457,22 +544,29 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // trust the server's CA. We disable IceSSL.DefaultDir in the client so that // OpenSSL can't search for the server's CA certificate. // - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.DefaultDir", ""); initData.properties->setProperty("IceSSL.VerifyPeer", "1"); comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "0"; server = fact->createServer(d); try { server->ice_ping(); - test(false); + test(false); } catch(const ProtocolException&) { @@ -499,19 +593,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // IceSSL.DefaultDir in the server so that it can't find the client's CA // certificate. // - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert2.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca2_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca2_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca2.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca2_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca2_priv.pem"); + } initData.properties->setProperty("IceSSL.VerifyPeer", "0"); comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d.erase("IceSSL.DefaultDir"); d["IceSSL.CertAuthFile"] = defaultDir + "/cacert1.pem"; - d["IceSSL.CertFile"] = defaultDir + "/s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = defaultDir + "/s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = defaultDir + "/s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = defaultDir + "/s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = defaultDir + "/s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "1"; server = fact->createServer(d); try @@ -540,18 +648,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // // Verify that IceSSL.CheckCertName has no effect in a server. // - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.CheckCertName"] = "1"; server = fact->createServer(d); try @@ -576,19 +698,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // Test subject alternative name. // { - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.CheckCertName", "1"); comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } server = fact->createServer(d); try { @@ -605,19 +741,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // Test common name. // { - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.CheckCertName", "1"); comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_cn1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_cn1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1_cn1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_cn1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_cn1_priv.pem"; + } server = fact->createServer(d); try { @@ -635,19 +785,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // common name, therefore the address "127.0.0.1" must NOT match. // { - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.CheckCertName", "1"); comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_cn2_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_cn2_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1_cn2.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_cn2_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_cn2_priv.pem"; + } server = fact->createServer(d); try { @@ -666,17 +830,22 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) cout << "ok" << endl; cout << "testing custom certificate verifier... " << flush; + { +// +// Anonymous ciphers are not supported with SChannel. +// +#ifndef ICE_USE_SCHANNEL // // ADH is allowed but will not have a certificate. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); -#ifdef ICE_USE_OPENSSL + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); +# ifdef ICE_USE_OPENSSL initData.properties->setProperty("IceSSL.Ciphers", "ADH"); -#else +# else initData.properties->setProperty("IceSSL.Ciphers", "(DH_anon*)"); -#endif +# endif initData.properties->setProperty("IceSSL.VerifyPeer", "0"); CommunicatorPtr comm = initialize(initData); IceSSL::PluginPtr plugin = IceSSL::PluginPtr::dynamicCast(comm->getPluginManager()->getPlugin("IceSSL")); @@ -686,14 +855,14 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); -#ifdef ICE_USE_OPENSSL + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); +# ifdef ICE_USE_OPENSSL string cipherSub = "ADH-"; d["IceSSL.Ciphers"] = "ADH"; -#else +# else string cipherSub = "DH_anon"; d["IceSSL.Ciphers"] = "(DH_anon*)"; -#endif +# endif d["IceSSL.VerifyPeer"] = "0"; Test::ServerPrx server = fact->createServer(d); try @@ -735,16 +904,24 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) fact->destroyServer(server); comm->destroy(); +#endif } { // // Verify that a server certificate is present. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.VerifyPeer", "0"); CommunicatorPtr comm = initialize(initData); IceSSL::PluginPtr plugin = IceSSL::PluginPtr::dynamicCast(comm->getPluginManager()->getPlugin("IceSSL")); @@ -754,10 +931,17 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "2"; Test::ServerPrx server = fact->createServer(d); try @@ -778,23 +962,47 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) cout << "testing protocols... " << flush; { + // + // In OS X we don't support IceSSL.Protocols as secure transport doesn't allow to set the enabled protocols + // instead we use IceSSL.ProtocolVersionMax IceSSL.ProtocolVersionMin to set the maximun and minimum + // enabled protocol versions. See the test bellow. + // #ifndef ICE_USE_SECURE_TRANSPORT // // This should fail because the client and server have no protocol // in common. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); - initData.properties->setProperty("IceSSL.Ciphers", "ADH"); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); + initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.VerifyPeer", "0"); - initData.properties->setProperty("IceSSL.Protocols", "ssl3"); + initData.properties->setProperty("IceSSL.Protocols", "ssl3"); CommunicatorPtr comm = initialize(initData); + Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); - d["IceSSL.Ciphers"] = "ADH"; + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); + initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "s_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "s_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "s_rsa_nopass_ca1_priv.pem"); + } d["IceSSL.VerifyPeer"] = "0"; - d["IceSSL.Protocols"] = "tls1"; + d["IceSSL.Protocols"] = "tls"; Test::ServerPrx server = fact->createServer(d); try { @@ -822,17 +1030,27 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); - d["IceSSL.Ciphers"] = "ADH"; + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); + d["IceSSL.CertAuthFile"] = "cacert1.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "0"; - d["IceSSL.Protocols"] = "tls1, ssl3"; + d["IceSSL.Protocols"] = "tls, ssl3"; server = fact->createServer(d); try { server->ice_ping(); } - catch(const LocalException&) + catch(const LocalException& ex) { + cerr << ex << endl; test(false); } fact->destroyServer(server); @@ -843,7 +1061,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // in common. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.Ciphers", "(DH_anon*)"); initData.properties->setProperty("IceSSL.VerifyPeer", "0"); initData.properties->setProperty("IceSSL.ProtocolVersionMax", "ssl3"); @@ -851,7 +1069,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.Ciphers"] = "(DH_anon*)"; d["IceSSL.VerifyPeer"] = "0"; d["IceSSL.ProtocolVersionMax"] = "tls1_2"; @@ -883,7 +1101,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.Ciphers"] = "(DH_anon*)"; d["IceSSL.VerifyPeer"] = "0"; d["IceSSL.ProtocolVersionMax"] = "tls1"; @@ -915,17 +1133,31 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_exp_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_exp_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1_exp.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_exp_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_exp_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -958,17 +1190,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) IceSSL::Certificate::load(defaultDir + "/c_rsa_nopass_ca1_exp_pub.pem"); test(!cert->checkValidity()); } - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_exp_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_exp_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1_exp.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_exp_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_exp_priv.pem"); + } comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } server = fact->createServer(d); try { @@ -995,6 +1242,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } cout << "ok" << endl; +#ifdef ICE_USE_OPENSSL cout << "testing CA certificate directory... " << flush; { // @@ -1002,15 +1250,29 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // certificate in the default directory. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1025,17 +1287,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) comm->destroy(); } cout << "ok" << endl; - +#endif + + // + // SChannel doesn't support PCKS8 certificates (PEM Password protected certificates) + // +#ifdef ICE_USE_SCHANNEL + if(pfx) + { +#endif cout << "testing password prompt... " << flush; { // // Use the correct password. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, false); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_pass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_pass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_pass_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_pass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_pass_ca1_priv.pem"); + } initData.properties->setProperty("Ice.InitPlugins", "0"); CommunicatorPtr comm = initialize(initData); PluginManagerPtr pm = comm->getPluginManager(); @@ -1047,10 +1324,17 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) test(prompt->count() == 1); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1063,14 +1347,22 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } fact->destroyServer(server); comm->destroy(); - + + cerr << "Use incorrect password" << endl; // // Use an incorrect password and check that retries are attempted. // - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, false); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_pass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_pass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_pass_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_pass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_pass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.PasswordRetryMax", "4"); initData.properties->setProperty("Ice.InitPlugins", "0"); comm = initialize(initData); @@ -1097,34 +1389,37 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) comm->destroy(); } cout << "ok" << endl; - +#ifdef ICE_USE_SCHANNEL + } +#endif cout << "testing ciphers... " << flush; +#ifndef ICE_USE_SCHANNEL { // // The server has a certificate but the client doesn't. They should // negotiate to use ADH since we explicitly enable it. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); -#ifdef ICE_USE_OPENSSL + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); +# ifdef ICE_USE_OPENSSL initData.properties->setProperty("IceSSL.Ciphers", "ADH"); -#else +# else initData.properties->setProperty("IceSSL.Ciphers", "(DH_anon*)"); -#endif +# endif CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; -#ifdef ICE_USE_OPENSSL +# ifdef ICE_USE_OPENSSL string cipherSub = "ADH-"; d["IceSSL.Ciphers"] = "RSA:ADH"; -#else +# else string cipherSub = "DH_"; d["IceSSL.Ciphers"] = "(RSA_*) (DH_anon*)"; -#endif +# endif d["IceSSL.VerifyPeer"] = "1"; Test::ServerPrx server = fact->createServer(d); try @@ -1148,16 +1443,16 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // provide a certificate. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); -#ifdef ICE_USE_OPENSSL + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); +# ifdef ICE_USE_OPENSSL initData.properties->setProperty("IceSSL.Ciphers", "ALL:!ADH"); -#else +# else initData.properties->setProperty("IceSSL.Ciphers", "!(DH_anon*)"); -#endif +# endif CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.VerifyPeer"] = "0"; Test::ServerPrx server = fact->createServer(d); try @@ -1169,12 +1464,12 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) { } -#if defined(_WIN32) || defined(ICE_USE_SECURE_TRANSPORT) +# if defined(_WIN32) || defined(ICE_USE_SECURE_TRANSPORT) catch(const ConnectionLostException&) { } -#endif +# endif catch(const LocalException& ex) { cerr << ex << endl; @@ -1184,13 +1479,13 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) comm->destroy(); } -#ifdef ICE_USE_SECURE_TRANSPORT +# ifdef ICE_USE_SECURE_TRANSPORT { // // This should fail because the client disabled all ciphers. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); @@ -1199,7 +1494,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; @@ -1225,12 +1520,12 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // Test IceSSL.DHParams // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.Ciphers", "(DH_anon*)"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.Ciphers"] = "(DH_anon*)"; d["IceSSL.DHParams"] = "dh_params512.der"; d["IceSSL.VerifyPeer"] = "0"; @@ -1253,12 +1548,12 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // Test IceSSL.DHParams // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.Ciphers", "(DH_anon*)"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.Ciphers"] = "(DH_anon*)"; d["IceSSL.DHParams"] = "dh_params1024.der"; d["IceSSL.VerifyPeer"] = "0"; @@ -1275,31 +1570,158 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) fact->destroyServer(server); comm->destroy(); } -#endif - +# endif +#else // SChannel ciphers + { + // + // Client and server should negotiate to use 3DES as it is enabled in both. + // + InitializationData initData; + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); + initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } + initData.properties->setProperty("IceSSL.Ciphers", "3DES"); + + CommunicatorPtr comm = initialize(initData); + Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); + test(fact); + + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); + d["IceSSL.CertAuthFile"] = "cacert1.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } + d["IceSSL.Ciphers"] = "3DES AES_256"; + + Test::ServerPrx server = fact->createServer(d); + try + { + server->checkCipher("3DES"); + IceSSL::NativeConnectionInfoPtr info = + IceSSL::NativeConnectionInfoPtr::dynamicCast(server->ice_getConnection()->getInfo()); + test(info->cipher.compare(0, 4, "3DES") == 0); + } + catch(const LocalException& ex) + { + cerr << ex << endl; + test(false); + } + fact->destroyServer(server); + comm->destroy(); + } + { + // + // Client and server doesn't enable a common cipher negotiate to use 3DES as it is enabled in both. + // + InitializationData initData; + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); + initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } + initData.properties->setProperty("IceSSL.Ciphers", "3DES"); + + CommunicatorPtr comm = initialize(initData); + Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); + test(fact); + + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); + d["IceSSL.CertAuthFile"] = "cacert1.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } + d["IceSSL.Ciphers"] = "AES_256"; + + Test::ServerPrx server = fact->createServer(d); + try + { + server->checkCipher("3DES"); + test(false); + } + catch(const Ice::ConnectionLostException&) + { + //expected + } + catch(const LocalException& ex) + { + cerr << ex << endl; + test(false); + } + fact->destroyServer(server); + comm->destroy(); + } +#endif // // No DSA support in Secure Transport. // #ifndef ICE_USE_SECURE_TRANSPORT { + + // + // DSA PEM certificates are not supported with SChannel. + // +# ifdef ICE_USE_SCHANNEL + if(pfx) + { +# endif // // Configure a server with RSA and DSA certificates. // // First try a client with a DSA certificate. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_dsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_dsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_dsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_dsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_dsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.Ciphers", "DEFAULT:DSS"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem" + sep + "s_dsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem" + sep + "s_dsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx" + sep + "s_dsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem" + sep + "s_dsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem" + sep + "s_dsa_nopass_ca1_priv.pem"; + } d["IceSSL.Ciphers"] = "DEFAULT:DSS"; d["IceSSL.VerifyPeer"] = "1"; Test::ServerPrx server = fact->createServer(d); @@ -1317,20 +1739,35 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // // Next try a client with an RSA certificate. // - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem" + sep + "s_dsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem" + sep + "s_dsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx" + sep + "s_dsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem" + sep + "s_dsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem" + sep + "s_dsa_nopass_ca1_priv.pem"; + } d["IceSSL.Ciphers"] = "DEFAULT:DSS"; d["IceSSL.VerifyPeer"] = "1"; server = fact->createServer(d); + try { server->ice_ping(); @@ -1341,16 +1778,20 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } fact->destroyServer(server); comm->destroy(); +# ifdef ICE_USE_SCHANNEL + } +# endif +# ifndef ICE_USE_SCHANNEL // // Next try a client with ADH. This should fail. // - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.Ciphers", "ADH"); comm = initialize(initData); fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - d = createServerProps(defaultProperties, defaultDir, defaultHost); + d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem" + sep + "s_dsa_nopass_ca1_pub.pem"; d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem" + sep + "s_dsa_nopass_ca1_priv.pem"; @@ -1372,24 +1813,46 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } fact->destroyServer(server); comm->destroy(); +# endif } +# ifndef ICE_USE_SCHANNEL { // // Configure a server with RSA and a client with DSA. This should fail. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_dsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_dsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_dsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_dsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_dsa_nopass_ca1_priv.pem"); + } + initData.properties->setProperty("IceSSL.Ciphers", "DSS"); + initData.properties->setProperty("IceSSL.Trace.Security", "1"); + CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } + d["IceSSL.VerifyPeer"] = "2"; + d["IceSSL.Trace.Security"] = "1"; + Test::ServerPrx server = fact->createServer(d); try { @@ -1414,33 +1877,49 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) fact->destroyServer(server); comm->destroy(); } +# endif #endif cout << "ok" << endl; cout << "testing IceSSL.TrustOnly... " << flush; { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "C=US, ST=Florida, O=ZeroC\\, Inc.," "OU=Ice, emailAddress=info@zeroc.com, CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { server->ice_ping(); } - catch(const LocalException&) + catch(const LocalException& ex) { + cerr << ex << endl; test(false); } fact->destroyServer(server); @@ -1448,20 +1927,34 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "!C=US, ST=Florida, O=ZeroC\\, Inc.," "OU=Ice, emailAddress=info@zeroc.com, CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1476,20 +1969,34 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "C=US, ST=Florida, O=\"ZeroC, Inc.\"," "OU=Ice, emailAddress=info@zeroc.com, CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1504,19 +2011,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); - + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly"] = "C=US, ST=Florida, O=ZeroC\\, Inc., OU=Ice, emailAddress=info@zeroc.com," "CN=Client"; Test::ServerPrx server = fact->createServer(d); @@ -1533,18 +2053,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly"] = "!C=US, ST=Florida, O=ZeroC\\, Inc., OU=Ice, emailAddress=info@zeroc.com, CN=Client"; Test::ServerPrx server = fact->createServer(d); try @@ -1560,19 +2094,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1587,19 +2135,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "!CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1614,19 +2176,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); - + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly"] = "CN=Client"; Test::ServerPrx server = fact->createServer(d); try @@ -1642,18 +2217,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly"] = "!CN=Client"; Test::ServerPrx server = fact->createServer(d); try @@ -1669,19 +2258,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "CN=Client"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1696,18 +2299,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly"] = "CN=Server"; Test::ServerPrx server = fact->createServer(d); try @@ -1723,19 +2340,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "C=Canada,CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1750,19 +2381,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "!C=Canada,CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1777,19 +2422,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "C=Canada;CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1804,19 +2463,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "!C=Canada;!CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1831,19 +2504,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "!CN=Server1"); // Should not match "Server" CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1858,18 +2545,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly"] = "!CN=Client1"; // Should not match "Client" Test::ServerPrx server = fact->createServer(d); try @@ -1883,29 +2584,29 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) fact->destroyServer(server); comm->destroy(); } + { // // Test rejection when client does not supply a certificate. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); CommunicatorPtr comm = initialize(initData); -#ifdef ICE_USE_OPENSSL - initData.properties->setProperty("IceSSL.Ciphers", "ADH"); -#else - initData.properties->setProperty("IceSSL.Ciphers", "(DH_anon*)"); -#endif initData.properties->setProperty("IceSSL.VerifyPeer", "0"); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.TrustOnly"] = "C=US, ST=Florida, O=ZeroC\\, Inc.,OU=Ice, emailAddress=info@zeroc.com, CN=Client"; -#ifdef ICE_USE_OPENSSL - d["IceSSL.Ciphers"] = "ADH"; -#else - d["IceSSL.Ciphers"] = "(DH_anon*)"; -#endif + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "0"; Test::ServerPrx server = fact->createServer(d); try @@ -1924,24 +2625,23 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // Test rejection when client does not supply a certificate. // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); CommunicatorPtr comm = initialize(initData); -#ifdef ICE_USE_OPENSSL - initData.properties->setProperty("IceSSL.Ciphers", "ADH"); -#else - initData.properties->setProperty("IceSSL.Ciphers", "(DH_anon*)"); -#endif initData.properties->setProperty("IceSSL.VerifyPeer", "0"); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.TrustOnly"] = "!C=US, ST=Florida, O=ZeroC\\, Inc.,OU=Ice, emailAddress=info@zeroc.com, CN=Client"; -#ifdef ICE_USE_OPENSSL - d["IceSSL.Ciphers"] = "ADH"; -#else - d["IceSSL.Ciphers"] = "(DH_anon*)"; -#endif + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.VerifyPeer"] = "0"; Test::ServerPrx server = fact->createServer(d); try @@ -1960,19 +2660,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // Rejection takes precedence (client). // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly", "ST=Florida;!CN=Server;C=US"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -1990,18 +2704,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) // Rejection takes precedence (server). // InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly"] = "C=US;!CN=Client;ST=Florida"; Test::ServerPrx server = fact->createServer(d); try @@ -2020,23 +2748,38 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) cout << "testing IceSSL.TrustOnly.Client... " << flush; { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly.Client", "C=US, ST=Florida, O=ZeroC\\, Inc.," "OU=Ice, emailAddress=info@zeroc.com, CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } // Should have no effect. d["IceSSL.TrustOnly.Client"] = "C=US, ST=Florida, O=ZeroC\\, Inc., OU=Ice, emailAddress=info@zeroc.com," - "CN=Server"; + "CN=Server"; + Test::ServerPrx server = fact->createServer(d); try { @@ -2051,20 +2794,34 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly.Client", "!C=US, ST=Florida, O=ZeroC\\, Inc.," "OU=Ice, emailAddress=info@zeroc.com, CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -2079,18 +2836,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } // Should have no effect. d["IceSSL.TrustOnly.Client"] = "!CN=Client"; Test::ServerPrx server = fact->createServer(d); @@ -2107,19 +2878,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly.Client", "CN=Client"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -2134,19 +2919,33 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } initData.properties->setProperty("IceSSL.TrustOnly.Client", "!CN=Client"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -2164,10 +2963,17 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) cout << "testing IceSSL.TrustOnly.Server... " << flush; { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } // Should have no effect. initData.properties->setProperty("IceSSL.TrustOnly.Server", "C=US, ST=Florida, O=ZeroC\\, Inc., OU=Ice," "emailAddress=info@zeroc.com,CN=Client"); @@ -2175,12 +2981,20 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly.Server"] = "C=US, ST=Florida, O=ZeroC\\, Inc., OU=Ice, emailAddress=info@zeroc.com," - "CN=Client"; + "CN=Client"; + Test::ServerPrx server = fact->createServer(d); try { @@ -2195,18 +3009,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly.Server"] = "!C=US, ST=Florida, O=ZeroC\\, Inc., OU=Ice, emailAddress=info@zeroc.com, CN=Client"; Test::ServerPrx server = fact->createServer(d); @@ -2223,20 +3051,34 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } // Should have no effect. initData.properties->setProperty("IceSSL.TrustOnly.Server", "!CN=Server"); CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } Test::ServerPrx server = fact->createServer(d); try { @@ -2251,18 +3093,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly.Server"] = "CN=Server"; Test::ServerPrx server = fact->createServer(d); try @@ -2278,18 +3134,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly.Server"] = "!CN=Client"; Test::ServerPrx server = fact->createServer(d); try @@ -2308,21 +3178,35 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) cout << "testing IceSSL.TrustOnly.Server.<AdapterName>... " << flush; { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; - d["IceSSL.TrustOnly.Server"] = "CN=bogus"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly.Server.ServerAdapter"] = "C=US, ST=Florida, O=ZeroC\\, Inc., OU=Ice, emailAddress=info@zeroc.com,CN=Client"; + d["IceSSL.TrustOnly.Server"] = "CN=bogus"; Test::ServerPrx server = fact->createServer(d); try { @@ -2337,18 +3221,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly.Server.ServerAdapter"] = "!C=US, ST=Florida, O=ZeroC\\, Inc., OU=Ice, emailAddress=info@zeroc.com, CN=Client"; Test::ServerPrx server = fact->createServer(d); @@ -2365,18 +3263,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly.Server.ServerAdapter"] = "CN=bogus"; Test::ServerPrx server = fact->createServer(d); try @@ -2392,18 +3304,32 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } { InitializationData initData; - initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost); + initData.properties = createClientProps(defaultProperties, defaultDir, defaultHost, pfx); initData.properties->setProperty("IceSSL.CertAuthFile", "cacert1.pem"); - initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); - initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + if(pfx) + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_ca1.pfx"); + } + else + { + initData.properties->setProperty("IceSSL.CertFile", "c_rsa_nopass_ca1_pub.pem"); + initData.properties->setProperty("IceSSL.KeyFile", "c_rsa_nopass_ca1_priv.pem"); + } CommunicatorPtr comm = initialize(initData); Test::ServerFactoryPrx fact = Test::ServerFactoryPrx::checkedCast(comm->stringToProxy(factoryRef)); test(fact); - Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost); + Test::Properties d = createServerProps(defaultProperties, defaultDir, defaultHost, pfx); d["IceSSL.CertAuthFile"] = "cacert1.pem"; - d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; - d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + if(pfx) + { + d["IceSSL.CertFile"] = "s_rsa_ca1.pfx"; + } + else + { + d["IceSSL.CertFile"] = "s_rsa_nopass_ca1_pub.pem"; + d["IceSSL.KeyFile"] = "s_rsa_nopass_ca1_priv.pem"; + } d["IceSSL.TrustOnly.Server.ServerAdapter"] = "!CN=bogus"; Test::ServerPrx server = fact->createServer(d); try @@ -2419,5 +3345,8 @@ allTests(const CommunicatorPtr& communicator, const string& testDir) } cout << "ok" << endl; - factory->shutdown(); + if(shutdown) + { + factory->shutdown(); + } } diff --git a/cpp/test/IceSSL/configuration/Client.cpp b/cpp/test/IceSSL/configuration/Client.cpp index 6ecc87b3561..e99831bdee8 100644 --- a/cpp/test/IceSSL/configuration/Client.cpp +++ b/cpp/test/IceSSL/configuration/Client.cpp @@ -8,6 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> +#include <IceSSL/IceSSL.h> using namespace std; @@ -20,9 +21,12 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) return 1; } - void allTests(const Ice::CommunicatorPtr&, const string&); + void allTests(const Ice::CommunicatorPtr&, const string&, bool, bool); - allTests(communicator, argv[1]); + cerr << "testing with PKCS12 certificates..." << endl; + allTests(communicator, argv[1], true, false); + cerr << "testing with PEM certificates..." << endl; + allTests(communicator, argv[1], false, true); return EXIT_SUCCESS; } diff --git a/cpp/test/IceSSL/configuration/TestI.cpp b/cpp/test/IceSSL/configuration/TestI.cpp index 151f141ad1e..e4f192bf3ae 100644 --- a/cpp/test/IceSSL/configuration/TestI.cpp +++ b/cpp/test/IceSSL/configuration/TestI.cpp @@ -30,8 +30,9 @@ ServerI::noCert(const Ice::Current& c) IceSSL::NativeConnectionInfoPtr info = IceSSL::NativeConnectionInfoPtr::dynamicCast(c.con->getInfo()); test(info->nativeCerts.size() == 0); } - catch(const Ice::LocalException&) + catch(const Ice::LocalException& ex) { + cerr << ex << endl; test(false); } } diff --git a/cpp/test/IceUtil/Makefile b/cpp/test/IceUtil/Makefile index 7204235c3cc..4b2372755f2 100644 --- a/cpp/test/IceUtil/Makefile +++ b/cpp/test/IceUtil/Makefile @@ -19,7 +19,8 @@ SUBDIRS = condvar \ ctrlCHandler \ timer \ priority \ - fileLock + fileLock \ + sha1 .PHONY: $(EVERYTHING) $(SUBDIRS) diff --git a/cpp/test/IceUtil/Makefile.mak b/cpp/test/IceUtil/Makefile.mak index 6ba18b9c814..aaacb16a35d 100644 --- a/cpp/test/IceUtil/Makefile.mak +++ b/cpp/test/IceUtil/Makefile.mak @@ -19,7 +19,8 @@ SUBDIRS = condvar \ ctrlCHandler \ timer \ priority \ - fileLock + fileLock \ + sha1 $(EVERYTHING):: @for %i in ( $(SUBDIRS) ) do \ diff --git a/cpp/test/IceUtil/sha1/.depend b/cpp/test/IceUtil/sha1/.depend new file mode 100644 index 00000000000..23a70b2909f --- /dev/null +++ b/cpp/test/IceUtil/sha1/.depend @@ -0,0 +1 @@ +Client$(OBJEXT): Client.cpp $(includedir)/IceUtil/SHA1.h $(includedir)/IceUtil/Config.h ../../include/TestCommon.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/StringConverter.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/IceUtil/IconvStringConverter.h $(includedir)/IceUtil/UndefSysMacros.h diff --git a/cpp/test/IceUtil/sha1/.depend.mak b/cpp/test/IceUtil/sha1/.depend.mak new file mode 100644 index 00000000000..d417fc1015e --- /dev/null +++ b/cpp/test/IceUtil/sha1/.depend.mak @@ -0,0 +1 @@ +Client$(OBJEXT): Client.cpp "$(includedir)/IceUtil/SHA1.h" "$(includedir)/IceUtil/Config.h" ../../include/TestCommon.h "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/UUID.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/IceUtil/IconvStringConverter.h" "$(includedir)/IceUtil/UndefSysMacros.h" diff --git a/cpp/test/IceUtil/sha1/.gitignore b/cpp/test/IceUtil/sha1/.gitignore new file mode 100644 index 00000000000..1446b6586f5 --- /dev/null +++ b/cpp/test/IceUtil/sha1/.gitignore @@ -0,0 +1,4 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +client diff --git a/cpp/test/IceUtil/sha1/Client.cpp b/cpp/test/IceUtil/sha1/Client.cpp new file mode 100644 index 00000000000..99d043f8e29 --- /dev/null +++ b/cpp/test/IceUtil/sha1/Client.cpp @@ -0,0 +1,115 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/SHA1.h> +#include <TestCommon.h> + +using namespace IceUtil; +using namespace std; + +namespace +{ + +struct SHA1Item +{ + const char* data; + const char* digest; +}; + +SHA1Item items[] = +{ + {"hello world", "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"}, + {"2aae6c35c94fcfb415dbe95f408b9ce91ee846ed", "d6b0d82cea4269b51572b8fab43adcee9fc3cf9a"}, + {"Lorem ipsum dolor sit amet, consectetur adipiscing elit. " + "Cras vel ante adipiscing, aliquet ipsum sit amet, suscipit ante. " + "Donec tempor purus in suscipit tempus. " + "Vestibulum vulputate ipsum in quam bibendum laoreet. " + "Etiam tristique viverra metus, at condimentum eros scelerisque et. " + "Proin in diam sit amet nisi facilisis dictum. " + "Donec placerat libero a mauris tristique, " + "id pulvinar magna pharetra. Vivamus posuere tincidunt elit, " + "eget lacinia nisl feugiat in. Aenean neque mi, " + "vehicula a vestibulum nec, condimentum vel ipsum. " + "Duis sit amet quam sit amet risus sollicitudin euismod. " + "Nullam elit neque, suscipit ac convallis non, convallis et urna. " + "Sed semper elementum erat, ut egestas lacus interdum sit amet. " + "Sed ipsum nisi, ultricies congue augue id, euismod posuere sapien. " + "Fusce volutpat nisl in orci laoreet, vitae lacinia urna venenatis.", + "84fac2d6a78ab4acbeae1408ab4de49c4bd145bb"}, + {"Pellentesque accumsan mauris neque, nec sollicitudin metus ornare eu. " + "Sed dignissim nisi neque, sit amet dapibus purus faucibus laoreet. " + "Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. " + "Donec cursus risus sed arcu varius posuere. Donec pretium felis mi, eu consequat arcu imperdiet vitae. " + "Etiam fringilla velit in nisl semper, nec mattis turpis blandit. " + "Etiam magna sem, laoreet eu urna vitae, laoreet dictum tortor. In et iaculis enim, nec pharetra ipsum. " + "Sed porttitor suscipit ligula mattis sollicitudin. Cras imperdiet iaculis dictum. " + "Ut vel nisl condimentum, placerat ante a, suscipit turpis", + "0ecd4503f02f3febeca1460fb81e8f7fc0d59abe"}, + {"Curabitur in dolor justo. Morbi vitae consectetur odio. Aliquam erat volutpat. " + "Fusce consectetur magna nec metus ornare pretium. Ut tincidunt mi eu bibendum pharetra. " + "Morbi sit amet elit augue. Praesent et enim condimentum, ullamcorper est tempor, auctor leo. " + "Pellentesque eu convallis urna, ac auctor orci. Cras sapien lectus, convallis congue nunc nec, " + "porta molestie est. Aliquam consectetur elementum posuere. Duis et mollis lorem.", + "b4d38ece814fdfe9ff067d08c6389c6512530bb4"} +}; + +int itemsSize = sizeof(items)/sizeof(SHA1Item); + +string toHex(const string& data) +{ + ostringstream os; + for(size_t i = 0; i < data.size(); ++i) + { + os.width(2); + os.fill('0'); + unsigned char c = data[i]; + os << hex << (int)c; + } + return os.str(); +} + +} + +int main(int argc, char* argv[]) +{ + cout << "Testing sha1 hash computation... "; + for(int i = 0; i < itemsSize; ++i) + { + const SHA1Item* item = &items[i]; + vector<unsigned char> buffer; + IceUtil::sha1(reinterpret_cast<const unsigned char*>(item->data), strlen(item->data), buffer); + test(buffer.size() == 20); + string digest = toHex(string(reinterpret_cast<const char*>(&buffer[0]), 20)); + test(item->digest == digest); + } + + for(int i = 0; i < itemsSize; ++i) + { + const SHA1Item* item = &items[i]; + IceUtil::SHA1 hasher; + // + // Test adding the data in chunks + // + const unsigned char* begin = reinterpret_cast<const unsigned char*>(&item->data[0]); + const unsigned char* end = begin + strlen(item->data); + while(begin != end) + { + size_t packetSize = min(static_cast<size_t>(5), static_cast<size_t>(end - begin)); + hasher.update(begin, packetSize); + begin += packetSize; + } + vector<unsigned char> buffer; + hasher.finalize(buffer); + test(buffer.size() == 20); + string digest = toHex(string(reinterpret_cast<const char*>(&buffer[0]), 20)); + test(item->digest == digest); + } + cout << "ok" << endl; + return EXIT_SUCCESS; +} diff --git a/cpp/test/IceUtil/sha1/Makefile b/cpp/test/IceUtil/sha1/Makefile new file mode 100644 index 00000000000..e629db011fa --- /dev/null +++ b/cpp/test/IceUtil/sha1/Makefile @@ -0,0 +1,29 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ../../.. + +CLIENT = $(call mktestname,client) + +TARGETS = $(CLIENT) + +OBJS = Client.o + + +SRCS = $(OBJS:.o=.cpp) + +include $(top_srcdir)/config/Make.rules + +CPPFLAGS := -I. -I../../include $(CPPFLAGS) + +$(CLIENT): $(OBJS) + rm -f $@ + $(call mktest,$@,$(OBJS),$(BASELIBS)) + +include .depend diff --git a/cpp/test/IceUtil/sha1/Makefile.mak b/cpp/test/IceUtil/sha1/Makefile.mak new file mode 100644 index 00000000000..f5d0d46d9ee --- /dev/null +++ b/cpp/test/IceUtil/sha1/Makefile.mak @@ -0,0 +1,33 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ..\..\.. + +CLIENT = client.exe + +TARGETS = $(CLIENT) + +OBJS = Client.obj + +SRCS = $(OBJS:.obj=.cpp) + +!include $(top_srcdir)/config/Make.rules.mak + +CPPFLAGS = -I. -I../../include $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN + +!if "$(GENERATE_PDB)" == "yes" +PDBFLAGS = /pdb:$(CLIENT:.exe=.pdb) +!endif + +$(CLIENT): $(OBJS) + $(LINK) $(LD_EXEFLAGS) $(PDBFLAGS) $(SETARGV) $(OBJS) $(PREOUT)$@ $(PRELIBS)$(BASELIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +!include .depend.mak diff --git a/cpp/test/IceUtil/sha1/run.py b/cpp/test/IceUtil/sha1/run.py new file mode 100755 index 00000000000..16c74442816 --- /dev/null +++ b/cpp/test/IceUtil/sha1/run.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +import os, sys + +path = [ ".", "..", "../..", "../../..", "../../../.." ] +head = os.path.dirname(sys.argv[0]) +if len(head) > 0: + path = [os.path.join(head, p) for p in path] +path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] +if len(path) == 0: + raise RuntimeError("can't find toplevel directory!") +sys.path.append(os.path.join(path[0], "scripts")) +import TestUtil + +client = os.path.join(os.getcwd(), "client") +TestUtil.simpleTest(client) |