zeroc-ice 3.7.10 → 3.8.0

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.
Files changed (1216) hide show
  1. checksums.yaml +4 -4
  2. data/dist/IceRuby/Communicator.cpp +575 -0
  3. data/dist/IceRuby/Communicator.h +19 -0
  4. data/dist/IceRuby/Config.h +77 -0
  5. data/dist/IceRuby/Connection.cpp +428 -0
  6. data/dist/IceRuby/Connection.h +20 -0
  7. data/dist/IceRuby/DefaultSliceLoader.cpp +45 -0
  8. data/dist/IceRuby/DefaultSliceLoader.h +25 -0
  9. data/dist/IceRuby/Endpoint.cpp +342 -0
  10. data/dist/IceRuby/Endpoint.h +18 -0
  11. data/dist/IceRuby/ImplicitContext.cpp +143 -0
  12. data/dist/IceRuby/ImplicitContext.h +16 -0
  13. data/dist/IceRuby/Init.cpp +36 -0
  14. data/dist/IceRuby/Logger.cpp +146 -0
  15. data/dist/IceRuby/Logger.h +19 -0
  16. data/dist/IceRuby/Operation.cpp +623 -0
  17. data/dist/IceRuby/Operation.h +28 -0
  18. data/dist/IceRuby/Properties.cpp +413 -0
  19. data/dist/IceRuby/Properties.h +16 -0
  20. data/dist/IceRuby/Proxy.cpp +926 -0
  21. data/dist/IceRuby/Proxy.h +21 -0
  22. data/dist/IceRuby/RubySliceLoader.cpp +39 -0
  23. data/dist/IceRuby/RubySliceLoader.h +27 -0
  24. data/dist/IceRuby/Slice.cpp +199 -0
  25. data/dist/IceRuby/Slice.h +13 -0
  26. data/dist/IceRuby/Types.cpp +3133 -0
  27. data/dist/IceRuby/Types.h +533 -0
  28. data/dist/IceRuby/Util.cpp +553 -0
  29. data/dist/IceRuby/Util.h +485 -0
  30. data/dist/ice/cpp/include/Ice/AsyncResponseHandler.h +85 -0
  31. data/dist/ice/cpp/include/Ice/BatchRequest.h +39 -0
  32. data/dist/ice/cpp/include/Ice/BatchRequestQueueF.h +14 -0
  33. data/dist/ice/cpp/include/Ice/Buffer.h +159 -0
  34. data/dist/ice/cpp/include/Ice/Communicator.h +411 -0
  35. data/dist/ice/cpp/include/Ice/CommunicatorF.h +16 -0
  36. data/dist/ice/cpp/include/Ice/Config.h +60 -0
  37. data/dist/ice/cpp/include/Ice/Connection.h +410 -0
  38. data/dist/ice/cpp/include/Ice/ConnectionF.h +36 -0
  39. data/dist/ice/cpp/include/Ice/ConnectionIF.h +16 -0
  40. data/dist/ice/cpp/include/Ice/CtrlCHandler.h +56 -0
  41. data/dist/ice/cpp/include/Ice/Current.h +60 -0
  42. data/dist/ice/cpp/include/Ice/DefaultSliceLoader.h +160 -0
  43. data/dist/ice/cpp/include/Ice/Demangle.h +17 -0
  44. data/dist/ice/cpp/include/Ice/Endpoint.h +298 -0
  45. data/dist/ice/cpp/include/Ice/EndpointF.h +44 -0
  46. data/dist/ice/cpp/include/Ice/EndpointSelectionType.h +21 -0
  47. data/dist/ice/cpp/include/Ice/Exception.h +56 -0
  48. data/dist/ice/cpp/include/Ice/FacetMap.h +16 -0
  49. data/dist/ice/cpp/include/Ice/Format.h +22 -0
  50. data/dist/ice/cpp/include/Ice/Ice.h +60 -0
  51. data/dist/ice/cpp/include/Ice/IconvStringConverter.h +216 -0
  52. data/dist/ice/cpp/include/Ice/ImplicitContext.h +76 -0
  53. data/dist/ice/cpp/include/Ice/IncomingRequest.h +75 -0
  54. data/dist/ice/cpp/include/Ice/Initialize.h +143 -0
  55. data/dist/ice/cpp/include/Ice/InputStream.h +942 -0
  56. data/dist/ice/cpp/include/Ice/InstanceF.h +14 -0
  57. data/dist/ice/cpp/include/Ice/Instrumentation.h +319 -0
  58. data/dist/ice/cpp/include/Ice/LocalException.h +58 -0
  59. data/dist/ice/cpp/include/Ice/LocalExceptions.h +870 -0
  60. data/dist/ice/cpp/include/Ice/Logger.h +62 -0
  61. data/dist/ice/cpp/include/Ice/LoggerUtil.h +162 -0
  62. data/dist/ice/cpp/include/Ice/MarshaledResult.h +50 -0
  63. data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +54 -0
  64. data/dist/ice/cpp/include/Ice/Object.h +168 -0
  65. data/dist/ice/cpp/include/Ice/ObjectAdapter.h +324 -0
  66. data/dist/ice/cpp/include/Ice/ObjectAdapterF.h +16 -0
  67. data/dist/ice/cpp/include/Ice/ObjectF.h +16 -0
  68. data/dist/ice/cpp/include/Ice/ObserverHelper.h +164 -0
  69. data/dist/ice/cpp/include/Ice/OutgoingAsync.h +512 -0
  70. data/dist/ice/cpp/include/Ice/OutgoingResponse.h +129 -0
  71. data/dist/ice/cpp/include/Ice/OutputStream.h +872 -0
  72. data/dist/ice/cpp/include/Ice/Plugin.h +73 -0
  73. data/dist/ice/cpp/include/Ice/PluginFactory.h +77 -0
  74. data/dist/ice/cpp/include/Ice/PopDisableWarnings.h +16 -0
  75. data/dist/ice/cpp/include/Ice/Properties.h +307 -0
  76. data/dist/ice/cpp/include/Ice/PropertiesF.h +19 -0
  77. data/dist/ice/cpp/include/Ice/Proxy.h +742 -0
  78. data/dist/ice/cpp/include/Ice/ProxyF.h +11 -0
  79. data/dist/ice/cpp/include/Ice/ProxyFunctions.h +209 -0
  80. data/dist/ice/cpp/include/Ice/PushDisableWarnings.h +29 -0
  81. data/dist/ice/cpp/include/Ice/ReferenceF.h +14 -0
  82. data/dist/ice/cpp/include/Ice/RequestHandlerF.h +20 -0
  83. data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +268 -0
  84. data/dist/ice/cpp/include/Ice/SSL/Config.h +54 -0
  85. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfo.h +107 -0
  86. data/dist/ice/cpp/include/Ice/SSL/ConnectionInfoF.h +39 -0
  87. data/dist/ice/cpp/include/Ice/SSL/EndpointInfo.h +40 -0
  88. data/dist/ice/cpp/include/Ice/SSL/SSLException.h +32 -0
  89. data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +278 -0
  90. data/dist/ice/cpp/include/Ice/ServantLocator.h +51 -0
  91. data/dist/ice/cpp/include/Ice/Service.h +219 -0
  92. data/dist/ice/cpp/include/Ice/SliceLoader.h +67 -0
  93. data/dist/ice/cpp/include/Ice/SlicedData.h +125 -0
  94. data/dist/ice/cpp/include/Ice/SlicedDataF.h +30 -0
  95. data/dist/ice/cpp/include/Ice/StreamHelpers.h +652 -0
  96. data/dist/ice/cpp/include/Ice/StreamableTraits.h +291 -0
  97. data/dist/ice/cpp/include/Ice/StringConverter.h +167 -0
  98. data/dist/ice/cpp/include/Ice/StringUtil.h +114 -0
  99. data/dist/ice/cpp/include/Ice/TimerTask.h +24 -0
  100. data/dist/ice/cpp/include/Ice/TupleCompare.h +103 -0
  101. data/dist/ice/cpp/include/Ice/UUID.h +16 -0
  102. data/dist/ice/cpp/include/Ice/UserException.h +46 -0
  103. data/dist/ice/cpp/include/Ice/UserExceptionFactory.h +15 -0
  104. data/dist/ice/cpp/include/Ice/Value.h +127 -0
  105. data/dist/ice/cpp/include/Ice/ValueF.h +16 -0
  106. data/dist/ice/cpp/include/IceDiscovery/IceDiscovery.h +28 -0
  107. data/dist/ice/cpp/include/IceLocatorDiscovery/IceLocatorDiscovery.h +28 -0
  108. data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +70 -0
  109. data/dist/ice/cpp/include/generated/Ice/Context.h +40 -0
  110. data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +74 -0
  111. data/dist/ice/cpp/include/generated/Ice/Identity.h +108 -0
  112. data/dist/ice/cpp/include/generated/Ice/Locator.h +542 -0
  113. data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +443 -0
  114. data/dist/ice/cpp/include/generated/Ice/Metrics.h +1103 -0
  115. data/dist/ice/cpp/include/generated/Ice/OperationMode.h +73 -0
  116. data/dist/ice/cpp/include/generated/Ice/Process.h +245 -0
  117. data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +314 -0
  118. data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +39 -0
  119. data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +724 -0
  120. data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +94 -0
  121. data/dist/ice/cpp/include/generated/Ice/Router.h +496 -0
  122. data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +37 -0
  123. data/dist/ice/cpp/include/generated/Ice/Version.h +112 -0
  124. data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +498 -0
  125. data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +387 -0
  126. data/dist/ice/cpp/src/Ice/Acceptor.h +41 -0
  127. data/dist/ice/cpp/src/Ice/AcceptorF.h +17 -0
  128. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories.h +16 -0
  129. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_all.cpp +43 -0
  130. data/dist/ice/cpp/src/Ice/AddDefaultPluginFactories_min.cpp +17 -0
  131. data/dist/ice/cpp/src/Ice/ArgVector.cpp +58 -0
  132. data/dist/ice/cpp/src/Ice/ArgVector.h +30 -0
  133. data/dist/ice/cpp/src/Ice/Base64.cpp +263 -0
  134. data/dist/ice/cpp/src/Ice/Base64.h +26 -0
  135. data/dist/ice/cpp/src/Ice/BatchRequestQueue.cpp +199 -0
  136. data/dist/ice/cpp/src/Ice/BatchRequestQueue.h +49 -0
  137. data/dist/ice/cpp/src/Ice/Buffer.cpp +187 -0
  138. data/dist/ice/cpp/src/Ice/CheckIdentity.h +21 -0
  139. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +373 -0
  140. data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.h +65 -0
  141. data/dist/ice/cpp/src/Ice/Communicator.cpp +399 -0
  142. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.cpp +140 -0
  143. data/dist/ice/cpp/src/Ice/CommunicatorFlushBatchAsync.h +39 -0
  144. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.cpp +227 -0
  145. data/dist/ice/cpp/src/Ice/ConnectRequestHandler.h +51 -0
  146. data/dist/ice/cpp/src/Ice/ConnectRequestHandlerF.h +14 -0
  147. data/dist/ice/cpp/src/Ice/Connection.cpp +44 -0
  148. data/dist/ice/cpp/src/Ice/ConnectionFactory.cpp +1758 -0
  149. data/dist/ice/cpp/src/Ice/ConnectionFactory.h +264 -0
  150. data/dist/ice/cpp/src/Ice/ConnectionFactoryF.h +17 -0
  151. data/dist/ice/cpp/src/Ice/ConnectionI.cpp +3563 -0
  152. data/dist/ice/cpp/src/Ice/ConnectionI.h +429 -0
  153. data/dist/ice/cpp/src/Ice/ConnectionOptions.h +22 -0
  154. data/dist/ice/cpp/src/Ice/Connector.h +38 -0
  155. data/dist/ice/cpp/src/Ice/ConnectorF.h +14 -0
  156. data/dist/ice/cpp/src/Ice/ConsoleUtil.cpp +136 -0
  157. data/dist/ice/cpp/src/Ice/ConsoleUtil.h +79 -0
  158. data/dist/ice/cpp/src/Ice/CtrlCHandler.cpp +189 -0
  159. data/dist/ice/cpp/src/Ice/Current.cpp +29 -0
  160. data/dist/ice/cpp/src/Ice/DLLMain.cpp +40 -0
  161. data/dist/ice/cpp/src/Ice/DefaultSliceLoader.cpp +39 -0
  162. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +81 -0
  163. data/dist/ice/cpp/src/Ice/DefaultsAndOverrides.h +38 -0
  164. data/dist/ice/cpp/src/Ice/DefaultsAndOverridesF.h +14 -0
  165. data/dist/ice/cpp/src/Ice/Demangle.cpp +25 -0
  166. data/dist/ice/cpp/src/Ice/DisableWarnings.h +31 -0
  167. data/dist/ice/cpp/src/Ice/DynamicLibrary.cpp +216 -0
  168. data/dist/ice/cpp/src/Ice/DynamicLibrary.h +91 -0
  169. data/dist/ice/cpp/src/Ice/Endian.h +40 -0
  170. data/dist/ice/cpp/src/Ice/EndpointFactory.cpp +165 -0
  171. data/dist/ice/cpp/src/Ice/EndpointFactory.h +96 -0
  172. data/dist/ice/cpp/src/Ice/EndpointFactoryF.h +14 -0
  173. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.cpp +180 -0
  174. data/dist/ice/cpp/src/Ice/EndpointFactoryManager.h +42 -0
  175. data/dist/ice/cpp/src/Ice/EndpointFactoryManagerF.h +14 -0
  176. data/dist/ice/cpp/src/Ice/EndpointI.cpp +128 -0
  177. data/dist/ice/cpp/src/Ice/EndpointI.h +150 -0
  178. data/dist/ice/cpp/src/Ice/EndpointIF.h +21 -0
  179. data/dist/ice/cpp/src/Ice/EventHandler.cpp +9 -0
  180. data/dist/ice/cpp/src/Ice/EventHandler.h +71 -0
  181. data/dist/ice/cpp/src/Ice/EventHandlerF.h +14 -0
  182. data/dist/ice/cpp/src/Ice/Exception.cpp +5 -0
  183. data/dist/ice/cpp/src/Ice/FileUtil.cpp +476 -0
  184. data/dist/ice/cpp/src/Ice/FileUtil.h +152 -0
  185. data/dist/ice/cpp/src/Ice/FixedRequestHandler.cpp +34 -0
  186. data/dist/ice/cpp/src/Ice/FixedRequestHandler.h +29 -0
  187. data/dist/ice/cpp/src/Ice/HashUtil.h +67 -0
  188. data/dist/ice/cpp/src/Ice/HttpParser.cpp +684 -0
  189. data/dist/ice/cpp/src/Ice/HttpParser.h +112 -0
  190. data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +593 -0
  191. data/dist/ice/cpp/src/Ice/IPEndpointI.h +106 -0
  192. data/dist/ice/cpp/src/Ice/IPEndpointIF.h +17 -0
  193. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.cpp +172 -0
  194. data/dist/ice/cpp/src/Ice/IdleTimeoutTransceiverDecorator.h +89 -0
  195. data/dist/ice/cpp/src/Ice/ImplicitContext.cpp +109 -0
  196. data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +66 -0
  197. data/dist/ice/cpp/src/Ice/Initialize.cpp +160 -0
  198. data/dist/ice/cpp/src/Ice/InputStream.cpp +2206 -0
  199. data/dist/ice/cpp/src/Ice/Instance.cpp +1956 -0
  200. data/dist/ice/cpp/src/Ice/Instance.h +225 -0
  201. data/dist/ice/cpp/src/Ice/InstrumentationI.cpp +959 -0
  202. data/dist/ice/cpp/src/Ice/InstrumentationI.h +235 -0
  203. data/dist/ice/cpp/src/Ice/LocalException.cpp +518 -0
  204. data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +577 -0
  205. data/dist/ice/cpp/src/Ice/LocatorInfo.cpp +851 -0
  206. data/dist/ice/cpp/src/Ice/LocatorInfo.h +176 -0
  207. data/dist/ice/cpp/src/Ice/LocatorInfoF.h +20 -0
  208. data/dist/ice/cpp/src/Ice/LoggerAdminI.cpp +774 -0
  209. data/dist/ice/cpp/src/Ice/LoggerAdminI.h +31 -0
  210. data/dist/ice/cpp/src/Ice/LoggerI.cpp +234 -0
  211. data/dist/ice/cpp/src/Ice/LoggerI.h +47 -0
  212. data/dist/ice/cpp/src/Ice/LoggerMiddleware.cpp +176 -0
  213. data/dist/ice/cpp/src/Ice/LoggerMiddleware.h +42 -0
  214. data/dist/ice/cpp/src/Ice/LoggerUtil.cpp +76 -0
  215. data/dist/ice/cpp/src/Ice/MarshaledResult.cpp +20 -0
  216. data/dist/ice/cpp/src/Ice/MetricsAdminI.cpp +608 -0
  217. data/dist/ice/cpp/src/Ice/MetricsAdminI.h +600 -0
  218. data/dist/ice/cpp/src/Ice/MetricsFunctional.h +92 -0
  219. data/dist/ice/cpp/src/Ice/MetricsObserverI.h +587 -0
  220. data/dist/ice/cpp/src/Ice/NativePropertiesAdmin.cpp +185 -0
  221. data/dist/ice/cpp/src/Ice/Network.cpp +1927 -0
  222. data/dist/ice/cpp/src/Ice/Network.h +265 -0
  223. data/dist/ice/cpp/src/Ice/NetworkF.h +11 -0
  224. data/dist/ice/cpp/src/Ice/NetworkProxy.cpp +306 -0
  225. data/dist/ice/cpp/src/Ice/NetworkProxy.h +67 -0
  226. data/dist/ice/cpp/src/Ice/NetworkProxyF.h +14 -0
  227. data/dist/ice/cpp/src/Ice/OSLogLoggerI.cpp +55 -0
  228. data/dist/ice/cpp/src/Ice/OSLogLoggerI.h +35 -0
  229. data/dist/ice/cpp/src/Ice/Object.cpp +249 -0
  230. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +348 -0
  231. data/dist/ice/cpp/src/Ice/ObjectAdapterFactory.h +53 -0
  232. data/dist/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +14 -0
  233. data/dist/ice/cpp/src/Ice/ObjectAdapterI.cpp +1383 -0
  234. data/dist/ice/cpp/src/Ice/ObjectAdapterI.h +163 -0
  235. data/dist/ice/cpp/src/Ice/ObserverHelper.cpp +75 -0
  236. data/dist/ice/cpp/src/Ice/ObserverMiddleware.cpp +96 -0
  237. data/dist/ice/cpp/src/Ice/ObserverMiddleware.h +25 -0
  238. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.cpp +368 -0
  239. data/dist/ice/cpp/src/Ice/OpaqueEndpointI.h +66 -0
  240. data/dist/ice/cpp/src/Ice/Options.cpp +980 -0
  241. data/dist/ice/cpp/src/Ice/Options.h +119 -0
  242. data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +1106 -0
  243. data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +276 -0
  244. data/dist/ice/cpp/src/Ice/OutputStream.cpp +1454 -0
  245. data/dist/ice/cpp/src/Ice/OutputUtil.cpp +344 -0
  246. data/dist/ice/cpp/src/Ice/OutputUtil.h +173 -0
  247. data/dist/ice/cpp/src/Ice/PluginManagerI.cpp +344 -0
  248. data/dist/ice/cpp/src/Ice/PluginManagerI.h +54 -0
  249. data/dist/ice/cpp/src/Ice/Properties.cpp +931 -0
  250. data/dist/ice/cpp/src/Ice/PropertyNames.cpp +606 -0
  251. data/dist/ice/cpp/src/Ice/PropertyNames.h +63 -0
  252. data/dist/ice/cpp/src/Ice/PropertyUtil.cpp +103 -0
  253. data/dist/ice/cpp/src/Ice/PropertyUtil.h +31 -0
  254. data/dist/ice/cpp/src/Ice/Protocol.cpp +159 -0
  255. data/dist/ice/cpp/src/Ice/Protocol.h +116 -0
  256. data/dist/ice/cpp/src/Ice/ProtocolInstance.cpp +186 -0
  257. data/dist/ice/cpp/src/Ice/ProtocolInstance.h +74 -0
  258. data/dist/ice/cpp/src/Ice/ProtocolInstanceF.h +14 -0
  259. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +29 -0
  260. data/dist/ice/cpp/src/Ice/ProtocolPluginFacade.h +35 -0
  261. data/dist/ice/cpp/src/Ice/Proxy.cpp +541 -0
  262. data/dist/ice/cpp/src/Ice/ProxyAsync.cpp +684 -0
  263. data/dist/ice/cpp/src/Ice/ProxyFunctions.cpp +90 -0
  264. data/dist/ice/cpp/src/Ice/PushDisableDeprecatedWarnings.h +15 -0
  265. data/dist/ice/cpp/src/Ice/Random.cpp +29 -0
  266. data/dist/ice/cpp/src/Ice/Random.h +23 -0
  267. data/dist/ice/cpp/src/Ice/Reference.cpp +1584 -0
  268. data/dist/ice/cpp/src/Ice/Reference.h +339 -0
  269. data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +830 -0
  270. data/dist/ice/cpp/src/Ice/ReferenceFactory.h +58 -0
  271. data/dist/ice/cpp/src/Ice/ReferenceFactoryF.h +14 -0
  272. data/dist/ice/cpp/src/Ice/RequestHandler.cpp +28 -0
  273. data/dist/ice/cpp/src/Ice/RequestHandler.h +53 -0
  274. data/dist/ice/cpp/src/Ice/RequestHandlerCache.cpp +76 -0
  275. data/dist/ice/cpp/src/Ice/RequestHandlerCache.h +33 -0
  276. data/dist/ice/cpp/src/Ice/ResourceConfig.h +27 -0
  277. data/dist/ice/cpp/src/Ice/RetryQueue.cpp +151 -0
  278. data/dist/ice/cpp/src/Ice/RetryQueue.h +59 -0
  279. data/dist/ice/cpp/src/Ice/RetryQueueF.h +14 -0
  280. data/dist/ice/cpp/src/Ice/RouterInfo.cpp +275 -0
  281. data/dist/ice/cpp/src/Ice/RouterInfo.h +95 -0
  282. data/dist/ice/cpp/src/Ice/RouterInfoF.h +17 -0
  283. data/dist/ice/cpp/src/Ice/SHA1.cpp +195 -0
  284. data/dist/ice/cpp/src/Ice/SHA1.h +35 -0
  285. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.cpp +89 -0
  286. data/dist/ice/cpp/src/Ice/SSL/DistinguishedName.h +87 -0
  287. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +513 -0
  288. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.h +40 -0
  289. data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngineF.h +13 -0
  290. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +635 -0
  291. data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.h +80 -0
  292. data/dist/ice/cpp/src/Ice/SSL/RFC2253.cpp +487 -0
  293. data/dist/ice/cpp/src/Ice/SSL/RFC2253.h +58 -0
  294. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.cpp +124 -0
  295. data/dist/ice/cpp/src/Ice/SSL/SSLAcceptorI.h +52 -0
  296. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.cpp +92 -0
  297. data/dist/ice/cpp/src/Ice/SSL/SSLConnectorI.h +38 -0
  298. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.cpp +377 -0
  299. data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.h +84 -0
  300. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.cpp +115 -0
  301. data/dist/ice/cpp/src/Ice/SSL/SSLEngine.h +72 -0
  302. data/dist/ice/cpp/src/Ice/SSL/SSLEngineF.h +14 -0
  303. data/dist/ice/cpp/src/Ice/SSL/SSLException.cpp +18 -0
  304. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.cpp +27 -0
  305. data/dist/ice/cpp/src/Ice/SSL/SSLInstance.h +26 -0
  306. data/dist/ice/cpp/src/Ice/SSL/SSLInstanceF.h +19 -0
  307. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +654 -0
  308. data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +104 -0
  309. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +1437 -0
  310. data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.h +58 -0
  311. data/dist/ice/cpp/src/Ice/SSL/SchannelEngineF.h +18 -0
  312. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +1085 -0
  313. data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.h +118 -0
  314. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +822 -0
  315. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.h +44 -0
  316. data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngineF.h +18 -0
  317. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.cpp +621 -0
  318. data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.h +91 -0
  319. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +1061 -0
  320. data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.h +40 -0
  321. data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +222 -0
  322. data/dist/ice/cpp/src/Ice/SSL/TrustManager.h +42 -0
  323. data/dist/ice/cpp/src/Ice/SSL/TrustManagerF.h +14 -0
  324. data/dist/ice/cpp/src/Ice/ScannerConfig.h +35 -0
  325. data/dist/ice/cpp/src/Ice/Selector.cpp +1270 -0
  326. data/dist/ice/cpp/src/Ice/Selector.h +235 -0
  327. data/dist/ice/cpp/src/Ice/ServantManager.cpp +547 -0
  328. data/dist/ice/cpp/src/Ice/ServantManager.h +66 -0
  329. data/dist/ice/cpp/src/Ice/ServantManagerF.h +14 -0
  330. data/dist/ice/cpp/src/Ice/Service.cpp +1790 -0
  331. data/dist/ice/cpp/src/Ice/SharedContext.h +33 -0
  332. data/dist/ice/cpp/src/Ice/SliceLoader.cpp +53 -0
  333. data/dist/ice/cpp/src/Ice/SlicedData.cpp +48 -0
  334. data/dist/ice/cpp/src/Ice/StreamSocket.cpp +472 -0
  335. data/dist/ice/cpp/src/Ice/StreamSocket.h +73 -0
  336. data/dist/ice/cpp/src/Ice/StringConverter.cpp +582 -0
  337. data/dist/ice/cpp/src/Ice/StringUtil.cpp +1137 -0
  338. data/dist/ice/cpp/src/Ice/SysLoggerI.cpp +160 -0
  339. data/dist/ice/cpp/src/Ice/SysLoggerI.h +34 -0
  340. data/dist/ice/cpp/src/Ice/SystemdJournalI.cpp +65 -0
  341. data/dist/ice/cpp/src/Ice/SystemdJournalI.h +33 -0
  342. data/dist/ice/cpp/src/Ice/TargetCompare.h +96 -0
  343. data/dist/ice/cpp/src/Ice/TcpAcceptor.cpp +213 -0
  344. data/dist/ice/cpp/src/Ice/TcpAcceptor.h +55 -0
  345. data/dist/ice/cpp/src/Ice/TcpConnector.cpp +128 -0
  346. data/dist/ice/cpp/src/Ice/TcpConnector.h +36 -0
  347. data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +411 -0
  348. data/dist/ice/cpp/src/Ice/TcpEndpointI.h +86 -0
  349. data/dist/ice/cpp/src/Ice/TcpTransceiver.cpp +147 -0
  350. data/dist/ice/cpp/src/Ice/TcpTransceiver.h +53 -0
  351. data/dist/ice/cpp/src/Ice/ThreadPool.cpp +1110 -0
  352. data/dist/ice/cpp/src/Ice/ThreadPool.h +305 -0
  353. data/dist/ice/cpp/src/Ice/ThreadPoolF.h +14 -0
  354. data/dist/ice/cpp/src/Ice/TimeUtil.cpp +47 -0
  355. data/dist/ice/cpp/src/Ice/TimeUtil.h +21 -0
  356. data/dist/ice/cpp/src/Ice/Timer.cpp +169 -0
  357. data/dist/ice/cpp/src/Ice/Timer.h +212 -0
  358. data/dist/ice/cpp/src/Ice/TraceLevels.cpp +20 -0
  359. data/dist/ice/cpp/src/Ice/TraceLevels.h +39 -0
  360. data/dist/ice/cpp/src/Ice/TraceLevelsF.h +14 -0
  361. data/dist/ice/cpp/src/Ice/TraceUtil.cpp +399 -0
  362. data/dist/ice/cpp/src/Ice/TraceUtil.h +41 -0
  363. data/dist/ice/cpp/src/Ice/Transceiver.cpp +14 -0
  364. data/dist/ice/cpp/src/Ice/Transceiver.h +52 -0
  365. data/dist/ice/cpp/src/Ice/TransceiverF.h +23 -0
  366. data/dist/ice/cpp/src/Ice/UUID.cpp +79 -0
  367. data/dist/ice/cpp/src/Ice/UdpConnector.cpp +131 -0
  368. data/dist/ice/cpp/src/Ice/UdpConnector.h +36 -0
  369. data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +480 -0
  370. data/dist/ice/cpp/src/Ice/UdpEndpointI.h +92 -0
  371. data/dist/ice/cpp/src/Ice/UdpTransceiver.cpp +786 -0
  372. data/dist/ice/cpp/src/Ice/UdpTransceiver.h +90 -0
  373. data/dist/ice/cpp/src/Ice/UndefSysMacros.h +37 -0
  374. data/dist/ice/cpp/src/Ice/UniqueRef.h +77 -0
  375. data/dist/ice/cpp/src/Ice/UserException.cpp +58 -0
  376. data/dist/ice/cpp/src/Ice/Value.cpp +145 -0
  377. data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +87 -0
  378. data/dist/ice/cpp/src/Ice/WSAcceptor.h +46 -0
  379. data/dist/ice/cpp/src/Ice/WSConnector.cpp +87 -0
  380. data/dist/ice/cpp/src/Ice/WSConnector.h +36 -0
  381. data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +455 -0
  382. data/dist/ice/cpp/src/Ice/WSEndpoint.h +82 -0
  383. data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +1715 -0
  384. data/dist/ice/cpp/src/Ice/WSTransceiver.h +135 -0
  385. data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +40 -0
  386. data/dist/ice/cpp/src/Ice/generated/Context.cpp +40 -0
  387. data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +40 -0
  388. data/dist/ice/cpp/src/Ice/generated/Identity.cpp +47 -0
  389. data/dist/ice/cpp/src/Ice/generated/Locator.cpp +752 -0
  390. data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +577 -0
  391. data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +1205 -0
  392. data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +56 -0
  393. data/dist/ice/cpp/src/Ice/generated/Process.cpp +330 -0
  394. data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +443 -0
  395. data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +40 -0
  396. data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +851 -0
  397. data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +70 -0
  398. data/dist/ice/cpp/src/Ice/generated/Router.cpp +660 -0
  399. data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +39 -0
  400. data/dist/ice/cpp/src/Ice/generated/Version.cpp +54 -0
  401. data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +202 -0
  402. data/dist/ice/cpp/src/IceDiscovery/LocatorI.h +68 -0
  403. data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +494 -0
  404. data/dist/ice/cpp/src/IceDiscovery/LookupI.h +168 -0
  405. data/dist/ice/cpp/src/IceDiscovery/PluginI.cpp +155 -0
  406. data/dist/ice/cpp/src/IceDiscovery/PluginI.h +31 -0
  407. data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +638 -0
  408. data/dist/ice/cpp/src/IceLocatorDiscovery/Plugin.h +24 -0
  409. data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +822 -0
  410. data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +468 -0
  411. data/dist/ice/cpp/src/Slice/DeprecationReporter.cpp +172 -0
  412. data/dist/ice/cpp/src/Slice/DeprecationReporter.h +14 -0
  413. data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +736 -0
  414. data/dist/ice/cpp/src/Slice/DocCommentParser.h +61 -0
  415. data/dist/ice/cpp/src/Slice/FileTracker.cpp +96 -0
  416. data/dist/ice/cpp/src/Slice/FileTracker.h +44 -0
  417. data/dist/ice/cpp/src/Slice/Grammar.cpp +4125 -0
  418. data/dist/ice/cpp/src/Slice/Grammar.h +138 -0
  419. data/dist/ice/cpp/src/Slice/GrammarUtil.h +128 -0
  420. data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +473 -0
  421. data/dist/ice/cpp/src/Slice/MetadataValidation.h +106 -0
  422. data/dist/ice/cpp/src/Slice/Parser.cpp +4906 -0
  423. data/dist/ice/cpp/src/Slice/Parser.h +1175 -0
  424. data/dist/ice/cpp/src/Slice/Preprocessor.cpp +295 -0
  425. data/dist/ice/cpp/src/Slice/Preprocessor.h +44 -0
  426. data/dist/ice/cpp/src/Slice/Scanner.cpp +3445 -0
  427. data/dist/ice/cpp/src/Slice/SliceUtil.cpp +790 -0
  428. data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +448 -0
  429. data/dist/ice/cpp/src/Slice/Util.h +134 -0
  430. data/dist/ice/cpp/src/slice2rb/Main.cpp +33 -0
  431. data/dist/ice/cpp/src/slice2rb/Ruby.cpp +250 -0
  432. data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +1197 -0
  433. data/dist/ice/cpp/src/slice2rb/RubyUtil.h +56 -0
  434. data/dist/ice/mcpp/internal.H +530 -0
  435. data/dist/ice/mcpp/system.c +2741 -0
  436. data/dist/ice/slice/Glacier2/Metrics.ice +47 -0
  437. data/dist/ice/slice/Glacier2/PermissionsVerifier.ice +55 -0
  438. data/dist/ice/slice/Glacier2/Router.ice +93 -0
  439. data/dist/ice/slice/Glacier2/SSLInfo.ice +42 -0
  440. data/dist/ice/slice/Glacier2/Session.ice +133 -0
  441. data/dist/ice/slice/Ice/BuiltinSequences.ice +54 -0
  442. data/dist/ice/slice/Ice/Context.ice +24 -0
  443. data/dist/ice/slice/Ice/EndpointTypes.ice +50 -0
  444. data/dist/ice/slice/Ice/Identity.ice +36 -0
  445. data/dist/ice/slice/Ice/Locator.ice +74 -0
  446. data/dist/ice/slice/Ice/LocatorRegistry.ice +77 -0
  447. data/dist/ice/slice/Ice/Metrics.ice +201 -0
  448. data/dist/ice/slice/Ice/OperationMode.ice +38 -0
  449. data/dist/ice/slice/Ice/Process.ice +28 -0
  450. data/dist/ice/slice/Ice/PropertiesAdmin.ice +37 -0
  451. data/dist/ice/slice/Ice/PropertyDict.ice +23 -0
  452. data/dist/ice/slice/Ice/RemoteLogger.ice +126 -0
  453. data/dist/ice/slice/Ice/ReplyStatus.ice +65 -0
  454. data/dist/ice/slice/Ice/Router.ice +54 -0
  455. data/dist/ice/slice/Ice/SliceChecksumDict.ice +18 -0
  456. data/dist/ice/slice/Ice/Version.ice +43 -0
  457. data/dist/ice/slice/IceBox/ServiceManager.ice +79 -0
  458. data/dist/ice/slice/IceGrid/Admin.ice +981 -0
  459. data/dist/ice/slice/IceGrid/Descriptor.ice +519 -0
  460. data/dist/ice/slice/IceGrid/Exception.ice +98 -0
  461. data/dist/ice/slice/IceGrid/FileParser.ice +36 -0
  462. data/dist/ice/slice/IceGrid/Registry.ice +130 -0
  463. data/dist/ice/slice/IceGrid/Session.ice +64 -0
  464. data/dist/ice/slice/IceGrid/UserAccountMapper.ice +34 -0
  465. data/dist/ice/slice/IceStorm/IceStorm.ice +186 -0
  466. data/dist/ice/slice/IceStorm/Metrics.ice +41 -0
  467. data/dist/lib/Glacier2/Metrics.rb +41 -0
  468. data/dist/lib/Glacier2/PermissionsVerifier.rb +61 -0
  469. data/dist/lib/Glacier2/Router.rb +73 -0
  470. data/dist/lib/Glacier2/SSLInfo.rb +64 -0
  471. data/dist/lib/Glacier2/Session.rb +187 -0
  472. data/dist/lib/Glacier2.rb +7 -0
  473. data/dist/lib/Ice/BuiltinSequences.rb +48 -0
  474. data/dist/lib/Ice/CompressBatch.rb +50 -0
  475. data/dist/lib/Ice/Context.rb +12 -0
  476. data/dist/lib/Ice/EndpointSelectionType.rb +49 -0
  477. data/dist/lib/Ice/EndpointTypes.rb +28 -0
  478. data/dist/lib/Ice/Exception.rb +20 -0
  479. data/dist/lib/Ice/Identity.rb +47 -0
  480. data/dist/lib/Ice/IdentitySpaceship.rb +16 -0
  481. data/dist/lib/Ice/InitializationData.rb +12 -0
  482. data/dist/lib/Ice/LocalExceptions.rb +168 -0
  483. data/dist/lib/Ice/Locator.rb +83 -0
  484. data/dist/lib/Ice/LocatorRegistry.rb +73 -0
  485. data/dist/lib/Ice/Metrics.rb +290 -0
  486. data/dist/lib/Ice/OperationMode.rb +58 -0
  487. data/dist/lib/Ice/Process.rb +34 -0
  488. data/dist/lib/Ice/PropertiesAdmin.rb +39 -0
  489. data/dist/lib/Ice/PropertyDict.rb +12 -0
  490. data/dist/lib/Ice/Proxy.rb +85 -0
  491. data/dist/lib/Ice/ProxyFunctions.rb +69 -0
  492. data/dist/lib/Ice/RemoteLogger.rb +176 -0
  493. data/dist/lib/Ice/ReplyStatus.rb +65 -0
  494. data/dist/lib/Ice/Router.rb +59 -0
  495. data/dist/lib/Ice/SliceChecksumDict.rb +12 -0
  496. data/dist/lib/Ice/SliceUtil.rb +41 -0
  497. data/dist/lib/Ice/Struct.rb +11 -0
  498. data/dist/lib/Ice/ToStringMode.rb +50 -0
  499. data/dist/lib/Ice/Value.rb +93 -0
  500. data/dist/lib/Ice/Version.rb +78 -0
  501. data/dist/lib/Ice.rb +37 -0
  502. data/dist/lib/IceBox/ServiceManager.rb +104 -0
  503. data/dist/lib/IceBox.rb +3 -0
  504. data/dist/lib/IceGrid/Admin.rb +1208 -0
  505. data/dist/lib/IceGrid/Descriptor.rb +989 -0
  506. data/dist/lib/IceGrid/Exception.rb +145 -0
  507. data/dist/lib/IceGrid/FileParser.rb +41 -0
  508. data/dist/lib/IceGrid/Registry.rb +168 -0
  509. data/dist/lib/IceGrid/Session.rb +56 -0
  510. data/dist/lib/IceGrid/UserAccountMapper.rb +38 -0
  511. data/dist/lib/IceGrid.rb +9 -0
  512. data/dist/lib/IceStorm/IceStorm.rb +251 -0
  513. data/dist/lib/IceStorm/Metrics.rb +55 -0
  514. data/dist/lib/IceStorm.rb +4 -0
  515. data/extconf.rb +89 -0
  516. data/ice.gemspec +22 -17
  517. data/scripts/slice2rb +10 -0
  518. metadata +536 -712
  519. data/ICE_LICENSE +0 -48
  520. data/LICENSE +0 -340
  521. data/MCPP_LICENSE +0 -29
  522. data/bin/slice2rb +0 -12
  523. data/ext/Communicator.cpp +0 -792
  524. data/ext/Communicator.h +0 -20
  525. data/ext/Config.h +0 -143
  526. data/ext/Connection.cpp +0 -532
  527. data/ext/Connection.h +0 -24
  528. data/ext/Endpoint.cpp +0 -340
  529. data/ext/Endpoint.h +0 -22
  530. data/ext/ImplicitContext.cpp +0 -144
  531. data/ext/ImplicitContext.h +0 -20
  532. data/ext/Init.cpp +0 -49
  533. data/ext/Logger.cpp +0 -147
  534. data/ext/Logger.h +0 -23
  535. data/ext/Operation.cpp +0 -661
  536. data/ext/Operation.h +0 -31
  537. data/ext/Properties.cpp +0 -365
  538. data/ext/Properties.h +0 -20
  539. data/ext/Proxy.cpp +0 -1396
  540. data/ext/Proxy.h +0 -22
  541. data/ext/Slice.cpp +0 -205
  542. data/ext/Slice.h +0 -17
  543. data/ext/Types.cpp +0 -3325
  544. data/ext/Types.h +0 -595
  545. data/ext/Util.cpp +0 -812
  546. data/ext/Util.h +0 -586
  547. data/ext/ValueFactoryManager.cpp +0 -441
  548. data/ext/ValueFactoryManager.h +0 -95
  549. data/ext/extconf.rb +0 -97
  550. data/ext/ice/cpp/include/Ice/Application.h +0 -326
  551. data/ext/ice/cpp/include/Ice/AsyncResult.h +0 -155
  552. data/ext/ice/cpp/include/Ice/AsyncResultF.h +0 -23
  553. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +0 -75
  554. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +0 -20
  555. data/ext/ice/cpp/include/Ice/Buffer.h +0 -154
  556. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +0 -154
  557. data/ext/ice/cpp/include/Ice/Comparable.h +0 -205
  558. data/ext/ice/cpp/include/Ice/Config.h +0 -76
  559. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +0 -302
  560. data/ext/ice/cpp/include/Ice/ConnectionIF.h +0 -38
  561. data/ext/ice/cpp/include/Ice/ConsoleUtil.h +0 -23
  562. data/ext/ice/cpp/include/Ice/DefaultValueFactory.h +0 -57
  563. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +0 -41
  564. data/ext/ice/cpp/include/Ice/Dispatcher.h +0 -67
  565. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +0 -102
  566. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +0 -24
  567. data/ext/ice/cpp/include/Ice/Exception.h +0 -161
  568. data/ext/ice/cpp/include/Ice/ExceptionHelpers.h +0 -74
  569. data/ext/ice/cpp/include/Ice/FactoryTable.h +0 -73
  570. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +0 -84
  571. data/ext/ice/cpp/include/Ice/Format.h +0 -38
  572. data/ext/ice/cpp/include/Ice/Functional.h +0 -140
  573. data/ext/ice/cpp/include/Ice/GCObject.h +0 -76
  574. data/ext/ice/cpp/include/Ice/Handle.h +0 -182
  575. data/ext/ice/cpp/include/Ice/Ice.h +0 -55
  576. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +0 -377
  577. data/ext/ice/cpp/include/Ice/Incoming.h +0 -225
  578. data/ext/ice/cpp/include/Ice/IncomingAsync.h +0 -186
  579. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +0 -36
  580. data/ext/ice/cpp/include/Ice/Initialize.h +0 -957
  581. data/ext/ice/cpp/include/Ice/InputStream.h +0 -1514
  582. data/ext/ice/cpp/include/Ice/InstanceF.h +0 -20
  583. data/ext/ice/cpp/include/Ice/InterfaceByValue.h +0 -57
  584. data/ext/ice/cpp/include/Ice/LocalObject.h +0 -35
  585. data/ext/ice/cpp/include/Ice/LocalObjectF.h +0 -21
  586. data/ext/ice/cpp/include/Ice/LoggerUtil.h +0 -185
  587. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +0 -715
  588. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +0 -159
  589. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +0 -669
  590. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +0 -86
  591. data/ext/ice/cpp/include/Ice/Object.h +0 -507
  592. data/ext/ice/cpp/include/Ice/ObjectF.h +0 -30
  593. data/ext/ice/cpp/include/Ice/ObserverHelper.h +0 -182
  594. data/ext/ice/cpp/include/Ice/Optional.h +0 -1114
  595. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +0 -856
  596. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +0 -39
  597. data/ext/ice/cpp/include/Ice/OutputStream.h +0 -1092
  598. data/ext/ice/cpp/include/Ice/Protocol.h +0 -274
  599. data/ext/ice/cpp/include/Ice/Proxy.h +0 -5154
  600. data/ext/ice/cpp/include/Ice/ProxyF.h +0 -53
  601. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +0 -21
  602. data/ext/ice/cpp/include/Ice/ProxyHandle.h +0 -318
  603. data/ext/ice/cpp/include/Ice/ReferenceF.h +0 -29
  604. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +0 -127
  605. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +0 -30
  606. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +0 -25
  607. data/ext/ice/cpp/include/Ice/SHA1.h +0 -40
  608. data/ext/ice/cpp/include/Ice/ServantManagerF.h +0 -21
  609. data/ext/ice/cpp/include/Ice/Service.h +0 -379
  610. data/ext/ice/cpp/include/Ice/SliceChecksums.h +0 -33
  611. data/ext/ice/cpp/include/Ice/SlicedData.h +0 -172
  612. data/ext/ice/cpp/include/Ice/SlicedDataF.h +0 -40
  613. data/ext/ice/cpp/include/Ice/StreamHelpers.h +0 -1190
  614. data/ext/ice/cpp/include/Ice/StringConverter.h +0 -78
  615. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +0 -23
  616. data/ext/ice/cpp/include/Ice/UUID.h +0 -19
  617. data/ext/ice/cpp/include/Ice/UniquePtr.h +0 -95
  618. data/ext/ice/cpp/include/Ice/UniqueRef.h +0 -97
  619. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +0 -88
  620. data/ext/ice/cpp/include/Ice/Value.h +0 -139
  621. data/ext/ice/cpp/include/Ice/ValueF.h +0 -21
  622. data/ext/ice/cpp/include/IceSSL/Config.h +0 -21
  623. data/ext/ice/cpp/include/IceSSL/IceSSL.h +0 -24
  624. data/ext/ice/cpp/include/IceSSL/OpenSSL.h +0 -147
  625. data/ext/ice/cpp/include/IceSSL/Plugin.h +0 -712
  626. data/ext/ice/cpp/include/IceSSL/SChannel.h +0 -72
  627. data/ext/ice/cpp/include/IceSSL/SecureTransport.h +0 -72
  628. data/ext/ice/cpp/include/IceSSL/UWP.h +0 -62
  629. data/ext/ice/cpp/include/IceUtil/Atomic.h +0 -179
  630. data/ext/ice/cpp/include/IceUtil/Cond.h +0 -317
  631. data/ext/ice/cpp/include/IceUtil/Config.h +0 -392
  632. data/ext/ice/cpp/include/IceUtil/ConsoleUtil.h +0 -92
  633. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +0 -45
  634. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +0 -92
  635. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +0 -44
  636. data/ext/ice/cpp/include/IceUtil/Exception.h +0 -394
  637. data/ext/ice/cpp/include/IceUtil/FileUtil.h +0 -140
  638. data/ext/ice/cpp/include/IceUtil/Functional.h +0 -389
  639. data/ext/ice/cpp/include/IceUtil/Handle.h +0 -261
  640. data/ext/ice/cpp/include/IceUtil/IceUtil.h +0 -40
  641. data/ext/ice/cpp/include/IceUtil/InputUtil.h +0 -42
  642. data/ext/ice/cpp/include/IceUtil/Iterator.h +0 -31
  643. data/ext/ice/cpp/include/IceUtil/Lock.h +0 -128
  644. data/ext/ice/cpp/include/IceUtil/Monitor.h +0 -243
  645. data/ext/ice/cpp/include/IceUtil/Mutex.h +0 -349
  646. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +0 -23
  647. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +0 -78
  648. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +0 -77
  649. data/ext/ice/cpp/include/IceUtil/Optional.h +0 -433
  650. data/ext/ice/cpp/include/IceUtil/Options.h +0 -135
  651. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +0 -383
  652. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +0 -14
  653. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +0 -33
  654. data/ext/ice/cpp/include/IceUtil/Random.h +0 -55
  655. data/ext/ice/cpp/include/IceUtil/RecMutex.h +0 -107
  656. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +0 -37
  657. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +0 -40
  658. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +0 -98
  659. data/ext/ice/cpp/include/IceUtil/Shared.h +0 -127
  660. data/ext/ice/cpp/include/IceUtil/StopWatch.h +0 -49
  661. data/ext/ice/cpp/include/IceUtil/StringConverter.h +0 -195
  662. data/ext/ice/cpp/include/IceUtil/StringUtil.h +0 -97
  663. data/ext/ice/cpp/include/IceUtil/Thread.h +0 -160
  664. data/ext/ice/cpp/include/IceUtil/ThreadException.h +0 -94
  665. data/ext/ice/cpp/include/IceUtil/Time.h +0 -205
  666. data/ext/ice/cpp/include/IceUtil/Timer.h +0 -144
  667. data/ext/ice/cpp/include/IceUtil/UUID.h +0 -21
  668. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +0 -37
  669. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +0 -170
  670. data/ext/ice/cpp/include/generated/Ice/Communicator.h +0 -1162
  671. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +0 -101
  672. data/ext/ice/cpp/include/generated/Ice/Connection.h +0 -1703
  673. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +0 -119
  674. data/ext/ice/cpp/include/generated/Ice/Current.h +0 -322
  675. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +0 -979
  676. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +0 -166
  677. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +0 -118
  678. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +0 -80
  679. data/ext/ice/cpp/include/generated/Ice/Identity.h +0 -264
  680. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +0 -284
  681. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +0 -101
  682. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +0 -1203
  683. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +0 -128
  684. data/ext/ice/cpp/include/generated/Ice/LocalException.h +0 -7437
  685. data/ext/ice/cpp/include/generated/Ice/Locator.h +0 -3898
  686. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +0 -147
  687. data/ext/ice/cpp/include/generated/Ice/Logger.h +0 -237
  688. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +0 -101
  689. data/ext/ice/cpp/include/generated/Ice/Metrics.h +0 -4769
  690. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +0 -1181
  691. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +0 -101
  692. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +0 -203
  693. data/ext/ice/cpp/include/generated/Ice/Plugin.h +0 -318
  694. data/ext/ice/cpp/include/generated/Ice/PluginF.h +0 -110
  695. data/ext/ice/cpp/include/generated/Ice/Process.h +0 -977
  696. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +0 -125
  697. data/ext/ice/cpp/include/generated/Ice/Properties.h +0 -452
  698. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +0 -1366
  699. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +0 -134
  700. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +0 -2707
  701. data/ext/ice/cpp/include/generated/Ice/Router.h +0 -1850
  702. data/ext/ice/cpp/include/generated/Ice/RouterF.h +0 -125
  703. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +0 -305
  704. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +0 -101
  705. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +0 -84
  706. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +0 -330
  707. data/ext/ice/cpp/include/generated/Ice/Version.h +0 -357
  708. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +0 -228
  709. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +0 -101
  710. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +0 -186
  711. data/ext/ice/cpp/src/Ice/ACM.cpp +0 -380
  712. data/ext/ice/cpp/src/Ice/ACM.h +0 -119
  713. data/ext/ice/cpp/src/Ice/ACMF.h +0 -30
  714. data/ext/ice/cpp/src/Ice/Acceptor.cpp +0 -16
  715. data/ext/ice/cpp/src/Ice/Acceptor.h +0 -37
  716. data/ext/ice/cpp/src/Ice/AcceptorF.h +0 -25
  717. data/ext/ice/cpp/src/Ice/ArgVector.cpp +0 -59
  718. data/ext/ice/cpp/src/Ice/ArgVector.h +0 -36
  719. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +0 -70
  720. data/ext/ice/cpp/src/Ice/Base64.cpp +0 -263
  721. data/ext/ice/cpp/src/Ice/Base64.h +0 -31
  722. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +0 -250
  723. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +0 -59
  724. data/ext/ice/cpp/src/Ice/Buffer.cpp +0 -155
  725. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +0 -49
  726. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +0 -407
  727. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +0 -87
  728. data/ext/ice/cpp/src/Ice/Communicator.cpp +0 -79
  729. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +0 -61
  730. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +0 -586
  731. data/ext/ice/cpp/src/Ice/CommunicatorI.h +0 -167
  732. data/ext/ice/cpp/src/Ice/Cond.cpp +0 -381
  733. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +0 -348
  734. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +0 -72
  735. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +0 -24
  736. data/ext/ice/cpp/src/Ice/Connection.cpp +0 -155
  737. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +0 -61
  738. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +0 -1972
  739. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +0 -264
  740. data/ext/ice/cpp/src/Ice/ConnectionFactoryF.h +0 -30
  741. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +0 -3670
  742. data/ext/ice/cpp/src/Ice/ConnectionI.h +0 -389
  743. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +0 -73
  744. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +0 -41
  745. data/ext/ice/cpp/src/Ice/Connector.cpp +0 -16
  746. data/ext/ice/cpp/src/Ice/Connector.h +0 -32
  747. data/ext/ice/cpp/src/Ice/ConnectorF.h +0 -21
  748. data/ext/ice/cpp/src/Ice/CountDownLatch.cpp +0 -171
  749. data/ext/ice/cpp/src/Ice/Current.cpp +0 -62
  750. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +0 -159
  751. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +0 -52
  752. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +0 -21
  753. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +0 -37
  754. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +0 -284
  755. data/ext/ice/cpp/src/Ice/Endpoint.cpp +0 -147
  756. data/ext/ice/cpp/src/Ice/EndpointF.cpp +0 -61
  757. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +0 -189
  758. data/ext/ice/cpp/src/Ice/EndpointFactory.h +0 -117
  759. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +0 -21
  760. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +0 -213
  761. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +0 -47
  762. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +0 -21
  763. data/ext/ice/cpp/src/Ice/EndpointI.cpp +0 -98
  764. data/ext/ice/cpp/src/Ice/EndpointI.h +0 -218
  765. data/ext/ice/cpp/src/Ice/EndpointIF.h +0 -49
  766. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +0 -51
  767. data/ext/ice/cpp/src/Ice/EventHandler.cpp +0 -32
  768. data/ext/ice/cpp/src/Ice/EventHandler.h +0 -81
  769. data/ext/ice/cpp/src/Ice/EventHandlerF.h +0 -24
  770. data/ext/ice/cpp/src/Ice/Exception.cpp +0 -818
  771. data/ext/ice/cpp/src/Ice/FacetMap.cpp +0 -49
  772. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +0 -162
  773. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +0 -88
  774. data/ext/ice/cpp/src/Ice/GCObject.cpp +0 -442
  775. data/ext/ice/cpp/src/Ice/HashUtil.h +0 -53
  776. data/ext/ice/cpp/src/Ice/HttpParser.cpp +0 -684
  777. data/ext/ice/cpp/src/Ice/HttpParser.h +0 -117
  778. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +0 -710
  779. data/ext/ice/cpp/src/Ice/IPEndpointI.h +0 -152
  780. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +0 -28
  781. data/ext/ice/cpp/src/Ice/IconvStringConverter.cpp +0 -51
  782. data/ext/ice/cpp/src/Ice/Identity.cpp +0 -57
  783. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +0 -75
  784. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +0 -61
  785. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +0 -655
  786. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +0 -48
  787. data/ext/ice/cpp/src/Ice/Incoming.cpp +0 -795
  788. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +0 -230
  789. data/ext/ice/cpp/src/Ice/IncomingRequest.h +0 -33
  790. data/ext/ice/cpp/src/Ice/Initialize.cpp +0 -654
  791. data/ext/ice/cpp/src/Ice/InputStream.cpp +0 -2741
  792. data/ext/ice/cpp/src/Ice/Instance.cpp +0 -1967
  793. data/ext/ice/cpp/src/Ice/Instance.h +0 -235
  794. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +0 -188
  795. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +0 -66
  796. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +0 -1094
  797. data/ext/ice/cpp/src/Ice/InstrumentationI.h +0 -256
  798. data/ext/ice/cpp/src/Ice/LocalException.cpp +0 -3262
  799. data/ext/ice/cpp/src/Ice/LocalObject.cpp +0 -23
  800. data/ext/ice/cpp/src/Ice/Locator.cpp +0 -2042
  801. data/ext/ice/cpp/src/Ice/LocatorF.cpp +0 -63
  802. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +0 -889
  803. data/ext/ice/cpp/src/Ice/LocatorInfo.h +0 -189
  804. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +0 -29
  805. data/ext/ice/cpp/src/Ice/Logger.cpp +0 -73
  806. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +0 -956
  807. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +0 -41
  808. data/ext/ice/cpp/src/Ice/LoggerF.cpp +0 -61
  809. data/ext/ice/cpp/src/Ice/LoggerI.cpp +0 -259
  810. data/ext/ice/cpp/src/Ice/LoggerI.h +0 -52
  811. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +0 -100
  812. data/ext/ice/cpp/src/Ice/Metrics.cpp +0 -2352
  813. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +0 -694
  814. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +0 -8
  815. data/ext/ice/cpp/src/Ice/Network.cpp +0 -2249
  816. data/ext/ice/cpp/src/Ice/Network.h +0 -289
  817. data/ext/ice/cpp/src/Ice/NetworkF.h +0 -19
  818. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +0 -311
  819. data/ext/ice/cpp/src/Ice/NetworkProxy.h +0 -72
  820. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +0 -21
  821. data/ext/ice/cpp/src/Ice/OSLogLoggerI.cpp +0 -57
  822. data/ext/ice/cpp/src/Ice/OSLogLoggerI.h +0 -40
  823. data/ext/ice/cpp/src/Ice/Object.cpp +0 -435
  824. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +0 -79
  825. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +0 -61
  826. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +0 -291
  827. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +0 -53
  828. data/ext/ice/cpp/src/Ice/ObjectAdapterFactoryF.h +0 -25
  829. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +0 -1530
  830. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +0 -159
  831. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +0 -75
  832. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +0 -56
  833. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +0 -408
  834. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +0 -74
  835. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +0 -1322
  836. data/ext/ice/cpp/src/Ice/OutputStream.cpp +0 -1367
  837. data/ext/ice/cpp/src/Ice/Plugin.cpp +0 -87
  838. data/ext/ice/cpp/src/Ice/PluginF.cpp +0 -61
  839. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +0 -503
  840. data/ext/ice/cpp/src/Ice/PluginManagerI.h +0 -61
  841. data/ext/ice/cpp/src/Ice/Process.cpp +0 -471
  842. data/ext/ice/cpp/src/Ice/ProcessF.cpp +0 -63
  843. data/ext/ice/cpp/src/Ice/Properties.cpp +0 -78
  844. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +0 -603
  845. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +0 -265
  846. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +0 -64
  847. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +0 -63
  848. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +0 -739
  849. data/ext/ice/cpp/src/Ice/PropertiesI.h +0 -70
  850. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +0 -1429
  851. data/ext/ice/cpp/src/Ice/PropertyNames.h +0 -78
  852. data/ext/ice/cpp/src/Ice/Protocol.cpp +0 -124
  853. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +0 -131
  854. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +0 -93
  855. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +0 -21
  856. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +0 -51
  857. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +0 -64
  858. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +0 -21
  859. data/ext/ice/cpp/src/Ice/Proxy.cpp +0 -1601
  860. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +0 -300
  861. data/ext/ice/cpp/src/Ice/ProxyFactory.h +0 -57
  862. data/ext/ice/cpp/src/Ice/Reference.cpp +0 -2046
  863. data/ext/ice/cpp/src/Ice/Reference.h +0 -323
  864. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +0 -888
  865. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +0 -76
  866. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +0 -19
  867. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +0 -38
  868. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +0 -20
  869. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +0 -1171
  870. data/ext/ice/cpp/src/Ice/ReplyStatus.h +0 -24
  871. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +0 -37
  872. data/ext/ice/cpp/src/Ice/RequestHandler.h +0 -78
  873. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +0 -77
  874. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +0 -37
  875. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +0 -12
  876. data/ext/ice/cpp/src/Ice/ResponseHandler.h +0 -43
  877. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +0 -157
  878. data/ext/ice/cpp/src/Ice/RetryQueue.h +0 -66
  879. data/ext/ice/cpp/src/Ice/RetryQueueF.h +0 -19
  880. data/ext/ice/cpp/src/Ice/Router.cpp +0 -977
  881. data/ext/ice/cpp/src/Ice/RouterF.cpp +0 -63
  882. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +0 -379
  883. data/ext/ice/cpp/src/Ice/RouterInfo.h +0 -152
  884. data/ext/ice/cpp/src/Ice/RouterInfoF.h +0 -25
  885. data/ext/ice/cpp/src/Ice/SHA1.cpp +0 -169
  886. data/ext/ice/cpp/src/Ice/Selector.cpp +0 -1525
  887. data/ext/ice/cpp/src/Ice/Selector.h +0 -292
  888. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +0 -75
  889. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +0 -61
  890. data/ext/ice/cpp/src/Ice/ServantManager.cpp +0 -480
  891. data/ext/ice/cpp/src/Ice/ServantManager.h +0 -69
  892. data/ext/ice/cpp/src/Ice/SharedContext.h +0 -46
  893. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +0 -49
  894. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +0 -75
  895. data/ext/ice/cpp/src/Ice/SlicedData.cpp +0 -127
  896. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +0 -519
  897. data/ext/ice/cpp/src/Ice/StreamSocket.h +0 -85
  898. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +0 -192
  899. data/ext/ice/cpp/src/Ice/StringUtil.h +0 -30
  900. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +0 -166
  901. data/ext/ice/cpp/src/Ice/SysLoggerI.h +0 -37
  902. data/ext/ice/cpp/src/Ice/SystemdJournalI.cpp +0 -66
  903. data/ext/ice/cpp/src/Ice/SystemdJournalI.h +0 -39
  904. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +0 -234
  905. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +0 -61
  906. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +0 -127
  907. data/ext/ice/cpp/src/Ice/TcpConnector.h +0 -45
  908. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +0 -385
  909. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +0 -90
  910. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +0 -135
  911. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +0 -58
  912. data/ext/ice/cpp/src/Ice/Thread.cpp +0 -569
  913. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +0 -1292
  914. data/ext/ice/cpp/src/Ice/ThreadPool.h +0 -393
  915. data/ext/ice/cpp/src/Ice/Timer.cpp +0 -263
  916. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +0 -38
  917. data/ext/ice/cpp/src/Ice/TraceLevels.h +0 -45
  918. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +0 -21
  919. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +0 -478
  920. data/ext/ice/cpp/src/Ice/TraceUtil.h +0 -30
  921. data/ext/ice/cpp/src/Ice/Transceiver.cpp +0 -18
  922. data/ext/ice/cpp/src/Ice/Transceiver.h +0 -49
  923. data/ext/ice/cpp/src/Ice/TransceiverF.h +0 -33
  924. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +0 -131
  925. data/ext/ice/cpp/src/Ice/UdpConnector.h +0 -45
  926. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +0 -515
  927. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +0 -95
  928. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -806
  929. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +0 -96
  930. data/ext/ice/cpp/src/Ice/Value.cpp +0 -76
  931. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +0 -83
  932. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.cpp +0 -61
  933. data/ext/ice/cpp/src/Ice/ValueFactoryManagerI.h +0 -37
  934. data/ext/ice/cpp/src/Ice/Version.cpp +0 -57
  935. data/ext/ice/cpp/src/Ice/VirtualShared.h +0 -38
  936. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +0 -92
  937. data/ext/ice/cpp/src/Ice/WSAcceptor.h +0 -52
  938. data/ext/ice/cpp/src/Ice/WSConnector.cpp +0 -102
  939. data/ext/ice/cpp/src/Ice/WSConnector.h +0 -43
  940. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +0 -508
  941. data/ext/ice/cpp/src/Ice/WSEndpoint.h +0 -93
  942. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +0 -1704
  943. data/ext/ice/cpp/src/Ice/WSTransceiver.h +0 -141
  944. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +0 -915
  945. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +0 -1889
  946. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +0 -265
  947. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +0 -109
  948. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +0 -608
  949. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +0 -228
  950. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +0 -176
  951. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +0 -36
  952. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +0 -730
  953. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +0 -1197
  954. data/ext/ice/cpp/src/IceLocatorDiscovery/Plugin.h +0 -47
  955. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +0 -1048
  956. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +0 -105
  957. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +0 -52
  958. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +0 -301
  959. data/ext/ice/cpp/src/IceSSL/CertificateI.h +0 -64
  960. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +0 -75
  961. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +0 -61
  962. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +0 -102
  963. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +0 -44
  964. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +0 -372
  965. data/ext/ice/cpp/src/IceSSL/EndpointI.h +0 -100
  966. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +0 -75
  967. data/ext/ice/cpp/src/IceSSL/Instance.cpp +0 -28
  968. data/ext/ice/cpp/src/IceSSL/Instance.h +0 -37
  969. data/ext/ice/cpp/src/IceSSL/InstanceF.h +0 -33
  970. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +0 -688
  971. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +0 -1147
  972. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.h +0 -59
  973. data/ext/ice/cpp/src/IceSSL/OpenSSLEngineF.h +0 -27
  974. data/ext/ice/cpp/src/IceSSL/OpenSSLPluginI.cpp +0 -127
  975. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +0 -1092
  976. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +0 -90
  977. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +0 -288
  978. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.h +0 -58
  979. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +0 -246
  980. data/ext/ice/cpp/src/IceSSL/PluginI.h +0 -67
  981. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +0 -490
  982. data/ext/ice/cpp/src/IceSSL/RFC2253.h +0 -62
  983. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +0 -721
  984. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +0 -1283
  985. data/ext/ice/cpp/src/IceSSL/SChannelEngine.h +0 -123
  986. data/ext/ice/cpp/src/IceSSL/SChannelEngineF.h +0 -31
  987. data/ext/ice/cpp/src/IceSSL/SChannelPluginI.cpp +0 -73
  988. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +0 -1174
  989. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +0 -133
  990. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +0 -313
  991. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +0 -100
  992. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +0 -21
  993. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +0 -999
  994. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +0 -1308
  995. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.h +0 -59
  996. data/ext/ice/cpp/src/IceSSL/SecureTransportEngineF.h +0 -29
  997. data/ext/ice/cpp/src/IceSSL/SecureTransportPluginI.cpp +0 -75
  998. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +0 -719
  999. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +0 -92
  1000. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.cpp +0 -868
  1001. data/ext/ice/cpp/src/IceSSL/SecureTransportUtil.h +0 -45
  1002. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +0 -236
  1003. data/ext/ice/cpp/src/IceSSL/TrustManager.h +0 -46
  1004. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +0 -21
  1005. data/ext/ice/cpp/src/IceSSL/UWPCertificateI.cpp +0 -266
  1006. data/ext/ice/cpp/src/IceSSL/UWPEngine.cpp +0 -338
  1007. data/ext/ice/cpp/src/IceSSL/UWPEngine.h +0 -41
  1008. data/ext/ice/cpp/src/IceSSL/UWPEngineF.h +0 -26
  1009. data/ext/ice/cpp/src/IceSSL/UWPPluginI.cpp +0 -89
  1010. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.cpp +0 -383
  1011. data/ext/ice/cpp/src/IceSSL/UWPTransceiverI.h +0 -71
  1012. data/ext/ice/cpp/src/IceSSL/Util.cpp +0 -192
  1013. data/ext/ice/cpp/src/IceSSL/Util.h +0 -99
  1014. data/ext/ice/cpp/src/IceUtil/ConsoleUtil.cpp +0 -157
  1015. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +0 -472
  1016. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +0 -147
  1017. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +0 -259
  1018. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +0 -471
  1019. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +0 -36
  1020. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +0 -19
  1021. data/ext/ice/cpp/src/IceUtil/Options.cpp +0 -1051
  1022. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +0 -609
  1023. data/ext/ice/cpp/src/IceUtil/Random.cpp +0 -180
  1024. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +0 -238
  1025. data/ext/ice/cpp/src/IceUtil/Shared.cpp +0 -71
  1026. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +0 -690
  1027. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +0 -1135
  1028. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +0 -130
  1029. data/ext/ice/cpp/src/IceUtil/Time.cpp +0 -307
  1030. data/ext/ice/cpp/src/IceUtil/UUID.cpp +0 -165
  1031. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +0 -183
  1032. data/ext/ice/cpp/src/IceUtil/Unicode.h +0 -43
  1033. data/ext/ice/cpp/src/IceUtil/UtilException.cpp +0 -839
  1034. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +0 -1810
  1035. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.h +0 -72
  1036. data/ext/ice/cpp/src/Slice/Checksum.cpp +0 -447
  1037. data/ext/ice/cpp/src/Slice/Checksum.h +0 -21
  1038. data/ext/ice/cpp/src/Slice/FileTracker.cpp +0 -146
  1039. data/ext/ice/cpp/src/Slice/FileTracker.h +0 -66
  1040. data/ext/ice/cpp/src/Slice/Grammar.cpp +0 -4793
  1041. data/ext/ice/cpp/src/Slice/Grammar.h +0 -118
  1042. data/ext/ice/cpp/src/Slice/GrammarUtil.h +0 -228
  1043. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +0 -5176
  1044. data/ext/ice/cpp/src/Slice/JavaUtil.h +0 -407
  1045. data/ext/ice/cpp/src/Slice/MD5.cpp +0 -52
  1046. data/ext/ice/cpp/src/Slice/MD5.h +0 -39
  1047. data/ext/ice/cpp/src/Slice/MD5I.cpp +0 -393
  1048. data/ext/ice/cpp/src/Slice/MD5I.h +0 -91
  1049. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +0 -157
  1050. data/ext/ice/cpp/src/Slice/PHPUtil.h +0 -36
  1051. data/ext/ice/cpp/src/Slice/Parser.cpp +0 -7058
  1052. data/ext/ice/cpp/src/Slice/Parser.h +0 -1174
  1053. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +0 -797
  1054. data/ext/ice/cpp/src/Slice/Preprocessor.h +0 -60
  1055. data/ext/ice/cpp/src/Slice/Python.cpp +0 -830
  1056. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +0 -3439
  1057. data/ext/ice/cpp/src/Slice/PythonUtil.h +0 -70
  1058. data/ext/ice/cpp/src/Slice/Ruby.cpp +0 -350
  1059. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +0 -1571
  1060. data/ext/ice/cpp/src/Slice/RubyUtil.h +0 -49
  1061. data/ext/ice/cpp/src/Slice/Scanner.cpp +0 -2807
  1062. data/ext/ice/cpp/src/Slice/SliceUtil.cpp +0 -424
  1063. data/ext/ice/cpp/src/Slice/StringLiteralUtil.cpp +0 -456
  1064. data/ext/ice/cpp/src/Slice/Util.h +0 -50
  1065. data/ext/ice/mcpp/CMakeLists.txt +0 -80
  1066. data/ext/ice/mcpp/LICENSE +0 -29
  1067. data/ext/ice/mcpp/Makefile +0 -63
  1068. data/ext/ice/mcpp/README.md +0 -32
  1069. data/ext/ice/mcpp/internal.H +0 -530
  1070. data/ext/ice/mcpp/mcpp.gyp +0 -88
  1071. data/ext/ice/mcpp/system.c +0 -2737
  1072. data/lib/Glacier2/Metrics.rb +0 -56
  1073. data/lib/Glacier2/PermissionsVerifier.rb +0 -93
  1074. data/lib/Glacier2/PermissionsVerifierF.rb +0 -30
  1075. data/lib/Glacier2/Router.rb +0 -95
  1076. data/lib/Glacier2/RouterF.rb +0 -25
  1077. data/lib/Glacier2/SSLInfo.rb +0 -72
  1078. data/lib/Glacier2/Session.rb +0 -247
  1079. data/lib/Glacier2.rb +0 -7
  1080. data/lib/Ice/BuiltinSequences.rb +0 -60
  1081. data/lib/Ice/Communicator.rb +0 -87
  1082. data/lib/Ice/CommunicatorF.rb +0 -24
  1083. data/lib/Ice/Connection.rb +0 -413
  1084. data/lib/Ice/ConnectionF.rb +0 -32
  1085. data/lib/Ice/Current.rb +0 -141
  1086. data/lib/Ice/Endpoint.rb +0 -187
  1087. data/lib/Ice/EndpointF.rb +0 -48
  1088. data/lib/Ice/EndpointTypes.rb +0 -69
  1089. data/lib/Ice/FacetMap.rb +0 -24
  1090. data/lib/Ice/Identity.rb +0 -63
  1091. data/lib/Ice/ImplicitContext.rb +0 -26
  1092. data/lib/Ice/ImplicitContextF.rb +0 -24
  1093. data/lib/Ice/Instrumentation.rb +0 -169
  1094. data/lib/Ice/InstrumentationF.rb +0 -31
  1095. data/lib/Ice/LocalException.rb +0 -1031
  1096. data/lib/Ice/Locator.rb +0 -196
  1097. data/lib/Ice/LocatorF.rb +0 -30
  1098. data/lib/Ice/Logger.rb +0 -24
  1099. data/lib/Ice/LoggerF.rb +0 -24
  1100. data/lib/Ice/Metrics.rb +0 -337
  1101. data/lib/Ice/ObjectAdapter.rb +0 -29
  1102. data/lib/Ice/ObjectAdapterF.rb +0 -24
  1103. data/lib/Ice/ObjectFactory.rb +0 -24
  1104. data/lib/Ice/Plugin.rb +0 -30
  1105. data/lib/Ice/PluginF.rb +0 -28
  1106. data/lib/Ice/Process.rb +0 -53
  1107. data/lib/Ice/ProcessF.rb +0 -25
  1108. data/lib/Ice/Properties.rb +0 -25
  1109. data/lib/Ice/PropertiesAdmin.rb +0 -63
  1110. data/lib/Ice/PropertiesF.rb +0 -29
  1111. data/lib/Ice/RemoteLogger.rb +0 -207
  1112. data/lib/Ice/Router.rb +0 -87
  1113. data/lib/Ice/RouterF.rb +0 -25
  1114. data/lib/Ice/ServantLocator.rb +0 -26
  1115. data/lib/Ice/ServantLocatorF.rb +0 -24
  1116. data/lib/Ice/SliceChecksumDict.rb +0 -24
  1117. data/lib/Ice/ValueFactory.rb +0 -28
  1118. data/lib/Ice/Version.rb +0 -90
  1119. data/lib/Ice.rb +0 -673
  1120. data/lib/IceBox/IceBox.rb +0 -164
  1121. data/lib/IceBox.rb +0 -5
  1122. data/lib/IceGrid/Admin.rb +0 -1196
  1123. data/lib/IceGrid/Descriptor.rb +0 -1034
  1124. data/lib/IceGrid/Exception.rb +0 -376
  1125. data/lib/IceGrid/FileParser.rb +0 -65
  1126. data/lib/IceGrid/PluginFacade.rb +0 -35
  1127. data/lib/IceGrid/Registry.rb +0 -209
  1128. data/lib/IceGrid/Session.rb +0 -71
  1129. data/lib/IceGrid/UserAccountMapper.rb +0 -61
  1130. data/lib/IceGrid.rb +0 -9
  1131. data/lib/IcePatch2/FileInfo.rb +0 -115
  1132. data/lib/IcePatch2/FileServer.rb +0 -123
  1133. data/lib/IcePatch2.rb +0 -5
  1134. data/lib/IceStorm/IceStorm.rb +0 -332
  1135. data/lib/IceStorm/Metrics.rb +0 -73
  1136. data/lib/IceStorm.rb +0 -6
  1137. data/slice/Glacier2/Metrics.ice +0 -88
  1138. data/slice/Glacier2/PermissionsVerifier.ice +0 -111
  1139. data/slice/Glacier2/PermissionsVerifierF.ice +0 -30
  1140. data/slice/Glacier2/Router.ice +0 -186
  1141. data/slice/Glacier2/RouterF.ice +0 -29
  1142. data/slice/Glacier2/SSLInfo.ice +0 -59
  1143. data/slice/Glacier2/Session.ice +0 -274
  1144. data/slice/Ice/BuiltinSequences.ice +0 -59
  1145. data/slice/Ice/Communicator.ice +0 -676
  1146. data/slice/Ice/CommunicatorF.ice +0 -31
  1147. data/slice/Ice/Connection.ice +0 -516
  1148. data/slice/Ice/ConnectionF.ice +0 -33
  1149. data/slice/Ice/Current.ice +0 -170
  1150. data/slice/Ice/Endpoint.ice +0 -291
  1151. data/slice/Ice/EndpointF.ice +0 -43
  1152. data/slice/Ice/EndpointTypes.ice +0 -48
  1153. data/slice/Ice/FacetMap.ice +0 -36
  1154. data/slice/Ice/Identity.ice +0 -75
  1155. data/slice/Ice/ImplicitContext.ice +0 -119
  1156. data/slice/Ice/ImplicitContextF.ice +0 -30
  1157. data/slice/Ice/Instrumentation.ice +0 -509
  1158. data/slice/Ice/InstrumentationF.ice +0 -38
  1159. data/slice/Ice/LocalException.ice +0 -1040
  1160. data/slice/Ice/Locator.ice +0 -239
  1161. data/slice/Ice/LocatorF.ice +0 -32
  1162. data/slice/Ice/Logger.ice +0 -99
  1163. data/slice/Ice/LoggerF.ice +0 -31
  1164. data/slice/Ice/Metrics.ice +0 -436
  1165. data/slice/Ice/ObjectAdapter.ice +0 -710
  1166. data/slice/Ice/ObjectAdapterF.ice +0 -31
  1167. data/slice/Ice/ObjectFactory.ice +0 -71
  1168. data/slice/Ice/Plugin.ice +0 -131
  1169. data/slice/Ice/PluginF.ice +0 -36
  1170. data/slice/Ice/Process.ice +0 -64
  1171. data/slice/Ice/ProcessF.ice +0 -31
  1172. data/slice/Ice/Properties.ice +0 -244
  1173. data/slice/Ice/PropertiesAdmin.ice +0 -87
  1174. data/slice/Ice/PropertiesF.ice +0 -32
  1175. data/slice/Ice/RemoteLogger.ice +0 -226
  1176. data/slice/Ice/Router.ice +0 -103
  1177. data/slice/Ice/RouterF.ice +0 -31
  1178. data/slice/Ice/ServantLocator.ice +0 -136
  1179. data/slice/Ice/ServantLocatorF.ice +0 -31
  1180. data/slice/Ice/SliceChecksumDict.ice +0 -36
  1181. data/slice/Ice/ValueFactory.ice +0 -133
  1182. data/slice/Ice/Version.ice +0 -51
  1183. data/slice/IceBT/ConnectionInfo.ice +0 -59
  1184. data/slice/IceBT/EndpointInfo.ice +0 -57
  1185. data/slice/IceBT/Types.ice +0 -45
  1186. data/slice/IceBox/IceBox.ice +0 -216
  1187. data/slice/IceDiscovery/IceDiscovery.ice +0 -98
  1188. data/slice/IceGrid/Admin.ice +0 -1957
  1189. data/slice/IceGrid/Descriptor.ice +0 -1094
  1190. data/slice/IceGrid/Exception.ice +0 -396
  1191. data/slice/IceGrid/FileParser.ice +0 -72
  1192. data/slice/IceGrid/PluginFacade.ice +0 -329
  1193. data/slice/IceGrid/Registry.ice +0 -269
  1194. data/slice/IceGrid/Session.ice +0 -128
  1195. data/slice/IceGrid/UserAccountMapper.ice +0 -69
  1196. data/slice/IceIAP/ConnectionInfo.ice +0 -74
  1197. data/slice/IceIAP/EndpointInfo.ice +0 -68
  1198. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +0 -83
  1199. data/slice/IcePatch2/FileInfo.ice +0 -85
  1200. data/slice/IcePatch2/FileServer.ice +0 -191
  1201. data/slice/IceSSL/ConnectionInfo.ice +0 -54
  1202. data/slice/IceSSL/ConnectionInfoF.ice +0 -31
  1203. data/slice/IceSSL/EndpointInfo.ice +0 -45
  1204. data/slice/IceStorm/IceStorm.ice +0 -414
  1205. data/slice/IceStorm/Metrics.ice +0 -83
  1206. /data/{ext → dist}/ice/mcpp/config.h +0 -0
  1207. /data/{ext → dist}/ice/mcpp/configed.H +0 -0
  1208. /data/{ext → dist}/ice/mcpp/directive.c +0 -0
  1209. /data/{ext → dist}/ice/mcpp/eval.c +0 -0
  1210. /data/{ext → dist}/ice/mcpp/expand.c +0 -0
  1211. /data/{ext → dist}/ice/mcpp/mbchar.c +0 -0
  1212. /data/{ext → dist}/ice/mcpp/mcpp_lib.h +0 -0
  1213. /data/{ext/ice/mcpp/main.c → dist/ice/mcpp/mcpp_main.c} +0 -0
  1214. /data/{ext → dist}/ice/mcpp/mcpp_out.h +0 -0
  1215. /data/{ext → dist}/ice/mcpp/support.c +0 -0
  1216. /data/{ext → dist}/ice/mcpp/system.H +0 -0
@@ -0,0 +1,1437 @@
1
+ // Copyright (c) ZeroC, Inc.
2
+
3
+ #include "SchannelEngine.h"
4
+ #include "../FileUtil.h"
5
+ #include "DistinguishedName.h"
6
+ #include "Ice/Communicator.h"
7
+ #include "Ice/LocalExceptions.h"
8
+ #include "Ice/Logger.h"
9
+ #include "Ice/StringConverter.h"
10
+ #include "Ice/StringUtil.h"
11
+ #include "Ice/UUID.h"
12
+ #include "SSLUtil.h"
13
+ #include "SchannelTransceiverI.h"
14
+
15
+ #include <wincrypt.h>
16
+
17
+ #include <iostream>
18
+ #include <mutex>
19
+
20
+ #ifndef SECURITY_FLAG_IGNORE_CERT_CN_INVALID
21
+ # define SECURITY_FLAG_IGNORE_CERT_CN_INVALID 0x00001000
22
+ #endif
23
+
24
+ //
25
+ // CALG_ECDH_EPHEM algorithm constant is not defined in older version of the SDK headers
26
+ //
27
+ // https://msdn.microsoft.com/en-us/library/windows/desktop/aa375549(v=vs.85).aspx
28
+ //
29
+
30
+ const int ICESSL_CALG_ECDH_EPHEM = 0x0000AE06;
31
+
32
+ using namespace std;
33
+ using namespace Ice;
34
+ using namespace IceInternal;
35
+ using namespace Ice::SSL;
36
+
37
+ namespace
38
+ {
39
+ mutex globalMutex;
40
+
41
+ string errorStatusToString(DWORD errorStatus)
42
+ {
43
+ assert(errorStatus != CERT_TRUST_NO_ERROR);
44
+ ostringstream os;
45
+ os << "SSL transport: certificate verification failure:";
46
+
47
+ if (errorStatus & CERT_TRUST_IS_NOT_TIME_VALID)
48
+ {
49
+ os << "\n - This certificate or one of the certificates in the certificate chain is not time valid.";
50
+ }
51
+
52
+ if (errorStatus & CERT_TRUST_IS_REVOKED)
53
+ {
54
+ os << "\n - Trust for this certificate or one of the certificates in the certificate chain has been "
55
+ "revoked.";
56
+ }
57
+
58
+ if (errorStatus & CERT_TRUST_IS_NOT_SIGNATURE_VALID)
59
+ {
60
+ os << "\n - The certificate or one of the certificates in the certificate chain does not have a valid "
61
+ "signature.";
62
+ }
63
+
64
+ if (errorStatus & CERT_TRUST_IS_NOT_VALID_FOR_USAGE)
65
+ {
66
+ os << "\n - The certificate or certificate chain is not valid for its proposed usage.";
67
+ }
68
+
69
+ if (errorStatus & CERT_TRUST_IS_UNTRUSTED_ROOT)
70
+ {
71
+ os << "\n - The certificate or certificate chain is based on an untrusted root.";
72
+ }
73
+
74
+ if (errorStatus & CERT_TRUST_REVOCATION_STATUS_UNKNOWN)
75
+ {
76
+ os << "\n - The revocation status of the certificate or one of the certificates in the certificate "
77
+ "chain is unknown.";
78
+ }
79
+
80
+ if (errorStatus & CERT_TRUST_IS_CYCLIC)
81
+ {
82
+ os << "\n - One of the certificates in the chain was issued by a certificate in the chain.";
83
+ }
84
+
85
+ if (errorStatus & CERT_TRUST_INVALID_EXTENSION)
86
+ {
87
+ os << "\n - One of the certificates has an extension that is not valid.";
88
+ }
89
+
90
+ if (errorStatus & CERT_TRUST_INVALID_POLICY_CONSTRAINTS)
91
+ {
92
+ os << "\n - The certificate or one of the certificates in the certificate chain has a policy "
93
+ "constraints extension, and one of the issued certificates has a disallowed policy mapping "
94
+ "extension or does not have a required issuance policies extension.";
95
+ }
96
+
97
+ if (errorStatus & CERT_TRUST_INVALID_BASIC_CONSTRAINTS)
98
+ {
99
+ os << "\n - The certificate or one of the certificates in the certificate chain has a basic "
100
+ "constraints "
101
+ "extension, and either the certificate cannot be used to issue other certificates, or the chain "
102
+ "path length has been exceeded.";
103
+ }
104
+
105
+ if (errorStatus & CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT)
106
+ {
107
+ os << "\n - The certificate or one of the certificates in the certificate chain has a name "
108
+ "constraints extension that contains unsupported fields.";
109
+ }
110
+
111
+ if (errorStatus & CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT)
112
+ {
113
+ os << "\n - The certificate or one of the certificates in the certificate chain has a name "
114
+ "constraints extension and a name constraint is missing for one of the name choices in the end "
115
+ "certificate.";
116
+ }
117
+
118
+ if (errorStatus & CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT)
119
+ {
120
+ os << "\n - The certificate or one of the certificates in the certificate chain has a name "
121
+ "constraints extension, and there is not a permitted name constraint for one of the name choices "
122
+ "in the end certificate.";
123
+ }
124
+
125
+ if (errorStatus & CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT)
126
+ {
127
+ os << "\n - The certificate or one of the certificates in the certificate chain has a name "
128
+ "constraints extension, and one of the name choices in the end certificate is explicitly "
129
+ "excluded.";
130
+ }
131
+
132
+ if (errorStatus & CERT_TRUST_IS_OFFLINE_REVOCATION)
133
+ {
134
+ os << "\n - The revocation status of the certificate or one of the certificates in the certificate "
135
+ "chain is either offline or stale.";
136
+ }
137
+
138
+ if (errorStatus & CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY)
139
+ {
140
+ os << "\n - The end certificate does not have any resultant issuance policies, and one of the issuing "
141
+ "certification authority certificates has a policy constraints extension requiring it.";
142
+ }
143
+
144
+ if (errorStatus & CERT_TRUST_IS_EXPLICIT_DISTRUST)
145
+ {
146
+ os << "\n - The certificate is explicitly distrusted.";
147
+ }
148
+
149
+ if (errorStatus & CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT)
150
+ {
151
+ os << "\n - The certificate does not support a critical extension.";
152
+ }
153
+
154
+ if (errorStatus & CERT_TRUST_HAS_WEAK_SIGNATURE)
155
+ {
156
+ os << "\n - The certificate has not been strong signed.";
157
+ }
158
+
159
+ if (errorStatus & CERT_TRUST_IS_PARTIAL_CHAIN)
160
+ {
161
+ os << "\n - The certificate chain is not complete.";
162
+ }
163
+
164
+ if (errorStatus & CERT_TRUST_CTL_IS_NOT_TIME_VALID)
165
+ {
166
+ os << "\n - A certificate trust list (CTL) used to create this chain was not time valid.";
167
+ }
168
+
169
+ if (errorStatus & CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID)
170
+ {
171
+ os << "\n - A CTL used to create this chain did not have a valid signature.";
172
+ }
173
+
174
+ if (errorStatus & CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE)
175
+ {
176
+ os << "\n - A CTL used to create this chain is not valid for this usage.";
177
+ }
178
+
179
+ return os.str();
180
+ }
181
+
182
+ string policyStatusToString(DWORD policyStatus)
183
+ {
184
+ assert(policyStatus);
185
+ ostringstream os;
186
+ switch (policyStatus)
187
+ {
188
+ case TRUST_E_CERT_SIGNATURE:
189
+ {
190
+ os << "The signature of the certificate cannot be verified.";
191
+ break;
192
+ }
193
+ case CRYPT_E_REVOKED:
194
+ {
195
+ os << "The certificate or signature has been revoked.";
196
+ break;
197
+ }
198
+ case CERT_E_UNTRUSTEDROOT:
199
+ {
200
+ os << "A certification chain processed correctly but terminated in a root certificate that is not "
201
+ "trusted by "
202
+ "the trust provider.";
203
+ break;
204
+ }
205
+ case CERT_E_UNTRUSTEDTESTROOT:
206
+ {
207
+ os << "The root certificate is a testing certificate, and policy settings disallow test certificates.";
208
+ break;
209
+ }
210
+ case CERT_E_CHAINING:
211
+ {
212
+ os << "A chain of certificates was not correctly created.";
213
+ break;
214
+ }
215
+ case CERT_E_WRONG_USAGE:
216
+ {
217
+ os << "The certificate is not valid for the requested usage.";
218
+ break;
219
+ }
220
+ case CERT_E_EXPIRED:
221
+ {
222
+ os << "A required certificate is not within its validity period.";
223
+ break;
224
+ }
225
+ case CERT_E_INVALID_NAME:
226
+ {
227
+ os << "The certificate has an invalid name. Either the name is not included in the permitted list, or "
228
+ "it is "
229
+ "explicitly excluded.";
230
+ break;
231
+ }
232
+ case CERT_E_INVALID_POLICY:
233
+ {
234
+ os << "The certificate has invalid policy.";
235
+ break;
236
+ }
237
+ case TRUST_E_BASIC_CONSTRAINTS:
238
+ {
239
+ os << "The basic constraints of the certificate are not valid, or they are missing.";
240
+ break;
241
+ }
242
+ case CERT_E_CRITICAL:
243
+ {
244
+ os << "The certificate is being used for a purpose other than the purpose specified by its CA.";
245
+ break;
246
+ }
247
+ case CERT_E_VALIDITYPERIODNESTING:
248
+ {
249
+ os << "The validity periods of the certification chain do not nest correctly.";
250
+ break;
251
+ }
252
+ case CRYPT_E_NO_REVOCATION_CHECK:
253
+ {
254
+ os << "The revocation function was unable to check revocation for the certificate.";
255
+ break;
256
+ }
257
+ case CRYPT_E_REVOCATION_OFFLINE:
258
+ {
259
+ os << "The revocation function was unable to check revocation because the revocation server was "
260
+ "offline.";
261
+ break;
262
+ }
263
+ case CERT_E_CN_NO_MATCH:
264
+ {
265
+ os << "The certificate's CN name does not match the passed value.";
266
+ break;
267
+ }
268
+ case CERT_E_PURPOSE:
269
+ {
270
+ os << "The certificate is being used for a purpose other than the purpose specified by its CA.";
271
+ break;
272
+ }
273
+ case CERT_E_REVOKED:
274
+ {
275
+ os << "The certificate has been explicitly revoked by the issuer.";
276
+ break;
277
+ }
278
+ case CERT_E_REVOCATION_FAILURE:
279
+ {
280
+ os << "The revocation process could not continue, and the certificate could not be checked.";
281
+ break;
282
+ }
283
+ case CERT_E_ROLE:
284
+ {
285
+ os << "The certificate does not have a valid role.";
286
+ break;
287
+ }
288
+ default:
289
+ {
290
+ os << "Unknown policy status: " << policyStatus;
291
+ break;
292
+ }
293
+ }
294
+ return os.str();
295
+ }
296
+
297
+ void addMatchingCertificates(HCERTSTORE source, HCERTSTORE target, DWORD findType, const void* findParam)
298
+ {
299
+ PCCERT_CONTEXT next = 0;
300
+ do
301
+ {
302
+ if ((next = CertFindCertificateInStore(
303
+ source,
304
+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
305
+ 0,
306
+ findType,
307
+ findParam,
308
+ next)) != 0)
309
+ {
310
+ if (!CertAddCertificateContextToStore(target, next, CERT_STORE_ADD_ALWAYS, 0))
311
+ {
312
+ throw InitializationException(
313
+ __FILE__,
314
+ __LINE__,
315
+ "SSL transport: error adding certificate to store:\n" + IceInternal::lastErrorToString());
316
+ }
317
+ }
318
+ } while (next);
319
+ }
320
+
321
+ vector<PCCERT_CONTEXT>
322
+ findCertificates(const string& location, const string& storeName, const string& value, vector<HCERTSTORE>& stores)
323
+ {
324
+ HCERTSTORE store = CertOpenStore(
325
+ CERT_STORE_PROV_SYSTEM,
326
+ 0,
327
+ 0,
328
+ location == "CurrentUser" ? CERT_SYSTEM_STORE_CURRENT_USER : CERT_SYSTEM_STORE_LOCAL_MACHINE,
329
+ Ice::stringToWstring(storeName).c_str());
330
+
331
+ if (!store)
332
+ {
333
+ throw InitializationException(
334
+ __FILE__,
335
+ __LINE__,
336
+ "SSL transport: failed to open certificate store '" + storeName + "':\n" +
337
+ IceInternal::lastErrorToString());
338
+ }
339
+
340
+ //
341
+ // Start with all of the certificates in the collection and filter as necessary.
342
+ //
343
+ // - If the value is "*", return all certificates.
344
+ // - Otherwise, search using key:value pairs. The following keys are supported:
345
+ //
346
+ // Issuer
347
+ // IssuerDN
348
+ // Serial
349
+ // Subject
350
+ // SubjectDN
351
+ // SubjectKeyId
352
+ // Thumbprint
353
+ //
354
+ // A value must be enclosed in single or double quotes if it contains whitespace.
355
+ //
356
+ HCERTSTORE tmpStore = 0;
357
+ try
358
+ {
359
+ if (value != "*")
360
+ {
361
+ if (value.find(':', 0) == string::npos)
362
+ {
363
+ throw InitializationException(__FILE__, __LINE__, "SSL transport: no key in '" + value + "'");
364
+ }
365
+ size_t start = 0;
366
+ size_t pos;
367
+ while ((pos = value.find(':', start)) != string::npos)
368
+ {
369
+ string field = IceInternal::toUpper(IceInternal::trim(value.substr(start, pos - start)));
370
+ if (field != "SUBJECT" && field != "SUBJECTDN" && field != "ISSUER" && field != "ISSUERDN" &&
371
+ field != "THUMBPRINT" && field != "SUBJECTKEYID" && field != "SERIAL")
372
+ {
373
+ throw InitializationException(
374
+ __FILE__,
375
+ __LINE__,
376
+ "SSL transport: unknown key in '" + value + "'");
377
+ }
378
+
379
+ start = pos + 1;
380
+ while (start < value.size() && (value[start] == ' ' || value[start] == '\t'))
381
+ {
382
+ ++start;
383
+ }
384
+
385
+ if (start == value.size())
386
+ {
387
+ throw InitializationException(
388
+ __FILE__,
389
+ __LINE__,
390
+ "SSL transport: missing argument in '" + value + "'");
391
+ }
392
+
393
+ string arg;
394
+ if (value[start] == '"' || value[start] == '\'')
395
+ {
396
+ size_t end = start;
397
+ ++end;
398
+ while (end < value.size())
399
+ {
400
+ if (value[end] == value[start] && value[end - 1] != '\\')
401
+ {
402
+ break;
403
+ }
404
+ ++end;
405
+ }
406
+ if (end == value.size() || value[end] != value[start])
407
+ {
408
+ throw InitializationException(
409
+ __FILE__,
410
+ __LINE__,
411
+ "SSL transport: unmatched quote in '" + value + "'");
412
+ }
413
+ ++start;
414
+ arg = value.substr(start, end - start);
415
+ start = end + 1;
416
+ }
417
+ else
418
+ {
419
+ size_t end = value.find_first_of(" \t", start);
420
+ if (end == string::npos)
421
+ {
422
+ arg = value.substr(start);
423
+ start = value.size();
424
+ }
425
+ else
426
+ {
427
+ arg = value.substr(start, end - start);
428
+ start = end + 1;
429
+ }
430
+ }
431
+
432
+ tmpStore = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0, 0, 0);
433
+ if (!tmpStore)
434
+ {
435
+ throw InitializationException(
436
+ __FILE__,
437
+ __LINE__,
438
+ "SSL transport: error adding certificate to store:\n" + IceInternal::lastErrorToString());
439
+ }
440
+
441
+ if (field == "SUBJECT" || field == "ISSUER")
442
+ {
443
+ const wstring argW = Ice::stringToWstring(arg);
444
+ DWORD findType = field == "SUBJECT" ? CERT_FIND_SUBJECT_STR : CERT_FIND_ISSUER_STR;
445
+ addMatchingCertificates(store, tmpStore, findType, argW.c_str());
446
+ }
447
+ else if (field == "SUBJECTDN" || field == "ISSUERDN")
448
+ {
449
+ const wstring argW = Ice::stringToWstring(arg);
450
+ DWORD flags[] = {
451
+ CERT_OID_NAME_STR,
452
+ CERT_OID_NAME_STR | CERT_NAME_STR_REVERSE_FLAG,
453
+ CERT_OID_NAME_STR | CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG,
454
+ CERT_OID_NAME_STR | CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG | CERT_NAME_STR_REVERSE_FLAG};
455
+ for (size_t i = 0; i < sizeof(flags) / sizeof(DWORD); ++i)
456
+ {
457
+ DWORD length = 0;
458
+ if (!CertStrToNameW(X509_ASN_ENCODING, argW.c_str(), flags[i], 0, 0, &length, 0))
459
+ {
460
+ throw InitializationException(
461
+ __FILE__,
462
+ __LINE__,
463
+ "SSL transport: invalid value '" + value + "' for `IceSSL.FindCert' property:\n" +
464
+ IceInternal::lastErrorToString());
465
+ }
466
+
467
+ vector<BYTE> buffer(length);
468
+ if (!CertStrToNameW(X509_ASN_ENCODING, argW.c_str(), flags[i], 0, &buffer[0], &length, 0))
469
+ {
470
+ throw InitializationException(
471
+ __FILE__,
472
+ __LINE__,
473
+ "SSL transport: invalid value '" + value + "' for `IceSSL.FindCert' property:\n" +
474
+ IceInternal::lastErrorToString());
475
+ }
476
+
477
+ CERT_NAME_BLOB name = {length, &buffer[0]};
478
+
479
+ DWORD findType = field == "SUBJECTDN" ? CERT_FIND_SUBJECT_NAME : CERT_FIND_ISSUER_NAME;
480
+ addMatchingCertificates(store, tmpStore, findType, &name);
481
+ }
482
+ }
483
+ else if (field == "THUMBPRINT" || field == "SUBJECTKEYID")
484
+ {
485
+ vector<BYTE> buffer;
486
+ if (!parseBytes(arg, buffer))
487
+ {
488
+ throw InitializationException(
489
+ __FILE__,
490
+ __LINE__,
491
+ "SSL transport: invalid 'IceSSL.FindCert' property: can't decode the value");
492
+ }
493
+
494
+ CRYPT_HASH_BLOB hash = {static_cast<DWORD>(buffer.size()), &buffer[0]};
495
+ DWORD findType = field == "THUMBPRINT" ? CERT_FIND_HASH : CERT_FIND_KEY_IDENTIFIER;
496
+ addMatchingCertificates(store, tmpStore, findType, &hash);
497
+ }
498
+ else if (field == "SERIAL")
499
+ {
500
+ vector<BYTE> buffer;
501
+ if (!parseBytes(arg, buffer))
502
+ {
503
+ throw InitializationException(
504
+ __FILE__,
505
+ __LINE__,
506
+ "SSL transport: invalid value '" + value + "' for `IceSSL.FindCert' property");
507
+ }
508
+
509
+ // CRYPT_INTEGER_BLOB stores serial data in little-endian format, parseBytes returns big-endian
510
+ // data.
511
+ std::vector<BYTE> serialData(buffer.size());
512
+ std::reverse_copy(std::begin(buffer), std::end(buffer), std::begin(serialData));
513
+
514
+ CRYPT_INTEGER_BLOB serial = {static_cast<DWORD>(serialData.size()), &serialData[0]};
515
+ PCCERT_CONTEXT next = nullptr;
516
+ do
517
+ {
518
+ if ((next = CertFindCertificateInStore(
519
+ store,
520
+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
521
+ 0,
522
+ CERT_FIND_ANY,
523
+ 0,
524
+ next)) != 0)
525
+ {
526
+ if (CertCompareIntegerBlob(&serial, &next->pCertInfo->SerialNumber))
527
+ {
528
+ if (!CertAddCertificateContextToStore(tmpStore, next, CERT_STORE_ADD_ALWAYS, 0))
529
+ {
530
+ throw InitializationException(
531
+ __FILE__,
532
+ __LINE__,
533
+ "SSL transport: error adding certificate to store:\n" +
534
+ IceInternal::lastErrorToString());
535
+ }
536
+ }
537
+ }
538
+ } while (next);
539
+ }
540
+ CertCloseStore(store, 0);
541
+ store = tmpStore;
542
+ }
543
+ }
544
+ }
545
+ catch (...)
546
+ {
547
+ if (store && store != tmpStore)
548
+ {
549
+ CertCloseStore(store, 0);
550
+ }
551
+
552
+ if (tmpStore)
553
+ {
554
+ CertCloseStore(tmpStore, 0);
555
+ tmpStore = nullptr;
556
+ }
557
+ throw;
558
+ }
559
+
560
+ vector<PCCERT_CONTEXT> certs;
561
+ if (store)
562
+ {
563
+ PCCERT_CONTEXT next = nullptr;
564
+ do
565
+ {
566
+ if ((next = CertFindCertificateInStore(
567
+ store,
568
+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
569
+ 0,
570
+ CERT_FIND_ANY,
571
+ 0,
572
+ next)) != 0)
573
+ {
574
+ certs.push_back(next);
575
+ }
576
+ } while (next);
577
+ stores.push_back(store);
578
+ }
579
+ return certs;
580
+ }
581
+
582
+ void addCertificatesToStore(const string& file, HCERTSTORE store, PCCERT_CONTEXT* cert = nullptr)
583
+ {
584
+ vector<char> buffer;
585
+ readFile(file, buffer);
586
+ if (buffer.empty())
587
+ {
588
+ ostringstream os;
589
+ os << "SSL transport: certificate file is empty: '" << file << "'";
590
+ throw InitializationException(__FILE__, __LINE__, os.str());
591
+ }
592
+
593
+ string strbuf(buffer.begin(), buffer.end());
594
+ string::size_type size, startpos, endpos = 0;
595
+ bool first = true;
596
+ while (true)
597
+ {
598
+ startpos = strbuf.find("-----BEGIN CERTIFICATE-----", endpos);
599
+ if (startpos != string::npos)
600
+ {
601
+ endpos = strbuf.find("-----END CERTIFICATE-----", startpos);
602
+ size = endpos - startpos + sizeof("-----END CERTIFICATE-----");
603
+ }
604
+ else if (first)
605
+ {
606
+ startpos = 0;
607
+ endpos = string::npos;
608
+ size = strbuf.size();
609
+ }
610
+ else
611
+ {
612
+ break;
613
+ }
614
+
615
+ vector<BYTE> outBuffer;
616
+ outBuffer.resize(size);
617
+ DWORD outLength = static_cast<DWORD>(outBuffer.size());
618
+ if (!CryptStringToBinary(
619
+ &buffer[startpos],
620
+ static_cast<DWORD>(size),
621
+ CRYPT_STRING_ANY,
622
+ &outBuffer[0],
623
+ &outLength,
624
+ 0,
625
+ 0))
626
+ {
627
+ assert(GetLastError() != ERROR_MORE_DATA); // Base64 data should always be bigger than binary
628
+ throw InitializationException(
629
+ __FILE__,
630
+ __LINE__,
631
+ "SSL transport: error decoding certificate:\n" + lastErrorToString());
632
+ }
633
+
634
+ if (!CertAddEncodedCertificateToStore(
635
+ store,
636
+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
637
+ &outBuffer[0],
638
+ outLength,
639
+ CERT_STORE_ADD_NEW,
640
+ first ? cert : 0))
641
+ {
642
+ if (GetLastError() != static_cast<DWORD>(CRYPT_E_EXISTS))
643
+ {
644
+ throw InitializationException(
645
+ __FILE__,
646
+ __LINE__,
647
+ "SSL transport: error decoding certificate:\n" + lastErrorToString());
648
+ }
649
+ }
650
+
651
+ first = false;
652
+ }
653
+ }
654
+
655
+ void verifyPeerCertName(
656
+ PCCERT_CONTEXT cert,
657
+ const string& address,
658
+ const Ice::LoggerPtr& logger,
659
+ int traceLevel,
660
+ const string& traceCategory)
661
+ {
662
+ // For an outgoing connection, we compare the proxy address (if any) against fields in the server's certificate
663
+ // (if any).
664
+
665
+ // Extract the IP addresses and the DNS names from the subject alternative names.
666
+ vector<pair<int, string>> subjectAltNames = getSubjectAltNames(cert);
667
+ vector<string> ipAddresses;
668
+ vector<string> dnsNames;
669
+ for (vector<pair<int, string>>::const_iterator p = subjectAltNames.begin(); p != subjectAltNames.end(); ++p)
670
+ {
671
+ if (p->first == AltNAmeIP)
672
+ {
673
+ ipAddresses.push_back(IceInternal::toLower(p->second));
674
+ }
675
+ else if (p->first == AltNameDNS)
676
+ {
677
+ dnsNames.push_back(IceInternal::toLower(p->second));
678
+ }
679
+ }
680
+
681
+ bool certNameOK = false;
682
+ string addrLower = IceInternal::toLower(address);
683
+ bool isIpAddress = IceInternal::isIpAddress(address);
684
+
685
+ // If address is an IP address, compare it to the subject alternative names IP address
686
+ if (isIpAddress)
687
+ {
688
+ certNameOK = find(ipAddresses.begin(), ipAddresses.end(), addrLower) != ipAddresses.end();
689
+ }
690
+ else
691
+ {
692
+ // If subjectAlt is empty compare it to the subject CN, otherwise compare it to the to the subject alt
693
+ // name dnsNames.
694
+ if (dnsNames.empty())
695
+ {
696
+ auto d = DistinguishedName(getSubjectName(cert));
697
+ string dn = IceInternal::toLower(string(d));
698
+ string cn = "cn=" + addrLower;
699
+ string::size_type pos = dn.find(cn);
700
+ if (pos != string::npos)
701
+ {
702
+ // Ensure we match the entire common name.
703
+ certNameOK = (pos + cn.size() == dn.size()) || (dn[pos + cn.size()] == ',');
704
+ }
705
+ }
706
+ else
707
+ {
708
+ certNameOK = find(dnsNames.begin(), dnsNames.end(), addrLower) != dnsNames.end();
709
+ }
710
+ }
711
+
712
+ if (!certNameOK)
713
+ {
714
+ ostringstream os;
715
+ os << "SSL transport: certificate verification failure "
716
+ << (isIpAddress ? "IP address mismatch" : "Hostname mismatch");
717
+ string msg = os.str();
718
+ if (traceLevel >= 1)
719
+ {
720
+ Trace out(logger, traceCategory);
721
+ out << msg;
722
+ }
723
+ throw SecurityException(__FILE__, __LINE__, msg);
724
+ }
725
+ }
726
+ }
727
+
728
+ Schannel::SSLEngine::SSLEngine(const IceInternal::InstancePtr& instance)
729
+ : Ice::SSL::SSLEngine(instance),
730
+ _rootStore(nullptr),
731
+ _chainEngine(nullptr)
732
+ {
733
+ }
734
+
735
+ void
736
+ Schannel::SSLEngine::initialize()
737
+ {
738
+ //
739
+ // BUGFIX: we use a global mutex for the initialization of Schannel to
740
+ // avoid crashes occurring with last Schannel updates see:
741
+ // https://github.com/zeroc-ice/ice/issues/242
742
+ //
743
+ lock_guard globalLock(globalMutex);
744
+
745
+ Ice::SSL::SSLEngine::initialize();
746
+
747
+ const PropertiesPtr properties = getProperties();
748
+
749
+ // Check for a default directory. We look in this directory for files mentioned in the configuration.
750
+ const string defaultDir = properties->getIceProperty("IceSSL.DefaultDir");
751
+
752
+ string certStoreLocation = properties->getIceProperty("IceSSL.CertStoreLocation");
753
+ if (certStoreLocation != "CurrentUser" && certStoreLocation != "LocalMachine")
754
+ {
755
+ getLogger()->warning(
756
+ "invalid IceSSL.CertStoreLocation value '" + certStoreLocation + "' adjusted to 'CurrentUser'");
757
+ certStoreLocation = "CurrentUser";
758
+ }
759
+
760
+ //
761
+ // Create trusted CA store with contents of IceSSL.CAs
762
+ //
763
+ string caFile = properties->getIceProperty("IceSSL.CAs");
764
+ if (!caFile.empty() || properties->getIcePropertyAsInt("IceSSL.UsePlatformCAs") <= 0)
765
+ {
766
+ _rootStore = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0, 0, 0);
767
+ if (!_rootStore)
768
+ {
769
+ throw InitializationException(
770
+ __FILE__,
771
+ __LINE__,
772
+ "SSL transport: error creating in memory certificate store:\n" + lastErrorToString());
773
+ }
774
+ }
775
+ if (!caFile.empty())
776
+ {
777
+ optional<string> resolved = resolveFilePath(caFile, defaultDir);
778
+
779
+ if (!resolved)
780
+ {
781
+ ostringstream os;
782
+ os << "SSL transport: CA certificate file not found: '" << caFile << "'";
783
+ throw InitializationException(__FILE__, __LINE__, os.str());
784
+ }
785
+
786
+ addCertificatesToStore(*resolved, _rootStore);
787
+ }
788
+
789
+ if (_rootStore)
790
+ {
791
+ //
792
+ // Create a chain engine that uses our Trusted Root Store
793
+ //
794
+ CERT_CHAIN_ENGINE_CONFIG config;
795
+ memset(&config, 0, sizeof(CERT_CHAIN_ENGINE_CONFIG));
796
+ config.cbSize = sizeof(CERT_CHAIN_ENGINE_CONFIG);
797
+ config.hExclusiveRoot = _rootStore;
798
+
799
+ //
800
+ // Build the chain using the LocalMachine registry location as opposed
801
+ // to the CurrentUser location.
802
+ //
803
+ if (certStoreLocation == "LocalMachine")
804
+ {
805
+ config.dwFlags = CERT_CHAIN_USE_LOCAL_MACHINE_STORE;
806
+ }
807
+
808
+ if (!CertCreateCertificateChainEngine(&config, &_chainEngine))
809
+ {
810
+ throw InitializationException(
811
+ __FILE__,
812
+ __LINE__,
813
+ "SSL transport: error creating certificate chain engine:\n" + lastErrorToString());
814
+ }
815
+ }
816
+ else
817
+ {
818
+ _chainEngine = (certStoreLocation == "LocalMachine") ? HCCE_LOCAL_MACHINE : HCCE_CURRENT_USER;
819
+ }
820
+
821
+ string certFile = properties->getIceProperty("IceSSL.CertFile");
822
+ string keyFile = properties->getIceProperty("IceSSL.KeyFile");
823
+ string findCert = properties->getIceProperty("IceSSL.FindCert");
824
+
825
+ if (!certFile.empty())
826
+ {
827
+ optional<string> resolved = resolveFilePath(certFile, defaultDir);
828
+
829
+ if (!resolved)
830
+ {
831
+ ostringstream os;
832
+ os << "SSL transport: certificate file not found: '" << certFile << "'";
833
+ throw InitializationException(__FILE__, __LINE__, os.str());
834
+ }
835
+ certFile = *resolved;
836
+
837
+ vector<char> buffer;
838
+ readFile(certFile, buffer);
839
+ if (buffer.empty())
840
+ {
841
+ ostringstream os;
842
+ os << "SSL transport: certificate file is empty: '" << certFile << "'";
843
+ throw InitializationException(__FILE__, __LINE__, os.str());
844
+ }
845
+
846
+ CRYPT_DATA_BLOB pfxBlob;
847
+ pfxBlob.cbData = static_cast<DWORD>(buffer.size());
848
+ pfxBlob.pbData = reinterpret_cast<BYTE*>(&buffer[0]);
849
+
850
+ PCCERT_CONTEXT cert = nullptr;
851
+ DWORD importFlags = (certStoreLocation == "LocalMachine") ? CRYPT_MACHINE_KEYSET : CRYPT_USER_KEYSET;
852
+ HCERTSTORE store = PFXImportCertStore(
853
+ &pfxBlob,
854
+ Ice::stringToWstring(properties->getIceProperty("IceSSL.Password")).c_str(),
855
+ importFlags);
856
+ int err = store ? 0 : GetLastError();
857
+
858
+ if (store)
859
+ {
860
+ // Try to find a certificate chain.
861
+ CERT_CHAIN_FIND_BY_ISSUER_PARA para;
862
+ memset(&para, 0, sizeof(CERT_CHAIN_FIND_BY_ISSUER_PARA));
863
+ para.cbSize = sizeof(CERT_CHAIN_FIND_BY_ISSUER_PARA);
864
+
865
+ PCCERT_CHAIN_CONTEXT chain = nullptr;
866
+ while (!cert)
867
+ {
868
+ chain = CertFindChainInStore(
869
+ store,
870
+ X509_ASN_ENCODING,
871
+ CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG, // Don't fetch anything from the Internet
872
+ CERT_CHAIN_FIND_BY_ISSUER,
873
+ &para,
874
+ chain);
875
+ if (!chain)
876
+ {
877
+ break; // No more chains found in the store.
878
+ }
879
+
880
+ if (chain->cChain > 0 && chain->rgpChain[0]->cElement > 0)
881
+ {
882
+ cert = CertDuplicateCertificateContext(chain->rgpChain[0]->rgpElement[0]->pCertContext);
883
+ }
884
+ CertFreeCertificateChain(chain);
885
+ }
886
+
887
+ // Check if we can find a certificate if we couldn't find a chain.
888
+ if (!cert)
889
+ {
890
+ cert = CertFindCertificateInStore(store, X509_ASN_ENCODING, 0, CERT_FIND_ANY, 0, cert);
891
+ }
892
+ if (!cert)
893
+ {
894
+ throw InitializationException(
895
+ __FILE__,
896
+ __LINE__,
897
+ "SSL transport: certificate error:\n" + lastErrorToString());
898
+ }
899
+ _allCerts.push_back(cert);
900
+ _stores.push_back(store);
901
+ }
902
+ else
903
+ {
904
+ assert(err);
905
+ if (err != CRYPT_E_BAD_ENCODE)
906
+ {
907
+ throw InitializationException(
908
+ __FILE__,
909
+ __LINE__,
910
+ "SSL transport: error decoding certificate:\n" + lastErrorToString());
911
+ }
912
+
913
+ // Try to load certificate & key as PEM files.
914
+ err = 0;
915
+ resolved = resolveFilePath(keyFile, defaultDir);
916
+ if (!resolved)
917
+ {
918
+ ostringstream os;
919
+ os << "SSL transport: key file not found: '" << keyFile << "'";
920
+ throw InitializationException(__FILE__, __LINE__, os.str());
921
+ }
922
+ keyFile = *resolved;
923
+
924
+ readFile(keyFile, buffer);
925
+ if (buffer.empty())
926
+ {
927
+ ostringstream os;
928
+ os << "SSL transport: key file is empty: '" << keyFile << "'";
929
+ throw InitializationException(__FILE__, __LINE__, os.str());
930
+ }
931
+
932
+ vector<BYTE> outBuffer;
933
+ outBuffer.resize(buffer.size());
934
+ DWORD outLength = static_cast<DWORD>(buffer.size());
935
+
936
+ // Convert the PEM encoded buffer to DER binary format.
937
+ if (!CryptStringToBinary(
938
+ &buffer[0],
939
+ static_cast<DWORD>(buffer.size()),
940
+ CRYPT_STRING_BASE64HEADER,
941
+ &outBuffer[0],
942
+ &outLength,
943
+ 0,
944
+ 0))
945
+ {
946
+ ostringstream os;
947
+ os << "SSL transport: error decoding key '" << keyFile << "':\n" << lastErrorToString();
948
+ throw InitializationException(__FILE__, __LINE__, os.str());
949
+ }
950
+
951
+ PCRYPT_PRIVATE_KEY_INFO keyInfo = nullptr;
952
+ BYTE* key = nullptr;
953
+ HCRYPTKEY hKey = 0;
954
+ try
955
+ {
956
+ // First try to decode as a PKCS#8 key, if that fails try PKCS#1.
957
+ DWORD decodedLength = 0;
958
+ if (CryptDecodeObjectEx(
959
+ X509_ASN_ENCODING,
960
+ PKCS_PRIVATE_KEY_INFO,
961
+ &outBuffer[0],
962
+ outLength,
963
+ CRYPT_DECODE_ALLOC_FLAG,
964
+ 0,
965
+ &keyInfo,
966
+ &decodedLength))
967
+ {
968
+ // Check that we are using an RSA Key.
969
+ if (strcmp(keyInfo->Algorithm.pszObjId, szOID_RSA_RSA))
970
+ {
971
+ ostringstream os;
972
+ os << "SSL transport: error unknow key algorithm: '" << keyInfo->Algorithm.pszObjId << "'";
973
+ throw InitializationException(__FILE__, __LINE__, os.str());
974
+ }
975
+
976
+ // Decode the private key BLOB.
977
+ if (!CryptDecodeObjectEx(
978
+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
979
+ PKCS_RSA_PRIVATE_KEY,
980
+ keyInfo->PrivateKey.pbData,
981
+ keyInfo->PrivateKey.cbData,
982
+ CRYPT_DECODE_ALLOC_FLAG,
983
+ 0,
984
+ &key,
985
+ &outLength))
986
+ {
987
+ ostringstream os;
988
+ os << "SSL transport: error decoding key '" + keyFile + "':\n" + lastErrorToString();
989
+ throw InitializationException(__FILE__, __LINE__, os.str());
990
+ }
991
+ LocalFree(keyInfo);
992
+ keyInfo = nullptr;
993
+ }
994
+ else
995
+ {
996
+ // Decode the private key BLOB.
997
+ if (!CryptDecodeObjectEx(
998
+ X509_ASN_ENCODING | PKCS_7_ASN_ENCODING,
999
+ PKCS_RSA_PRIVATE_KEY,
1000
+ &outBuffer[0],
1001
+ outLength,
1002
+ CRYPT_DECODE_ALLOC_FLAG,
1003
+ 0,
1004
+ &key,
1005
+ &outLength))
1006
+ {
1007
+ ostringstream os;
1008
+ os << "SSL transport: error decoding key '" << keyFile << "':\n" << lastErrorToString();
1009
+ throw InitializationException(__FILE__, __LINE__, os.str());
1010
+ }
1011
+ }
1012
+
1013
+ // Create a new RSA key set to store our key.
1014
+ const wstring keySetName = Ice::stringToWstring(generateUUID());
1015
+ HCRYPTPROV cryptProv = 0;
1016
+
1017
+ DWORD contextFlags = CRYPT_NEWKEYSET;
1018
+ if (certStoreLocation == "LocalMachine")
1019
+ {
1020
+ contextFlags |= CRYPT_MACHINE_KEYSET;
1021
+ };
1022
+
1023
+ if (!CryptAcquireContextW(
1024
+ &cryptProv,
1025
+ keySetName.c_str(),
1026
+ MS_ENHANCED_PROV_W,
1027
+ PROV_RSA_FULL,
1028
+ contextFlags))
1029
+ {
1030
+ throw InitializationException(
1031
+ __FILE__,
1032
+ __LINE__,
1033
+ "SSL transport: error acquiring cryptographic context:\n" + lastErrorToString());
1034
+ }
1035
+
1036
+ // Import the private key.
1037
+ if (!CryptImportKey(cryptProv, key, outLength, 0, 0, &hKey))
1038
+ {
1039
+ ostringstream os;
1040
+ os << "SSL transport: error importing key '" << keyFile << "':\n" + lastErrorToString();
1041
+ throw InitializationException(__FILE__, __LINE__, os.str());
1042
+ }
1043
+ LocalFree(key);
1044
+ key = nullptr;
1045
+
1046
+ CryptDestroyKey(hKey);
1047
+ hKey = 0;
1048
+
1049
+ // Create a new memory store to place the certificate.
1050
+ store = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0, 0, 0);
1051
+ if (!store)
1052
+ {
1053
+ throw InitializationException(
1054
+ __FILE__,
1055
+ __LINE__,
1056
+ "SSL transport: error creating certificate store:\n" + lastErrorToString());
1057
+ }
1058
+
1059
+ addCertificatesToStore(certFile, store, &cert);
1060
+
1061
+ // Associate key & certificate.
1062
+ CRYPT_KEY_PROV_INFO keyProvInfo;
1063
+ memset(&keyProvInfo, 0, sizeof(keyProvInfo));
1064
+ keyProvInfo.pwszContainerName = const_cast<wchar_t*>(keySetName.c_str());
1065
+ keyProvInfo.pwszProvName = const_cast<wchar_t*>(MS_DEF_PROV_W);
1066
+ keyProvInfo.dwProvType = PROV_RSA_FULL;
1067
+ keyProvInfo.dwKeySpec = AT_KEYEXCHANGE;
1068
+ if (!CertSetCertificateContextProperty(cert, CERT_KEY_PROV_INFO_PROP_ID, 0, &keyProvInfo))
1069
+ {
1070
+ throw InitializationException(
1071
+ __FILE__,
1072
+ __LINE__,
1073
+ "SSL transport: error setting certificate property:\n" + lastErrorToString());
1074
+ }
1075
+
1076
+ _importedCerts.push_back(cert);
1077
+ _allCerts.push_back(cert);
1078
+ _stores.push_back(store);
1079
+ }
1080
+ catch (...)
1081
+ {
1082
+ if (keyInfo)
1083
+ {
1084
+ LocalFree(keyInfo);
1085
+ }
1086
+
1087
+ if (key)
1088
+ {
1089
+ LocalFree(key);
1090
+ }
1091
+
1092
+ if (hKey)
1093
+ {
1094
+ CryptDestroyKey(hKey);
1095
+ }
1096
+
1097
+ if (cert)
1098
+ {
1099
+ CertFreeCertificateContext(cert);
1100
+ }
1101
+
1102
+ if (store)
1103
+ {
1104
+ CertCloseStore(store, 0);
1105
+ }
1106
+ throw;
1107
+ }
1108
+ }
1109
+ }
1110
+ else if (!findCert.empty())
1111
+ {
1112
+ string certStore = properties->getIceProperty("IceSSL.CertStore");
1113
+ vector<PCCERT_CONTEXT> certs = findCertificates(certStoreLocation, certStore, findCert, _stores);
1114
+ if (certs.empty())
1115
+ {
1116
+ throw InitializationException(__FILE__, __LINE__, "SSL transport: no certificates found");
1117
+ }
1118
+ _allCerts.insert(_allCerts.end(), certs.begin(), certs.end());
1119
+ }
1120
+ }
1121
+
1122
+ string
1123
+ Schannel::SSLEngine::getCipherName(ALG_ID cipher) const
1124
+ {
1125
+ switch (cipher)
1126
+ {
1127
+ case CALG_3DES:
1128
+ return "3DES";
1129
+ case CALG_3DES_112:
1130
+ return "3DES_112";
1131
+ case CALG_AES:
1132
+ return "AES";
1133
+ case CALG_AES_128:
1134
+ return "AES_128";
1135
+ case CALG_AES_192:
1136
+ return "AES_192";
1137
+ case CALG_AES_256:
1138
+ return "AES_256";
1139
+ case CALG_AGREEDKEY_ANY:
1140
+ return "AGREEDKEY_ANY";
1141
+ case CALG_CYLINK_MEK:
1142
+ return "CYLINK_MEK";
1143
+ case CALG_DES:
1144
+ return "DES";
1145
+ case CALG_DESX:
1146
+ return "DESX";
1147
+ case CALG_DH_EPHEM:
1148
+ return "DH_EPHEM";
1149
+ case CALG_DH_SF:
1150
+ return "DH_SF";
1151
+ case CALG_DSS_SIGN:
1152
+ return "DSS_SIGN";
1153
+ case CALG_ECDH:
1154
+ return "ECDH";
1155
+ case ICESSL_CALG_ECDH_EPHEM:
1156
+ return "ECDH_EPHEM";
1157
+ case CALG_ECDSA:
1158
+ return "ECDSA";
1159
+ case CALG_HASH_REPLACE_OWF:
1160
+ return "HASH_REPLACE_OWF";
1161
+ case CALG_HUGHES_MD5:
1162
+ return "HUGHES_MD5";
1163
+ case CALG_HMAC:
1164
+ return "HMAC";
1165
+ case CALG_MAC:
1166
+ return "MAC";
1167
+ case CALG_MD2:
1168
+ return "MD2";
1169
+ case CALG_MD4:
1170
+ return "MD4";
1171
+ case CALG_MD5:
1172
+ return "MD5";
1173
+ case CALG_NO_SIGN:
1174
+ return "NO_SIGN";
1175
+ case CALG_RC2:
1176
+ return "RC2";
1177
+ case CALG_RC4:
1178
+ return "RC4";
1179
+ case CALG_RC5:
1180
+ return "RC5";
1181
+ case CALG_RSA_KEYX:
1182
+ return "RSA_KEYX";
1183
+ case CALG_RSA_SIGN:
1184
+ return "RSA_SIGN";
1185
+ case CALG_SHA1:
1186
+ return "SHA1";
1187
+ case CALG_SHA_256:
1188
+ return "SHA_256";
1189
+ case CALG_SHA_384:
1190
+ return "SHA_384";
1191
+ case CALG_SHA_512:
1192
+ return "SHA_512";
1193
+ default:
1194
+ {
1195
+ ostringstream os;
1196
+ os << "Unknown cipher: " << cipher;
1197
+ return os.str();
1198
+ }
1199
+ }
1200
+ }
1201
+
1202
+ void
1203
+ Schannel::SSLEngine::destroy()
1204
+ {
1205
+ if (_chainEngine && _chainEngine != HCCE_CURRENT_USER && _chainEngine != HCCE_LOCAL_MACHINE)
1206
+ {
1207
+ CertFreeCertificateChainEngine(_chainEngine);
1208
+ }
1209
+
1210
+ if (_rootStore)
1211
+ {
1212
+ CertCloseStore(_rootStore, 0);
1213
+ }
1214
+
1215
+ for (vector<PCCERT_CONTEXT>::const_iterator i = _importedCerts.begin(); i != _importedCerts.end(); ++i)
1216
+ {
1217
+ // Retrieve the certificate CERT_KEY_PROV_INFO_PROP_ID property, we use the CRYPT_KEY_PROV_INFO data to remove
1218
+ // the key set associated with the certificate.
1219
+ DWORD length = 0;
1220
+ if (!CertGetCertificateContextProperty(*i, CERT_KEY_PROV_INFO_PROP_ID, 0, &length))
1221
+ {
1222
+ continue;
1223
+ }
1224
+ vector<char> buf(length);
1225
+ if (!CertGetCertificateContextProperty(*i, CERT_KEY_PROV_INFO_PROP_ID, &buf[0], &length))
1226
+ {
1227
+ continue;
1228
+ }
1229
+ CRYPT_KEY_PROV_INFO* key = reinterpret_cast<CRYPT_KEY_PROV_INFO*>(&buf[0]);
1230
+ HCRYPTPROV prov = 0;
1231
+ CryptAcquireContextW(&prov, key->pwszContainerName, key->pwszProvName, key->dwProvType, CRYPT_DELETEKEYSET);
1232
+ }
1233
+
1234
+ for (vector<PCCERT_CONTEXT>::const_iterator i = _allCerts.begin(); i != _allCerts.end(); ++i)
1235
+ {
1236
+ CertFreeCertificateContext(*i);
1237
+ }
1238
+
1239
+ for (vector<HCERTSTORE>::const_iterator i = _stores.begin(); i != _stores.end(); ++i)
1240
+ {
1241
+ CertCloseStore(*i, 0);
1242
+ }
1243
+ }
1244
+
1245
+ Ice::SSL::ClientAuthenticationOptions
1246
+ Schannel::SSLEngine::createClientAuthenticationOptions(const string& host) const
1247
+ {
1248
+ return Ice::SSL::ClientAuthenticationOptions{
1249
+ .clientCredentialsSelectionCallback =
1250
+ [this](const string&)
1251
+ {
1252
+ for (const auto& cert : _allCerts)
1253
+ {
1254
+ CertDuplicateCertificateContext(cert);
1255
+ }
1256
+
1257
+ return SCH_CREDENTIALS{
1258
+ .dwVersion = SCH_CREDENTIALS_VERSION,
1259
+ .cCreds = static_cast<DWORD>(_allCerts.size()),
1260
+ .paCred = const_cast<PCCERT_CONTEXT*>(_allCerts.size() > 0 ? &_allCerts[0] : nullptr),
1261
+ .dwFlags = SCH_CRED_NO_DEFAULT_CREDS | SCH_CRED_NO_SERVERNAME_CHECK | SCH_USE_STRONG_CRYPTO};
1262
+ },
1263
+ .trustedRootCertificates = _rootStore,
1264
+ .serverCertificateValidationCallback = [self = shared_from_this(),
1265
+ host](CtxtHandle ssl, const ConnectionInfoPtr& info) -> bool
1266
+ {
1267
+ bool ok = Schannel::SSLEngine::validationCallback(
1268
+ self->_chainEngine, // The chain engine configured to trust the provided trusted root certificates.
1269
+ ssl, // The SSL context handle.
1270
+ false, // This is an outgoing connection.
1271
+ host, // The target host.
1272
+ true, // Whether or not the peer must provide a certificate.
1273
+ self->getRevocationCheck(),
1274
+ self->getRevocationCheckCacheOnly());
1275
+ if (self->getCheckCertName() && info->peerCertificate && !host.empty())
1276
+ {
1277
+ verifyPeerCertName(
1278
+ info->peerCertificate,
1279
+ host,
1280
+ self->getLogger(),
1281
+ self->securityTraceLevel(),
1282
+ self->securityTraceCategory());
1283
+ }
1284
+ self->verifyPeer(info);
1285
+ return ok;
1286
+ }};
1287
+ }
1288
+
1289
+ Ice::SSL::ServerAuthenticationOptions
1290
+ Schannel::SSLEngine::createServerAuthenticationOptions() const
1291
+ {
1292
+ return Ice::SSL::ServerAuthenticationOptions{
1293
+ .serverCredentialsSelectionCallback =
1294
+ [this](const string&)
1295
+ {
1296
+ {
1297
+ for (const auto& cert : _allCerts)
1298
+ {
1299
+ CertDuplicateCertificateContext(cert);
1300
+ }
1301
+
1302
+ return SCH_CREDENTIALS{
1303
+ .dwVersion = SCH_CREDENTIALS_VERSION,
1304
+ .cCreds = static_cast<DWORD>(_allCerts.size()),
1305
+ .paCred = const_cast<PCCERT_CONTEXT*>(_allCerts.size() > 0 ? &_allCerts[0] : nullptr),
1306
+ // Don't set SCH_SEND_ROOT_CERT as it seems to cause problems with Java certificate validation and
1307
+ // Schannel doesn't seems to send the root certificate either way.
1308
+ .dwFlags = SCH_CRED_NO_SYSTEM_MAPPER | SCH_USE_STRONG_CRYPTO};
1309
+ }
1310
+ },
1311
+ .clientCertificateRequired = getVerifyPeer() > 0,
1312
+ .trustedRootCertificates = _rootStore,
1313
+ .clientCertificateValidationCallback =
1314
+ [self = shared_from_this()](CtxtHandle ssl, const ConnectionInfoPtr& info) -> bool
1315
+ {
1316
+ bool ok = Schannel::SSLEngine::validationCallback(
1317
+ self->_chainEngine, // The chain engine configured to trust the provided trusted root certificates.
1318
+ ssl, // The SSL context handle.
1319
+ true, // This is an incoming connection.
1320
+ "", // The target host, empty for incoming connections.
1321
+ self->getVerifyPeer() > 1, // Whether or not the peer must provide a certificate.
1322
+ self->getRevocationCheck(),
1323
+ self->getRevocationCheckCacheOnly());
1324
+ self->verifyPeer(info);
1325
+ return ok;
1326
+ }};
1327
+ }
1328
+
1329
+ namespace
1330
+ {
1331
+ struct ScopedCertChainContext
1332
+ {
1333
+ ScopedCertChainContext(PCCERT_CHAIN_CONTEXT chain) : _chain(chain) {}
1334
+ ~ScopedCertChainContext() { CertFreeCertificateChain(_chain); }
1335
+ PCCERT_CHAIN_CONTEXT _chain;
1336
+ };
1337
+ }
1338
+
1339
+ bool
1340
+ Schannel::SSLEngine::validationCallback(
1341
+ HCERTCHAINENGINE chainEngine,
1342
+ CtxtHandle ssl,
1343
+ bool incoming,
1344
+ const string& host,
1345
+ bool certificateRequired,
1346
+ int revocationCheck,
1347
+ bool revocationCheckCacheOnly)
1348
+ {
1349
+ // Build the peer certificate chain and verify it.
1350
+ PCCERT_CONTEXT cert = nullptr;
1351
+ SECURITY_STATUS err = QueryContextAttributes(&ssl, SECPKG_ATTR_REMOTE_CERT_CONTEXT, &cert);
1352
+
1353
+ if (err && (err != SEC_E_NO_CREDENTIALS || certificateRequired))
1354
+ {
1355
+ ostringstream os;
1356
+ os << "SSL transport: certificate verification failure:\n" << IceInternal::errorToString(err);
1357
+ throw SecurityException(__FILE__, __LINE__, os.str());
1358
+ }
1359
+
1360
+ if (cert) // Verify the remote certificate
1361
+ {
1362
+ ScopedCertificate scopedCertificate(cert);
1363
+ CERT_CHAIN_PARA chainP;
1364
+ memset(&chainP, 0, sizeof(chainP));
1365
+ chainP.cbSize = sizeof(chainP);
1366
+
1367
+ string trustError;
1368
+ PCCERT_CHAIN_CONTEXT certChain;
1369
+ DWORD dwFlags = 0;
1370
+ if (revocationCheck > 0)
1371
+ {
1372
+ if (revocationCheckCacheOnly)
1373
+ {
1374
+ // Disable network I/O for revocation checks.
1375
+ dwFlags = CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY | CERT_CHAIN_DISABLE_AIA;
1376
+ }
1377
+
1378
+ dwFlags |=
1379
+ (revocationCheck == 1 ? CERT_CHAIN_REVOCATION_CHECK_END_CERT
1380
+ : CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT);
1381
+ }
1382
+
1383
+ if (!CertGetCertificateChain(
1384
+ chainEngine,
1385
+ cert,
1386
+ nullptr,
1387
+ cert->hCertStore,
1388
+ &chainP,
1389
+ dwFlags,
1390
+ nullptr,
1391
+ &certChain))
1392
+ {
1393
+ ostringstream os;
1394
+ os << "SSL transport: certificate verification failure:\n" << lastErrorToString();
1395
+ throw SecurityException(__FILE__, __LINE__, os.str());
1396
+ }
1397
+ ScopedCertChainContext scopedChainContext(certChain);
1398
+
1399
+ DWORD errorStatus = certChain->TrustStatus.dwErrorStatus;
1400
+ if (errorStatus != CERT_TRUST_NO_ERROR)
1401
+ {
1402
+ throw SecurityException(__FILE__, __LINE__, errorStatusToString(errorStatus));
1403
+ }
1404
+
1405
+ SSL_EXTRA_CERT_CHAIN_POLICY_PARA extraPolicyPara;
1406
+ memset(&extraPolicyPara, 0, sizeof(extraPolicyPara));
1407
+ extraPolicyPara.cbSize = sizeof(extraPolicyPara);
1408
+ extraPolicyPara.dwAuthType = incoming ? AUTHTYPE_CLIENT : AUTHTYPE_SERVER;
1409
+ // Disable because the policy only matches the CN of the certificate, not the SAN.
1410
+ extraPolicyPara.fdwChecks = SECURITY_FLAG_IGNORE_CERT_CN_INVALID;
1411
+ extraPolicyPara.pwszServerName = const_cast<wchar_t*>(Ice::stringToWstring(host).c_str());
1412
+
1413
+ CERT_CHAIN_POLICY_PARA policyPara;
1414
+ memset(&policyPara, 0, sizeof(policyPara));
1415
+ policyPara.cbSize = sizeof(policyPara);
1416
+ policyPara.pvExtraPolicyPara = &extraPolicyPara;
1417
+
1418
+ CERT_CHAIN_POLICY_STATUS policyStatus;
1419
+ memset(&policyStatus, 0, sizeof(policyStatus));
1420
+ policyStatus.cbSize = sizeof(policyStatus);
1421
+
1422
+ if (!CertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_SSL, certChain, &policyPara, &policyStatus))
1423
+ {
1424
+ ostringstream os;
1425
+ os << "SSL transport: certificate verification failure:\n" << lastErrorToString();
1426
+ throw SecurityException(__FILE__, __LINE__, os.str());
1427
+ }
1428
+
1429
+ if (policyStatus.dwError)
1430
+ {
1431
+ ostringstream os;
1432
+ os << "SSL transport: certificate verification failure:\n" << policyStatusToString(policyStatus.dwError);
1433
+ throw SecurityException(__FILE__, __LINE__, os.str());
1434
+ }
1435
+ }
1436
+ return true;
1437
+ }