zeroc-ice 3.7.11 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/dist/IceRuby/Communicator.cpp +159 -376
- data/dist/IceRuby/Communicator.h +8 -9
- data/dist/IceRuby/Config.h +23 -89
- data/dist/IceRuby/Connection.cpp +111 -219
- data/dist/IceRuby/Connection.h +8 -12
- data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
- data/dist/IceRuby/DefaultSliceLoader.h +25 -0
- data/dist/IceRuby/Endpoint.cpp +63 -65
- data/dist/IceRuby/Endpoint.h +7 -11
- data/dist/IceRuby/ImplicitContext.cpp +26 -31
- data/dist/IceRuby/ImplicitContext.h +6 -10
- data/dist/IceRuby/Init.cpp +27 -40
- data/dist/IceRuby/Logger.cpp +23 -28
- data/dist/IceRuby/Logger.h +8 -12
- data/dist/IceRuby/Operation.cpp +177 -219
- data/dist/IceRuby/Operation.h +15 -18
- data/dist/IceRuby/Properties.cpp +133 -89
- data/dist/IceRuby/Properties.h +6 -10
- data/dist/IceRuby/Proxy.cpp +179 -649
- data/dist/IceRuby/Proxy.h +11 -12
- data/dist/IceRuby/RubySliceLoader.cpp +39 -0
- data/dist/IceRuby/RubySliceLoader.h +27 -0
- data/dist/IceRuby/Slice.cpp +88 -94
- data/dist/IceRuby/Slice.h +3 -7
- data/dist/IceRuby/Types.cpp +987 -1190
- data/dist/IceRuby/Types.h +390 -461
- data/dist/IceRuby/Util.cpp +214 -473
- data/dist/IceRuby/Util.h +378 -479
- data/dist/ice/cpp/include/Ice/AsyncResponseHandler.h +85 -0
- data/dist/ice/cpp/include/Ice/BatchRequest.h +39 -0
- data/dist/ice/cpp/include/Ice/BatchRequestQueueF.h +4 -10
- data/dist/ice/cpp/include/Ice/Buffer.h +116 -111
- data/dist/ice/cpp/include/Ice/Communicator.h +411 -0
- data/dist/ice/cpp/include/Ice/CommunicatorF.h +16 -0
- data/dist/ice/cpp/include/Ice/Config.h +46 -62
- data/dist/ice/cpp/include/Ice/Connection.h +410 -0
- data/dist/ice/cpp/include/Ice/ConnectionF.h +36 -0
- data/dist/ice/cpp/include/Ice/ConnectionIF.h +6 -28
- data/dist/ice/cpp/include/Ice/CtrlCHandler.h +56 -0
- data/dist/ice/cpp/include/Ice/Current.h +60 -0
- data/dist/ice/cpp/include/Ice/DefaultSliceLoader.h +160 -0
- data/dist/ice/cpp/include/Ice/Demangle.h +17 -0
- data/dist/ice/cpp/include/Ice/Endpoint.h +298 -0
- data/dist/ice/cpp/include/Ice/EndpointF.h +44 -0
- data/dist/ice/cpp/include/Ice/EndpointSelectionType.h +21 -0
- data/dist/ice/cpp/include/Ice/Exception.h +46 -151
- data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
- data/dist/ice/cpp/include/Ice/Format.h +11 -27
- data/dist/ice/cpp/include/Ice/Ice.h +53 -48
- data/dist/ice/cpp/include/Ice/IconvStringConverter.h +165 -326
- data/dist/ice/cpp/include/Ice/ImplicitContext.h +76 -0
- data/dist/ice/cpp/include/Ice/IncomingRequest.h +75 -0
- data/dist/ice/cpp/include/Ice/Initialize.h +113 -927
- data/dist/ice/cpp/include/Ice/InputStream.h +748 -1320
- data/dist/ice/cpp/include/Ice/InstanceF.h +4 -10
- data/dist/ice/cpp/include/Ice/Instrumentation.h +319 -0
- data/dist/ice/cpp/include/Ice/LocalException.h +58 -0
- data/dist/ice/cpp/include/Ice/LocalExceptions.h +870 -0
- data/dist/ice/cpp/include/Ice/Logger.h +62 -0
- data/dist/ice/cpp/include/Ice/LoggerUtil.h +124 -147
- data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
- data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +41 -71
- data/dist/ice/cpp/include/Ice/Object.h +151 -490
- data/dist/ice/cpp/include/Ice/ObjectAdapter.h +324 -0
- data/dist/ice/cpp/include/Ice/ObjectAdapterF.h +16 -0
- data/dist/ice/cpp/include/Ice/ObjectF.h +5 -19
- data/dist/ice/cpp/include/Ice/ObserverHelper.h +115 -132
- data/dist/ice/cpp/include/Ice/OutgoingAsync.h +392 -748
- data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
- data/dist/ice/cpp/include/Ice/OutputStream.h +756 -956
- data/dist/ice/cpp/include/Ice/Plugin.h +73 -0
- data/dist/ice/cpp/include/Ice/PluginFactory.h +77 -0
- data/dist/ice/cpp/include/{IceUtil → Ice}/PopDisableWarnings.h +8 -6
- data/dist/ice/cpp/include/Ice/Properties.h +307 -0
- data/dist/ice/cpp/include/Ice/PropertiesF.h +19 -0
- data/dist/ice/cpp/include/Ice/Proxy.h +665 -5094
- data/dist/ice/cpp/include/Ice/ProxyF.h +2 -44
- data/dist/ice/cpp/include/Ice/ProxyFunctions.h +209 -0
- data/dist/ice/cpp/include/Ice/PushDisableWarnings.h +29 -0
- data/dist/ice/cpp/include/Ice/ReferenceF.h +4 -19
- data/dist/ice/cpp/include/Ice/RequestHandlerF.h +8 -18
- data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +276 -0
- data/dist/ice/cpp/include/Ice/SSL/Config.h +54 -0
- data/dist/ice/cpp/include/Ice/SSL/ConnectionInfo.h +107 -0
- data/dist/ice/cpp/include/Ice/SSL/ConnectionInfoF.h +39 -0
- data/dist/ice/cpp/include/Ice/SSL/EndpointInfo.h +40 -0
- data/dist/ice/cpp/include/Ice/SSL/SSLException.h +32 -0
- data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +286 -0
- data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
- data/dist/ice/cpp/include/Ice/Service.h +182 -342
- data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
- data/dist/ice/cpp/include/Ice/SlicedData.h +113 -160
- data/dist/ice/cpp/include/Ice/SlicedDataF.h +17 -27
- data/dist/ice/cpp/include/Ice/StreamHelpers.h +532 -1070
- data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
- data/dist/ice/cpp/include/Ice/StringConverter.h +152 -63
- data/dist/ice/cpp/include/Ice/StringUtil.h +114 -0
- data/dist/ice/cpp/include/Ice/TimerTask.h +24 -0
- data/dist/ice/cpp/include/Ice/TupleCompare.h +103 -0
- data/dist/ice/cpp/include/Ice/UUID.h +6 -9
- data/dist/ice/cpp/include/Ice/UserException.h +46 -0
- data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +4 -79
- data/dist/ice/cpp/include/Ice/Value.h +103 -115
- data/dist/ice/cpp/include/Ice/ValueF.h +6 -11
- data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +16 -1877
- data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +16 -1185
- data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +46 -146
- data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
- data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +49 -93
- data/dist/ice/cpp/include/generated/Ice/Identity.h +70 -226
- data/dist/ice/cpp/include/generated/Ice/Locator.h +494 -3850
- data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
- data/dist/ice/cpp/include/generated/Ice/Metrics.h +937 -4603
- data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
- data/dist/ice/cpp/include/generated/Ice/Process.h +197 -929
- data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +249 -1301
- data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
- data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +637 -2620
- data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
- data/dist/ice/cpp/include/generated/Ice/Router.h +429 -1783
- data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +18 -65
- data/dist/ice/cpp/include/generated/Ice/Version.h +73 -318
- data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +498 -0
- data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +387 -0
- data/dist/ice/cpp/src/Ice/Acceptor.h +28 -24
- data/dist/ice/cpp/src/Ice/AcceptorF.h +6 -14
- data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories.h +16 -0
- data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_all.cpp +43 -0
- data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_min.cpp +17 -0
- data/dist/ice/cpp/src/Ice/ArgVector.cpp +17 -18
- data/dist/ice/cpp/src/Ice/ArgVector.h +19 -25
- data/dist/ice/cpp/src/Ice/Base64.cpp +66 -66
- data/dist/ice/cpp/src/Ice/Base64.h +14 -19
- data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +70 -121
- data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +37 -47
- data/dist/ice/cpp/src/Ice/Buffer.cpp +73 -41
- data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
- data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +215 -249
- data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +38 -60
- data/dist/ice/cpp/src/Ice/Communicator.cpp +399 -0
- data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.cpp +140 -0
- data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.h +39 -0
- data/dist/ice/cpp/src/Ice/ConnectRequestHandler.cpp +63 -184
- data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +30 -51
- data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +4 -14
- data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
- data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +578 -792
- data/dist/ice/cpp/src/Ice/ConnectionFactory.h +200 -200
- data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +6 -19
- data/dist/ice/cpp/src/Ice/ConnectionI.cpp +1674 -1782
- data/dist/ice/cpp/src/Ice/ConnectionI.h +333 -293
- data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
- data/dist/ice/cpp/src/Ice/Connector.h +25 -19
- data/dist/ice/cpp/src/Ice/ConnectorF.h +4 -11
- data/dist/ice/cpp/src/{IceUtil → Ice}/ConsoleUtil.cpp +32 -53
- data/dist/ice/cpp/src/Ice/ConsoleUtil.h +79 -0
- data/dist/ice/cpp/src/Ice/CtrlCHandler.cpp +189 -0
- data/dist/ice/cpp/src/Ice/Current.cpp +29 -0
- data/dist/ice/cpp/src/Ice/DLLMain.cpp +25 -35
- data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
- data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +41 -119
- data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +27 -41
- data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +4 -11
- data/dist/ice/cpp/src/Ice/Demangle.cpp +26 -0
- data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
- data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +44 -112
- data/dist/ice/cpp/src/Ice/DynamicLibrary.h +91 -0
- data/dist/ice/cpp/src/Ice/Endian.h +40 -0
- data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +35 -59
- data/dist/ice/cpp/src/Ice/EndpointFactory.h +82 -103
- data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +4 -11
- data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +54 -87
- data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +28 -33
- data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +4 -11
- data/dist/ice/cpp/src/Ice/EndpointI.cpp +53 -23
- data/dist/ice/cpp/src/Ice/EndpointI.h +132 -200
- data/dist/ice/cpp/src/Ice/EndpointIF.h +11 -39
- data/dist/ice/cpp/src/Ice/EventHandler.cpp +3 -26
- data/dist/ice/cpp/src/Ice/EventHandler.h +46 -56
- data/dist/ice/cpp/src/Ice/EventHandlerF.h +4 -14
- data/dist/ice/cpp/src/Ice/Exception.cpp +3 -816
- data/dist/ice/cpp/src/Ice/FileUtil.cpp +476 -0
- data/dist/ice/cpp/src/Ice/FileUtil.h +152 -0
- data/dist/ice/cpp/src/Ice/FixedRequestHandler.cpp +34 -0
- data/dist/ice/cpp/src/Ice/FixedRequestHandler.h +29 -0
- data/dist/ice/cpp/src/Ice/HashUtil.h +46 -32
- data/dist/ice/cpp/src/Ice/HttpParser.cpp +431 -431
- data/dist/ice/cpp/src/Ice/HttpParser.h +95 -100
- data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +207 -324
- data/dist/ice/cpp/src/Ice/IPEndpointI.h +80 -126
- data/dist/ice/cpp/src/Ice/IPEndpointIF.h +6 -17
- data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.cpp +172 -0
- data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.h +89 -0
- data/dist/ice/cpp/src/Ice/ImplicitContext.cpp +109 -0
- data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +66 -0
- data/dist/ice/cpp/src/Ice/Initialize.cpp +48 -542
- data/dist/ice/cpp/src/Ice/InputStream.cpp +848 -1385
- data/dist/ice/cpp/src/Ice/Instance.cpp +816 -827
- data/dist/ice/cpp/src/Ice/Instance.h +202 -212
- data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +526 -661
- data/dist/ice/cpp/src/Ice/InstrumentationI.h +171 -192
- data/dist/ice/cpp/src/Ice/LocalException.cpp +518 -0
- data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +577 -0
- data/dist/ice/cpp/src/Ice/LocatorInfo.cpp +291 -329
- data/dist/ice/cpp/src/Ice/LocatorInfo.h +144 -157
- data/dist/ice/cpp/src/Ice/LocatorInfoF.h +8 -17
- data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +561 -743
- data/dist/ice/cpp/src/Ice/LoggerAdminI.h +18 -28
- data/dist/ice/cpp/src/Ice/LoggerI.cpp +66 -91
- data/dist/ice/cpp/src/Ice/LoggerI.h +36 -41
- data/dist/ice/cpp/src/Ice/LoggerMiddleware.cpp +176 -0
- data/dist/ice/cpp/src/Ice/LoggerMiddleware.h +42 -0
- data/dist/ice/cpp/src/Ice/LoggerUtil.cpp +14 -38
- data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
- data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +194 -280
- data/dist/ice/cpp/src/Ice/MetricsAdminI.h +600 -0
- data/dist/ice/cpp/src/Ice/MetricsFunctional.h +92 -0
- data/dist/ice/cpp/src/Ice/MetricsObserverI.h +587 -0
- data/dist/ice/cpp/src/Ice/NativePropertiesAdmin.cpp +185 -0
- data/dist/ice/cpp/src/Ice/Network.cpp +595 -917
- data/dist/ice/cpp/src/Ice/Network.h +189 -213
- data/dist/ice/cpp/src/Ice/NetworkF.h +2 -10
- data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +99 -104
- data/dist/ice/cpp/src/Ice/NetworkProxy.h +49 -54
- data/dist/ice/cpp/src/Ice/NetworkProxyF.h +4 -11
- data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +16 -18
- data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +22 -27
- data/dist/ice/cpp/src/Ice/Object.cpp +152 -338
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +170 -113
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +41 -41
- data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +4 -15
- data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +580 -727
- data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +149 -145
- data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +36 -17
- data/dist/ice/cpp/src/Ice/ObserverMiddleware.cpp +96 -0
- data/dist/ice/cpp/src/Ice/ObserverMiddleware.h +25 -0
- data/dist/ice/cpp/src/Ice/OpaqueEndpointI.cpp +147 -187
- data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +56 -64
- data/dist/ice/cpp/src/{IceUtil → Ice}/Options.cpp +187 -258
- data/dist/ice/cpp/src/Ice/Options.h +119 -0
- data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +516 -732
- data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
- data/dist/ice/cpp/src/Ice/OutputStream.cpp +610 -543
- data/dist/ice/cpp/src/Ice/OutputUtil.cpp +344 -0
- data/dist/ice/cpp/src/Ice/OutputUtil.h +173 -0
- data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +118 -277
- data/dist/ice/cpp/src/Ice/PluginManagerI.h +41 -48
- data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
- data/dist/ice/cpp/src/Ice/PropertyNames.cpp +519 -1341
- data/dist/ice/cpp/src/Ice/PropertyNames.h +49 -64
- data/dist/ice/cpp/src/Ice/PropertyUtil.cpp +103 -0
- data/dist/ice/cpp/src/Ice/PropertyUtil.h +31 -0
- data/dist/ice/cpp/src/Ice/Protocol.cpp +129 -94
- data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
- data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +117 -62
- data/dist/ice/cpp/src/Ice/ProtocolInstance.h +63 -82
- data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +4 -11
- data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +10 -32
- data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +25 -54
- data/dist/ice/cpp/src/Ice/Proxy.cpp +294 -1357
- data/dist/ice/cpp/src/Ice/ProxyAsync.cpp +684 -0
- data/dist/ice/cpp/src/Ice/ProxyFunctions.cpp +90 -0
- data/dist/ice/cpp/src/Ice/PushDisableDeprecatedWarnings.h +15 -0
- data/dist/ice/cpp/src/Ice/Random.cpp +29 -0
- data/dist/ice/cpp/src/Ice/Random.h +23 -0
- data/dist/ice/cpp/src/Ice/Reference.cpp +635 -1097
- data/dist/ice/cpp/src/Ice/Reference.h +314 -298
- data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +320 -378
- data/dist/ice/cpp/src/Ice/ReferenceFactory.h +48 -66
- data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +4 -9
- data/dist/ice/cpp/src/Ice/RequestHandler.cpp +15 -24
- data/dist/ice/cpp/src/Ice/RequestHandler.h +43 -68
- data/dist/ice/cpp/src/Ice/RequestHandlerCache.cpp +76 -0
- data/dist/ice/cpp/src/Ice/RequestHandlerCache.h +33 -0
- data/dist/ice/cpp/src/Ice/ResourceConfig.h +27 -0
- data/dist/ice/cpp/src/Ice/RetryQueue.cpp +51 -57
- data/dist/ice/cpp/src/Ice/RetryQueue.h +39 -46
- data/dist/ice/cpp/src/Ice/RetryQueueF.h +4 -9
- data/dist/ice/cpp/src/Ice/RouterInfo.cpp +97 -201
- data/dist/ice/cpp/src/Ice/RouterInfo.h +61 -118
- data/dist/ice/cpp/src/Ice/RouterInfoF.h +6 -14
- data/dist/ice/cpp/src/Ice/SHA1.cpp +86 -60
- data/dist/ice/cpp/src/Ice/SHA1.h +35 -0
- data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.cpp +89 -0
- data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.h +87 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +521 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.h +40 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngineF.h +13 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +646 -0
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
- data/dist/ice/cpp/src/{IceSSL → Ice/SSL}/RFC2253.cpp +85 -88
- data/dist/ice/cpp/src/Ice/SSL/RFC2253.h +58 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.cpp +124 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.h +52 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.cpp +92 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.h +38 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.cpp +377 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.h +84 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEngine.cpp +115 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEngine.h +69 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLEngineF.h +14 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLException.cpp +18 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLInstance.cpp +27 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLInstance.h +26 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLInstanceF.h +19 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +673 -0
- data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +118 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1449 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.h +58 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngineF.h +18 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +1088 -0
- data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +825 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.h +44 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngineF.h +18 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.cpp +621 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.h +91 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +1048 -0
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
- data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +233 -0
- data/dist/ice/cpp/src/Ice/SSL/TrustManager.h +42 -0
- data/dist/ice/cpp/src/Ice/SSL/TrustManagerF.h +14 -0
- data/dist/ice/cpp/src/Ice/ScannerConfig.h +35 -0
- data/dist/ice/cpp/src/Ice/Selector.cpp +341 -606
- data/dist/ice/cpp/src/Ice/Selector.h +167 -224
- data/dist/ice/cpp/src/Ice/ServantManager.cpp +195 -128
- data/dist/ice/cpp/src/Ice/ServantManager.h +52 -55
- data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
- data/dist/ice/cpp/src/Ice/Service.cpp +548 -641
- data/dist/ice/cpp/src/Ice/SharedContext.h +13 -26
- data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
- data/dist/ice/cpp/src/Ice/SlicedData.cpp +17 -96
- data/dist/ice/cpp/src/Ice/StreamSocket.cpp +104 -151
- data/dist/ice/cpp/src/Ice/StreamSocket.h +48 -60
- data/dist/ice/cpp/src/Ice/StringConverter.cpp +586 -0
- data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
- data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +41 -47
- data/dist/ice/cpp/src/Ice/SysLoggerI.h +24 -27
- data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +16 -17
- data/dist/ice/cpp/src/Ice/SystemdJournalI.h +19 -25
- data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
- data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +67 -88
- data/dist/ice/cpp/src/Ice/TcpAcceptor.h +34 -40
- data/dist/ice/cpp/src/Ice/TcpConnector.cpp +42 -41
- data/dist/ice/cpp/src/Ice/TcpConnector.h +26 -35
- data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +172 -146
- data/dist/ice/cpp/src/Ice/TcpEndpointI.h +76 -80
- data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +38 -26
- data/dist/ice/cpp/src/Ice/TcpTransceiver.h +40 -45
- data/dist/ice/cpp/src/Ice/ThreadPool.cpp +333 -515
- data/dist/ice/cpp/src/Ice/ThreadPool.h +202 -290
- data/dist/ice/cpp/src/Ice/ThreadPoolF.h +14 -0
- data/dist/ice/cpp/src/Ice/TimeUtil.cpp +47 -0
- data/dist/ice/cpp/src/Ice/TimeUtil.h +21 -0
- data/dist/ice/cpp/src/Ice/Timer.cpp +73 -167
- data/dist/ice/cpp/src/Ice/Timer.h +212 -0
- data/dist/ice/cpp/src/Ice/TraceLevels.cpp +11 -29
- data/dist/ice/cpp/src/Ice/TraceLevels.h +22 -28
- data/dist/ice/cpp/src/Ice/TraceLevelsF.h +4 -11
- data/dist/ice/cpp/src/Ice/TraceUtil.cpp +136 -215
- data/dist/ice/cpp/src/Ice/TraceUtil.h +27 -16
- data/dist/ice/cpp/src/Ice/Transceiver.cpp +3 -7
- data/dist/ice/cpp/src/Ice/Transceiver.h +35 -32
- data/dist/ice/cpp/src/Ice/TransceiverF.h +10 -20
- data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
- data/dist/ice/cpp/src/Ice/UdpConnector.cpp +39 -39
- data/dist/ice/cpp/src/Ice/UdpConnector.h +27 -36
- data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +178 -213
- data/dist/ice/cpp/src/Ice/UdpEndpointI.h +82 -85
- data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +201 -221
- data/dist/ice/cpp/src/Ice/UdpTransceiver.h +68 -74
- data/dist/ice/cpp/{include/IceUtil → src/Ice}/UndefSysMacros.h +12 -12
- data/dist/ice/cpp/src/Ice/UniqueRef.h +77 -0
- data/dist/ice/cpp/src/Ice/UserException.cpp +58 -0
- data/dist/ice/cpp/src/Ice/Value.cpp +107 -38
- data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +10 -15
- data/dist/ice/cpp/src/Ice/WSAcceptor.h +31 -37
- data/dist/ice/cpp/src/Ice/WSConnector.cpp +25 -40
- data/dist/ice/cpp/src/Ice/WSConnector.h +26 -33
- data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +164 -217
- data/dist/ice/cpp/src/Ice/WSEndpoint.h +72 -83
- data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +469 -458
- data/dist/ice/cpp/src/Ice/WSTransceiver.h +117 -123
- data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +20 -29
- data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
- data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +20 -31
- data/dist/ice/cpp/src/Ice/generated/Identity.cpp +24 -34
- data/dist/ice/cpp/src/Ice/generated/Locator.cpp +454 -1744
- data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
- data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +824 -1971
- data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
- data/dist/ice/cpp/src/Ice/generated/Process.cpp +190 -331
- data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +289 -449
- data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
- data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +547 -867
- data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
- data/dist/ice/cpp/src/Ice/generated/Router.cpp +406 -723
- data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +19 -29
- data/dist/ice/cpp/src/Ice/generated/Version.cpp +28 -31
- data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +76 -139
- data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +55 -96
- data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +190 -303
- data/dist/ice/cpp/src/IceDiscovery/LookupI.h +126 -185
- data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +56 -77
- data/dist/ice/cpp/src/IceDiscovery/PluginI.h +20 -25
- data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
- data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +14 -37
- data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +411 -649
- data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +468 -0
- data/dist/ice/cpp/src/Slice/DeprecationReporter.cpp +172 -0
- data/dist/ice/cpp/src/Slice/DeprecationReporter.h +14 -0
- data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +736 -0
- data/dist/ice/cpp/src/Slice/DocCommentParser.h +61 -0
- data/dist/ice/cpp/src/Slice/FileTracker.cpp +25 -75
- data/dist/ice/cpp/src/Slice/FileTracker.h +35 -56
- data/dist/ice/cpp/src/Slice/Grammar.cpp +2711 -3382
- data/dist/ice/cpp/src/Slice/Grammar.h +95 -75
- data/dist/ice/cpp/src/Slice/GrammarUtil.h +117 -217
- data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +486 -0
- data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
- data/dist/ice/cpp/src/Slice/Parser.cpp +3068 -5223
- data/dist/ice/cpp/src/Slice/Parser.h +1086 -1065
- data/dist/ice/cpp/src/Slice/Preprocessor.cpp +97 -599
- data/dist/ice/cpp/src/Slice/Preprocessor.h +26 -42
- data/dist/ice/cpp/src/Slice/Scanner.cpp +1562 -924
- data/dist/ice/cpp/src/Slice/SliceUtil.cpp +517 -113
- data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +254 -269
- data/dist/ice/cpp/src/Slice/Util.h +126 -35
- data/dist/ice/cpp/src/slice2rb/Main.cpp +13 -15
- data/dist/ice/cpp/src/slice2rb/Ruby.cpp +250 -0
- data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +1197 -0
- data/dist/ice/cpp/src/slice2rb/RubyUtil.h +56 -0
- data/dist/ice/slice/Glacier2/Metrics.ice +34 -75
- data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +42 -98
- data/dist/ice/slice/Glacier2/Router.ice +80 -173
- data/dist/ice/slice/Glacier2/SSLInfo.ice +23 -40
- data/dist/ice/slice/Glacier2/Session.ice +120 -261
- data/dist/ice/slice/Ice/BuiltinSequences.ice +33 -38
- data/dist/ice/slice/Ice/Context.ice +24 -0
- data/dist/ice/slice/Ice/EndpointTypes.ice +35 -33
- data/dist/ice/slice/Ice/Identity.ice +24 -63
- data/dist/ice/slice/Ice/Locator.ice +61 -226
- data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
- data/dist/ice/slice/Ice/Metrics.ice +189 -424
- data/dist/ice/slice/Ice/OperationMode.ice +38 -0
- data/dist/ice/slice/Ice/Process.ice +16 -52
- data/dist/ice/slice/Ice/PropertiesAdmin.ice +25 -75
- data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
- data/dist/ice/slice/Ice/RemoteLogger.ice +113 -213
- data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
- data/dist/ice/slice/Ice/Router.ice +42 -91
- data/dist/ice/slice/Ice/SliceChecksumDict.ice +7 -25
- data/dist/ice/slice/Ice/Version.ice +31 -39
- data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
- data/dist/ice/slice/IceGrid/Admin.ice +942 -1918
- data/dist/ice/slice/IceGrid/Descriptor.ice +476 -1051
- data/dist/ice/slice/IceGrid/Exception.ice +86 -384
- data/dist/ice/slice/IceGrid/FileParser.ice +23 -59
- data/dist/ice/slice/IceGrid/Registry.ice +117 -256
- data/dist/ice/slice/IceGrid/Session.ice +46 -110
- data/dist/ice/slice/IceGrid/UserAccountMapper.ice +22 -57
- data/dist/ice/slice/IceStorm/IceStorm.ice +173 -401
- data/dist/ice/slice/IceStorm/Metrics.ice +28 -70
- data/dist/lib/Glacier2/Metrics.rb +16 -31
- data/dist/lib/Glacier2/PermissionsVerifier.rb +18 -50
- data/dist/lib/Glacier2/Router.rb +20 -42
- data/dist/lib/Glacier2/SSLInfo.rb +14 -22
- data/dist/lib/Glacier2/Session.rb +53 -113
- data/dist/lib/Glacier2.rb +6 -6
- data/dist/lib/Ice/BuiltinSequences.rb +14 -26
- data/dist/lib/Ice/CompressBatch.rb +50 -0
- data/dist/lib/Ice/Context.rb +12 -0
- data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
- data/dist/lib/Ice/EndpointTypes.rb +14 -55
- data/dist/lib/Ice/Exception.rb +20 -0
- data/dist/lib/Ice/Identity.rb +10 -26
- data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
- data/dist/lib/Ice/InitializationData.rb +12 -0
- data/dist/lib/Ice/LocalExceptions.rb +168 -0
- data/dist/lib/Ice/Locator.rb +21 -134
- data/dist/lib/Ice/LocatorRegistry.rb +73 -0
- data/dist/lib/Ice/Metrics.rb +85 -132
- data/dist/lib/Ice/OperationMode.rb +58 -0
- data/dist/lib/Ice/Process.rb +12 -31
- data/dist/lib/Ice/PropertiesAdmin.rb +12 -36
- data/dist/lib/Ice/PropertyDict.rb +12 -0
- data/dist/lib/Ice/Proxy.rb +85 -0
- data/dist/lib/Ice/ProxyFunctions.rb +69 -0
- data/dist/lib/Ice/RemoteLogger.rb +29 -60
- data/dist/lib/Ice/ReplyStatus.rb +65 -0
- data/dist/lib/Ice/Router.rb +19 -47
- data/dist/lib/Ice/SliceChecksumDict.rb +5 -17
- data/dist/lib/Ice/SliceUtil.rb +41 -0
- data/dist/lib/Ice/Struct.rb +11 -0
- data/dist/lib/Ice/ToStringMode.rb +50 -0
- data/dist/lib/Ice/Value.rb +93 -0
- data/dist/lib/Ice/Version.rb +12 -24
- data/dist/lib/Ice.rb +29 -665
- data/dist/lib/IceBox/ServiceManager.rb +104 -0
- data/dist/lib/IceBox.rb +2 -4
- data/dist/lib/IceGrid/Admin.rb +303 -291
- data/dist/lib/IceGrid/Descriptor.rb +147 -192
- data/dist/lib/IceGrid/Exception.rb +26 -257
- data/dist/lib/IceGrid/FileParser.rb +12 -36
- data/dist/lib/IceGrid/Registry.rb +35 -76
- data/dist/lib/IceGrid/Session.rb +19 -34
- data/dist/lib/IceGrid/UserAccountMapper.rb +11 -34
- data/dist/lib/IceGrid.rb +3 -3
- data/dist/lib/IceStorm/IceStorm.rb +51 -132
- data/dist/lib/IceStorm/Metrics.rb +19 -37
- data/dist/lib/IceStorm.rb +3 -5
- data/extconf.rb +6 -8
- data/ice.gemspec +3 -3
- data/scripts/slice2rb +1 -3
- metadata +206 -386
- data/dist/IceRuby/ValueFactoryManager.cpp +0 -445
- data/dist/IceRuby/ValueFactoryManager.h +0 -95
- data/dist/ice/cpp/include/Ice/Application.h +0 -326
- data/dist/ice/cpp/include/Ice/AsyncResult.h +0 -155
- data/dist/ice/cpp/include/Ice/AsyncResultF.h +0 -23
- data/dist/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
- data/dist/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
- data/dist/ice/cpp/include/Ice/Comparable.h +0 -205
- data/dist/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
- data/dist/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
- data/dist/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
- data/dist/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
- data/dist/ice/cpp/include/Ice/Dispatcher.h +0 -67
- data/dist/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
- data/dist/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
- data/dist/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
- data/dist/ice/cpp/include/Ice/FactoryTable.h +0 -73
- data/dist/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
- data/dist/ice/cpp/include/Ice/Functional.h +0 -140
- data/dist/ice/cpp/include/Ice/GCObject.h +0 -76
- data/dist/ice/cpp/include/Ice/Handle.h +0 -182
- data/dist/ice/cpp/include/Ice/Incoming.h +0 -225
- data/dist/ice/cpp/include/Ice/IncomingAsync.h +0 -186
- data/dist/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
- data/dist/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
- data/dist/ice/cpp/include/Ice/LocalObject.h +0 -35
- data/dist/ice/cpp/include/Ice/LocalObjectF.h +0 -21
- data/dist/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
- data/dist/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
- data/dist/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
- data/dist/ice/cpp/include/Ice/Optional.h +0 -1114
- data/dist/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
- data/dist/ice/cpp/include/Ice/Protocol.h +0 -274
- data/dist/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
- data/dist/ice/cpp/include/Ice/ProxyHandle.h +0 -318
- data/dist/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
- data/dist/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
- data/dist/ice/cpp/include/Ice/SHA1.h +0 -40
- data/dist/ice/cpp/include/Ice/ServantManagerF.h +0 -21
- data/dist/ice/cpp/include/Ice/SliceChecksums.h +0 -33
- data/dist/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
- data/dist/ice/cpp/include/Ice/UniquePtr.h +0 -95
- data/dist/ice/cpp/include/Ice/UniqueRef.h +0 -97
- data/dist/ice/cpp/include/IceSSL/Config.h +0 -21
- data/dist/ice/cpp/include/IceSSL/IceSSL.h +0 -24
- data/dist/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
- data/dist/ice/cpp/include/IceSSL/Plugin.h +0 -712
- data/dist/ice/cpp/include/IceSSL/SChannel.h +0 -72
- data/dist/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
- data/dist/ice/cpp/include/IceUtil/Atomic.h +0 -179
- data/dist/ice/cpp/include/IceUtil/Cond.h +0 -317
- data/dist/ice/cpp/include/IceUtil/Config.h +0 -392
- data/dist/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
- data/dist/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
- data/dist/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -96
- data/dist/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
- data/dist/ice/cpp/include/IceUtil/Exception.h +0 -394
- data/dist/ice/cpp/include/IceUtil/FileUtil.h +0 -140
- data/dist/ice/cpp/include/IceUtil/Functional.h +0 -389
- data/dist/ice/cpp/include/IceUtil/Handle.h +0 -261
- data/dist/ice/cpp/include/IceUtil/IceUtil.h +0 -40
- data/dist/ice/cpp/include/IceUtil/InputUtil.h +0 -42
- data/dist/ice/cpp/include/IceUtil/Iterator.h +0 -31
- data/dist/ice/cpp/include/IceUtil/Lock.h +0 -128
- data/dist/ice/cpp/include/IceUtil/Monitor.h +0 -243
- data/dist/ice/cpp/include/IceUtil/Mutex.h +0 -349
- data/dist/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
- data/dist/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
- data/dist/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
- data/dist/ice/cpp/include/IceUtil/Optional.h +0 -433
- data/dist/ice/cpp/include/IceUtil/Options.h +0 -135
- data/dist/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
- data/dist/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
- data/dist/ice/cpp/include/IceUtil/Random.h +0 -55
- data/dist/ice/cpp/include/IceUtil/RecMutex.h +0 -107
- data/dist/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
- data/dist/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
- data/dist/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
- data/dist/ice/cpp/include/IceUtil/Shared.h +0 -127
- data/dist/ice/cpp/include/IceUtil/StopWatch.h +0 -49
- data/dist/ice/cpp/include/IceUtil/StringConverter.h +0 -195
- data/dist/ice/cpp/include/IceUtil/StringUtil.h +0 -97
- data/dist/ice/cpp/include/IceUtil/Thread.h +0 -160
- data/dist/ice/cpp/include/IceUtil/ThreadException.h +0 -94
- data/dist/ice/cpp/include/IceUtil/Time.h +0 -205
- data/dist/ice/cpp/include/IceUtil/Timer.h +0 -153
- data/dist/ice/cpp/include/IceUtil/UUID.h +0 -21
- data/dist/ice/cpp/include/generated/Glacier2/Metrics.h +0 -475
- data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifier.h +0 -1430
- data/dist/ice/cpp/include/generated/Glacier2/PermissionsVerifierF.h +0 -147
- data/dist/ice/cpp/include/generated/Glacier2/Router.h +0 -3260
- data/dist/ice/cpp/include/generated/Glacier2/RouterF.h +0 -125
- data/dist/ice/cpp/include/generated/Glacier2/SSLInfo.h +0 -223
- data/dist/ice/cpp/include/generated/Glacier2/Session.h +0 -5894
- data/dist/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
- data/dist/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/Connection.h +0 -1703
- data/dist/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
- data/dist/ice/cpp/include/generated/Ice/Current.h +0 -322
- data/dist/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
- data/dist/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
- data/dist/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
- data/dist/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
- data/dist/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
- data/dist/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
- data/dist/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
- data/dist/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
- data/dist/ice/cpp/include/generated/Ice/Logger.h +0 -237
- data/dist/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
- data/dist/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
- data/dist/ice/cpp/include/generated/Ice/Plugin.h +0 -318
- data/dist/ice/cpp/include/generated/Ice/PluginF.h +0 -110
- data/dist/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
- data/dist/ice/cpp/include/generated/Ice/Properties.h +0 -452
- data/dist/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
- data/dist/ice/cpp/include/generated/Ice/RouterF.h +0 -125
- data/dist/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
- data/dist/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
- data/dist/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
- data/dist/ice/cpp/include/generated/IceBox/IceBox.h +0 -3269
- data/dist/ice/cpp/include/generated/IceGrid/Admin.h +0 -33773
- data/dist/ice/cpp/include/generated/IceGrid/Descriptor.h +0 -5254
- data/dist/ice/cpp/include/generated/IceGrid/Exception.h +0 -2834
- data/dist/ice/cpp/include/generated/IceGrid/FileParser.h +0 -824
- data/dist/ice/cpp/include/generated/IceGrid/PluginFacade.h +0 -635
- data/dist/ice/cpp/include/generated/IceGrid/Registry.h +0 -5089
- data/dist/ice/cpp/include/generated/IceGrid/Session.h +0 -2240
- data/dist/ice/cpp/include/generated/IceGrid/UserAccountMapper.h +0 -800
- data/dist/ice/cpp/include/generated/IcePatch2/FileInfo.h +0 -325
- data/dist/ice/cpp/include/generated/IcePatch2/FileServer.h +0 -2891
- data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
- data/dist/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
- data/dist/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
- data/dist/ice/cpp/include/generated/IceStorm/IceStorm.h +0 -6627
- data/dist/ice/cpp/include/generated/IceStorm/Metrics.h +0 -665
- data/dist/ice/cpp/src/Ice/ACM.cpp +0 -380
- data/dist/ice/cpp/src/Ice/ACM.h +0 -119
- data/dist/ice/cpp/src/Ice/ACMF.h +0 -30
- data/dist/ice/cpp/src/Ice/Acceptor.cpp +0 -16
- data/dist/ice/cpp/src/Ice/Application.cpp +0 -661
- data/dist/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
- data/dist/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
- data/dist/ice/cpp/src/Ice/CommunicatorI.h +0 -167
- data/dist/ice/cpp/src/Ice/Cond.cpp +0 -381
- data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
- data/dist/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
- data/dist/ice/cpp/src/Ice/Connector.cpp +0 -16
- data/dist/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
- data/dist/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
- data/dist/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
- data/dist/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
- data/dist/ice/cpp/src/Ice/GCObject.cpp +0 -442
- data/dist/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
- data/dist/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
- data/dist/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
- data/dist/ice/cpp/src/Ice/Incoming.cpp +0 -795
- data/dist/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
- data/dist/ice/cpp/src/Ice/IncomingRequest.h +0 -33
- data/dist/ice/cpp/src/Ice/LocalObject.cpp +0 -23
- data/dist/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
- data/dist/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
- data/dist/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
- data/dist/ice/cpp/src/Ice/PropertiesI.cpp +0 -739
- data/dist/ice/cpp/src/Ice/PropertiesI.h +0 -70
- data/dist/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
- data/dist/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
- data/dist/ice/cpp/src/Ice/ProxyFactory.h +0 -57
- data/dist/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
- data/dist/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
- data/dist/ice/cpp/src/Ice/ReplyStatus.h +0 -24
- data/dist/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
- data/dist/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
- data/dist/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
- data/dist/ice/cpp/src/Ice/ResponseHandler.h +0 -43
- data/dist/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
- data/dist/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
- data/dist/ice/cpp/src/Ice/StringUtil.h +0 -30
- data/dist/ice/cpp/src/Ice/Thread.cpp +0 -569
- data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
- data/dist/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
- data/dist/ice/cpp/src/Ice/VirtualShared.h +0 -38
- data/dist/ice/cpp/src/Ice/generated/Communicator.cpp +0 -79
- data/dist/ice/cpp/src/Ice/generated/CommunicatorF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/Connection.cpp +0 -155
- data/dist/ice/cpp/src/Ice/generated/ConnectionF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/Current.cpp +0 -62
- data/dist/ice/cpp/src/Ice/generated/Endpoint.cpp +0 -147
- data/dist/ice/cpp/src/Ice/generated/EndpointF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/FacetMap.cpp +0 -49
- data/dist/ice/cpp/src/Ice/generated/ImplicitContext.cpp +0 -75
- data/dist/ice/cpp/src/Ice/generated/ImplicitContextF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/Instrumentation.cpp +0 -188
- data/dist/ice/cpp/src/Ice/generated/InstrumentationF.cpp +0 -66
- data/dist/ice/cpp/src/Ice/generated/LocalException.cpp +0 -3262
- data/dist/ice/cpp/src/Ice/generated/LocatorF.cpp +0 -63
- data/dist/ice/cpp/src/Ice/generated/Logger.cpp +0 -73
- data/dist/ice/cpp/src/Ice/generated/LoggerF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/ObjectAdapter.cpp +0 -79
- data/dist/ice/cpp/src/Ice/generated/ObjectAdapterF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/ObjectFactory.cpp +0 -75
- data/dist/ice/cpp/src/Ice/generated/Plugin.cpp +0 -87
- data/dist/ice/cpp/src/Ice/generated/PluginF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/ProcessF.cpp +0 -63
- data/dist/ice/cpp/src/Ice/generated/Properties.cpp +0 -78
- data/dist/ice/cpp/src/Ice/generated/PropertiesF.cpp +0 -63
- data/dist/ice/cpp/src/Ice/generated/RouterF.cpp +0 -63
- data/dist/ice/cpp/src/Ice/generated/ServantLocator.cpp +0 -75
- data/dist/ice/cpp/src/Ice/generated/ServantLocatorF.cpp +0 -61
- data/dist/ice/cpp/src/Ice/generated/ValueFactory.cpp +0 -83
- data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.cpp +0 -154
- data/dist/ice/cpp/src/Ice/ios/StreamAcceptor.h +0 -49
- data/dist/ice/cpp/src/Ice/ios/StreamConnector.cpp +0 -146
- data/dist/ice/cpp/src/Ice/ios/StreamConnector.h +0 -52
- data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.cpp +0 -477
- data/dist/ice/cpp/src/Ice/ios/StreamEndpointI.h +0 -156
- data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.cpp +0 -570
- data/dist/ice/cpp/src/Ice/ios/StreamTransceiver.h +0 -93
- data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery/IceDiscovery.h +0 -1889
- data/dist/ice/cpp/src/IceDiscovery/generated/IceDiscovery.cpp +0 -915
- data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
- data/dist/ice/cpp/src/IceLocatorDiscovery/generated/IceLocatorDiscovery.cpp +0 -730
- data/dist/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
- data/dist/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
- data/dist/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
- data/dist/ice/cpp/src/IceSSL/CertificateI.h +0 -64
- data/dist/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
- data/dist/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
- data/dist/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
- data/dist/ice/cpp/src/IceSSL/EndpointI.h +0 -100
- data/dist/ice/cpp/src/IceSSL/Instance.cpp +0 -28
- data/dist/ice/cpp/src/IceSSL/Instance.h +0 -37
- data/dist/ice/cpp/src/IceSSL/InstanceF.h +0 -33
- data/dist/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
- data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
- data/dist/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
- data/dist/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
- data/dist/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
- data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
- data/dist/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
- data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
- data/dist/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
- data/dist/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
- data/dist/ice/cpp/src/IceSSL/PluginI.h +0 -67
- data/dist/ice/cpp/src/IceSSL/RFC2253.h +0 -62
- data/dist/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
- data/dist/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
- data/dist/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
- data/dist/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
- data/dist/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
- data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
- data/dist/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
- data/dist/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
- data/dist/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
- data/dist/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
- data/dist/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
- data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
- data/dist/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
- data/dist/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
- data/dist/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
- data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
- data/dist/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
- data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
- data/dist/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
- data/dist/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
- data/dist/ice/cpp/src/IceSSL/TrustManager.h +0 -46
- data/dist/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
- data/dist/ice/cpp/src/IceSSL/Util.cpp +0 -192
- data/dist/ice/cpp/src/IceSSL/Util.h +0 -99
- data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfo.cpp +0 -75
- data/dist/ice/cpp/src/IceSSL/generated/ConnectionInfoF.cpp +0 -61
- data/dist/ice/cpp/src/IceSSL/generated/EndpointInfo.cpp +0 -75
- data/dist/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
- data/dist/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
- data/dist/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
- data/dist/ice/cpp/src/IceUtil/FileUtil.cpp +0 -471
- data/dist/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
- data/dist/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
- data/dist/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
- data/dist/ice/cpp/src/IceUtil/Random.cpp +0 -180
- data/dist/ice/cpp/src/IceUtil/RecMutex.cpp +0 -238
- data/dist/ice/cpp/src/IceUtil/Shared.cpp +0 -71
- data/dist/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
- data/dist/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1135
- data/dist/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
- data/dist/ice/cpp/src/IceUtil/Time.cpp +0 -307
- data/dist/ice/cpp/src/IceUtil/UUID.cpp +0 -165
- data/dist/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
- data/dist/ice/cpp/src/IceUtil/Unicode.h +0 -43
- data/dist/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
- data/dist/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
- data/dist/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
- data/dist/ice/cpp/src/Slice/Checksum.cpp +0 -447
- data/dist/ice/cpp/src/Slice/Checksum.h +0 -21
- data/dist/ice/cpp/src/Slice/JavaUtil.cpp +0 -5183
- data/dist/ice/cpp/src/Slice/JavaUtil.h +0 -407
- data/dist/ice/cpp/src/Slice/MD5.cpp +0 -52
- data/dist/ice/cpp/src/Slice/MD5.h +0 -39
- data/dist/ice/cpp/src/Slice/MD5I.cpp +0 -393
- data/dist/ice/cpp/src/Slice/MD5I.h +0 -91
- data/dist/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
- data/dist/ice/cpp/src/Slice/PHPUtil.h +0 -36
- data/dist/ice/cpp/src/Slice/Python.cpp +0 -830
- data/dist/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
- data/dist/ice/cpp/src/Slice/PythonUtil.h +0 -70
- data/dist/ice/cpp/src/Slice/Ruby.cpp +0 -350
- data/dist/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
- data/dist/ice/cpp/src/Slice/RubyUtil.h +0 -49
- data/dist/ice/slice/Glacier2/PermissionsVerifierF.ice +0 -30
- data/dist/ice/slice/Glacier2/RouterF.ice +0 -29
- data/dist/ice/slice/Ice/Communicator.ice +0 -676
- data/dist/ice/slice/Ice/CommunicatorF.ice +0 -31
- data/dist/ice/slice/Ice/Connection.ice +0 -516
- data/dist/ice/slice/Ice/ConnectionF.ice +0 -33
- data/dist/ice/slice/Ice/Current.ice +0 -170
- data/dist/ice/slice/Ice/Endpoint.ice +0 -291
- data/dist/ice/slice/Ice/EndpointF.ice +0 -43
- data/dist/ice/slice/Ice/FacetMap.ice +0 -36
- data/dist/ice/slice/Ice/ImplicitContext.ice +0 -119
- data/dist/ice/slice/Ice/ImplicitContextF.ice +0 -30
- data/dist/ice/slice/Ice/Instrumentation.ice +0 -509
- data/dist/ice/slice/Ice/InstrumentationF.ice +0 -38
- data/dist/ice/slice/Ice/LocalException.ice +0 -1040
- data/dist/ice/slice/Ice/LocatorF.ice +0 -32
- data/dist/ice/slice/Ice/Logger.ice +0 -99
- data/dist/ice/slice/Ice/LoggerF.ice +0 -31
- data/dist/ice/slice/Ice/ObjectAdapter.ice +0 -710
- data/dist/ice/slice/Ice/ObjectAdapterF.ice +0 -31
- data/dist/ice/slice/Ice/ObjectFactory.ice +0 -71
- data/dist/ice/slice/Ice/Plugin.ice +0 -131
- data/dist/ice/slice/Ice/PluginF.ice +0 -36
- data/dist/ice/slice/Ice/ProcessF.ice +0 -31
- data/dist/ice/slice/Ice/Properties.ice +0 -244
- data/dist/ice/slice/Ice/PropertiesF.ice +0 -32
- data/dist/ice/slice/Ice/RouterF.ice +0 -31
- data/dist/ice/slice/Ice/ServantLocator.ice +0 -136
- data/dist/ice/slice/Ice/ServantLocatorF.ice +0 -31
- data/dist/ice/slice/Ice/ValueFactory.ice +0 -133
- data/dist/ice/slice/IceBox/IceBox.ice +0 -216
- data/dist/ice/slice/IceGrid/PluginFacade.ice +0 -329
- data/dist/ice/slice/IcePatch2/FileInfo.ice +0 -85
- data/dist/ice/slice/IcePatch2/FileServer.ice +0 -191
- data/dist/lib/Glacier2/PermissionsVerifierF.rb +0 -30
- data/dist/lib/Glacier2/RouterF.rb +0 -25
- data/dist/lib/Ice/Communicator.rb +0 -87
- data/dist/lib/Ice/CommunicatorF.rb +0 -24
- data/dist/lib/Ice/Connection.rb +0 -413
- data/dist/lib/Ice/ConnectionF.rb +0 -32
- data/dist/lib/Ice/Current.rb +0 -141
- data/dist/lib/Ice/Endpoint.rb +0 -187
- data/dist/lib/Ice/EndpointF.rb +0 -48
- data/dist/lib/Ice/FacetMap.rb +0 -24
- data/dist/lib/Ice/ImplicitContext.rb +0 -26
- data/dist/lib/Ice/ImplicitContextF.rb +0 -24
- data/dist/lib/Ice/Instrumentation.rb +0 -169
- data/dist/lib/Ice/InstrumentationF.rb +0 -31
- data/dist/lib/Ice/LocalException.rb +0 -1031
- data/dist/lib/Ice/LocatorF.rb +0 -30
- data/dist/lib/Ice/Logger.rb +0 -24
- data/dist/lib/Ice/LoggerF.rb +0 -24
- data/dist/lib/Ice/ObjectAdapter.rb +0 -29
- data/dist/lib/Ice/ObjectAdapterF.rb +0 -24
- data/dist/lib/Ice/ObjectFactory.rb +0 -24
- data/dist/lib/Ice/Plugin.rb +0 -30
- data/dist/lib/Ice/PluginF.rb +0 -28
- data/dist/lib/Ice/ProcessF.rb +0 -25
- data/dist/lib/Ice/Properties.rb +0 -25
- data/dist/lib/Ice/PropertiesF.rb +0 -29
- data/dist/lib/Ice/RouterF.rb +0 -25
- data/dist/lib/Ice/ServantLocator.rb +0 -26
- data/dist/lib/Ice/ServantLocatorF.rb +0 -24
- data/dist/lib/Ice/ValueFactory.rb +0 -28
- data/dist/lib/IceBox/IceBox.rb +0 -164
- data/dist/lib/IceGrid/PluginFacade.rb +0 -35
- data/dist/lib/IcePatch2/FileInfo.rb +0 -115
- data/dist/lib/IcePatch2/FileServer.rb +0 -123
- data/dist/lib/IcePatch2.rb +0 -5
|
@@ -1,1308 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright (c) ZeroC, Inc. All rights reserved.
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
#include <IceSSL/Config.h>
|
|
6
|
-
|
|
7
|
-
#include <IceSSL/SecureTransportEngineF.h>
|
|
8
|
-
#include <IceSSL/SecureTransportEngine.h>
|
|
9
|
-
|
|
10
|
-
#include <IceUtil/FileUtil.h>
|
|
11
|
-
#include <IceUtil/StringUtil.h>
|
|
12
|
-
#include <IceUtil/MutexPtrLock.h>
|
|
13
|
-
|
|
14
|
-
#include <Ice/LocalException.h>
|
|
15
|
-
#include <Ice/Properties.h>
|
|
16
|
-
#include <Ice/Communicator.h>
|
|
17
|
-
#include <Ice/Logger.h>
|
|
18
|
-
#include <Ice/LoggerUtil.h>
|
|
19
|
-
|
|
20
|
-
#include <IceSSL/SecureTransportTransceiverI.h>
|
|
21
|
-
#include <IceSSL/SecureTransportUtil.h>
|
|
22
|
-
#include <IceSSL/Plugin.h>
|
|
23
|
-
#include <IceSSL/SSLEngine.h>
|
|
24
|
-
#include <IceSSL/Util.h>
|
|
25
|
-
|
|
26
|
-
#include <regex.h>
|
|
27
|
-
|
|
28
|
-
// Disable deprecation warnings from SecureTransport APIs
|
|
29
|
-
#include <IceUtil/DisableWarnings.h>
|
|
30
|
-
|
|
31
|
-
using namespace std;
|
|
32
|
-
using namespace IceUtil;
|
|
33
|
-
using namespace Ice;
|
|
34
|
-
using namespace IceInternal;
|
|
35
|
-
using namespace IceSSL;
|
|
36
|
-
using namespace IceSSL::SecureTransport;
|
|
37
|
-
|
|
38
|
-
namespace
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
IceUtil::Mutex* staticMutex = 0;
|
|
42
|
-
|
|
43
|
-
class Init
|
|
44
|
-
{
|
|
45
|
-
public:
|
|
46
|
-
|
|
47
|
-
Init()
|
|
48
|
-
{
|
|
49
|
-
staticMutex = new IceUtil::Mutex;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
~Init()
|
|
53
|
-
{
|
|
54
|
-
delete staticMutex;
|
|
55
|
-
staticMutex = 0;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
Init init;
|
|
60
|
-
|
|
61
|
-
class RegExp : public IceUtil::Shared
|
|
62
|
-
{
|
|
63
|
-
public:
|
|
64
|
-
|
|
65
|
-
RegExp(const string&);
|
|
66
|
-
~RegExp();
|
|
67
|
-
bool match(const string&);
|
|
68
|
-
|
|
69
|
-
private:
|
|
70
|
-
|
|
71
|
-
regex_t _preg;
|
|
72
|
-
};
|
|
73
|
-
typedef IceUtil::Handle<RegExp> RegExpPtr;
|
|
74
|
-
|
|
75
|
-
RegExp::RegExp(const string& regexp)
|
|
76
|
-
{
|
|
77
|
-
int err = regcomp(&_preg, regexp.c_str(), REG_EXTENDED | REG_NOSUB);
|
|
78
|
-
if(err)
|
|
79
|
-
{
|
|
80
|
-
throw IceUtil::SyscallException(__FILE__, __LINE__, err);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
RegExp::~RegExp()
|
|
85
|
-
{
|
|
86
|
-
regfree(&_preg);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
bool
|
|
90
|
-
RegExp::match(const string& value)
|
|
91
|
-
{
|
|
92
|
-
return regexec(&_preg, value.c_str(), 0, 0, 0) == 0;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
struct CipherExpression
|
|
96
|
-
{
|
|
97
|
-
bool negation;
|
|
98
|
-
string cipher;
|
|
99
|
-
RegExpPtr re;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
class CiphersHelper
|
|
103
|
-
{
|
|
104
|
-
public:
|
|
105
|
-
|
|
106
|
-
static void initialize();
|
|
107
|
-
static SSLCipherSuite cipherForName(const string& name);
|
|
108
|
-
static string cipherName(SSLCipherSuite cipher);
|
|
109
|
-
static map<string, SSLCipherSuite> ciphers();
|
|
110
|
-
|
|
111
|
-
private:
|
|
112
|
-
|
|
113
|
-
static map<string, SSLCipherSuite> _ciphers;
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
map<string, SSLCipherSuite> CiphersHelper::_ciphers;
|
|
117
|
-
|
|
118
|
-
//
|
|
119
|
-
// Initialize a dictionary with the names of ciphers
|
|
120
|
-
//
|
|
121
|
-
void
|
|
122
|
-
CiphersHelper::initialize()
|
|
123
|
-
{
|
|
124
|
-
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(staticMutex);
|
|
125
|
-
if(_ciphers.empty())
|
|
126
|
-
{
|
|
127
|
-
_ciphers["NULL_WITH_NULL_NULL"] = SSL_NULL_WITH_NULL_NULL;
|
|
128
|
-
_ciphers["RSA_WITH_NULL_MD5"] = SSL_RSA_WITH_NULL_MD5;
|
|
129
|
-
_ciphers["RSA_WITH_NULL_SHA"] = SSL_RSA_WITH_NULL_SHA;
|
|
130
|
-
_ciphers["RSA_EXPORT_WITH_RC4_40_MD5"] = SSL_RSA_EXPORT_WITH_RC4_40_MD5;
|
|
131
|
-
_ciphers["RSA_WITH_RC4_128_MD5"] = SSL_RSA_WITH_RC4_128_MD5;
|
|
132
|
-
_ciphers["RSA_WITH_RC4_128_SHA"] = SSL_RSA_WITH_RC4_128_SHA;
|
|
133
|
-
_ciphers["RSA_EXPORT_WITH_RC2_CBC_40_MD5"] = SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5;
|
|
134
|
-
_ciphers["RSA_WITH_IDEA_CBC_SHA"] = SSL_RSA_WITH_IDEA_CBC_SHA;
|
|
135
|
-
_ciphers["RSA_EXPORT_WITH_DES40_CBC_SHA"] = SSL_RSA_EXPORT_WITH_DES40_CBC_SHA;
|
|
136
|
-
_ciphers["RSA_WITH_DES_CBC_SHA"] = SSL_RSA_WITH_DES_CBC_SHA;
|
|
137
|
-
_ciphers["RSA_WITH_3DES_EDE_CBC_SHA"] = SSL_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
138
|
-
_ciphers["DH_DSS_EXPORT_WITH_DES40_CBC_SHA"] = SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA;
|
|
139
|
-
_ciphers["DH_DSS_WITH_DES_CBC_SHA"] = SSL_DH_DSS_WITH_DES_CBC_SHA;
|
|
140
|
-
_ciphers["DH_DSS_WITH_3DES_EDE_CBC_SHA"] = SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA;
|
|
141
|
-
_ciphers["DH_RSA_EXPORT_WITH_DES40_CBC_SHA"] = SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA;
|
|
142
|
-
_ciphers["DH_RSA_WITH_DES_CBC_SHA"] = SSL_DH_RSA_WITH_DES_CBC_SHA;
|
|
143
|
-
_ciphers["DH_RSA_WITH_3DES_EDE_CBC_SHA"] = SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
144
|
-
_ciphers["DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"] = SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA;
|
|
145
|
-
_ciphers["DHE_DSS_WITH_DES_CBC_SHA"] = SSL_DHE_DSS_WITH_DES_CBC_SHA;
|
|
146
|
-
_ciphers["DHE_DSS_WITH_3DES_EDE_CBC_SHA"] = SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA;
|
|
147
|
-
_ciphers["DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"] = SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA;
|
|
148
|
-
_ciphers["DHE_RSA_WITH_DES_CBC_SHA"] = SSL_DHE_RSA_WITH_DES_CBC_SHA;
|
|
149
|
-
_ciphers["DHE_RSA_WITH_3DES_EDE_CBC_SHA"] = SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
150
|
-
_ciphers["DH_anon_EXPORT_WITH_RC4_40_MD5"] = SSL_DH_anon_EXPORT_WITH_RC4_40_MD5;
|
|
151
|
-
_ciphers["DH_anon_WITH_RC4_128_MD5"] = SSL_DH_anon_WITH_RC4_128_MD5;
|
|
152
|
-
_ciphers["DH_anon_EXPORT_WITH_DES40_CBC_SHA"] = SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA;
|
|
153
|
-
_ciphers["DH_anon_WITH_DES_CBC_SHA"] = SSL_DH_anon_WITH_DES_CBC_SHA;
|
|
154
|
-
_ciphers["DH_anon_WITH_3DES_EDE_CBC_SHA"] = SSL_DH_anon_WITH_3DES_EDE_CBC_SHA;
|
|
155
|
-
_ciphers["FORTEZZA_DMS_WITH_NULL_SHA"] = SSL_FORTEZZA_DMS_WITH_NULL_SHA;
|
|
156
|
-
_ciphers["FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA"] = SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA;
|
|
157
|
-
|
|
158
|
-
//
|
|
159
|
-
// TLS addenda using AES, per RFC 3268
|
|
160
|
-
//
|
|
161
|
-
_ciphers["RSA_WITH_AES_128_CBC_SHA"] = TLS_RSA_WITH_AES_128_CBC_SHA;
|
|
162
|
-
_ciphers["DH_DSS_WITH_AES_128_CBC_SHA"] = TLS_DH_DSS_WITH_AES_128_CBC_SHA;
|
|
163
|
-
_ciphers["DH_RSA_WITH_AES_128_CBC_SHA"] = TLS_DH_RSA_WITH_AES_128_CBC_SHA;
|
|
164
|
-
_ciphers["DHE_DSS_WITH_AES_128_CBC_SHA"] = TLS_DHE_DSS_WITH_AES_128_CBC_SHA;
|
|
165
|
-
_ciphers["DHE_RSA_WITH_AES_128_CBC_SHA"] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA;
|
|
166
|
-
_ciphers["DH_anon_WITH_AES_128_CBC_SHA"] = TLS_DH_anon_WITH_AES_128_CBC_SHA;
|
|
167
|
-
_ciphers["RSA_WITH_AES_256_CBC_SHA"] = TLS_RSA_WITH_AES_256_CBC_SHA;
|
|
168
|
-
_ciphers["DH_DSS_WITH_AES_256_CBC_SHA"] = TLS_DH_DSS_WITH_AES_256_CBC_SHA;
|
|
169
|
-
_ciphers["DH_RSA_WITH_AES_256_CBC_SHA"] = TLS_DH_RSA_WITH_AES_256_CBC_SHA;
|
|
170
|
-
_ciphers["DHE_DSS_WITH_AES_256_CBC_SHA"] = TLS_DHE_DSS_WITH_AES_256_CBC_SHA;
|
|
171
|
-
_ciphers["DHE_RSA_WITH_AES_256_CBC_SHA"] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA;
|
|
172
|
-
_ciphers["DH_anon_WITH_AES_256_CBC_SHA"] = TLS_DH_anon_WITH_AES_256_CBC_SHA;
|
|
173
|
-
|
|
174
|
-
//
|
|
175
|
-
// ECDSA addenda, RFC 4492
|
|
176
|
-
//
|
|
177
|
-
_ciphers["ECDH_ECDSA_WITH_NULL_SHA"] = TLS_ECDH_ECDSA_WITH_NULL_SHA;
|
|
178
|
-
_ciphers["ECDH_ECDSA_WITH_RC4_128_SHA"] = TLS_ECDH_ECDSA_WITH_RC4_128_SHA;
|
|
179
|
-
_ciphers["ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA"] = TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA;
|
|
180
|
-
_ciphers["ECDH_ECDSA_WITH_AES_128_CBC_SHA"] = TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA;
|
|
181
|
-
_ciphers["ECDH_ECDSA_WITH_AES_256_CBC_SHA"] = TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA;
|
|
182
|
-
_ciphers["ECDHE_ECDSA_WITH_NULL_SHA"] = TLS_ECDHE_ECDSA_WITH_NULL_SHA;
|
|
183
|
-
_ciphers["ECDHE_ECDSA_WITH_RC4_128_SHA"] = TLS_ECDHE_ECDSA_WITH_RC4_128_SHA;
|
|
184
|
-
_ciphers["ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"] = TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA;
|
|
185
|
-
_ciphers["ECDHE_ECDSA_WITH_AES_128_CBC_SHA"] = TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA;
|
|
186
|
-
_ciphers["ECDHE_ECDSA_WITH_AES_256_CBC_SHA"] = TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA;
|
|
187
|
-
_ciphers["ECDH_RSA_WITH_NULL_SHA"] = TLS_ECDH_RSA_WITH_NULL_SHA;
|
|
188
|
-
_ciphers["ECDH_RSA_WITH_RC4_128_SHA"] = TLS_ECDH_RSA_WITH_RC4_128_SHA;
|
|
189
|
-
_ciphers["ECDH_RSA_WITH_3DES_EDE_CBC_SHA"] = TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
190
|
-
_ciphers["ECDH_RSA_WITH_AES_128_CBC_SHA"] = TLS_ECDH_RSA_WITH_AES_128_CBC_SHA;
|
|
191
|
-
_ciphers["ECDH_RSA_WITH_AES_256_CBC_SHA"] = TLS_ECDH_RSA_WITH_AES_256_CBC_SHA;
|
|
192
|
-
_ciphers["ECDHE_RSA_WITH_NULL_SHA"] = TLS_ECDHE_RSA_WITH_NULL_SHA;
|
|
193
|
-
_ciphers["ECDHE_RSA_WITH_RC4_128_SHA"] = TLS_ECDHE_RSA_WITH_RC4_128_SHA;
|
|
194
|
-
_ciphers["ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"] = TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
195
|
-
_ciphers["ECDHE_RSA_WITH_AES_128_CBC_SHA"] = TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA;
|
|
196
|
-
_ciphers["ECDHE_RSA_WITH_AES_256_CBC_SHA"] = TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA;
|
|
197
|
-
_ciphers["ECDH_anon_WITH_NULL_SHA"] = TLS_ECDH_anon_WITH_NULL_SHA;
|
|
198
|
-
_ciphers["ECDH_anon_WITH_RC4_128_SHA"] = TLS_ECDH_anon_WITH_RC4_128_SHA;
|
|
199
|
-
_ciphers["ECDH_anon_WITH_3DES_EDE_CBC_SHA"] = TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA;
|
|
200
|
-
_ciphers["ECDH_anon_WITH_AES_128_CBC_SHA"] = TLS_ECDH_anon_WITH_AES_128_CBC_SHA;
|
|
201
|
-
_ciphers["ECDH_anon_WITH_AES_256_CBC_SHA"] = TLS_ECDH_anon_WITH_AES_256_CBC_SHA;
|
|
202
|
-
|
|
203
|
-
//
|
|
204
|
-
// TLS 1.2 addenda, RFC 5246
|
|
205
|
-
//
|
|
206
|
-
//_ciphers["NULL_WITH_NULL_NULL"] = TLS_NULL_WITH_NULL_NULL;
|
|
207
|
-
|
|
208
|
-
//
|
|
209
|
-
// Server provided RSA certificate for key exchange.
|
|
210
|
-
//
|
|
211
|
-
//_ciphers["RSA_WITH_NULL_MD5"] = TLS_RSA_WITH_NULL_MD5;
|
|
212
|
-
//_ciphers["RSA_WITH_NULL_SHA"] = TLS_RSA_WITH_NULL_SHA;
|
|
213
|
-
//_ciphers["RSA_WITH_RC4_128_MD5"] = TLS_RSA_WITH_RC4_128_MD5;
|
|
214
|
-
//_ciphers["RSA_WITH_RC4_128_SHA"] = TLS_RSA_WITH_RC4_128_SHA;
|
|
215
|
-
//_ciphers["RSA_WITH_3DES_EDE_CBC_SHA"] = TLS_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
216
|
-
_ciphers["RSA_WITH_NULL_SHA256"] = TLS_RSA_WITH_NULL_SHA256;
|
|
217
|
-
_ciphers["RSA_WITH_AES_128_CBC_SHA256"] = TLS_RSA_WITH_AES_128_CBC_SHA256;
|
|
218
|
-
_ciphers["RSA_WITH_AES_256_CBC_SHA256"] = TLS_RSA_WITH_AES_256_CBC_SHA256;
|
|
219
|
-
|
|
220
|
-
//
|
|
221
|
-
// Server-authenticated (and optionally client-authenticated) Diffie-Hellman.
|
|
222
|
-
//
|
|
223
|
-
//_ciphers["DH_DSS_WITH_3DES_EDE_CBC_SHA"] = TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA;
|
|
224
|
-
//_ciphers["DH_RSA_WITH_3DES_EDE_CBC_SHA"] = TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
225
|
-
//_ciphers["DHE_DSS_WITH_3DES_EDE_CBC_SHA"] = TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA;
|
|
226
|
-
//_ciphers["DHE_RSA_WITH_3DES_EDE_CBC_SHA"] = TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA;
|
|
227
|
-
_ciphers["DH_DSS_WITH_AES_128_CBC_SHA256"] = TLS_DH_DSS_WITH_AES_128_CBC_SHA256;
|
|
228
|
-
_ciphers["DH_RSA_WITH_AES_128_CBC_SHA256"] = TLS_DH_RSA_WITH_AES_128_CBC_SHA256;
|
|
229
|
-
_ciphers["DHE_DSS_WITH_AES_128_CBC_SHA256"] = TLS_DHE_DSS_WITH_AES_128_CBC_SHA256;
|
|
230
|
-
_ciphers["DHE_RSA_WITH_AES_128_CBC_SHA256"] = TLS_DHE_RSA_WITH_AES_128_CBC_SHA256;
|
|
231
|
-
_ciphers["DH_DSS_WITH_AES_256_CBC_SHA256"] = TLS_DH_DSS_WITH_AES_256_CBC_SHA256;
|
|
232
|
-
_ciphers["DH_RSA_WITH_AES_256_CBC_SHA256"] = TLS_DH_RSA_WITH_AES_256_CBC_SHA256;
|
|
233
|
-
_ciphers["DHE_DSS_WITH_AES_256_CBC_SHA256"] = TLS_DHE_DSS_WITH_AES_256_CBC_SHA256;
|
|
234
|
-
_ciphers["DHE_RSA_WITH_AES_256_CBC_SHA256"] = TLS_DHE_RSA_WITH_AES_256_CBC_SHA256;
|
|
235
|
-
|
|
236
|
-
//
|
|
237
|
-
// Completely anonymous Diffie-Hellman
|
|
238
|
-
//
|
|
239
|
-
//_ciphers["DH_anon_WITH_RC4_128_MD5"] = TLS_DH_anon_WITH_RC4_128_MD5;
|
|
240
|
-
//_ciphers["DH_anon_WITH_3DES_EDE_CBC_SHA"] = TLS_DH_anon_WITH_3DES_EDE_CBC_SHA;
|
|
241
|
-
_ciphers["DH_anon_WITH_AES_128_CBC_SHA256"] = TLS_DH_anon_WITH_AES_128_CBC_SHA256;
|
|
242
|
-
_ciphers["DH_anon_WITH_AES_256_CBC_SHA256"] = TLS_DH_anon_WITH_AES_256_CBC_SHA256;
|
|
243
|
-
|
|
244
|
-
//
|
|
245
|
-
// Addendum from RFC 4279, TLS PSK
|
|
246
|
-
//
|
|
247
|
-
_ciphers["PSK_WITH_RC4_128_SHA"] = TLS_PSK_WITH_RC4_128_SHA;
|
|
248
|
-
_ciphers["PSK_WITH_3DES_EDE_CBC_SHA"] = TLS_PSK_WITH_3DES_EDE_CBC_SHA;
|
|
249
|
-
_ciphers["PSK_WITH_AES_128_CBC_SHA"] = TLS_PSK_WITH_AES_128_CBC_SHA;
|
|
250
|
-
_ciphers["PSK_WITH_AES_256_CBC_SHA"] = TLS_PSK_WITH_AES_256_CBC_SHA;
|
|
251
|
-
_ciphers["DHE_PSK_WITH_RC4_128_SHA"] = TLS_DHE_PSK_WITH_RC4_128_SHA;
|
|
252
|
-
_ciphers["DHE_PSK_WITH_3DES_EDE_CBC_SHA"] = TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA;
|
|
253
|
-
_ciphers["DHE_PSK_WITH_AES_128_CBC_SHA"] = TLS_DHE_PSK_WITH_AES_128_CBC_SHA;
|
|
254
|
-
_ciphers["DHE_PSK_WITH_AES_256_CBC_SHA"] = TLS_DHE_PSK_WITH_AES_256_CBC_SHA;
|
|
255
|
-
_ciphers["RSA_PSK_WITH_RC4_128_SHA"] = TLS_RSA_PSK_WITH_RC4_128_SHA;
|
|
256
|
-
_ciphers["RSA_PSK_WITH_3DES_EDE_CBC_SHA"] = TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA;
|
|
257
|
-
_ciphers["RSA_PSK_WITH_AES_128_CBC_SHA"] = TLS_RSA_PSK_WITH_AES_128_CBC_SHA;
|
|
258
|
-
_ciphers["RSA_PSK_WITH_AES_256_CBC_SHA"] = TLS_RSA_PSK_WITH_AES_256_CBC_SHA;
|
|
259
|
-
|
|
260
|
-
//
|
|
261
|
-
// RFC 4785 - Pre-Shared Key (PSK) Ciphersuites with NULL Encryption
|
|
262
|
-
//
|
|
263
|
-
_ciphers["PSK_WITH_NULL_SHA"] = TLS_PSK_WITH_NULL_SHA;
|
|
264
|
-
_ciphers["DHE_PSK_WITH_NULL_SHA"] = TLS_DHE_PSK_WITH_NULL_SHA;
|
|
265
|
-
_ciphers["RSA_PSK_WITH_NULL_SHA"] = TLS_RSA_PSK_WITH_NULL_SHA;
|
|
266
|
-
|
|
267
|
-
//
|
|
268
|
-
// Addenda from rfc 5288 AES Galois Counter Mode (GCM) Cipher Suites for TLS.
|
|
269
|
-
//
|
|
270
|
-
_ciphers["RSA_WITH_AES_128_GCM_SHA256"] = TLS_RSA_WITH_AES_128_GCM_SHA256;
|
|
271
|
-
_ciphers["RSA_WITH_AES_256_GCM_SHA384"] = TLS_RSA_WITH_AES_256_GCM_SHA384;
|
|
272
|
-
_ciphers["DHE_RSA_WITH_AES_128_GCM_SHA256"] = TLS_DHE_RSA_WITH_AES_128_GCM_SHA256;
|
|
273
|
-
_ciphers["DHE_RSA_WITH_AES_256_GCM_SHA384"] = TLS_DHE_RSA_WITH_AES_256_GCM_SHA384;
|
|
274
|
-
_ciphers["DH_RSA_WITH_AES_128_GCM_SHA256"] = TLS_DH_RSA_WITH_AES_128_GCM_SHA256;
|
|
275
|
-
_ciphers["DH_RSA_WITH_AES_256_GCM_SHA384"] = TLS_DH_RSA_WITH_AES_256_GCM_SHA384;
|
|
276
|
-
_ciphers["DHE_DSS_WITH_AES_128_GCM_SHA256"] = TLS_DHE_DSS_WITH_AES_128_GCM_SHA256;
|
|
277
|
-
_ciphers["DHE_DSS_WITH_AES_256_GCM_SHA384"] = TLS_DHE_DSS_WITH_AES_256_GCM_SHA384;
|
|
278
|
-
_ciphers["DH_DSS_WITH_AES_128_GCM_SHA256"] = TLS_DH_DSS_WITH_AES_128_GCM_SHA256;
|
|
279
|
-
_ciphers["DH_DSS_WITH_AES_256_GCM_SHA384"] = TLS_DH_DSS_WITH_AES_256_GCM_SHA384;
|
|
280
|
-
_ciphers["DH_anon_WITH_AES_128_GCM_SHA256"] = TLS_DH_anon_WITH_AES_128_GCM_SHA256;
|
|
281
|
-
_ciphers["DH_anon_WITH_AES_256_GCM_SHA384"] = TLS_DH_anon_WITH_AES_256_GCM_SHA384;
|
|
282
|
-
|
|
283
|
-
//
|
|
284
|
-
// RFC 5487 - PSK with SHA-256/384 and AES GCM
|
|
285
|
-
//
|
|
286
|
-
_ciphers["PSK_WITH_AES_128_GCM_SHA256"] = TLS_PSK_WITH_AES_128_GCM_SHA256;
|
|
287
|
-
_ciphers["PSK_WITH_AES_256_GCM_SHA384"] = TLS_PSK_WITH_AES_256_GCM_SHA384;
|
|
288
|
-
_ciphers["DHE_PSK_WITH_AES_128_GCM_SHA256"] = TLS_DHE_PSK_WITH_AES_128_GCM_SHA256;
|
|
289
|
-
_ciphers["DHE_PSK_WITH_AES_256_GCM_SHA384"] = TLS_DHE_PSK_WITH_AES_256_GCM_SHA384;
|
|
290
|
-
_ciphers["RSA_PSK_WITH_AES_128_GCM_SHA256"] = TLS_RSA_PSK_WITH_AES_128_GCM_SHA256;
|
|
291
|
-
_ciphers["RSA_PSK_WITH_AES_256_GCM_SHA384"] = TLS_RSA_PSK_WITH_AES_256_GCM_SHA384;
|
|
292
|
-
|
|
293
|
-
_ciphers["PSK_WITH_AES_128_CBC_SHA256"] = TLS_PSK_WITH_AES_128_CBC_SHA256;
|
|
294
|
-
_ciphers["PSK_WITH_AES_256_CBC_SHA384"] = TLS_PSK_WITH_AES_256_CBC_SHA384;
|
|
295
|
-
_ciphers["PSK_WITH_NULL_SHA256"] = TLS_PSK_WITH_NULL_SHA256;
|
|
296
|
-
_ciphers["PSK_WITH_NULL_SHA384"] = TLS_PSK_WITH_NULL_SHA384;
|
|
297
|
-
|
|
298
|
-
_ciphers["DHE_PSK_WITH_AES_128_CBC_SHA256"] = TLS_DHE_PSK_WITH_AES_128_CBC_SHA256;
|
|
299
|
-
_ciphers["DHE_PSK_WITH_AES_256_CBC_SHA384"] = TLS_DHE_PSK_WITH_AES_256_CBC_SHA384;
|
|
300
|
-
_ciphers["DHE_PSK_WITH_NULL_SHA256"] = TLS_DHE_PSK_WITH_NULL_SHA256;
|
|
301
|
-
_ciphers["DHE_PSK_WITH_NULL_SHA384"] = TLS_DHE_PSK_WITH_NULL_SHA384;
|
|
302
|
-
|
|
303
|
-
_ciphers["RSA_PSK_WITH_AES_128_CBC_SHA256"] = TLS_RSA_PSK_WITH_AES_128_CBC_SHA256;
|
|
304
|
-
_ciphers["RSA_PSK_WITH_AES_256_CBC_SHA384"] = TLS_RSA_PSK_WITH_AES_256_CBC_SHA384;
|
|
305
|
-
_ciphers["RSA_PSK_WITH_NULL_SHA256"] = TLS_RSA_PSK_WITH_NULL_SHA256;
|
|
306
|
-
_ciphers["RSA_PSK_WITH_NULL_SHA384"] = TLS_RSA_PSK_WITH_NULL_SHA384;
|
|
307
|
-
|
|
308
|
-
//
|
|
309
|
-
// Addenda from rfc 5289 Elliptic Curve Cipher Suites with HMAC SHA-256/384.
|
|
310
|
-
//
|
|
311
|
-
_ciphers["ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"] = TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256;
|
|
312
|
-
_ciphers["ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"] = TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384;
|
|
313
|
-
_ciphers["ECDH_ECDSA_WITH_AES_128_CBC_SHA256"] = TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256;
|
|
314
|
-
_ciphers["ECDH_ECDSA_WITH_AES_256_CBC_SHA384"] = TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384;
|
|
315
|
-
_ciphers["ECDHE_RSA_WITH_AES_128_CBC_SHA256"] = TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256;
|
|
316
|
-
_ciphers["ECDHE_RSA_WITH_AES_256_CBC_SHA384"] = TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384;
|
|
317
|
-
_ciphers["ECDH_RSA_WITH_AES_128_CBC_SHA256"] = TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256;
|
|
318
|
-
_ciphers["ECDH_RSA_WITH_AES_256_CBC_SHA384"] = TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384;
|
|
319
|
-
|
|
320
|
-
//
|
|
321
|
-
// Addenda from rfc 5289 Elliptic Curve Cipher Suites with SHA-256/384 and AES Galois Counter Mode (GCM)
|
|
322
|
-
//
|
|
323
|
-
_ciphers["ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"] = TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256;
|
|
324
|
-
_ciphers["ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"] = TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384;
|
|
325
|
-
_ciphers["ECDH_ECDSA_WITH_AES_128_GCM_SHA256"] = TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256;
|
|
326
|
-
_ciphers["ECDH_ECDSA_WITH_AES_256_GCM_SHA384"] = TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384;
|
|
327
|
-
_ciphers["ECDHE_RSA_WITH_AES_128_GCM_SHA256"] = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
|
|
328
|
-
_ciphers["ECDHE_RSA_WITH_AES_256_GCM_SHA384"] = TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384;
|
|
329
|
-
_ciphers["ECDH_RSA_WITH_AES_128_GCM_SHA256"] = TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256;
|
|
330
|
-
_ciphers["ECDH_RSA_WITH_AES_256_GCM_SHA384"] = TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384;
|
|
331
|
-
|
|
332
|
-
//
|
|
333
|
-
// RFC 5746 - Secure Renegotiation
|
|
334
|
-
//
|
|
335
|
-
_ciphers["EMPTY_RENEGOTIATION_INFO_SCSV"] = TLS_EMPTY_RENEGOTIATION_INFO_SCSV;
|
|
336
|
-
|
|
337
|
-
//
|
|
338
|
-
// Tags for SSL 2 cipher kinds that are not specified for SSL 3.
|
|
339
|
-
//
|
|
340
|
-
_ciphers["RSA_WITH_RC2_CBC_MD5"] = SSL_RSA_WITH_RC2_CBC_MD5;
|
|
341
|
-
_ciphers["RSA_WITH_IDEA_CBC_MD5"] = SSL_RSA_WITH_IDEA_CBC_MD5;
|
|
342
|
-
_ciphers["RSA_WITH_DES_CBC_MD5"] = SSL_RSA_WITH_DES_CBC_MD5;
|
|
343
|
-
_ciphers["RSA_WITH_3DES_EDE_CBC_MD5"] = SSL_RSA_WITH_3DES_EDE_CBC_MD5;
|
|
344
|
-
_ciphers["NO_SUCH_CIPHERSUITE"] = SSL_NO_SUCH_CIPHERSUITE;
|
|
345
|
-
|
|
346
|
-
//
|
|
347
|
-
// TLS 1.3 standard cipher suites
|
|
348
|
-
//
|
|
349
|
-
_ciphers["TLS_AES_128_GCM_SHA256"] = TLS_AES_128_GCM_SHA256;
|
|
350
|
-
_ciphers["TLS_AES_256_GCM_SHA384"] = TLS_AES_256_GCM_SHA384;
|
|
351
|
-
_ciphers["TLS_CHACHA20_POLY1305_SHA256"] = TLS_CHACHA20_POLY1305_SHA256;
|
|
352
|
-
_ciphers["TLS_AES_128_CCM_SHA256"] = TLS_AES_128_CCM_SHA256;
|
|
353
|
-
_ciphers["TLS_AES_128_CCM_8_SHA256"] = TLS_AES_128_CCM_8_SHA256;
|
|
354
|
-
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
SSLCipherSuite
|
|
359
|
-
CiphersHelper::cipherForName(const string& name)
|
|
360
|
-
{
|
|
361
|
-
map<string, SSLCipherSuite>::const_iterator i = _ciphers.find(name);
|
|
362
|
-
if(i == _ciphers.end() || i->second == SSL_NO_SUCH_CIPHERSUITE)
|
|
363
|
-
{
|
|
364
|
-
throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: no such cipher " + name);
|
|
365
|
-
}
|
|
366
|
-
return i->second;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
//
|
|
370
|
-
// Retrive the name of a cipher, SSLCipherSuite inlude duplicated values for TLS/SSL
|
|
371
|
-
// protocol ciphers, for example SSL_RSA_WITH_RC4_128_MD5/TLS_RSA_WITH_RC4_128_MD5
|
|
372
|
-
// are represeted by the same SSLCipherSuite value, the names return by this method
|
|
373
|
-
// doesn't include a protocol prefix.
|
|
374
|
-
//
|
|
375
|
-
string
|
|
376
|
-
CiphersHelper::cipherName(SSLCipherSuite cipher)
|
|
377
|
-
{
|
|
378
|
-
switch(cipher)
|
|
379
|
-
{
|
|
380
|
-
case SSL_NULL_WITH_NULL_NULL:
|
|
381
|
-
return "NULL_WITH_NULL_NULL";
|
|
382
|
-
case SSL_RSA_WITH_NULL_MD5:
|
|
383
|
-
return "RSA_WITH_NULL_MD5";
|
|
384
|
-
case SSL_RSA_WITH_NULL_SHA:
|
|
385
|
-
return "RSA_WITH_NULL_SHA";
|
|
386
|
-
case SSL_RSA_EXPORT_WITH_RC4_40_MD5:
|
|
387
|
-
return "RSA_EXPORT_WITH_RC4_40_MD5";
|
|
388
|
-
case SSL_RSA_WITH_RC4_128_MD5:
|
|
389
|
-
return "RSA_WITH_RC4_128_MD5";
|
|
390
|
-
case SSL_RSA_WITH_RC4_128_SHA:
|
|
391
|
-
return "RSA_WITH_RC4_128_SHA";
|
|
392
|
-
case SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5:
|
|
393
|
-
return "RSA_EXPORT_WITH_RC2_CBC_40_MD5";
|
|
394
|
-
case SSL_RSA_WITH_IDEA_CBC_SHA:
|
|
395
|
-
return "RSA_WITH_IDEA_CBC_SHA";
|
|
396
|
-
case SSL_RSA_EXPORT_WITH_DES40_CBC_SHA:
|
|
397
|
-
return "RSA_EXPORT_WITH_DES40_CBC_SHA";
|
|
398
|
-
case SSL_RSA_WITH_DES_CBC_SHA:
|
|
399
|
-
return "RSA_WITH_DES_CBC_SHA";
|
|
400
|
-
case SSL_RSA_WITH_3DES_EDE_CBC_SHA:
|
|
401
|
-
return "RSA_WITH_3DES_EDE_CBC_SHA";
|
|
402
|
-
case SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA:
|
|
403
|
-
return "DH_DSS_EXPORT_WITH_DES40_CBC_SHA";
|
|
404
|
-
case SSL_DH_DSS_WITH_DES_CBC_SHA:
|
|
405
|
-
return "DH_DSS_WITH_DES_CBC_SHA";
|
|
406
|
-
case SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA:
|
|
407
|
-
return "DH_DSS_WITH_3DES_EDE_CBC_SHA";
|
|
408
|
-
case SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA:
|
|
409
|
-
return "DH_RSA_EXPORT_WITH_DES40_CBC_SHA";
|
|
410
|
-
case SSL_DH_RSA_WITH_DES_CBC_SHA:
|
|
411
|
-
return "DH_RSA_WITH_DES_CBC_SHA";
|
|
412
|
-
case SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA:
|
|
413
|
-
return "DH_RSA_WITH_3DES_EDE_CBC_SHA";
|
|
414
|
-
case SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA:
|
|
415
|
-
return "DHE_DSS_EXPORT_WITH_DES40_CBC_SHA";
|
|
416
|
-
case SSL_DHE_DSS_WITH_DES_CBC_SHA:
|
|
417
|
-
return "DHE_DSS_WITH_DES_CBC_SHA";
|
|
418
|
-
case SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA:
|
|
419
|
-
return "DHE_DSS_WITH_3DES_EDE_CBC_SHA";
|
|
420
|
-
case SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA:
|
|
421
|
-
return "DHE_RSA_EXPORT_WITH_DES40_CBC_SHA";
|
|
422
|
-
case SSL_DHE_RSA_WITH_DES_CBC_SHA:
|
|
423
|
-
return "DHE_RSA_WITH_DES_CBC_SHA";
|
|
424
|
-
case SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA:
|
|
425
|
-
return "DHE_RSA_WITH_3DES_EDE_CBC_SHA";
|
|
426
|
-
case SSL_DH_anon_EXPORT_WITH_RC4_40_MD5:
|
|
427
|
-
return "DH_anon_EXPORT_WITH_RC4_40_MD5";
|
|
428
|
-
case SSL_DH_anon_WITH_RC4_128_MD5:
|
|
429
|
-
return "DH_anon_WITH_RC4_128_MD5";
|
|
430
|
-
case SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA:
|
|
431
|
-
return "DH_anon_EXPORT_WITH_DES40_CBC_SHA";
|
|
432
|
-
case SSL_DH_anon_WITH_DES_CBC_SHA:
|
|
433
|
-
return "DH_anon_WITH_DES_CBC_SHA";
|
|
434
|
-
case SSL_DH_anon_WITH_3DES_EDE_CBC_SHA:
|
|
435
|
-
return "DH_anon_WITH_3DES_EDE_CBC_SHA";
|
|
436
|
-
case SSL_FORTEZZA_DMS_WITH_NULL_SHA:
|
|
437
|
-
return "FORTEZZA_DMS_WITH_NULL_SHA";
|
|
438
|
-
case SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA:
|
|
439
|
-
return "FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA";
|
|
440
|
-
|
|
441
|
-
//
|
|
442
|
-
// TLS addenda using AES, per RFC 3268
|
|
443
|
-
//
|
|
444
|
-
case TLS_RSA_WITH_AES_128_CBC_SHA:
|
|
445
|
-
return "RSA_WITH_AES_128_CBC_SHA";
|
|
446
|
-
case TLS_DH_DSS_WITH_AES_128_CBC_SHA:
|
|
447
|
-
return "DH_DSS_WITH_AES_128_CBC_SHA";
|
|
448
|
-
case TLS_DH_RSA_WITH_AES_128_CBC_SHA:
|
|
449
|
-
return "DH_RSA_WITH_AES_128_CBC_SHA";
|
|
450
|
-
case TLS_DHE_DSS_WITH_AES_128_CBC_SHA:
|
|
451
|
-
return "DHE_DSS_WITH_AES_128_CBC_SHA";
|
|
452
|
-
case TLS_DHE_RSA_WITH_AES_128_CBC_SHA:
|
|
453
|
-
return "DHE_RSA_WITH_AES_128_CBC_SHA";
|
|
454
|
-
case TLS_DH_anon_WITH_AES_128_CBC_SHA:
|
|
455
|
-
return "DH_anon_WITH_AES_128_CBC_SHA";
|
|
456
|
-
case TLS_RSA_WITH_AES_256_CBC_SHA:
|
|
457
|
-
return "RSA_WITH_AES_256_CBC_SHA";
|
|
458
|
-
case TLS_DH_DSS_WITH_AES_256_CBC_SHA:
|
|
459
|
-
return "DH_DSS_WITH_AES_256_CBC_SHA";
|
|
460
|
-
case TLS_DH_RSA_WITH_AES_256_CBC_SHA:
|
|
461
|
-
return "DH_RSA_WITH_AES_256_CBC_SHA";
|
|
462
|
-
case TLS_DHE_DSS_WITH_AES_256_CBC_SHA:
|
|
463
|
-
return "DHE_DSS_WITH_AES_256_CBC_SHA";
|
|
464
|
-
case TLS_DHE_RSA_WITH_AES_256_CBC_SHA:
|
|
465
|
-
return "DHE_RSA_WITH_AES_256_CBC_SHA";
|
|
466
|
-
case TLS_DH_anon_WITH_AES_256_CBC_SHA:
|
|
467
|
-
return "DH_anon_WITH_AES_256_CBC_SHA";
|
|
468
|
-
|
|
469
|
-
//
|
|
470
|
-
// ECDSA addenda, RFC 4492
|
|
471
|
-
//
|
|
472
|
-
case TLS_ECDH_ECDSA_WITH_NULL_SHA:
|
|
473
|
-
return "ECDH_ECDSA_WITH_NULL_SHA";
|
|
474
|
-
case TLS_ECDH_ECDSA_WITH_RC4_128_SHA:
|
|
475
|
-
return "ECDH_ECDSA_WITH_RC4_128_SHA";
|
|
476
|
-
case TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA:
|
|
477
|
-
return "ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA";
|
|
478
|
-
case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA:
|
|
479
|
-
return "ECDH_ECDSA_WITH_AES_128_CBC_SHA";
|
|
480
|
-
case TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA:
|
|
481
|
-
return "ECDH_ECDSA_WITH_AES_256_CBC_SHA";
|
|
482
|
-
case TLS_ECDHE_ECDSA_WITH_NULL_SHA:
|
|
483
|
-
return "ECDHE_ECDSA_WITH_NULL_SHA";
|
|
484
|
-
case TLS_ECDHE_ECDSA_WITH_RC4_128_SHA:
|
|
485
|
-
return "ECDHE_ECDSA_WITH_RC4_128_SHA";
|
|
486
|
-
case TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA:
|
|
487
|
-
return "ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA";
|
|
488
|
-
case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:
|
|
489
|
-
return "ECDHE_ECDSA_WITH_AES_128_CBC_SHA";
|
|
490
|
-
case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:
|
|
491
|
-
return "ECDHE_ECDSA_WITH_AES_256_CBC_SHA";
|
|
492
|
-
case TLS_ECDH_RSA_WITH_NULL_SHA:
|
|
493
|
-
return "ECDH_RSA_WITH_NULL_SHA";
|
|
494
|
-
case TLS_ECDH_RSA_WITH_RC4_128_SHA:
|
|
495
|
-
return "ECDH_RSA_WITH_RC4_128_SHA";
|
|
496
|
-
case TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA:
|
|
497
|
-
return "ECDH_RSA_WITH_3DES_EDE_CBC_SHA";
|
|
498
|
-
case TLS_ECDH_RSA_WITH_AES_128_CBC_SHA:
|
|
499
|
-
return "ECDH_RSA_WITH_AES_128_CBC_SHA";
|
|
500
|
-
case TLS_ECDH_RSA_WITH_AES_256_CBC_SHA:
|
|
501
|
-
return "ECDH_RSA_WITH_AES_256_CBC_SHA";
|
|
502
|
-
case TLS_ECDHE_RSA_WITH_NULL_SHA:
|
|
503
|
-
return "ECDHE_RSA_WITH_NULL_SHA";
|
|
504
|
-
case TLS_ECDHE_RSA_WITH_RC4_128_SHA:
|
|
505
|
-
return "ECDHE_RSA_WITH_RC4_128_SHA";
|
|
506
|
-
case TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA:
|
|
507
|
-
return "ECDHE_RSA_WITH_3DES_EDE_CBC_SHA";
|
|
508
|
-
case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:
|
|
509
|
-
return "ECDHE_RSA_WITH_AES_128_CBC_SHA";
|
|
510
|
-
case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:
|
|
511
|
-
return "ECDHE_RSA_WITH_AES_256_CBC_SHA";
|
|
512
|
-
case TLS_ECDH_anon_WITH_NULL_SHA:
|
|
513
|
-
return "ECDH_anon_WITH_NULL_SHA";
|
|
514
|
-
case TLS_ECDH_anon_WITH_RC4_128_SHA:
|
|
515
|
-
return "ECDH_anon_WITH_RC4_128_SHA";
|
|
516
|
-
case TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA:
|
|
517
|
-
return "ECDH_anon_WITH_3DES_EDE_CBC_SHA";
|
|
518
|
-
case TLS_ECDH_anon_WITH_AES_128_CBC_SHA:
|
|
519
|
-
return "ECDH_anon_WITH_AES_128_CBC_SHA";
|
|
520
|
-
case TLS_ECDH_anon_WITH_AES_256_CBC_SHA:
|
|
521
|
-
return "ECDH_anon_WITH_AES_256_CBC_SHA";
|
|
522
|
-
|
|
523
|
-
//
|
|
524
|
-
// TLS 1.2 addenda, RFC 5246
|
|
525
|
-
//
|
|
526
|
-
//case TLS_NULL_WITH_NULL_NULL:
|
|
527
|
-
// return "NULL_WITH_NULL_NULL";
|
|
528
|
-
|
|
529
|
-
//
|
|
530
|
-
// Server provided RSA certificate for key exchange.
|
|
531
|
-
//
|
|
532
|
-
//case TLS_RSA_WITH_NULL_MD5:
|
|
533
|
-
// return "RSA_WITH_NULL_MD5";
|
|
534
|
-
//case TLS_RSA_WITH_NULL_SHA:
|
|
535
|
-
// return "RSA_WITH_NULL_SHA";
|
|
536
|
-
//case TLS_RSA_WITH_RC4_128_MD5:
|
|
537
|
-
// return "RSA_WITH_RC4_128_MD5";
|
|
538
|
-
//case TLS_RSA_WITH_RC4_128_SHA:
|
|
539
|
-
// return "RSA_WITH_RC4_128_SHA";
|
|
540
|
-
//case TLS_RSA_WITH_3DES_EDE_CBC_SHA:
|
|
541
|
-
// return "RSA_WITH_3DES_EDE_CBC_SHA";
|
|
542
|
-
case TLS_RSA_WITH_NULL_SHA256:
|
|
543
|
-
return "RSA_WITH_NULL_SHA256";
|
|
544
|
-
case TLS_RSA_WITH_AES_128_CBC_SHA256:
|
|
545
|
-
return "RSA_WITH_AES_128_CBC_SHA256";
|
|
546
|
-
case TLS_RSA_WITH_AES_256_CBC_SHA256:
|
|
547
|
-
return "RSA_WITH_AES_256_CBC_SHA256";
|
|
548
|
-
|
|
549
|
-
//
|
|
550
|
-
// Server-authenticated (and optionally client-authenticated) Diffie-Hellman.
|
|
551
|
-
//
|
|
552
|
-
//case TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA:
|
|
553
|
-
// return "DH_DSS_WITH_3DES_EDE_CBC_SHA";
|
|
554
|
-
//case TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA:
|
|
555
|
-
// return "DH_RSA_WITH_3DES_EDE_CBC_SHA";
|
|
556
|
-
//case TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA:
|
|
557
|
-
// return "DHE_DSS_WITH_3DES_EDE_CBC_SHA";
|
|
558
|
-
//case TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA:
|
|
559
|
-
// return "DHE_RSA_WITH_3DES_EDE_CBC_SHA";
|
|
560
|
-
case TLS_DH_DSS_WITH_AES_128_CBC_SHA256:
|
|
561
|
-
return "DH_DSS_WITH_AES_128_CBC_SHA256";
|
|
562
|
-
case TLS_DH_RSA_WITH_AES_128_CBC_SHA256:
|
|
563
|
-
return "DH_RSA_WITH_AES_128_CBC_SHA256";
|
|
564
|
-
case TLS_DHE_DSS_WITH_AES_128_CBC_SHA256:
|
|
565
|
-
return "DHE_DSS_WITH_AES_128_CBC_SHA256";
|
|
566
|
-
case TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:
|
|
567
|
-
return "DHE_RSA_WITH_AES_128_CBC_SHA256";
|
|
568
|
-
case TLS_DH_DSS_WITH_AES_256_CBC_SHA256:
|
|
569
|
-
return "DH_DSS_WITH_AES_256_CBC_SHA256";
|
|
570
|
-
case TLS_DH_RSA_WITH_AES_256_CBC_SHA256:
|
|
571
|
-
return "DH_RSA_WITH_AES_256_CBC_SHA256";
|
|
572
|
-
case TLS_DHE_DSS_WITH_AES_256_CBC_SHA256:
|
|
573
|
-
return "DHE_DSS_WITH_AES_256_CBC_SHA256";
|
|
574
|
-
case TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:
|
|
575
|
-
return "DHE_RSA_WITH_AES_256_CBC_SHA256";
|
|
576
|
-
|
|
577
|
-
//
|
|
578
|
-
// Completely anonymous Diffie-Hellman
|
|
579
|
-
//
|
|
580
|
-
//case TLS_DH_anon_WITH_RC4_128_MD5:
|
|
581
|
-
// return "DH_anon_WITH_RC4_128_MD5";
|
|
582
|
-
//case TLS_DH_anon_WITH_3DES_EDE_CBC_SHA:
|
|
583
|
-
// return "DH_anon_WITH_3DES_EDE_CBC_SHA";
|
|
584
|
-
case TLS_DH_anon_WITH_AES_128_CBC_SHA256:
|
|
585
|
-
return "DH_anon_WITH_AES_128_CBC_SHA256";
|
|
586
|
-
case TLS_DH_anon_WITH_AES_256_CBC_SHA256:
|
|
587
|
-
return "DH_anon_WITH_AES_256_CBC_SHA256";
|
|
588
|
-
|
|
589
|
-
//
|
|
590
|
-
// Addendum from RFC 4279, TLS PSK
|
|
591
|
-
//
|
|
592
|
-
case TLS_PSK_WITH_RC4_128_SHA:
|
|
593
|
-
return "PSK_WITH_RC4_128_SHA";
|
|
594
|
-
case TLS_PSK_WITH_3DES_EDE_CBC_SHA:
|
|
595
|
-
return "PSK_WITH_3DES_EDE_CBC_SHA";
|
|
596
|
-
case TLS_PSK_WITH_AES_128_CBC_SHA:
|
|
597
|
-
return "PSK_WITH_AES_128_CBC_SHA";
|
|
598
|
-
case TLS_PSK_WITH_AES_256_CBC_SHA:
|
|
599
|
-
return "PSK_WITH_AES_256_CBC_SHA";
|
|
600
|
-
case TLS_DHE_PSK_WITH_RC4_128_SHA:
|
|
601
|
-
return "DHE_PSK_WITH_RC4_128_SHA";
|
|
602
|
-
case TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA:
|
|
603
|
-
return "DHE_PSK_WITH_3DES_EDE_CBC_SHA";
|
|
604
|
-
case TLS_DHE_PSK_WITH_AES_128_CBC_SHA:
|
|
605
|
-
return "DHE_PSK_WITH_AES_128_CBC_SHA";
|
|
606
|
-
case TLS_DHE_PSK_WITH_AES_256_CBC_SHA:
|
|
607
|
-
return "DHE_PSK_WITH_AES_256_CBC_SHA";
|
|
608
|
-
case TLS_RSA_PSK_WITH_RC4_128_SHA:
|
|
609
|
-
return "RSA_PSK_WITH_RC4_128_SHA";
|
|
610
|
-
case TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA:
|
|
611
|
-
return "RSA_PSK_WITH_3DES_EDE_CBC_SHA";
|
|
612
|
-
case TLS_RSA_PSK_WITH_AES_128_CBC_SHA:
|
|
613
|
-
return "RSA_PSK_WITH_AES_128_CBC_SHA";
|
|
614
|
-
case TLS_RSA_PSK_WITH_AES_256_CBC_SHA:
|
|
615
|
-
return "RSA_PSK_WITH_AES_256_CBC_SHA";
|
|
616
|
-
|
|
617
|
-
//
|
|
618
|
-
// RFC 4785 - Pre-Shared Key (PSK) Ciphersuites with NULL Encryption
|
|
619
|
-
//
|
|
620
|
-
case TLS_PSK_WITH_NULL_SHA:
|
|
621
|
-
return "PSK_WITH_NULL_SHA";
|
|
622
|
-
case TLS_DHE_PSK_WITH_NULL_SHA:
|
|
623
|
-
return "DHE_PSK_WITH_NULL_SHA";
|
|
624
|
-
case TLS_RSA_PSK_WITH_NULL_SHA:
|
|
625
|
-
return "RSA_PSK_WITH_NULL_SHA";
|
|
626
|
-
|
|
627
|
-
//
|
|
628
|
-
// Addenda from rfc 5288 AES Galois Counter Mode (GCM) Cipher Suites for TLS.
|
|
629
|
-
//
|
|
630
|
-
case TLS_RSA_WITH_AES_128_GCM_SHA256:
|
|
631
|
-
return "RSA_WITH_AES_128_GCM_SHA256";
|
|
632
|
-
case TLS_RSA_WITH_AES_256_GCM_SHA384:
|
|
633
|
-
return "RSA_WITH_AES_256_GCM_SHA384";
|
|
634
|
-
case TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:
|
|
635
|
-
return "DHE_RSA_WITH_AES_128_GCM_SHA256";
|
|
636
|
-
case TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:
|
|
637
|
-
return "DHE_RSA_WITH_AES_256_GCM_SHA384";
|
|
638
|
-
case TLS_DH_RSA_WITH_AES_128_GCM_SHA256:
|
|
639
|
-
return "DH_RSA_WITH_AES_128_GCM_SHA256";
|
|
640
|
-
case TLS_DH_RSA_WITH_AES_256_GCM_SHA384:
|
|
641
|
-
return "DH_RSA_WITH_AES_256_GCM_SHA384";
|
|
642
|
-
case TLS_DHE_DSS_WITH_AES_128_GCM_SHA256:
|
|
643
|
-
return "DHE_DSS_WITH_AES_128_GCM_SHA256";
|
|
644
|
-
case TLS_DHE_DSS_WITH_AES_256_GCM_SHA384:
|
|
645
|
-
return "DHE_DSS_WITH_AES_256_GCM_SHA384";
|
|
646
|
-
case TLS_DH_DSS_WITH_AES_128_GCM_SHA256:
|
|
647
|
-
return "DH_DSS_WITH_AES_128_GCM_SHA256";
|
|
648
|
-
case TLS_DH_DSS_WITH_AES_256_GCM_SHA384:
|
|
649
|
-
return "DH_DSS_WITH_AES_256_GCM_SHA384";
|
|
650
|
-
case TLS_DH_anon_WITH_AES_128_GCM_SHA256:
|
|
651
|
-
return "DH_anon_WITH_AES_128_GCM_SHA256";
|
|
652
|
-
case TLS_DH_anon_WITH_AES_256_GCM_SHA384:
|
|
653
|
-
return "DH_anon_WITH_AES_256_GCM_SHA384";
|
|
654
|
-
|
|
655
|
-
//
|
|
656
|
-
// RFC 5487 - PSK with SHA-256/384 and AES GCM
|
|
657
|
-
//
|
|
658
|
-
case TLS_PSK_WITH_AES_128_GCM_SHA256:
|
|
659
|
-
return "PSK_WITH_AES_128_GCM_SHA256";
|
|
660
|
-
case TLS_PSK_WITH_AES_256_GCM_SHA384:
|
|
661
|
-
return "PSK_WITH_AES_256_GCM_SHA384";
|
|
662
|
-
case TLS_DHE_PSK_WITH_AES_128_GCM_SHA256:
|
|
663
|
-
return "DHE_PSK_WITH_AES_128_GCM_SHA256";
|
|
664
|
-
case TLS_DHE_PSK_WITH_AES_256_GCM_SHA384:
|
|
665
|
-
return "DHE_PSK_WITH_AES_256_GCM_SHA384";
|
|
666
|
-
case TLS_RSA_PSK_WITH_AES_128_GCM_SHA256:
|
|
667
|
-
return "RSA_PSK_WITH_AES_128_GCM_SHA256";
|
|
668
|
-
case TLS_RSA_PSK_WITH_AES_256_GCM_SHA384:
|
|
669
|
-
return "RSA_PSK_WITH_AES_256_GCM_SHA384";
|
|
670
|
-
|
|
671
|
-
case TLS_PSK_WITH_AES_128_CBC_SHA256:
|
|
672
|
-
return "PSK_WITH_AES_128_CBC_SHA256";
|
|
673
|
-
case TLS_PSK_WITH_AES_256_CBC_SHA384:
|
|
674
|
-
return "PSK_WITH_AES_256_CBC_SHA384";
|
|
675
|
-
case TLS_PSK_WITH_NULL_SHA256:
|
|
676
|
-
return "WITH_NULL_SHA256";
|
|
677
|
-
case TLS_PSK_WITH_NULL_SHA384:
|
|
678
|
-
return "PSK_WITH_NULL_SHA384";
|
|
679
|
-
|
|
680
|
-
case TLS_DHE_PSK_WITH_AES_128_CBC_SHA256:
|
|
681
|
-
return "DHE_PSK_WITH_AES_128_CBC_SHA256";
|
|
682
|
-
case TLS_DHE_PSK_WITH_AES_256_CBC_SHA384:
|
|
683
|
-
return "DHE_PSK_WITH_AES_256_CBC_SHA384";
|
|
684
|
-
case TLS_DHE_PSK_WITH_NULL_SHA256:
|
|
685
|
-
return "DHE_PSK_WITH_NULL_SHA256";
|
|
686
|
-
case TLS_DHE_PSK_WITH_NULL_SHA384:
|
|
687
|
-
return "DHE_PSK_WITH_NULL_SHA384";
|
|
688
|
-
|
|
689
|
-
case TLS_RSA_PSK_WITH_AES_128_CBC_SHA256:
|
|
690
|
-
return "RSA_PSK_WITH_AES_128_CBC_SHA256";
|
|
691
|
-
case TLS_RSA_PSK_WITH_AES_256_CBC_SHA384:
|
|
692
|
-
return "RSA_PSK_WITH_AES_256_CBC_SHA384";
|
|
693
|
-
case TLS_RSA_PSK_WITH_NULL_SHA256:
|
|
694
|
-
return "RSA_PSK_WITH_NULL_SHA256";
|
|
695
|
-
case TLS_RSA_PSK_WITH_NULL_SHA384:
|
|
696
|
-
return "RSA_PSK_WITH_NULL_SHA384";
|
|
697
|
-
|
|
698
|
-
//
|
|
699
|
-
// Addenda from rfc 5289 Elliptic Curve Cipher Suites with HMAC SHA-256/384.
|
|
700
|
-
//
|
|
701
|
-
case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:
|
|
702
|
-
return "ECDHE_ECDSA_WITH_AES_128_CBC_SHA256";
|
|
703
|
-
case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:
|
|
704
|
-
return "ECDHE_ECDSA_WITH_AES_256_CBC_SHA384";
|
|
705
|
-
case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256:
|
|
706
|
-
return "ECDH_ECDSA_WITH_AES_128_CBC_SHA256";
|
|
707
|
-
case TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384:
|
|
708
|
-
return "ECDH_ECDSA_WITH_AES_256_CBC_SHA384";
|
|
709
|
-
case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:
|
|
710
|
-
return "ECDHE_RSA_WITH_AES_128_CBC_SHA256";
|
|
711
|
-
case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:
|
|
712
|
-
return "ECDHE_RSA_WITH_AES_256_CBC_SHA384";
|
|
713
|
-
case TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256:
|
|
714
|
-
return "ECDH_RSA_WITH_AES_128_CBC_SHA256";
|
|
715
|
-
case TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384:
|
|
716
|
-
return "ECDH_RSA_WITH_AES_256_CBC_SHA384";
|
|
717
|
-
|
|
718
|
-
//
|
|
719
|
-
// Addenda from rfc 5289 Elliptic Curve Cipher Suites with SHA-256/384 and AES Galois Counter Mode (GCM)
|
|
720
|
-
//
|
|
721
|
-
case TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:
|
|
722
|
-
return "ECDHE_ECDSA_WITH_AES_128_GCM_SHA256";
|
|
723
|
-
case TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:
|
|
724
|
-
return "ECDHE_ECDSA_WITH_AES_256_GCM_SHA384";
|
|
725
|
-
case TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256:
|
|
726
|
-
return "ECDH_ECDSA_WITH_AES_128_GCM_SHA256";
|
|
727
|
-
case TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384:
|
|
728
|
-
return "ECDH_ECDSA_WITH_AES_256_GCM_SHA384";
|
|
729
|
-
case TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:
|
|
730
|
-
return "ECDHE_RSA_WITH_AES_128_GCM_SHA256";
|
|
731
|
-
case TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:
|
|
732
|
-
return "ECDHE_RSA_WITH_AES_256_GCM_SHA384";
|
|
733
|
-
case TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256:
|
|
734
|
-
return "ECDH_RSA_WITH_AES_128_GCM_SHA256";
|
|
735
|
-
case TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384:
|
|
736
|
-
return "ECDH_RSA_WITH_AES_256_GCM_SHA384";
|
|
737
|
-
|
|
738
|
-
//
|
|
739
|
-
// RFC 5746 - Secure Renegotiation
|
|
740
|
-
//
|
|
741
|
-
case TLS_EMPTY_RENEGOTIATION_INFO_SCSV:
|
|
742
|
-
return "EMPTY_RENEGOTIATION_INFO_SCSV";
|
|
743
|
-
|
|
744
|
-
//
|
|
745
|
-
// Tags for SSL 2 cipher kinds that are not specified for SSL 3.
|
|
746
|
-
//
|
|
747
|
-
case SSL_RSA_WITH_RC2_CBC_MD5:
|
|
748
|
-
return "RSA_WITH_RC2_CBC_MD5";
|
|
749
|
-
case SSL_RSA_WITH_IDEA_CBC_MD5:
|
|
750
|
-
return "RSA_WITH_IDEA_CBC_MD5";
|
|
751
|
-
case SSL_RSA_WITH_DES_CBC_MD5:
|
|
752
|
-
return "RSA_WITH_DES_CBC_MD5";
|
|
753
|
-
case SSL_RSA_WITH_3DES_EDE_CBC_MD5:
|
|
754
|
-
return "RSA_WITH_3DES_EDE_CBC_MD5";
|
|
755
|
-
|
|
756
|
-
//
|
|
757
|
-
//TLS 1.3 standard cipher suites
|
|
758
|
-
//
|
|
759
|
-
case TLS_AES_128_GCM_SHA256:
|
|
760
|
-
return "TLS_AES_128_GCM_SHA256";
|
|
761
|
-
case TLS_AES_256_GCM_SHA384:
|
|
762
|
-
return "TLS_AES_256_GCM_SHA384";
|
|
763
|
-
case TLS_CHACHA20_POLY1305_SHA256:
|
|
764
|
-
return "TLS_CHACHA20_POLY1305_SHA256";
|
|
765
|
-
case TLS_AES_128_CCM_SHA256:
|
|
766
|
-
return "TLS_AES_128_CCM_SHA256";
|
|
767
|
-
case TLS_AES_128_CCM_8_SHA256:
|
|
768
|
-
return "TLS_AES_128_CCM_8_SHA256";
|
|
769
|
-
|
|
770
|
-
default:
|
|
771
|
-
return "";
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
|
|
775
|
-
map<string, SSLCipherSuite>
|
|
776
|
-
CiphersHelper::ciphers()
|
|
777
|
-
{
|
|
778
|
-
return _ciphers;
|
|
779
|
-
}
|
|
780
|
-
|
|
781
|
-
SSLProtocol
|
|
782
|
-
parseProtocol(const string& p)
|
|
783
|
-
{
|
|
784
|
-
const string prot = IceUtilInternal::toUpper(p);
|
|
785
|
-
if(prot == "SSL3" || prot == "SSLV3")
|
|
786
|
-
{
|
|
787
|
-
return kSSLProtocol3;
|
|
788
|
-
}
|
|
789
|
-
else if(prot == "TLS" || prot == "TLS1" || prot == "TLSV1" || prot == "TLS1_0" || prot == "TLSV1_0")
|
|
790
|
-
{
|
|
791
|
-
return kTLSProtocol1;
|
|
792
|
-
}
|
|
793
|
-
else if(prot == "TLS1_1" || prot == "TLSV1_1")
|
|
794
|
-
{
|
|
795
|
-
return kTLSProtocol11;
|
|
796
|
-
}
|
|
797
|
-
else if(prot == "TLS1_2" || prot == "TLSV1_2")
|
|
798
|
-
{
|
|
799
|
-
return kTLSProtocol12;
|
|
800
|
-
}
|
|
801
|
-
else if(prot == "TLS1_3" || prot == "TLSV1_3")
|
|
802
|
-
{
|
|
803
|
-
return kTLSProtocol13;
|
|
804
|
-
}
|
|
805
|
-
else
|
|
806
|
-
{
|
|
807
|
-
throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: unrecognized protocol `" + p + "'");
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
}
|
|
812
|
-
|
|
813
|
-
IceUtil::Shared*
|
|
814
|
-
IceSSL::SecureTransport::upCast(IceSSL::SecureTransport::SSLEngine* p)
|
|
815
|
-
{
|
|
816
|
-
return p;
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
IceSSL::SecureTransport::SSLEngine::SSLEngine(const Ice::CommunicatorPtr& communicator) :
|
|
820
|
-
IceSSL::SSLEngine(communicator),
|
|
821
|
-
_certificateAuthorities(0),
|
|
822
|
-
_chain(0),
|
|
823
|
-
_protocolVersionMax(kSSLProtocolUnknown),
|
|
824
|
-
_protocolVersionMin(kSSLProtocolUnknown)
|
|
825
|
-
{
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
//
|
|
829
|
-
// Setup the engine.
|
|
830
|
-
//
|
|
831
|
-
void
|
|
832
|
-
IceSSL::SecureTransport::SSLEngine::initialize()
|
|
833
|
-
{
|
|
834
|
-
IceUtil::Mutex::Lock lock(_mutex);
|
|
835
|
-
if(_initialized)
|
|
836
|
-
{
|
|
837
|
-
return;
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
IceSSL::SSLEngine::initialize();
|
|
841
|
-
|
|
842
|
-
const PropertiesPtr properties = communicator()->getProperties();
|
|
843
|
-
|
|
844
|
-
//
|
|
845
|
-
// Check for a default directory. We look in this directory for
|
|
846
|
-
// files mentioned in the configuration.
|
|
847
|
-
//
|
|
848
|
-
const string defaultDir = properties->getProperty("IceSSL.DefaultDir");
|
|
849
|
-
|
|
850
|
-
//
|
|
851
|
-
// Load the CA certificates used to authenticate peers into
|
|
852
|
-
// _certificateAuthorities array.
|
|
853
|
-
//
|
|
854
|
-
try
|
|
855
|
-
{
|
|
856
|
-
string caFile = properties->getProperty("IceSSL.CAs");
|
|
857
|
-
if(caFile.empty())
|
|
858
|
-
{
|
|
859
|
-
caFile = properties->getProperty("IceSSL.CertAuthFile");
|
|
860
|
-
}
|
|
861
|
-
if(!caFile.empty())
|
|
862
|
-
{
|
|
863
|
-
string resolved;
|
|
864
|
-
if(!checkPath(caFile, defaultDir, false, resolved))
|
|
865
|
-
{
|
|
866
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
867
|
-
"IceSSL: CA certificate file not found:\n" + caFile);
|
|
868
|
-
}
|
|
869
|
-
_certificateAuthorities.reset(loadCACertificates(resolved));
|
|
870
|
-
}
|
|
871
|
-
else if(properties->getPropertyAsInt("IceSSL.UsePlatformCAs") <= 0)
|
|
872
|
-
{
|
|
873
|
-
// Setup an empty list of Root CAs to not use the system root CAs.
|
|
874
|
-
_certificateAuthorities.reset(CFArrayCreate(0, 0, 0, 0));
|
|
875
|
-
}
|
|
876
|
-
}
|
|
877
|
-
catch(const CertificateReadException& ce)
|
|
878
|
-
{
|
|
879
|
-
throw PluginInitializationException(__FILE__, __LINE__, ce.reason);
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
const string password = properties->getProperty("IceSSL.Password");
|
|
883
|
-
const int passwordRetryMax = properties->getPropertyAsIntWithDefault("IceSSL.PasswordRetryMax", 3);
|
|
884
|
-
PasswordPromptPtr passwordPrompt = getPasswordPrompt();
|
|
885
|
-
|
|
886
|
-
string certFile = properties->getProperty("IceSSL.CertFile");
|
|
887
|
-
string findCert = properties->getProperty("IceSSL.FindCert");
|
|
888
|
-
string keychain = properties->getProperty("IceSSL.Keychain");
|
|
889
|
-
string keychainPassword = properties->getProperty("IceSSL.KeychainPassword");
|
|
890
|
-
|
|
891
|
-
if(!certFile.empty())
|
|
892
|
-
{
|
|
893
|
-
vector<string> files;
|
|
894
|
-
if(!IceUtilInternal::splitString(certFile, IceUtilInternal::pathsep, files) || files.size() > 2)
|
|
895
|
-
{
|
|
896
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
897
|
-
"IceSSL: invalid value for IceSSL.CertFile:\n" + certFile);
|
|
898
|
-
}
|
|
899
|
-
vector<string> keyFiles;
|
|
900
|
-
{
|
|
901
|
-
string keyFile = properties->getProperty("IceSSL.KeyFile");
|
|
902
|
-
if(!keyFile.empty())
|
|
903
|
-
{
|
|
904
|
-
if(!IceUtilInternal::splitString(keyFile, IceUtilInternal::pathsep, keyFiles) || keyFiles.size() > 2)
|
|
905
|
-
{
|
|
906
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
907
|
-
"IceSSL: invalid value for IceSSL.KeyFile:\n" + keyFile);
|
|
908
|
-
}
|
|
909
|
-
if(files.size() != keyFiles.size())
|
|
910
|
-
{
|
|
911
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
912
|
-
"IceSSL: IceSSL.KeyFile does not agree with IceSSL.CertFile");
|
|
913
|
-
}
|
|
914
|
-
}
|
|
915
|
-
}
|
|
916
|
-
|
|
917
|
-
for(size_t i = 0; i < files.size(); ++i)
|
|
918
|
-
{
|
|
919
|
-
string file = files[i];
|
|
920
|
-
string keyFile = keyFiles.empty() ? "" : keyFiles[i];
|
|
921
|
-
string resolved;
|
|
922
|
-
|
|
923
|
-
if(!checkPath(file, defaultDir, false, resolved))
|
|
924
|
-
{
|
|
925
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
926
|
-
"IceSSL: certificate file not found:\n" + file);
|
|
927
|
-
}
|
|
928
|
-
file = resolved;
|
|
929
|
-
|
|
930
|
-
if(!keyFile.empty())
|
|
931
|
-
{
|
|
932
|
-
if(!checkPath(keyFile, defaultDir, false, resolved))
|
|
933
|
-
{
|
|
934
|
-
throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: key file not found:\n" + keyFile);
|
|
935
|
-
}
|
|
936
|
-
keyFile = resolved;
|
|
937
|
-
}
|
|
938
|
-
|
|
939
|
-
try
|
|
940
|
-
{
|
|
941
|
-
_chain.reset(loadCertificateChain(file, keyFile, keychain, keychainPassword, password, passwordPrompt,
|
|
942
|
-
passwordRetryMax));
|
|
943
|
-
break;
|
|
944
|
-
}
|
|
945
|
-
catch(const CertificateReadException& ce)
|
|
946
|
-
{
|
|
947
|
-
//
|
|
948
|
-
// If this is the last certificate rethrow the exception as PluginInitializationException,
|
|
949
|
-
// otherwise try the next certificate.
|
|
950
|
-
//
|
|
951
|
-
if(i == files.size() - 1)
|
|
952
|
-
{
|
|
953
|
-
throw PluginInitializationException(__FILE__, __LINE__, ce.reason);
|
|
954
|
-
}
|
|
955
|
-
}
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
else if(!findCert.empty())
|
|
959
|
-
{
|
|
960
|
-
_chain.reset(findCertificateChain(keychain, keychainPassword, findCert));
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
//
|
|
964
|
-
// DiffieHellmanParams in DER format.
|
|
965
|
-
//
|
|
966
|
-
#if defined(ICE_USE_SECURE_TRANSPORT_MACOS)
|
|
967
|
-
string dhFile = properties->getProperty("IceSSL.DHParams");
|
|
968
|
-
if(!dhFile.empty())
|
|
969
|
-
{
|
|
970
|
-
string resolved;
|
|
971
|
-
if(!checkPath(dhFile, defaultDir, false, resolved))
|
|
972
|
-
{
|
|
973
|
-
throw PluginInitializationException(__FILE__, __LINE__, "IceSSL: DH params file not found:\n" + dhFile);
|
|
974
|
-
}
|
|
975
|
-
|
|
976
|
-
readFile(resolved, _dhParams);
|
|
977
|
-
}
|
|
978
|
-
#endif
|
|
979
|
-
|
|
980
|
-
//
|
|
981
|
-
// Establish the cipher list.
|
|
982
|
-
//
|
|
983
|
-
const string ciphers = properties->getProperty("IceSSL.Ciphers");
|
|
984
|
-
CiphersHelper::initialize();
|
|
985
|
-
|
|
986
|
-
if(!ciphers.empty())
|
|
987
|
-
{
|
|
988
|
-
parseCiphers(ciphers);
|
|
989
|
-
}
|
|
990
|
-
|
|
991
|
-
if(securityTraceLevel() >= 1)
|
|
992
|
-
{
|
|
993
|
-
ostringstream os;
|
|
994
|
-
os << "enabling SSL ciphersuites:";
|
|
995
|
-
|
|
996
|
-
if(_ciphers.empty())
|
|
997
|
-
{
|
|
998
|
-
map<string, SSLCipherSuite> enabled = CiphersHelper::ciphers();
|
|
999
|
-
for(map<string, SSLCipherSuite>::const_iterator i = enabled.begin(); i != enabled.end(); ++i)
|
|
1000
|
-
{
|
|
1001
|
-
os << "\n " << i->first;
|
|
1002
|
-
}
|
|
1003
|
-
}
|
|
1004
|
-
else
|
|
1005
|
-
{
|
|
1006
|
-
for(vector<SSLCipherSuite>::const_iterator i = _ciphers.begin(); i != _ciphers.end(); ++i)
|
|
1007
|
-
{
|
|
1008
|
-
os << "\n " << getCipherName(*i);
|
|
1009
|
-
}
|
|
1010
|
-
}
|
|
1011
|
-
getLogger()->trace(securityTraceCategory(), os.str());
|
|
1012
|
-
}
|
|
1013
|
-
|
|
1014
|
-
//
|
|
1015
|
-
// Parse protocols
|
|
1016
|
-
//
|
|
1017
|
-
const string protocolVersionMax = properties->getProperty("IceSSL.ProtocolVersionMax");
|
|
1018
|
-
if(!protocolVersionMax.empty())
|
|
1019
|
-
{
|
|
1020
|
-
_protocolVersionMax = parseProtocol(protocolVersionMax);
|
|
1021
|
-
}
|
|
1022
|
-
|
|
1023
|
-
//
|
|
1024
|
-
// The default min protocol version is set to TLS1.0 to avoid security issues with SSLv3
|
|
1025
|
-
//
|
|
1026
|
-
const string protocolVersionMin = properties->getPropertyWithDefault("IceSSL.ProtocolVersionMin", "tls1_0");
|
|
1027
|
-
if(!protocolVersionMin.empty())
|
|
1028
|
-
{
|
|
1029
|
-
_protocolVersionMin = parseProtocol(protocolVersionMin);
|
|
1030
|
-
}
|
|
1031
|
-
_initialized = true;
|
|
1032
|
-
}
|
|
1033
|
-
|
|
1034
|
-
//
|
|
1035
|
-
// Destroy the engine.
|
|
1036
|
-
//
|
|
1037
|
-
void
|
|
1038
|
-
IceSSL::SecureTransport::SSLEngine::destroy()
|
|
1039
|
-
{
|
|
1040
|
-
}
|
|
1041
|
-
|
|
1042
|
-
IceInternal::TransceiverPtr
|
|
1043
|
-
IceSSL::SecureTransport::SSLEngine::createTransceiver(const InstancePtr& instance,
|
|
1044
|
-
const IceInternal::TransceiverPtr& delegate,
|
|
1045
|
-
const string& hostOrAdapterName,
|
|
1046
|
-
bool incoming)
|
|
1047
|
-
{
|
|
1048
|
-
return new IceSSL::SecureTransport::TransceiverI(instance, delegate, hostOrAdapterName, incoming);
|
|
1049
|
-
}
|
|
1050
|
-
|
|
1051
|
-
SSLContextRef
|
|
1052
|
-
IceSSL::SecureTransport::SSLEngine::newContext(bool incoming)
|
|
1053
|
-
{
|
|
1054
|
-
SSLContextRef ssl = SSLCreateContext(kCFAllocatorDefault, incoming ? kSSLServerSide : kSSLClientSide,
|
|
1055
|
-
kSSLStreamType);
|
|
1056
|
-
if(!ssl)
|
|
1057
|
-
{
|
|
1058
|
-
throw SecurityException(__FILE__, __LINE__, "IceSSL: unable to create SSL context");
|
|
1059
|
-
}
|
|
1060
|
-
|
|
1061
|
-
OSStatus err = noErr;
|
|
1062
|
-
if(incoming)
|
|
1063
|
-
{
|
|
1064
|
-
switch(getVerifyPeer())
|
|
1065
|
-
{
|
|
1066
|
-
case 0:
|
|
1067
|
-
{
|
|
1068
|
-
SSLSetClientSideAuthenticate(ssl, kNeverAuthenticate);
|
|
1069
|
-
break;
|
|
1070
|
-
}
|
|
1071
|
-
case 1:
|
|
1072
|
-
{
|
|
1073
|
-
SSLSetClientSideAuthenticate(ssl, kTryAuthenticate);
|
|
1074
|
-
break;
|
|
1075
|
-
}
|
|
1076
|
-
case 2:
|
|
1077
|
-
{
|
|
1078
|
-
SSLSetClientSideAuthenticate(ssl, kAlwaysAuthenticate);
|
|
1079
|
-
break;
|
|
1080
|
-
}
|
|
1081
|
-
default:
|
|
1082
|
-
{
|
|
1083
|
-
assert(false);
|
|
1084
|
-
break;
|
|
1085
|
-
}
|
|
1086
|
-
}
|
|
1087
|
-
|
|
1088
|
-
#if defined(ICE_USE_SECURE_TRANSPORT_MACOS)
|
|
1089
|
-
if(!_dhParams.empty())
|
|
1090
|
-
{
|
|
1091
|
-
if((err = SSLSetDiffieHellmanParams(ssl, &_dhParams[0], _dhParams.size())))
|
|
1092
|
-
{
|
|
1093
|
-
throw SecurityException(__FILE__, __LINE__,
|
|
1094
|
-
"IceSSL: unable to create the trust object:\n" + sslErrorToString(err));
|
|
1095
|
-
}
|
|
1096
|
-
}
|
|
1097
|
-
#endif
|
|
1098
|
-
}
|
|
1099
|
-
|
|
1100
|
-
if(_chain && (err = SSLSetCertificate(ssl, _chain.get())))
|
|
1101
|
-
{
|
|
1102
|
-
throw SecurityException(__FILE__, __LINE__,
|
|
1103
|
-
"IceSSL: error while setting the SSL context certificate:\n" + sslErrorToString(err));
|
|
1104
|
-
}
|
|
1105
|
-
|
|
1106
|
-
if(!_ciphers.empty())
|
|
1107
|
-
{
|
|
1108
|
-
if((err = SSLSetEnabledCiphers(ssl, &_ciphers[0], _ciphers.size())))
|
|
1109
|
-
{
|
|
1110
|
-
throw SecurityException(__FILE__, __LINE__, "IceSSL: error while setting ciphers:\n" + sslErrorToString(err));
|
|
1111
|
-
}
|
|
1112
|
-
}
|
|
1113
|
-
|
|
1114
|
-
if((err = SSLSetSessionOption(ssl, incoming ? kSSLSessionOptionBreakOnClientAuth :
|
|
1115
|
-
kSSLSessionOptionBreakOnServerAuth,
|
|
1116
|
-
true)))
|
|
1117
|
-
{
|
|
1118
|
-
throw SecurityException(__FILE__, __LINE__, "IceSSL: error while setting SSL option:\n" + sslErrorToString(err));
|
|
1119
|
-
}
|
|
1120
|
-
|
|
1121
|
-
if(_protocolVersionMax != kSSLProtocolUnknown)
|
|
1122
|
-
{
|
|
1123
|
-
if((err = SSLSetProtocolVersionMax(ssl, _protocolVersionMax)))
|
|
1124
|
-
{
|
|
1125
|
-
throw SecurityException(__FILE__, __LINE__,
|
|
1126
|
-
"IceSSL: error while setting SSL protocol version max:\n" + sslErrorToString(err));
|
|
1127
|
-
}
|
|
1128
|
-
}
|
|
1129
|
-
|
|
1130
|
-
if(_protocolVersionMin != kSSLProtocolUnknown)
|
|
1131
|
-
{
|
|
1132
|
-
if((err = SSLSetProtocolVersionMin(ssl, _protocolVersionMin)))
|
|
1133
|
-
{
|
|
1134
|
-
throw SecurityException(__FILE__, __LINE__,
|
|
1135
|
-
"IceSSL: error while setting SSL protocol version min:\n" + sslErrorToString(err));
|
|
1136
|
-
}
|
|
1137
|
-
}
|
|
1138
|
-
|
|
1139
|
-
return ssl;
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
CFArrayRef
|
|
1143
|
-
IceSSL::SecureTransport::SSLEngine::getCertificateAuthorities() const
|
|
1144
|
-
{
|
|
1145
|
-
return _certificateAuthorities.get();
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
|
-
string
|
|
1149
|
-
IceSSL::SecureTransport::SSLEngine::getCipherName(SSLCipherSuite cipher) const
|
|
1150
|
-
{
|
|
1151
|
-
return CiphersHelper::cipherName(cipher);
|
|
1152
|
-
}
|
|
1153
|
-
|
|
1154
|
-
void
|
|
1155
|
-
IceSSL::SecureTransport::SSLEngine::parseCiphers(const string& ciphers)
|
|
1156
|
-
{
|
|
1157
|
-
vector<string> tokens;
|
|
1158
|
-
vector<CipherExpression> cipherExpressions;
|
|
1159
|
-
|
|
1160
|
-
bool allCiphers = false;
|
|
1161
|
-
IceUtilInternal::splitString(ciphers, " \t", tokens);
|
|
1162
|
-
for(vector<string>::const_iterator i = tokens.begin(); i != tokens.end(); ++i)
|
|
1163
|
-
{
|
|
1164
|
-
string token(*i);
|
|
1165
|
-
if(token == "ALL")
|
|
1166
|
-
{
|
|
1167
|
-
if(i != tokens.begin())
|
|
1168
|
-
{
|
|
1169
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
1170
|
-
"IceSSL: `ALL' must be first in cipher list `" + ciphers + "'");
|
|
1171
|
-
}
|
|
1172
|
-
allCiphers = true;
|
|
1173
|
-
}
|
|
1174
|
-
else if(token == "NONE")
|
|
1175
|
-
{
|
|
1176
|
-
if(i != tokens.begin())
|
|
1177
|
-
{
|
|
1178
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
1179
|
-
"IceSSL: `NONE' must be first in cipher list `" + ciphers + "'");
|
|
1180
|
-
}
|
|
1181
|
-
}
|
|
1182
|
-
else
|
|
1183
|
-
{
|
|
1184
|
-
CipherExpression ce;
|
|
1185
|
-
if(token.find('!') == 0)
|
|
1186
|
-
{
|
|
1187
|
-
ce.negation = true;
|
|
1188
|
-
if(token.size() > 1)
|
|
1189
|
-
{
|
|
1190
|
-
token = token.substr(1);
|
|
1191
|
-
}
|
|
1192
|
-
else
|
|
1193
|
-
{
|
|
1194
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
1195
|
-
"IceSSL: invalid cipher expression `" + token + "'");
|
|
1196
|
-
}
|
|
1197
|
-
}
|
|
1198
|
-
else
|
|
1199
|
-
{
|
|
1200
|
-
ce.negation = false;
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
if(token.find('(') == 0)
|
|
1204
|
-
{
|
|
1205
|
-
if(token.rfind(')') != token.size() - 1)
|
|
1206
|
-
{
|
|
1207
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
1208
|
-
"IceSSL: invalid cipher expression `" + token + "'");
|
|
1209
|
-
}
|
|
1210
|
-
|
|
1211
|
-
try
|
|
1212
|
-
{
|
|
1213
|
-
ce.re = new RegExp(token.substr(1, token.size() - 2));
|
|
1214
|
-
}
|
|
1215
|
-
catch(const Ice::SyscallException&)
|
|
1216
|
-
{
|
|
1217
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
1218
|
-
"IceSSL: invalid cipher expression `" + token + "'");
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
else
|
|
1222
|
-
{
|
|
1223
|
-
ce.cipher = token;
|
|
1224
|
-
}
|
|
1225
|
-
|
|
1226
|
-
cipherExpressions.push_back(ce);
|
|
1227
|
-
}
|
|
1228
|
-
}
|
|
1229
|
-
|
|
1230
|
-
//
|
|
1231
|
-
// Context used to get the cipher list
|
|
1232
|
-
//
|
|
1233
|
-
UniqueRef<SSLContextRef> ctx(SSLCreateContext(kCFAllocatorDefault, kSSLServerSide, kSSLStreamType));
|
|
1234
|
-
size_t numSupportedCiphers = 0;
|
|
1235
|
-
SSLGetNumberSupportedCiphers(ctx.get(), &numSupportedCiphers);
|
|
1236
|
-
|
|
1237
|
-
vector<SSLCipherSuite> supported;
|
|
1238
|
-
supported.resize(numSupportedCiphers);
|
|
1239
|
-
|
|
1240
|
-
OSStatus err = SSLGetSupportedCiphers(ctx.get(), &supported[0], &numSupportedCiphers);
|
|
1241
|
-
if(err)
|
|
1242
|
-
{
|
|
1243
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
1244
|
-
"IceSSL: unable to get supported ciphers list:\n" + sslErrorToString(err));
|
|
1245
|
-
}
|
|
1246
|
-
|
|
1247
|
-
vector<SSLCipherSuite> enabled;
|
|
1248
|
-
if(allCiphers)
|
|
1249
|
-
{
|
|
1250
|
-
enabled = supported;
|
|
1251
|
-
}
|
|
1252
|
-
|
|
1253
|
-
for(vector<CipherExpression>::const_iterator i = cipherExpressions.begin(); i != cipherExpressions.end(); ++i)
|
|
1254
|
-
{
|
|
1255
|
-
CipherExpression ce = *i;
|
|
1256
|
-
if(ce.negation)
|
|
1257
|
-
{
|
|
1258
|
-
for(vector<SSLCipherSuite>::iterator j = enabled.begin(); j != enabled.end();)
|
|
1259
|
-
{
|
|
1260
|
-
string name = CiphersHelper::cipherName(*j);
|
|
1261
|
-
if((ce.cipher.empty() && ce.re->match(name)) || ce.cipher == name)
|
|
1262
|
-
{
|
|
1263
|
-
j = enabled.erase(j);
|
|
1264
|
-
}
|
|
1265
|
-
else
|
|
1266
|
-
{
|
|
1267
|
-
++j;
|
|
1268
|
-
}
|
|
1269
|
-
}
|
|
1270
|
-
}
|
|
1271
|
-
else
|
|
1272
|
-
{
|
|
1273
|
-
if(ce.cipher.empty())
|
|
1274
|
-
{
|
|
1275
|
-
for(vector<SSLCipherSuite>::const_iterator j = supported.begin(); j != supported.end(); ++j)
|
|
1276
|
-
{
|
|
1277
|
-
SSLCipherSuite cipher = *j;
|
|
1278
|
-
string name = CiphersHelper::cipherName(cipher);
|
|
1279
|
-
if(ce.re->match(name))
|
|
1280
|
-
{
|
|
1281
|
-
vector<SSLCipherSuite>::const_iterator k = find(enabled.begin(), enabled.end(), cipher);
|
|
1282
|
-
if(k == enabled.end())
|
|
1283
|
-
{
|
|
1284
|
-
enabled.push_back(cipher);
|
|
1285
|
-
}
|
|
1286
|
-
}
|
|
1287
|
-
}
|
|
1288
|
-
}
|
|
1289
|
-
else
|
|
1290
|
-
{
|
|
1291
|
-
SSLCipherSuite cipher = CiphersHelper::cipherForName(ce.cipher);
|
|
1292
|
-
vector<SSLCipherSuite>::const_iterator k = find(enabled.begin(), enabled.end(), cipher);
|
|
1293
|
-
if(k == enabled.end())
|
|
1294
|
-
{
|
|
1295
|
-
enabled.push_back(cipher);
|
|
1296
|
-
}
|
|
1297
|
-
}
|
|
1298
|
-
}
|
|
1299
|
-
}
|
|
1300
|
-
_ciphers = enabled;
|
|
1301
|
-
|
|
1302
|
-
if(_ciphers.empty())
|
|
1303
|
-
{
|
|
1304
|
-
throw PluginInitializationException(__FILE__, __LINE__,
|
|
1305
|
-
"IceSSL: invalid value for IceSSL.Ciphers:\n" + ciphers +
|
|
1306
|
-
"\nThe result cipher list does not contain any entries");
|
|
1307
|
-
}
|
|
1308
|
-
}
|