grpc 0.13.1 → 0.14.1.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (724) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2098 -828
  3. data/include/grpc/byte_buffer.h +1 -1
  4. data/include/grpc/byte_buffer_reader.h +1 -20
  5. data/include/grpc/census.h +4 -4
  6. data/include/grpc/compression.h +6 -5
  7. data/include/grpc/grpc.h +31 -20
  8. data/include/grpc/grpc_security.h +17 -31
  9. data/include/grpc/grpc_security_constants.h +114 -0
  10. data/include/grpc/grpc_zookeeper.h +1 -1
  11. data/include/grpc/impl/codegen/alloc.h +1 -1
  12. data/include/grpc/impl/codegen/atm.h +1 -1
  13. data/include/grpc/impl/codegen/atm_gcc_atomic.h +1 -1
  14. data/include/grpc/impl/codegen/atm_gcc_sync.h +1 -1
  15. data/include/grpc/impl/codegen/atm_win32.h +1 -1
  16. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  17. data/{src/core/client_config/lb_policies/round_robin.h → include/grpc/impl/codegen/byte_buffer_reader.h} +19 -8
  18. data/include/grpc/impl/codegen/grpc_types.h +20 -3
  19. data/include/grpc/impl/codegen/log.h +9 -2
  20. data/include/grpc/impl/codegen/port_platform.h +102 -17
  21. data/include/grpc/impl/codegen/propagation_bits.h +3 -3
  22. data/include/grpc/impl/codegen/slice.h +3 -3
  23. data/include/grpc/impl/codegen/slice_buffer.h +3 -3
  24. data/include/grpc/impl/codegen/status.h +1 -1
  25. data/include/grpc/impl/codegen/sync_generic.h +1 -1
  26. data/include/grpc/impl/codegen/sync_posix.h +1 -1
  27. data/include/grpc/impl/codegen/sync_win32.h +1 -1
  28. data/include/grpc/impl/codegen/time.h +3 -3
  29. data/include/grpc/status.h +1 -1
  30. data/include/grpc/support/alloc.h +1 -1
  31. data/include/grpc/support/atm.h +1 -1
  32. data/include/grpc/support/atm_gcc_atomic.h +4 -4
  33. data/include/grpc/support/atm_gcc_sync.h +1 -1
  34. data/include/grpc/support/atm_win32.h +1 -1
  35. data/include/grpc/support/avl.h +1 -1
  36. data/include/grpc/support/cmdline.h +1 -1
  37. data/include/grpc/support/cpu.h +1 -1
  38. data/include/grpc/support/histogram.h +1 -1
  39. data/include/grpc/support/host_port.h +1 -1
  40. data/include/grpc/support/log.h +1 -1
  41. data/include/grpc/support/log_win32.h +1 -1
  42. data/include/grpc/support/port_platform.h +1 -1
  43. data/include/grpc/support/slice.h +1 -1
  44. data/include/grpc/support/slice_buffer.h +1 -1
  45. data/include/grpc/support/string_util.h +3 -1
  46. data/include/grpc/support/subprocess.h +2 -2
  47. data/include/grpc/support/sync.h +1 -1
  48. data/include/grpc/support/sync_generic.h +1 -1
  49. data/include/grpc/support/sync_posix.h +1 -1
  50. data/include/grpc/support/sync_win32.h +1 -1
  51. data/include/grpc/support/thd.h +1 -1
  52. data/include/grpc/support/time.h +1 -1
  53. data/include/grpc/support/tls.h +1 -1
  54. data/include/grpc/support/tls_gcc.h +45 -1
  55. data/include/grpc/support/tls_msvc.h +3 -3
  56. data/include/grpc/support/tls_pthread.h +1 -1
  57. data/include/grpc/support/useful.h +1 -1
  58. data/src/boringssl/err_data.c +258 -252
  59. data/src/core/{census → ext/census}/aggregation.h +3 -3
  60. data/src/core/{statistics → ext/census}/census_interface.h +3 -3
  61. data/src/core/{statistics → ext/census}/census_rpc_stats.h +4 -4
  62. data/src/core/{census → ext/census}/context.c +2 -2
  63. data/src/core/{census → ext/census}/grpc_context.c +2 -2
  64. data/src/core/{census → ext/census}/grpc_filter.c +30 -16
  65. data/src/core/{census → ext/census}/grpc_filter.h +4 -4
  66. data/src/core/ext/census/grpc_plugin.c +82 -0
  67. data/src/core/{census → ext/census}/initialize.c +1 -1
  68. data/src/core/{census → ext/census}/mlog.c +2 -2
  69. data/src/core/{census → ext/census}/mlog.h +4 -4
  70. data/src/core/{census → ext/census}/operation.c +0 -0
  71. data/src/core/{census → ext/census}/placeholders.c +0 -0
  72. data/src/core/{census → ext/census}/rpc_metric_id.h +3 -3
  73. data/src/core/{census → ext/census}/tracing.c +0 -0
  74. data/src/core/{surface → ext/client_config}/channel_connectivity.c +8 -21
  75. data/src/core/{channel → ext/client_config}/client_channel.c +80 -35
  76. data/src/core/{channel → ext/client_config}/client_channel.h +5 -5
  77. data/src/core/{client_config/subchannel_factory.c → ext/client_config/client_channel_factory.c} +14 -6
  78. data/src/core/ext/client_config/client_channel_factory.h +85 -0
  79. data/src/core/{client_config → ext/client_config}/client_config.c +4 -2
  80. data/src/core/{client_config → ext/client_config}/client_config.h +4 -4
  81. data/src/core/ext/client_config/client_config_plugin.c +95 -0
  82. data/src/core/{client_config → ext/client_config}/connector.c +2 -2
  83. data/src/core/{client_config → ext/client_config}/connector.h +7 -10
  84. data/src/core/{client_config → ext/client_config}/default_initial_connect_string.c +1 -1
  85. data/src/core/{client_config → ext/client_config}/initial_connect_string.c +1 -1
  86. data/src/core/{client_config → ext/client_config}/initial_connect_string.h +4 -4
  87. data/src/core/{client_config → ext/client_config}/lb_policy.c +12 -3
  88. data/src/core/{client_config → ext/client_config}/lb_policy.h +19 -6
  89. data/src/core/{client_config → ext/client_config}/lb_policy_factory.c +4 -3
  90. data/src/core/{client_config → ext/client_config}/lb_policy_factory.h +14 -9
  91. data/src/core/{client_config → ext/client_config}/lb_policy_registry.c +4 -9
  92. data/src/core/{client_config → ext/client_config}/lb_policy_registry.h +7 -6
  93. data/src/core/ext/client_config/parse_address.c +137 -0
  94. data/src/core/ext/client_config/parse_address.h +56 -0
  95. data/src/core/{client_config → ext/client_config}/resolver.c +1 -1
  96. data/src/core/{client_config → ext/client_config}/resolver.h +6 -6
  97. data/src/core/{client_config → ext/client_config}/resolver_factory.c +1 -1
  98. data/src/core/{client_config → ext/client_config}/resolver_factory.h +7 -7
  99. data/src/core/{client_config → ext/client_config}/resolver_registry.c +25 -11
  100. data/src/core/{client_config → ext/client_config}/resolver_registry.h +9 -5
  101. data/src/core/{client_config → ext/client_config}/subchannel.c +90 -126
  102. data/src/core/{client_config → ext/client_config}/subchannel.h +15 -15
  103. data/src/core/{channel → ext/client_config}/subchannel_call_holder.c +9 -8
  104. data/src/core/{channel → ext/client_config}/subchannel_call_holder.h +7 -7
  105. data/src/core/{client_config → ext/client_config}/subchannel_index.c +3 -2
  106. data/src/core/{client_config → ext/client_config}/subchannel_index.h +5 -5
  107. data/src/core/{client_config → ext/client_config}/uri_parser.c +69 -1
  108. data/src/core/{client_config → ext/client_config}/uri_parser.h +15 -3
  109. data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.c +18 -9
  110. data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.h +5 -5
  111. data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.c +1 -1
  112. data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.h +0 -0
  113. data/src/core/{client_config/lb_policies → ext/lb_policy/pick_first}/pick_first.c +95 -32
  114. data/src/core/{client_config/lb_policies → ext/lb_policy/round_robin}/round_robin.c +98 -34
  115. data/src/core/{client_config/resolvers → ext/resolver/dns/native}/dns_resolver.c +83 -39
  116. data/src/core/{client_config/resolvers → ext/resolver/sockaddr}/sockaddr_resolver.c +66 -169
  117. data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.c +1 -1
  118. data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.h +3 -3
  119. data/src/core/{surface → ext/transport/chttp2/client/insecure}/channel_create.c +65 -59
  120. data/src/core/{surface → ext/transport/chttp2/client/secure}/secure_channel_create.c +77 -69
  121. data/src/core/{surface → ext/transport/chttp2/server/insecure}/server_chttp2.c +8 -11
  122. data/src/core/{security → ext/transport/chttp2/server/secure}/server_secure_chttp2.c +14 -17
  123. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.c +28 -74
  124. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.h +5 -5
  125. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +46 -0
  126. data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.c +551 -310
  127. data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.h +5 -5
  128. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame.h +3 -3
  129. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.c +30 -14
  130. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.h +10 -7
  131. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.c +2 -2
  132. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.h +5 -5
  133. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.c +2 -2
  134. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.h +5 -5
  135. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.c +9 -5
  136. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.h +8 -6
  137. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.c +6 -6
  138. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.h +5 -5
  139. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.c +11 -5
  140. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.h +8 -6
  141. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.c +21 -12
  142. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.h +8 -6
  143. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.c +42 -25
  144. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.h +7 -7
  145. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.c +21 -11
  146. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.h +4 -4
  147. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/http2_errors.h +3 -3
  148. data/src/core/ext/transport/chttp2/transport/huffsyms.c +105 -0
  149. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/huffsyms.h +3 -3
  150. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.c +2 -2
  151. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.h +4 -4
  152. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/internal.h +81 -37
  153. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/parsing.c +54 -21
  154. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.c +1 -1
  155. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.h +4 -4
  156. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_lists.c +10 -2
  157. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.c +1 -1
  158. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.h +3 -3
  159. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.c +4 -4
  160. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.h +4 -4
  161. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.c +1 -1
  162. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.h +3 -3
  163. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/writing.c +30 -20
  164. data/src/core/{channel → lib/channel}/channel_args.c +3 -15
  165. data/src/core/{channel → lib/channel}/channel_args.h +11 -15
  166. data/src/core/{channel → lib/channel}/channel_stack.c +5 -3
  167. data/src/core/{channel → lib/channel}/channel_stack.h +13 -8
  168. data/src/core/lib/channel/channel_stack_builder.c +277 -0
  169. data/src/core/lib/channel/channel_stack_builder.h +161 -0
  170. data/src/core/{channel → lib/channel}/compress_filter.c +51 -16
  171. data/src/core/{channel → lib/channel}/compress_filter.h +6 -4
  172. data/src/core/{channel → lib/channel}/connected_channel.c +34 -24
  173. data/src/core/lib/channel/connected_channel.h +42 -0
  174. data/src/core/{channel → lib/channel}/context.h +3 -3
  175. data/src/core/{channel → lib/channel}/http_client_filter.c +24 -13
  176. data/src/core/{channel → lib/channel}/http_client_filter.h +4 -4
  177. data/src/core/{channel → lib/channel}/http_server_filter.c +39 -19
  178. data/src/core/{channel → lib/channel}/http_server_filter.h +4 -4
  179. data/src/core/{compression → lib/compression}/algorithm_metadata.h +4 -4
  180. data/src/core/{compression → lib/compression}/compression_algorithm.c +46 -9
  181. data/src/core/{compression → lib/compression}/message_compress.c +1 -1
  182. data/src/core/{compression → lib/compression}/message_compress.h +3 -3
  183. data/src/core/{debug → lib/debug}/trace.c +2 -2
  184. data/src/core/{debug → lib/debug}/trace.h +3 -3
  185. data/src/core/{httpcli → lib/http}/format_request.c +8 -8
  186. data/src/core/{httpcli → lib/http}/format_request.h +4 -4
  187. data/src/core/{httpcli → lib/http}/httpcli.c +24 -19
  188. data/src/core/{httpcli → lib/http}/httpcli.h +14 -33
  189. data/src/core/{httpcli → lib/http}/httpcli_security_connector.c +5 -5
  190. data/src/core/lib/http/parser.c +341 -0
  191. data/src/core/lib/http/parser.h +119 -0
  192. data/src/core/{iomgr → lib/iomgr}/closure.c +8 -2
  193. data/src/core/{iomgr → lib/iomgr}/closure.h +7 -4
  194. data/src/core/{iomgr → lib/iomgr}/endpoint.c +1 -1
  195. data/src/core/{iomgr → lib/iomgr}/endpoint.h +5 -5
  196. data/src/core/{iomgr → lib/iomgr}/endpoint_pair.h +4 -4
  197. data/src/core/{iomgr → lib/iomgr}/endpoint_pair_posix.c +8 -7
  198. data/src/core/{iomgr → lib/iomgr}/endpoint_pair_windows.c +4 -4
  199. data/src/core/lib/iomgr/ev_poll_and_epoll_posix.c +1936 -0
  200. data/src/core/lib/iomgr/ev_poll_and_epoll_posix.h +41 -0
  201. data/src/core/lib/iomgr/ev_posix.c +164 -0
  202. data/src/core/lib/iomgr/ev_posix.h +158 -0
  203. data/src/core/{iomgr → lib/iomgr}/exec_ctx.c +78 -3
  204. data/src/core/{iomgr → lib/iomgr}/exec_ctx.h +25 -10
  205. data/src/core/{iomgr → lib/iomgr}/executor.c +3 -3
  206. data/src/core/{iomgr → lib/iomgr}/executor.h +5 -5
  207. data/src/core/{iomgr → lib/iomgr}/iocp_windows.c +6 -6
  208. data/src/core/{iomgr → lib/iomgr}/iocp_windows.h +5 -5
  209. data/src/core/{iomgr → lib/iomgr}/iomgr.c +13 -10
  210. data/src/core/{iomgr → lib/iomgr}/iomgr.h +3 -3
  211. data/src/core/{iomgr → lib/iomgr}/iomgr_internal.h +5 -9
  212. data/src/core/{iomgr → lib/iomgr}/iomgr_posix.c +6 -6
  213. data/src/core/{iomgr → lib/iomgr}/iomgr_posix.h +4 -4
  214. data/src/core/{iomgr → lib/iomgr}/iomgr_windows.c +7 -4
  215. data/src/core/{iomgr → lib/iomgr}/pollset.h +11 -11
  216. data/src/core/{iomgr → lib/iomgr}/pollset_set.h +5 -5
  217. data/src/core/{iomgr → lib/iomgr}/pollset_set_windows.c +2 -2
  218. data/src/core/lib/iomgr/pollset_set_windows.h +39 -0
  219. data/src/core/{iomgr → lib/iomgr}/pollset_windows.c +7 -7
  220. data/src/core/{iomgr → lib/iomgr}/pollset_windows.h +8 -5
  221. data/src/core/{iomgr → lib/iomgr}/resolve_address.h +10 -9
  222. data/src/core/{iomgr → lib/iomgr}/resolve_address_posix.c +22 -22
  223. data/src/core/{iomgr → lib/iomgr}/resolve_address_windows.c +20 -12
  224. data/src/core/{iomgr → lib/iomgr}/sockaddr.h +5 -5
  225. data/src/core/{iomgr → lib/iomgr}/sockaddr_posix.h +5 -5
  226. data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.c +9 -16
  227. data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.h +4 -4
  228. data/src/core/{iomgr → lib/iomgr}/sockaddr_win32.h +6 -4
  229. data/src/core/{iomgr → lib/iomgr}/socket_utils_common_posix.c +29 -7
  230. data/src/core/{iomgr → lib/iomgr}/socket_utils_linux.c +2 -2
  231. data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.c +1 -1
  232. data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.h +14 -4
  233. data/src/core/{iomgr → lib/iomgr}/socket_windows.c +7 -5
  234. data/src/core/{iomgr → lib/iomgr}/socket_windows.h +6 -6
  235. data/src/core/{iomgr → lib/iomgr}/tcp_client.h +6 -6
  236. data/src/core/{iomgr → lib/iomgr}/tcp_client_posix.c +33 -18
  237. data/src/core/{iomgr → lib/iomgr}/tcp_client_windows.c +30 -20
  238. data/src/core/{iomgr → lib/iomgr}/tcp_posix.c +9 -10
  239. data/src/core/{iomgr → lib/iomgr}/tcp_posix.h +6 -6
  240. data/src/core/{iomgr → lib/iomgr}/tcp_server.h +6 -6
  241. data/src/core/{iomgr → lib/iomgr}/tcp_server_posix.c +24 -37
  242. data/src/core/{iomgr → lib/iomgr}/tcp_server_windows.c +8 -36
  243. data/src/core/{iomgr → lib/iomgr}/tcp_windows.c +27 -17
  244. data/src/core/{iomgr → lib/iomgr}/tcp_windows.h +5 -5
  245. data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.c +1 -1
  246. data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.h +3 -3
  247. data/src/core/{iomgr → lib/iomgr}/timer.c +31 -4
  248. data/src/core/{iomgr → lib/iomgr}/timer.h +6 -7
  249. data/src/core/{iomgr → lib/iomgr}/timer_heap.c +2 -2
  250. data/src/core/{iomgr → lib/iomgr}/timer_heap.h +4 -4
  251. data/src/core/{iomgr → lib/iomgr}/udp_server.c +13 -37
  252. data/src/core/{iomgr → lib/iomgr}/udp_server.h +11 -10
  253. data/src/core/lib/iomgr/unix_sockets_posix.c +89 -0
  254. data/src/core/{client_config/resolvers/sockaddr_resolver.h → lib/iomgr/unix_sockets_posix.h} +15 -11
  255. data/src/core/lib/iomgr/unix_sockets_posix_noop.c +59 -0
  256. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_eventfd.c +2 -2
  257. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_nospecial.c +1 -1
  258. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.c +8 -3
  259. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.h +4 -4
  260. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.c +2 -2
  261. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.h +3 -3
  262. data/src/core/{iomgr → lib/iomgr}/workqueue.h +10 -10
  263. data/src/core/{iomgr → lib/iomgr}/workqueue_posix.c +5 -6
  264. data/src/core/{iomgr → lib/iomgr}/workqueue_posix.h +5 -5
  265. data/src/core/{iomgr → lib/iomgr}/workqueue_windows.c +1 -1
  266. data/src/core/{iomgr → lib/iomgr}/workqueue_windows.h +3 -3
  267. data/src/core/{json → lib/json}/json.c +1 -1
  268. data/src/core/{json → lib/json}/json.h +4 -4
  269. data/src/core/{json → lib/json}/json_common.h +3 -3
  270. data/src/core/{json → lib/json}/json_reader.c +16 -4
  271. data/src/core/{json → lib/json}/json_reader.h +4 -4
  272. data/src/core/{json → lib/json}/json_string.c +4 -4
  273. data/src/core/{json → lib/json}/json_writer.c +1 -1
  274. data/src/core/{json → lib/json}/json_writer.h +4 -4
  275. data/src/core/{profiling → lib/profiling}/basic_timers.c +3 -2
  276. data/src/core/{profiling → lib/profiling}/stap_timers.c +2 -2
  277. data/src/core/{profiling → lib/profiling}/timers.h +3 -3
  278. data/src/core/{security → lib/security}/auth_filters.h +4 -4
  279. data/src/core/{security → lib/security}/b64.c +2 -2
  280. data/src/core/{security → lib/security}/b64.h +4 -4
  281. data/src/core/{security → lib/security}/client_auth_filter.c +16 -16
  282. data/src/core/{security → lib/security}/credentials.c +42 -26
  283. data/src/core/{security → lib/security}/credentials.h +11 -10
  284. data/src/core/{security → lib/security}/credentials_metadata.c +1 -1
  285. data/src/core/{security → lib/security}/credentials_posix.c +3 -3
  286. data/src/core/{security → lib/security}/credentials_win32.c +3 -3
  287. data/src/core/{security → lib/security}/google_default_credentials.c +10 -9
  288. data/src/core/{security → lib/security}/handshake.c +4 -4
  289. data/src/core/{security → lib/security}/handshake.h +6 -6
  290. data/src/core/{security → lib/security}/json_token.c +4 -4
  291. data/src/core/{security → lib/security}/json_token.h +4 -4
  292. data/src/core/{security → lib/security}/jwt_verifier.c +14 -14
  293. data/src/core/{security → lib/security}/jwt_verifier.h +5 -5
  294. data/src/core/{security → lib/security}/secure_endpoint.c +9 -8
  295. data/src/core/{security → lib/security}/secure_endpoint.h +4 -4
  296. data/src/core/{security → lib/security}/security_connector.c +53 -21
  297. data/src/core/{security → lib/security}/security_connector.h +8 -8
  298. data/src/core/{security → lib/security}/security_context.c +5 -5
  299. data/src/core/{security → lib/security}/security_context.h +5 -5
  300. data/src/core/{security → lib/security}/server_auth_filter.c +9 -9
  301. data/src/core/{support → lib/support}/alloc.c +5 -3
  302. data/src/core/{support → lib/support}/avl.c +1 -1
  303. data/src/core/lib/support/backoff.c +76 -0
  304. data/src/core/lib/support/backoff.h +68 -0
  305. data/src/core/{support → lib/support}/block_annotate.h +3 -3
  306. data/src/core/{support → lib/support}/cmdline.c +1 -1
  307. data/src/core/{support → lib/support}/cpu_iphone.c +0 -0
  308. data/src/core/{support → lib/support}/cpu_linux.c +2 -2
  309. data/src/core/{support → lib/support}/cpu_posix.c +2 -2
  310. data/src/core/{support → lib/support}/cpu_windows.c +0 -0
  311. data/src/core/{support → lib/support}/env.h +3 -3
  312. data/src/core/{support → lib/support}/env_linux.c +3 -3
  313. data/src/core/{support → lib/support}/env_posix.c +2 -2
  314. data/src/core/{support → lib/support}/env_win32.c +27 -21
  315. data/src/core/{support → lib/support}/histogram.c +1 -1
  316. data/src/core/{support → lib/support}/host_port.c +1 -1
  317. data/src/core/{support → lib/support}/load_file.c +4 -4
  318. data/src/core/{support → lib/support}/load_file.h +4 -4
  319. data/src/core/{support → lib/support}/log.c +33 -0
  320. data/src/core/{support → lib/support}/log_android.c +2 -2
  321. data/src/core/{support → lib/support}/log_linux.c +6 -5
  322. data/src/core/{support → lib/support}/log_posix.c +3 -3
  323. data/src/core/{support → lib/support}/log_win32.c +8 -22
  324. data/src/core/{support → lib/support}/murmur_hash.c +1 -1
  325. data/src/core/{support → lib/support}/murmur_hash.h +3 -3
  326. data/src/core/{support → lib/support}/slice.c +0 -0
  327. data/src/core/{support → lib/support}/slice_buffer.c +0 -0
  328. data/src/core/{support → lib/support}/stack_lockfree.c +7 -7
  329. data/src/core/{support → lib/support}/stack_lockfree.h +3 -3
  330. data/src/core/{support → lib/support}/string.c +1 -1
  331. data/src/core/{support → lib/support}/string.h +4 -4
  332. data/src/core/{support → lib/support}/string_posix.c +1 -1
  333. data/src/core/{support/string_win32.c → lib/support/string_util_win32.c} +23 -38
  334. data/src/core/lib/support/string_win32.c +83 -0
  335. data/src/core/{support → lib/support}/string_win32.h +3 -3
  336. data/src/core/{support → lib/support}/subprocess_posix.c +3 -3
  337. data/src/core/{support → lib/support}/subprocess_windows.c +3 -3
  338. data/src/core/{support → lib/support}/sync.c +2 -2
  339. data/src/core/{support → lib/support}/sync_posix.c +3 -3
  340. data/src/core/{support → lib/support}/sync_win32.c +1 -1
  341. data/src/core/{support → lib/support}/thd.c +0 -0
  342. data/src/core/{support → lib/support}/thd_internal.h +3 -3
  343. data/src/core/{support → lib/support}/thd_posix.c +4 -3
  344. data/src/core/{support → lib/support}/thd_win32.c +1 -1
  345. data/src/core/{support → lib/support}/time.c +2 -2
  346. data/src/core/{support → lib/support}/time_posix.c +12 -6
  347. data/src/core/{support → lib/support}/time_precise.c +0 -0
  348. data/src/core/{support → lib/support}/time_precise.h +3 -3
  349. data/src/core/{support → lib/support}/time_win32.c +7 -7
  350. data/src/core/{support → lib/support}/tls_pthread.c +0 -0
  351. data/src/core/{support → lib/support}/tmpfile.h +4 -4
  352. data/src/core/lib/support/tmpfile_msys.c +73 -0
  353. data/src/core/{support → lib/support}/tmpfile_posix.c +5 -5
  354. data/src/core/{support → lib/support}/tmpfile_win32.c +5 -5
  355. data/src/core/{support → lib/support}/wrap_memcpy.c +0 -0
  356. data/src/core/{surface → lib/surface}/alarm.c +3 -3
  357. data/src/core/{surface → lib/surface}/api_trace.c +1 -1
  358. data/src/core/{surface → lib/surface}/api_trace.h +4 -4
  359. data/src/core/{surface → lib/surface}/byte_buffer.c +3 -3
  360. data/src/core/{surface → lib/surface}/byte_buffer_reader.c +3 -3
  361. data/src/core/{surface → lib/surface}/call.c +145 -73
  362. data/src/core/{surface → lib/surface}/call.h +14 -7
  363. data/src/core/{surface → lib/surface}/call_details.c +1 -1
  364. data/src/core/{surface → lib/surface}/call_log_batch.c +2 -2
  365. data/src/core/{surface → lib/surface}/call_test_only.h +3 -3
  366. data/src/core/{surface → lib/surface}/channel.c +33 -34
  367. data/src/core/{surface → lib/surface}/channel.h +9 -9
  368. data/src/core/lib/surface/channel_init.c +140 -0
  369. data/src/core/lib/surface/channel_init.h +87 -0
  370. data/src/core/{surface → lib/surface}/channel_ping.c +4 -4
  371. data/src/core/lib/surface/channel_stack_type.c +54 -0
  372. data/src/core/{httpcli/parser.h → lib/surface/channel_stack_type.h} +22 -28
  373. data/src/core/{surface → lib/surface}/completion_queue.c +15 -11
  374. data/src/core/{surface → lib/surface}/completion_queue.h +4 -4
  375. data/src/core/{surface → lib/surface}/event_string.c +2 -2
  376. data/src/core/{surface → lib/surface}/event_string.h +3 -3
  377. data/src/core/lib/surface/init.c +217 -0
  378. data/src/core/{surface → lib/surface}/init.h +4 -3
  379. data/src/core/lib/surface/init_secure.c +89 -0
  380. data/src/core/{surface → lib/surface}/lame_client.c +31 -19
  381. data/src/core/{iomgr/pollset_set_windows.h → lib/surface/lame_client.h} +7 -5
  382. data/src/core/{surface → lib/surface}/metadata_array.c +1 -1
  383. data/src/core/{surface → lib/surface}/server.c +208 -183
  384. data/src/core/{surface → lib/surface}/server.h +6 -11
  385. data/src/core/{surface → lib/surface}/surface_trace.h +5 -5
  386. data/src/core/{surface → lib/surface}/validate_metadata.c +1 -1
  387. data/src/core/{surface → lib/surface}/version.c +2 -2
  388. data/src/core/{transport → lib/transport}/byte_stream.c +1 -1
  389. data/src/core/{transport → lib/transport}/byte_stream.h +4 -4
  390. data/src/core/{transport → lib/transport}/connectivity_state.c +2 -2
  391. data/src/core/{transport → lib/transport}/connectivity_state.h +4 -4
  392. data/src/core/{transport → lib/transport}/metadata.c +71 -19
  393. data/src/core/{transport → lib/transport}/metadata.h +11 -4
  394. data/src/core/{transport → lib/transport}/metadata_batch.c +2 -2
  395. data/src/core/{transport → lib/transport}/metadata_batch.h +4 -4
  396. data/src/core/{transport → lib/transport}/static_metadata.c +100 -32
  397. data/src/core/{transport → lib/transport}/static_metadata.h +58 -58
  398. data/src/core/{transport → lib/transport}/transport.c +25 -5
  399. data/src/core/{transport → lib/transport}/transport.h +41 -16
  400. data/src/core/{transport → lib/transport}/transport_impl.h +8 -5
  401. data/src/core/{transport → lib/transport}/transport_op_string.c +2 -2
  402. data/src/core/{tsi → lib/tsi}/fake_transport_security.c +18 -14
  403. data/src/core/{tsi → lib/tsi}/fake_transport_security.h +4 -4
  404. data/src/core/{tsi → lib/tsi}/ssl_transport_security.c +173 -63
  405. data/src/core/{tsi → lib/tsi}/ssl_transport_security.h +24 -6
  406. data/src/core/{tsi → lib/tsi}/ssl_types.h +3 -3
  407. data/src/core/{tsi → lib/tsi}/transport_security.c +12 -28
  408. data/src/core/{tsi → lib/tsi}/transport_security.h +4 -4
  409. data/src/core/{tsi → lib/tsi}/transport_security_interface.h +12 -3
  410. data/src/core/plugin_registry/grpc_plugin_registry.c +66 -0
  411. data/src/ruby/ext/grpc/extconf.rb +14 -20
  412. data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -3
  413. data/src/ruby/ext/grpc/rb_call.c +37 -4
  414. data/src/ruby/ext/grpc/rb_call_credentials.c +13 -3
  415. data/src/ruby/ext/grpc/rb_channel.c +2 -3
  416. data/src/ruby/ext/grpc/rb_channel_args.c +2 -3
  417. data/src/ruby/ext/grpc/rb_channel_credentials.c +31 -3
  418. data/src/ruby/ext/grpc/rb_completion_queue.c +2 -2
  419. data/src/ruby/ext/grpc/rb_event_thread.c +1 -1
  420. data/src/ruby/ext/grpc/rb_grpc.c +4 -2
  421. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +8 -0
  422. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +14 -2
  423. data/src/ruby/ext/grpc/rb_server.c +2 -3
  424. data/src/ruby/ext/grpc/rb_server_credentials.c +16 -13
  425. data/src/ruby/ext/grpc/rb_signal.c +70 -0
  426. data/src/ruby/ext/grpc/rb_signal.h +39 -0
  427. data/src/ruby/lib/grpc.rb +21 -13
  428. data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
  429. data/src/ruby/lib/grpc/errors.rb +2 -2
  430. data/src/ruby/lib/grpc/generic/active_call.rb +10 -3
  431. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -2
  432. data/src/ruby/lib/grpc/generic/client_stub.rb +10 -7
  433. data/src/ruby/lib/grpc/generic/rpc_desc.rb +2 -2
  434. data/src/ruby/lib/grpc/generic/rpc_server.rb +21 -61
  435. data/src/ruby/lib/grpc/generic/service.rb +5 -15
  436. data/src/ruby/lib/grpc/grpc.rb +3 -3
  437. data/src/ruby/{bin/interop/interop_server.rb → lib/grpc/signals.rb} +39 -20
  438. data/src/ruby/lib/grpc/version.rb +2 -2
  439. data/src/ruby/pb/generate_proto_ruby.sh +9 -2
  440. data/src/ruby/pb/grpc/health/checker.rb +1 -1
  441. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb +28 -0
  442. data/src/ruby/pb/grpc/testing/metrics.rb +28 -0
  443. data/src/ruby/pb/grpc/testing/metrics_services.rb +27 -0
  444. data/src/ruby/pb/test/client.rb +12 -23
  445. data/src/ruby/pb/test/server.rb +1 -1
  446. data/src/ruby/spec/client_server_spec.rb +1 -1
  447. data/src/ruby/spec/generic/client_stub_spec.rb +18 -17
  448. data/src/ruby/spec/generic/rpc_server_spec.rb +23 -7
  449. data/src/ruby/spec/generic/service_spec.rb +0 -69
  450. data/src/ruby/{bin/interop/interop_client.rb → spec/pb/duplicate/codegen_spec.rb} +41 -21
  451. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  452. data/third_party/boringssl/crypto/asn1/a_bitstr.c +184 -176
  453. data/third_party/boringssl/crypto/asn1/a_bool.c +42 -44
  454. data/third_party/boringssl/crypto/asn1/a_bytes.c +236 -245
  455. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +173 -192
  456. data/third_party/boringssl/crypto/asn1/a_dup.c +43 -35
  457. data/third_party/boringssl/crypto/asn1/a_enum.c +107 -109
  458. data/third_party/boringssl/crypto/asn1/a_gentm.c +180 -181
  459. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +73 -80
  460. data/third_party/boringssl/crypto/asn1/a_int.c +357 -353
  461. data/third_party/boringssl/crypto/asn1/a_mbstr.c +272 -253
  462. data/third_party/boringssl/crypto/asn1/a_object.c +293 -309
  463. data/third_party/boringssl/crypto/asn1/a_octet.c +13 -6
  464. data/third_party/boringssl/crypto/asn1/a_print.c +54 -52
  465. data/third_party/boringssl/crypto/asn1/a_strnid.c +179 -157
  466. data/third_party/boringssl/crypto/asn1/a_time.c +125 -129
  467. data/third_party/boringssl/crypto/asn1/a_type.c +79 -86
  468. data/third_party/boringssl/crypto/asn1/a_utctm.c +246 -255
  469. data/third_party/boringssl/crypto/asn1/a_utf8.c +159 -135
  470. data/third_party/boringssl/crypto/asn1/asn1_lib.c +361 -368
  471. data/third_party/boringssl/crypto/asn1/asn1_locl.h +11 -11
  472. data/third_party/boringssl/crypto/asn1/asn1_par.c +309 -351
  473. data/third_party/boringssl/crypto/asn1/asn_pack.c +30 -29
  474. data/third_party/boringssl/crypto/asn1/bio_asn1.c +375 -394
  475. data/third_party/boringssl/crypto/asn1/bio_ndef.c +146 -149
  476. data/third_party/boringssl/crypto/asn1/f_enum.c +128 -134
  477. data/third_party/boringssl/crypto/asn1/f_int.c +131 -139
  478. data/third_party/boringssl/crypto/asn1/f_string.c +125 -133
  479. data/third_party/boringssl/crypto/asn1/t_bitst.c +30 -29
  480. data/third_party/boringssl/crypto/asn1/t_pkey.c +45 -47
  481. data/third_party/boringssl/crypto/asn1/tasn_dec.c +1099 -1216
  482. data/third_party/boringssl/crypto/asn1/tasn_enc.c +556 -592
  483. data/third_party/boringssl/crypto/asn1/tasn_fre.c +175 -193
  484. data/third_party/boringssl/crypto/asn1/tasn_new.c +271 -288
  485. data/third_party/boringssl/crypto/asn1/tasn_prn.c +462 -508
  486. data/third_party/boringssl/crypto/asn1/tasn_typ.c +28 -21
  487. data/third_party/boringssl/crypto/asn1/x_bignum.c +62 -52
  488. data/third_party/boringssl/crypto/asn1/x_long.c +101 -86
  489. data/third_party/boringssl/crypto/bio/buffer.c +3 -3
  490. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +8 -68
  491. data/third_party/boringssl/crypto/bn/bn.c +1 -1
  492. data/third_party/boringssl/crypto/bn/bn_asn1.c +9 -22
  493. data/third_party/boringssl/crypto/bn/convert.c +9 -4
  494. data/third_party/boringssl/crypto/bn/div.c +0 -20
  495. data/third_party/boringssl/crypto/bn/exponentiation.c +22 -13
  496. data/third_party/boringssl/crypto/bn/generic.c +6 -242
  497. data/third_party/boringssl/crypto/bn/internal.h +9 -70
  498. data/third_party/boringssl/crypto/bn/montgomery.c +1 -2
  499. data/third_party/boringssl/crypto/bn/mul.c +6 -26
  500. data/third_party/boringssl/crypto/bn/rsaz_exp.c +21 -28
  501. data/third_party/boringssl/crypto/bytestring/asn1_compat.c +51 -0
  502. data/third_party/boringssl/crypto/bytestring/ber.c +128 -87
  503. data/third_party/boringssl/crypto/bytestring/cbb.c +37 -3
  504. data/third_party/boringssl/crypto/bytestring/internal.h +39 -10
  505. data/third_party/boringssl/crypto/chacha/chacha_vec.c +18 -13
  506. data/third_party/boringssl/crypto/cipher/e_aes.c +2 -2
  507. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +4 -9
  508. data/third_party/boringssl/crypto/cipher/tls_cbc.c +39 -10
  509. data/third_party/boringssl/crypto/conf/conf.c +9 -0
  510. data/third_party/boringssl/crypto/cpu-intel.c +1 -1
  511. data/third_party/boringssl/crypto/crypto.c +2 -0
  512. data/third_party/boringssl/crypto/curve25519/curve25519.c +125 -120
  513. data/third_party/boringssl/crypto/curve25519/internal.h +45 -0
  514. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +225 -0
  515. data/third_party/boringssl/crypto/dh/check.c +32 -10
  516. data/third_party/boringssl/crypto/dh/dh.c +1 -1
  517. data/third_party/boringssl/crypto/digest/md32_common.h +0 -60
  518. data/third_party/boringssl/crypto/dsa/dsa.c +47 -21
  519. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +249 -64
  520. data/third_party/boringssl/crypto/ec/ec.c +45 -31
  521. data/third_party/boringssl/crypto/ec/ec_asn1.c +315 -382
  522. data/third_party/boringssl/crypto/ec/ec_key.c +1 -4
  523. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -9
  524. data/third_party/boringssl/crypto/ec/internal.h +1 -19
  525. data/third_party/boringssl/crypto/ec/oct.c +12 -0
  526. data/third_party/boringssl/crypto/ec/p224-64.c +4 -65
  527. data/third_party/boringssl/crypto/ec/p256-64.c +9 -71
  528. data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +1 -6
  529. data/third_party/boringssl/crypto/ec/p256-x86_64.c +3 -13
  530. data/third_party/boringssl/crypto/ec/simple.c +0 -76
  531. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +1 -1
  532. data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +10 -24
  533. data/third_party/boringssl/crypto/evp/evp.c +4 -3
  534. data/third_party/boringssl/crypto/evp/evp_asn1.c +101 -0
  535. data/third_party/boringssl/crypto/evp/evp_ctx.c +22 -51
  536. data/third_party/boringssl/crypto/evp/internal.h +28 -27
  537. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +78 -249
  538. data/third_party/boringssl/crypto/evp/p_ec.c +19 -66
  539. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +74 -231
  540. data/third_party/boringssl/crypto/evp/p_rsa.c +90 -13
  541. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +49 -48
  542. data/third_party/boringssl/crypto/internal.h +16 -1
  543. data/third_party/boringssl/crypto/mem.c +2 -2
  544. data/third_party/boringssl/crypto/modes/ctr.c +2 -1
  545. data/third_party/boringssl/crypto/modes/gcm.c +5 -3
  546. data/third_party/boringssl/crypto/obj/obj_dat.h +6 -3
  547. data/third_party/boringssl/crypto/pem/pem_all.c +83 -102
  548. data/third_party/boringssl/crypto/pem/pem_info.c +286 -309
  549. data/third_party/boringssl/crypto/pem/pem_lib.c +690 -710
  550. data/third_party/boringssl/crypto/pem/pem_oth.c +15 -16
  551. data/third_party/boringssl/crypto/pem/pem_pk8.c +132 -119
  552. data/third_party/boringssl/crypto/pem/pem_pkey.c +144 -220
  553. data/third_party/boringssl/crypto/pem/pem_x509.c +3 -3
  554. data/third_party/boringssl/crypto/pem/pem_xaux.c +5 -4
  555. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +54 -60
  556. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +3 -1
  557. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +48 -50
  558. data/third_party/boringssl/crypto/rand/rand.c +2 -0
  559. data/third_party/boringssl/crypto/rsa/blinding.c +8 -48
  560. data/third_party/boringssl/crypto/rsa/internal.h +1 -9
  561. data/third_party/boringssl/crypto/rsa/padding.c +73 -77
  562. data/third_party/boringssl/crypto/rsa/rsa.c +1 -1
  563. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +27 -46
  564. data/third_party/boringssl/crypto/rsa/rsa_impl.c +23 -34
  565. data/third_party/boringssl/crypto/test/scoped_types.h +3 -0
  566. data/third_party/boringssl/crypto/thread_win.c +15 -13
  567. data/third_party/boringssl/crypto/time_support.c +0 -6
  568. data/third_party/boringssl/crypto/x509/a_digest.c +26 -27
  569. data/third_party/boringssl/crypto/x509/a_sign.c +63 -64
  570. data/third_party/boringssl/crypto/x509/a_strex.c +482 -413
  571. data/third_party/boringssl/crypto/x509/a_verify.c +45 -51
  572. data/third_party/boringssl/crypto/x509/asn1_gen.c +715 -769
  573. data/third_party/boringssl/crypto/x509/by_dir.c +355 -393
  574. data/third_party/boringssl/crypto/x509/by_file.c +186 -206
  575. data/third_party/boringssl/crypto/x509/charmap.h +11 -11
  576. data/third_party/boringssl/crypto/x509/i2d_pr.c +21 -22
  577. data/third_party/boringssl/crypto/x509/t_crl.c +50 -51
  578. data/third_party/boringssl/crypto/x509/t_x509.c +414 -406
  579. data/third_party/boringssl/crypto/x509/t_x509a.c +44 -42
  580. data/third_party/boringssl/crypto/x509/vpm_int.h +13 -13
  581. data/third_party/boringssl/crypto/x509/x509_att.c +241 -219
  582. data/third_party/boringssl/crypto/x509/x509_cmp.c +343 -359
  583. data/third_party/boringssl/crypto/x509/x509_d2.c +36 -35
  584. data/third_party/boringssl/crypto/x509/x509_def.c +23 -13
  585. data/third_party/boringssl/crypto/x509/x509_ext.c +75 -75
  586. data/third_party/boringssl/crypto/x509/x509_lu.c +574 -612
  587. data/third_party/boringssl/crypto/x509/x509_obj.c +104 -115
  588. data/third_party/boringssl/crypto/x509/x509_r2x.c +40 -40
  589. data/third_party/boringssl/crypto/x509/x509_req.c +181 -174
  590. data/third_party/boringssl/crypto/x509/x509_set.c +71 -76
  591. data/third_party/boringssl/crypto/x509/x509_trs.c +193 -171
  592. data/third_party/boringssl/crypto/x509/x509_txt.c +135 -138
  593. data/third_party/boringssl/crypto/x509/x509_v3.c +174 -167
  594. data/third_party/boringssl/crypto/x509/x509_vfy.c +2079 -2130
  595. data/third_party/boringssl/crypto/x509/x509_vpm.c +486 -522
  596. data/third_party/boringssl/crypto/x509/x509cset.c +96 -99
  597. data/third_party/boringssl/crypto/x509/x509name.c +280 -275
  598. data/third_party/boringssl/crypto/x509/x509rset.c +15 -14
  599. data/third_party/boringssl/crypto/x509/x509spki.c +62 -60
  600. data/third_party/boringssl/crypto/x509/x509type.c +58 -60
  601. data/third_party/boringssl/crypto/x509/x_algor.c +70 -73
  602. data/third_party/boringssl/crypto/x509/x_all.c +282 -328
  603. data/third_party/boringssl/crypto/x509/x_attrib.c +36 -42
  604. data/third_party/boringssl/crypto/x509/x_crl.c +397 -418
  605. data/third_party/boringssl/crypto/x509/x_exten.c +5 -5
  606. data/third_party/boringssl/crypto/x509/x_info.c +30 -27
  607. data/third_party/boringssl/crypto/x509/x_name.c +387 -388
  608. data/third_party/boringssl/crypto/x509/x_pkey.c +32 -29
  609. data/third_party/boringssl/crypto/x509/x_pubkey.c +261 -280
  610. data/third_party/boringssl/crypto/x509/x_req.c +30 -33
  611. data/third_party/boringssl/crypto/x509/x_sig.c +2 -2
  612. data/third_party/boringssl/crypto/x509/x_spki.c +9 -7
  613. data/third_party/boringssl/crypto/x509/x_val.c +2 -2
  614. data/third_party/boringssl/crypto/x509/x_x509.c +120 -119
  615. data/third_party/boringssl/crypto/x509/x_x509a.c +99 -91
  616. data/third_party/boringssl/crypto/x509v3/ext_dat.h +57 -51
  617. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +199 -214
  618. data/third_party/boringssl/crypto/x509v3/pcy_data.c +57 -64
  619. data/third_party/boringssl/crypto/x509v3/pcy_int.h +95 -90
  620. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +86 -87
  621. data/third_party/boringssl/crypto/x509v3/pcy_map.c +61 -64
  622. data/third_party/boringssl/crypto/x509v3/pcy_node.c +108 -117
  623. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +676 -724
  624. data/third_party/boringssl/crypto/x509v3/v3_akey.c +128 -136
  625. data/third_party/boringssl/crypto/x509v3/v3_akeya.c +7 -6
  626. data/third_party/boringssl/crypto/x509v3/v3_alt.c +499 -507
  627. data/third_party/boringssl/crypto/x509v3/v3_bcons.c +54 -47
  628. data/third_party/boringssl/crypto/x509v3/v3_bitst.c +67 -67
  629. data/third_party/boringssl/crypto/x509v3/v3_conf.c +330 -328
  630. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +354 -338
  631. data/third_party/boringssl/crypto/x509v3/v3_crld.c +441 -496
  632. data/third_party/boringssl/crypto/x509v3/v3_enum.c +35 -33
  633. data/third_party/boringssl/crypto/x509v3/v3_extku.c +66 -63
  634. data/third_party/boringssl/crypto/x509v3/v3_genn.c +157 -159
  635. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +45 -43
  636. data/third_party/boringssl/crypto/x509v3/v3_info.c +124 -112
  637. data/third_party/boringssl/crypto/x509v3/v3_int.c +30 -26
  638. data/third_party/boringssl/crypto/x509v3/v3_lib.c +231 -204
  639. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +353 -381
  640. data/third_party/boringssl/crypto/x509v3/v3_pci.c +252 -270
  641. data/third_party/boringssl/crypto/x509v3/v3_pcia.c +9 -8
  642. data/third_party/boringssl/crypto/x509v3/v3_pcons.c +58 -61
  643. data/third_party/boringssl/crypto/x509v3/v3_pku.c +35 -34
  644. data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +72 -74
  645. data/third_party/boringssl/crypto/x509v3/v3_prn.c +146 -121
  646. data/third_party/boringssl/crypto/x509v3/v3_purp.c +651 -582
  647. data/third_party/boringssl/crypto/x509v3/v3_skey.c +76 -72
  648. data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +139 -131
  649. data/third_party/boringssl/crypto/x509v3/v3_utl.c +1072 -1068
  650. data/third_party/boringssl/include/openssl/asn1.h +40 -38
  651. data/third_party/boringssl/include/openssl/base.h +10 -1
  652. data/third_party/boringssl/include/openssl/bio.h +10 -11
  653. data/third_party/boringssl/include/openssl/bn.h +12 -9
  654. data/third_party/boringssl/include/openssl/buf.h +1 -1
  655. data/third_party/boringssl/include/openssl/bytestring.h +29 -0
  656. data/third_party/boringssl/include/openssl/conf.h +25 -0
  657. data/third_party/boringssl/include/openssl/crypto.h +6 -1
  658. data/third_party/boringssl/include/openssl/curve25519.h +6 -3
  659. data/third_party/boringssl/include/openssl/dh.h +7 -3
  660. data/third_party/boringssl/include/openssl/dsa.h +108 -51
  661. data/third_party/boringssl/include/openssl/ec.h +46 -21
  662. data/third_party/boringssl/include/openssl/ec_key.h +78 -42
  663. data/third_party/boringssl/include/openssl/ecdsa.h +4 -4
  664. data/third_party/boringssl/include/openssl/err.h +3 -2
  665. data/third_party/boringssl/include/openssl/evp.h +120 -37
  666. data/third_party/boringssl/include/openssl/mem.h +4 -13
  667. data/third_party/boringssl/include/openssl/obj_mac.h +4 -0
  668. data/third_party/boringssl/include/openssl/pem.h +0 -9
  669. data/third_party/boringssl/include/openssl/pkcs8.h +6 -2
  670. data/third_party/boringssl/include/openssl/rand.h +3 -0
  671. data/third_party/boringssl/include/openssl/rsa.h +42 -42
  672. data/third_party/boringssl/include/openssl/ssl.h +115 -41
  673. data/third_party/boringssl/include/openssl/stack.h +0 -3
  674. data/third_party/boringssl/include/openssl/stack_macros.h +0 -256
  675. data/third_party/boringssl/include/openssl/tls1.h +1 -1
  676. data/third_party/boringssl/include/openssl/x509.h +0 -2
  677. data/third_party/boringssl/include/openssl/x509_vfy.h +5 -0
  678. data/third_party/boringssl/ssl/d1_both.c +102 -101
  679. data/third_party/boringssl/ssl/d1_clnt.c +145 -150
  680. data/third_party/boringssl/ssl/d1_lib.c +63 -62
  681. data/third_party/boringssl/ssl/d1_pkt.c +73 -71
  682. data/third_party/boringssl/ssl/d1_srvr.c +116 -125
  683. data/third_party/boringssl/ssl/dtls_record.c +3 -3
  684. data/third_party/boringssl/ssl/internal.h +210 -208
  685. data/third_party/boringssl/ssl/pqueue/pqueue.c +2 -2
  686. data/third_party/boringssl/ssl/s3_both.c +116 -130
  687. data/third_party/boringssl/ssl/s3_clnt.c +589 -740
  688. data/third_party/boringssl/ssl/s3_enc.c +52 -151
  689. data/third_party/boringssl/ssl/s3_lib.c +70 -76
  690. data/third_party/boringssl/ssl/s3_pkt.c +105 -144
  691. data/third_party/boringssl/ssl/s3_srvr.c +542 -806
  692. data/third_party/boringssl/ssl/ssl_aead_ctx.c +1 -1
  693. data/third_party/boringssl/ssl/ssl_cert.c +2 -2
  694. data/third_party/boringssl/ssl/ssl_cipher.c +7 -3
  695. data/third_party/boringssl/ssl/ssl_ecdh.c +374 -0
  696. data/third_party/boringssl/ssl/ssl_lib.c +260 -221
  697. data/third_party/boringssl/ssl/ssl_session.c +17 -17
  698. data/third_party/boringssl/ssl/t1_enc.c +128 -273
  699. data/third_party/boringssl/ssl/t1_lib.c +134 -258
  700. data/third_party/boringssl/ssl/test/test_config.h +2 -0
  701. data/third_party/boringssl/ssl/tls_record.c +52 -15
  702. metadata +385 -359
  703. data/src/core/channel/client_uchannel.c +0 -243
  704. data/src/core/channel/client_uchannel.h +0 -60
  705. data/src/core/channel/connected_channel.h +0 -51
  706. data/src/core/client_config/lb_policies/pick_first.h +0 -43
  707. data/src/core/client_config/resolvers/dns_resolver.h +0 -42
  708. data/src/core/client_config/subchannel_factory.h +0 -66
  709. data/src/core/httpcli/parser.c +0 -211
  710. data/src/core/iomgr/fd_posix.c +0 -451
  711. data/src/core/iomgr/fd_posix.h +0 -192
  712. data/src/core/iomgr/pollset_multipoller_with_epoll.c +0 -324
  713. data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +0 -234
  714. data/src/core/iomgr/pollset_posix.c +0 -633
  715. data/src/core/iomgr/pollset_posix.h +0 -153
  716. data/src/core/iomgr/pollset_set_posix.c +0 -202
  717. data/src/core/iomgr/pollset_set_posix.h +0 -45
  718. data/src/core/surface/init.c +0 -174
  719. data/src/core/surface/init_secure.c +0 -42
  720. data/src/core/surface/server_create.c +0 -48
  721. data/src/core/transport/chttp2/huffsyms.c +0 -297
  722. data/src/ruby/bin/grpc_ruby_interop_client +0 -33
  723. data/src/ruby/bin/grpc_ruby_interop_server +0 -33
  724. data/third_party/boringssl/crypto/dsa/internal.h +0 -78
@@ -1,6 +1,7 @@
1
1
  /* v3_bcons.c */
2
- /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3
- * project 1999.
2
+ /*
3
+ * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project
4
+ * 1999.
4
5
  */
5
6
  /* ====================================================================
6
7
  * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
@@ -10,7 +11,7 @@
10
11
  * are met:
11
12
  *
12
13
  * 1. Redistributions of source code must retain the above copyright
13
- * notice, this list of conditions and the following disclaimer.
14
+ * notice, this list of conditions and the following disclaimer.
14
15
  *
15
16
  * 2. Redistributions in binary form must reproduce the above copyright
16
17
  * notice, this list of conditions and the following disclaimer in
@@ -54,7 +55,6 @@
54
55
  * (eay@cryptsoft.com). This product includes software written by Tim
55
56
  * Hudson (tjh@cryptsoft.com). */
56
57
 
57
-
58
58
  #include <stdio.h>
59
59
  #include <string.h>
60
60
 
@@ -65,62 +65,69 @@
65
65
  #include <openssl/obj.h>
66
66
  #include <openssl/x509v3.h>
67
67
 
68
-
69
- static STACK_OF(CONF_VALUE) *i2v_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method, BASIC_CONSTRAINTS *bcons, STACK_OF(CONF_VALUE) *extlist);
70
- static BASIC_CONSTRAINTS *v2i_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *values);
68
+ static STACK_OF(CONF_VALUE) *i2v_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,
69
+ BASIC_CONSTRAINTS *bcons,
70
+ STACK_OF(CONF_VALUE)
71
+ *extlist);
72
+ static BASIC_CONSTRAINTS *v2i_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,
73
+ X509V3_CTX *ctx,
74
+ STACK_OF(CONF_VALUE) *values);
71
75
 
72
76
  const X509V3_EXT_METHOD v3_bcons = {
73
- NID_basic_constraints, 0,
74
- ASN1_ITEM_ref(BASIC_CONSTRAINTS),
75
- 0,0,0,0,
76
- 0,0,
77
- (X509V3_EXT_I2V)i2v_BASIC_CONSTRAINTS,
78
- (X509V3_EXT_V2I)v2i_BASIC_CONSTRAINTS,
79
- NULL,NULL,
80
- NULL
77
+ NID_basic_constraints, 0,
78
+ ASN1_ITEM_ref(BASIC_CONSTRAINTS),
79
+ 0, 0, 0, 0,
80
+ 0, 0,
81
+ (X509V3_EXT_I2V) i2v_BASIC_CONSTRAINTS,
82
+ (X509V3_EXT_V2I)v2i_BASIC_CONSTRAINTS,
83
+ NULL, NULL,
84
+ NULL
81
85
  };
82
86
 
83
87
  ASN1_SEQUENCE(BASIC_CONSTRAINTS) = {
84
- ASN1_OPT(BASIC_CONSTRAINTS, ca, ASN1_FBOOLEAN),
85
- ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER)
88
+ ASN1_OPT(BASIC_CONSTRAINTS, ca, ASN1_FBOOLEAN),
89
+ ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER)
86
90
  } ASN1_SEQUENCE_END(BASIC_CONSTRAINTS)
87
91
 
88
92
  IMPLEMENT_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
89
93
 
90
-
91
94
  static STACK_OF(CONF_VALUE) *i2v_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,
92
- BASIC_CONSTRAINTS *bcons, STACK_OF(CONF_VALUE) *extlist)
95
+ BASIC_CONSTRAINTS *bcons,
96
+ STACK_OF(CONF_VALUE)
97
+ *extlist)
93
98
  {
94
- X509V3_add_value_bool("CA", bcons->ca, &extlist);
95
- X509V3_add_value_int("pathlen", bcons->pathlen, &extlist);
96
- return extlist;
99
+ X509V3_add_value_bool("CA", bcons->ca, &extlist);
100
+ X509V3_add_value_int("pathlen", bcons->pathlen, &extlist);
101
+ return extlist;
97
102
  }
98
103
 
99
104
  static BASIC_CONSTRAINTS *v2i_BASIC_CONSTRAINTS(X509V3_EXT_METHOD *method,
100
- X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *values)
105
+ X509V3_CTX *ctx,
106
+ STACK_OF(CONF_VALUE) *values)
101
107
  {
102
- BASIC_CONSTRAINTS *bcons=NULL;
103
- CONF_VALUE *val;
104
- size_t i;
105
- if(!(bcons = BASIC_CONSTRAINTS_new())) {
106
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
107
- return NULL;
108
- }
109
- for(i = 0; i < sk_CONF_VALUE_num(values); i++) {
110
- val = sk_CONF_VALUE_value(values, i);
111
- if(!strcmp(val->name, "CA")) {
112
- if(!X509V3_get_value_bool(val, &bcons->ca)) goto err;
113
- } else if(!strcmp(val->name, "pathlen")) {
114
- if(!X509V3_get_value_int(val, &bcons->pathlen)) goto err;
115
- } else {
116
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_NAME);
117
- X509V3_conf_err(val);
118
- goto err;
119
- }
120
- }
121
- return bcons;
122
- err:
123
- BASIC_CONSTRAINTS_free(bcons);
124
- return NULL;
108
+ BASIC_CONSTRAINTS *bcons = NULL;
109
+ CONF_VALUE *val;
110
+ size_t i;
111
+ if (!(bcons = BASIC_CONSTRAINTS_new())) {
112
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
113
+ return NULL;
114
+ }
115
+ for (i = 0; i < sk_CONF_VALUE_num(values); i++) {
116
+ val = sk_CONF_VALUE_value(values, i);
117
+ if (!strcmp(val->name, "CA")) {
118
+ if (!X509V3_get_value_bool(val, &bcons->ca))
119
+ goto err;
120
+ } else if (!strcmp(val->name, "pathlen")) {
121
+ if (!X509V3_get_value_int(val, &bcons->pathlen))
122
+ goto err;
123
+ } else {
124
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_NAME);
125
+ X509V3_conf_err(val);
126
+ goto err;
127
+ }
128
+ }
129
+ return bcons;
130
+ err:
131
+ BASIC_CONSTRAINTS_free(bcons);
132
+ return NULL;
125
133
  }
126
-
@@ -1,6 +1,7 @@
1
1
  /* v3_bitst.c */
2
- /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3
- * project 1999.
2
+ /*
3
+ * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project
4
+ * 1999.
4
5
  */
5
6
  /* ====================================================================
6
7
  * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
@@ -10,7 +11,7 @@
10
11
  * are met:
11
12
  *
12
13
  * 1. Redistributions of source code must retain the above copyright
13
- * notice, this list of conditions and the following disclaimer.
14
+ * notice, this list of conditions and the following disclaimer.
14
15
  *
15
16
  * 2. Redistributions in binary form must reproduce the above copyright
16
17
  * notice, this list of conditions and the following disclaimer in
@@ -62,80 +63,79 @@
62
63
  #include <openssl/obj.h>
63
64
  #include <openssl/x509v3.h>
64
65
 
65
-
66
66
  static const BIT_STRING_BITNAME ns_cert_type_table[] = {
67
- {0, "SSL Client", "client"},
68
- {1, "SSL Server", "server"},
69
- {2, "S/MIME", "email"},
70
- {3, "Object Signing", "objsign"},
71
- {4, "Unused", "reserved"},
72
- {5, "SSL CA", "sslCA"},
73
- {6, "S/MIME CA", "emailCA"},
74
- {7, "Object Signing CA", "objCA"},
75
- {-1, NULL, NULL}
67
+ {0, "SSL Client", "client"},
68
+ {1, "SSL Server", "server"},
69
+ {2, "S/MIME", "email"},
70
+ {3, "Object Signing", "objsign"},
71
+ {4, "Unused", "reserved"},
72
+ {5, "SSL CA", "sslCA"},
73
+ {6, "S/MIME CA", "emailCA"},
74
+ {7, "Object Signing CA", "objCA"},
75
+ {-1, NULL, NULL}
76
76
  };
77
77
 
78
78
  static const BIT_STRING_BITNAME key_usage_type_table[] = {
79
- {0, "Digital Signature", "digitalSignature"},
80
- {1, "Non Repudiation", "nonRepudiation"},
81
- {2, "Key Encipherment", "keyEncipherment"},
82
- {3, "Data Encipherment", "dataEncipherment"},
83
- {4, "Key Agreement", "keyAgreement"},
84
- {5, "Certificate Sign", "keyCertSign"},
85
- {6, "CRL Sign", "cRLSign"},
86
- {7, "Encipher Only", "encipherOnly"},
87
- {8, "Decipher Only", "decipherOnly"},
88
- {-1, NULL, NULL}
79
+ {0, "Digital Signature", "digitalSignature"},
80
+ {1, "Non Repudiation", "nonRepudiation"},
81
+ {2, "Key Encipherment", "keyEncipherment"},
82
+ {3, "Data Encipherment", "dataEncipherment"},
83
+ {4, "Key Agreement", "keyAgreement"},
84
+ {5, "Certificate Sign", "keyCertSign"},
85
+ {6, "CRL Sign", "cRLSign"},
86
+ {7, "Encipher Only", "encipherOnly"},
87
+ {8, "Decipher Only", "decipherOnly"},
88
+ {-1, NULL, NULL}
89
89
  };
90
90
 
91
-
92
-
93
- const X509V3_EXT_METHOD v3_nscert = EXT_BITSTRING(NID_netscape_cert_type, ns_cert_type_table);
94
- const X509V3_EXT_METHOD v3_key_usage = EXT_BITSTRING(NID_key_usage, key_usage_type_table);
91
+ const X509V3_EXT_METHOD v3_nscert =
92
+ EXT_BITSTRING(NID_netscape_cert_type, ns_cert_type_table);
93
+ const X509V3_EXT_METHOD v3_key_usage =
94
+ EXT_BITSTRING(NID_key_usage, key_usage_type_table);
95
95
 
96
96
  STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
97
- ASN1_BIT_STRING *bits, STACK_OF(CONF_VALUE) *ret)
97
+ ASN1_BIT_STRING *bits,
98
+ STACK_OF(CONF_VALUE) *ret)
98
99
  {
99
- const BIT_STRING_BITNAME *bnam;
100
- for(bnam =method->usr_data; bnam->lname; bnam++) {
101
- if(ASN1_BIT_STRING_get_bit(bits, bnam->bitnum))
102
- X509V3_add_value(bnam->lname, NULL, &ret);
103
- }
104
- return ret;
100
+ const BIT_STRING_BITNAME *bnam;
101
+ for (bnam = method->usr_data; bnam->lname; bnam++) {
102
+ if (ASN1_BIT_STRING_get_bit(bits, bnam->bitnum))
103
+ X509V3_add_value(bnam->lname, NULL, &ret);
104
+ }
105
+ return ret;
105
106
  }
106
-
107
+
107
108
  ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
108
- X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval)
109
+ X509V3_CTX *ctx,
110
+ STACK_OF(CONF_VALUE) *nval)
109
111
  {
110
- CONF_VALUE *val;
111
- ASN1_BIT_STRING *bs;
112
- size_t i;
113
- const BIT_STRING_BITNAME *bnam;
114
- if(!(bs = M_ASN1_BIT_STRING_new())) {
115
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
116
- return NULL;
117
- }
118
- for(i = 0; i < sk_CONF_VALUE_num(nval); i++) {
119
- val = sk_CONF_VALUE_value(nval, i);
120
- for(bnam = method->usr_data; bnam->lname; bnam++) {
121
- if(!strcmp(bnam->sname, val->name) ||
122
- !strcmp(bnam->lname, val->name) ) {
123
- if(!ASN1_BIT_STRING_set_bit(bs, bnam->bitnum, 1)) {
124
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
125
- M_ASN1_BIT_STRING_free(bs);
126
- return NULL;
127
- }
128
- break;
129
- }
130
- }
131
- if(!bnam->lname) {
132
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT);
133
- X509V3_conf_err(val);
134
- M_ASN1_BIT_STRING_free(bs);
135
- return NULL;
136
- }
137
- }
138
- return bs;
112
+ CONF_VALUE *val;
113
+ ASN1_BIT_STRING *bs;
114
+ size_t i;
115
+ const BIT_STRING_BITNAME *bnam;
116
+ if (!(bs = M_ASN1_BIT_STRING_new())) {
117
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
118
+ return NULL;
119
+ }
120
+ for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
121
+ val = sk_CONF_VALUE_value(nval, i);
122
+ for (bnam = method->usr_data; bnam->lname; bnam++) {
123
+ if (!strcmp(bnam->sname, val->name) ||
124
+ !strcmp(bnam->lname, val->name)) {
125
+ if (!ASN1_BIT_STRING_set_bit(bs, bnam->bitnum, 1)) {
126
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
127
+ M_ASN1_BIT_STRING_free(bs);
128
+ return NULL;
129
+ }
130
+ break;
131
+ }
132
+ }
133
+ if (!bnam->lname) {
134
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT);
135
+ X509V3_conf_err(val);
136
+ M_ASN1_BIT_STRING_free(bs);
137
+ return NULL;
138
+ }
139
+ }
140
+ return bs;
139
141
  }
140
-
141
-
@@ -1,6 +1,7 @@
1
1
  /* v3_conf.c */
2
- /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3
- * project 1999.
2
+ /*
3
+ * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project
4
+ * 1999.
4
5
  */
5
6
  /* ====================================================================
6
7
  * Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
@@ -10,7 +11,7 @@
10
11
  * are met:
11
12
  *
12
13
  * 1. Redistributions of source code must retain the above copyright
13
- * notice, this list of conditions and the following disclaimer.
14
+ * notice, this list of conditions and the following disclaimer.
14
15
  *
15
16
  * 2. Redistributions in binary form must reproduce the above copyright
16
17
  * notice, this list of conditions and the following disclaimer in
@@ -69,391 +70,392 @@
69
70
 
70
71
  #include "../internal.h"
71
72
 
72
-
73
73
  static int v3_check_critical(char **value);
74
74
  static int v3_check_generic(char **value);
75
- static X509_EXTENSION *do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid, int crit, char *value);
76
- static X509_EXTENSION *v3_generic_extension(const char *ext, char *value, int crit, int type, X509V3_CTX *ctx);
77
- static X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method, int ext_nid,
78
- int crit, void *ext_struc);
79
- static unsigned char *generic_asn1(char *value, X509V3_CTX *ctx, long *ext_len);
75
+ static X509_EXTENSION *do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid,
76
+ int crit, char *value);
77
+ static X509_EXTENSION *v3_generic_extension(const char *ext, char *value,
78
+ int crit, int type,
79
+ X509V3_CTX *ctx);
80
+ static X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method,
81
+ int ext_nid, int crit, void *ext_struc);
82
+ static unsigned char *generic_asn1(char *value, X509V3_CTX *ctx,
83
+ long *ext_len);
80
84
  /* CONF *conf: Config file */
81
85
  /* char *name: Name */
82
86
  /* char *value: Value */
83
87
  X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name,
84
- char *value)
85
- {
86
- int crit;
87
- int ext_type;
88
- X509_EXTENSION *ret;
89
- crit = v3_check_critical(&value);
90
- if ((ext_type = v3_check_generic(&value)))
91
- return v3_generic_extension(name, value, crit, ext_type, ctx);
92
- ret = do_ext_nconf(conf, ctx, OBJ_sn2nid(name), crit, value);
93
- if (!ret)
94
- {
95
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_ERROR_IN_EXTENSION);
96
- ERR_add_error_data(4,"name=", name, ", value=", value);
97
- }
98
- return ret;
99
- }
88
+ char *value)
89
+ {
90
+ int crit;
91
+ int ext_type;
92
+ X509_EXTENSION *ret;
93
+ crit = v3_check_critical(&value);
94
+ if ((ext_type = v3_check_generic(&value)))
95
+ return v3_generic_extension(name, value, crit, ext_type, ctx);
96
+ ret = do_ext_nconf(conf, ctx, OBJ_sn2nid(name), crit, value);
97
+ if (!ret) {
98
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_ERROR_IN_EXTENSION);
99
+ ERR_add_error_data(4, "name=", name, ", value=", value);
100
+ }
101
+ return ret;
102
+ }
100
103
 
101
104
  /* CONF *conf: Config file */
102
105
  /* char *value: Value */
103
106
  X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid,
104
- char *value)
105
- {
106
- int crit;
107
- int ext_type;
108
- crit = v3_check_critical(&value);
109
- if ((ext_type = v3_check_generic(&value)))
110
- return v3_generic_extension(OBJ_nid2sn(ext_nid),
111
- value, crit, ext_type, ctx);
112
- return do_ext_nconf(conf, ctx, ext_nid, crit, value);
113
- }
107
+ char *value)
108
+ {
109
+ int crit;
110
+ int ext_type;
111
+ crit = v3_check_critical(&value);
112
+ if ((ext_type = v3_check_generic(&value)))
113
+ return v3_generic_extension(OBJ_nid2sn(ext_nid),
114
+ value, crit, ext_type, ctx);
115
+ return do_ext_nconf(conf, ctx, ext_nid, crit, value);
116
+ }
114
117
 
115
118
  /* CONF *conf: Config file */
116
119
  /* char *value: Value */
117
120
  static X509_EXTENSION *do_ext_nconf(CONF *conf, X509V3_CTX *ctx, int ext_nid,
118
- int crit, char *value)
119
- {
120
- const X509V3_EXT_METHOD *method;
121
- X509_EXTENSION *ext;
122
- STACK_OF(CONF_VALUE) *nval;
123
- void *ext_struc;
124
- if (ext_nid == NID_undef)
125
- {
126
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME);
127
- return NULL;
128
- }
129
- if (!(method = X509V3_EXT_get_nid(ext_nid)))
130
- {
131
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION);
132
- return NULL;
133
- }
134
- /* Now get internal extension representation based on type */
135
- if (method->v2i)
136
- {
137
- if(*value == '@') nval = NCONF_get_section(conf, value + 1);
138
- else nval = X509V3_parse_list(value);
139
- if(sk_CONF_VALUE_num(nval) <= 0)
140
- {
141
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_EXTENSION_STRING);
142
- ERR_add_error_data(4, "name=", OBJ_nid2sn(ext_nid), ",section=", value);
143
- return NULL;
144
- }
145
- ext_struc = method->v2i(method, ctx, nval);
146
- if(*value != '@') sk_CONF_VALUE_pop_free(nval,
147
- X509V3_conf_free);
148
- if(!ext_struc) return NULL;
149
- }
150
- else if(method->s2i)
151
- {
152
- if(!(ext_struc = method->s2i(method, ctx, value))) return NULL;
153
- }
154
- else if(method->r2i)
155
- {
156
- if(!ctx->db || !ctx->db_meth)
157
- {
158
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_NO_CONFIG_DATABASE);
159
- return NULL;
160
- }
161
- if(!(ext_struc = method->r2i(method, ctx, value))) return NULL;
162
- }
163
- else
164
- {
165
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED);
166
- ERR_add_error_data(2, "name=", OBJ_nid2sn(ext_nid));
167
- return NULL;
168
- }
169
-
170
- ext = do_ext_i2d(method, ext_nid, crit, ext_struc);
171
- if(method->it) ASN1_item_free(ext_struc, ASN1_ITEM_ptr(method->it));
172
- else method->ext_free(ext_struc);
173
- return ext;
174
-
175
- }
176
-
177
- static X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method, int ext_nid,
178
- int crit, void *ext_struc)
179
- {
180
- unsigned char *ext_der;
181
- int ext_len;
182
- ASN1_OCTET_STRING *ext_oct;
183
- X509_EXTENSION *ext;
184
- /* Convert internal representation to DER */
185
- if (method->it)
186
- {
187
- ext_der = NULL;
188
- ext_len = ASN1_item_i2d(ext_struc, &ext_der, ASN1_ITEM_ptr(method->it));
189
- if (ext_len < 0) goto merr;
190
- }
191
- else
192
- {
193
- unsigned char *p;
194
- ext_len = method->i2d(ext_struc, NULL);
195
- if(!(ext_der = OPENSSL_malloc(ext_len))) goto merr;
196
- p = ext_der;
197
- method->i2d(ext_struc, &p);
198
- }
199
- if (!(ext_oct = M_ASN1_OCTET_STRING_new())) goto merr;
200
- ext_oct->data = ext_der;
201
- ext_oct->length = ext_len;
202
-
203
- ext = X509_EXTENSION_create_by_NID(NULL, ext_nid, crit, ext_oct);
204
- if (!ext) goto merr;
205
- M_ASN1_OCTET_STRING_free(ext_oct);
206
-
207
- return ext;
208
-
209
- merr:
210
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
211
- return NULL;
212
-
213
- }
121
+ int crit, char *value)
122
+ {
123
+ const X509V3_EXT_METHOD *method;
124
+ X509_EXTENSION *ext;
125
+ STACK_OF(CONF_VALUE) *nval;
126
+ void *ext_struc;
127
+ if (ext_nid == NID_undef) {
128
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME);
129
+ return NULL;
130
+ }
131
+ if (!(method = X509V3_EXT_get_nid(ext_nid))) {
132
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION);
133
+ return NULL;
134
+ }
135
+ /* Now get internal extension representation based on type */
136
+ if (method->v2i) {
137
+ if (*value == '@')
138
+ nval = NCONF_get_section(conf, value + 1);
139
+ else
140
+ nval = X509V3_parse_list(value);
141
+ if (sk_CONF_VALUE_num(nval) <= 0) {
142
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_EXTENSION_STRING);
143
+ ERR_add_error_data(4, "name=", OBJ_nid2sn(ext_nid), ",section=",
144
+ value);
145
+ return NULL;
146
+ }
147
+ ext_struc = method->v2i(method, ctx, nval);
148
+ if (*value != '@')
149
+ sk_CONF_VALUE_pop_free(nval, X509V3_conf_free);
150
+ if (!ext_struc)
151
+ return NULL;
152
+ } else if (method->s2i) {
153
+ if (!(ext_struc = method->s2i(method, ctx, value)))
154
+ return NULL;
155
+ } else if (method->r2i) {
156
+ if (!ctx->db || !ctx->db_meth) {
157
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_NO_CONFIG_DATABASE);
158
+ return NULL;
159
+ }
160
+ if (!(ext_struc = method->r2i(method, ctx, value)))
161
+ return NULL;
162
+ } else {
163
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED);
164
+ ERR_add_error_data(2, "name=", OBJ_nid2sn(ext_nid));
165
+ return NULL;
166
+ }
167
+
168
+ ext = do_ext_i2d(method, ext_nid, crit, ext_struc);
169
+ if (method->it)
170
+ ASN1_item_free(ext_struc, ASN1_ITEM_ptr(method->it));
171
+ else
172
+ method->ext_free(ext_struc);
173
+ return ext;
174
+
175
+ }
176
+
177
+ static X509_EXTENSION *do_ext_i2d(const X509V3_EXT_METHOD *method,
178
+ int ext_nid, int crit, void *ext_struc)
179
+ {
180
+ unsigned char *ext_der;
181
+ int ext_len;
182
+ ASN1_OCTET_STRING *ext_oct;
183
+ X509_EXTENSION *ext;
184
+ /* Convert internal representation to DER */
185
+ if (method->it) {
186
+ ext_der = NULL;
187
+ ext_len =
188
+ ASN1_item_i2d(ext_struc, &ext_der, ASN1_ITEM_ptr(method->it));
189
+ if (ext_len < 0)
190
+ goto merr;
191
+ } else {
192
+ unsigned char *p;
193
+ ext_len = method->i2d(ext_struc, NULL);
194
+ if (!(ext_der = OPENSSL_malloc(ext_len)))
195
+ goto merr;
196
+ p = ext_der;
197
+ method->i2d(ext_struc, &p);
198
+ }
199
+ if (!(ext_oct = M_ASN1_OCTET_STRING_new()))
200
+ goto merr;
201
+ ext_oct->data = ext_der;
202
+ ext_oct->length = ext_len;
203
+
204
+ ext = X509_EXTENSION_create_by_NID(NULL, ext_nid, crit, ext_oct);
205
+ if (!ext)
206
+ goto merr;
207
+ M_ASN1_OCTET_STRING_free(ext_oct);
208
+
209
+ return ext;
210
+
211
+ merr:
212
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
213
+ return NULL;
214
+
215
+ }
214
216
 
215
217
  /* Given an internal structure, nid and critical flag create an extension */
216
218
 
217
219
  X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc)
218
- {
219
- const X509V3_EXT_METHOD *method;
220
- if (!(method = X509V3_EXT_get_nid(ext_nid))) {
221
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION);
222
- return NULL;
223
- }
224
- return do_ext_i2d(method, ext_nid, crit, ext_struc);
220
+ {
221
+ const X509V3_EXT_METHOD *method;
222
+ if (!(method = X509V3_EXT_get_nid(ext_nid))) {
223
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_UNKNOWN_EXTENSION);
224
+ return NULL;
225
+ }
226
+ return do_ext_i2d(method, ext_nid, crit, ext_struc);
225
227
  }
226
228
 
227
229
  /* Check the extension string for critical flag */
228
230
  static int v3_check_critical(char **value)
229
231
  {
230
- char *p = *value;
231
- if ((strlen(p) < 9) || strncmp(p, "critical,", 9)) return 0;
232
- p+=9;
233
- while(isspace((unsigned char)*p)) p++;
234
- *value = p;
235
- return 1;
232
+ char *p = *value;
233
+ if ((strlen(p) < 9) || strncmp(p, "critical,", 9))
234
+ return 0;
235
+ p += 9;
236
+ while (isspace((unsigned char)*p))
237
+ p++;
238
+ *value = p;
239
+ return 1;
236
240
  }
237
241
 
238
242
  /* Check extension string for generic extension and return the type */
239
243
  static int v3_check_generic(char **value)
240
244
  {
241
- int gen_type = 0;
242
- char *p = *value;
243
- if ((strlen(p) >= 4) && !strncmp(p, "DER:", 4))
244
- {
245
- p+=4;
246
- gen_type = 1;
247
- }
248
- else if ((strlen(p) >= 5) && !strncmp(p, "ASN1:", 5))
249
- {
250
- p+=5;
251
- gen_type = 2;
252
- }
253
- else
254
- return 0;
255
-
256
- while (isspace((unsigned char)*p)) p++;
257
- *value = p;
258
- return gen_type;
245
+ int gen_type = 0;
246
+ char *p = *value;
247
+ if ((strlen(p) >= 4) && !strncmp(p, "DER:", 4)) {
248
+ p += 4;
249
+ gen_type = 1;
250
+ } else if ((strlen(p) >= 5) && !strncmp(p, "ASN1:", 5)) {
251
+ p += 5;
252
+ gen_type = 2;
253
+ } else
254
+ return 0;
255
+
256
+ while (isspace((unsigned char)*p))
257
+ p++;
258
+ *value = p;
259
+ return gen_type;
259
260
  }
260
261
 
261
262
  /* Create a generic extension: for now just handle DER type */
262
263
  static X509_EXTENSION *v3_generic_extension(const char *ext, char *value,
263
- int crit, int gen_type,
264
- X509V3_CTX *ctx)
265
- OPENSSL_SUPPRESS_POTENTIALLY_UNINITIALIZED_WARNINGS
266
- {
267
- unsigned char *ext_der=NULL;
268
- long ext_len;
269
- ASN1_OBJECT *obj=NULL;
270
- ASN1_OCTET_STRING *oct=NULL;
271
- X509_EXTENSION *extension=NULL;
272
- if (!(obj = OBJ_txt2obj(ext, 0)))
273
- {
274
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_NAME_ERROR);
275
- ERR_add_error_data(2, "name=", ext);
276
- goto err;
277
- }
278
-
279
- if (gen_type == 1)
280
- ext_der = string_to_hex(value, &ext_len);
281
- else if (gen_type == 2)
282
- ext_der = generic_asn1(value, ctx, &ext_len);
283
-
284
- if (ext_der == NULL)
285
- {
286
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_VALUE_ERROR);
287
- ERR_add_error_data(2, "value=", value);
288
- goto err;
289
- }
290
-
291
- if (!(oct = M_ASN1_OCTET_STRING_new()))
292
- {
293
- OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
294
- goto err;
295
- }
296
-
297
- oct->data = ext_der;
298
- oct->length = ext_len;
299
- ext_der = NULL;
300
-
301
- extension = X509_EXTENSION_create_by_OBJ(NULL, obj, crit, oct);
302
-
303
- err:
304
- ASN1_OBJECT_free(obj);
305
- M_ASN1_OCTET_STRING_free(oct);
306
- if(ext_der) OPENSSL_free(ext_der);
307
- return extension;
308
-
309
- }
310
-
311
- static unsigned char *generic_asn1(char *value, X509V3_CTX *ctx, long *ext_len)
312
- {
313
- ASN1_TYPE *typ;
314
- unsigned char *ext_der = NULL;
315
- typ = ASN1_generate_v3(value, ctx);
316
- if (typ == NULL)
317
- return NULL;
318
- *ext_len = i2d_ASN1_TYPE(typ, &ext_der);
319
- ASN1_TYPE_free(typ);
320
- return ext_der;
321
- }
322
-
323
- /* This is the main function: add a bunch of extensions based on a config file
324
- * section to an extension STACK.
325
- */
264
+ int crit, int gen_type,
265
+ X509V3_CTX *ctx)
266
+ OPENSSL_SUPPRESS_POTENTIALLY_UNINITIALIZED_WARNINGS
267
+ {
268
+ unsigned char *ext_der = NULL;
269
+ long ext_len;
270
+ ASN1_OBJECT *obj = NULL;
271
+ ASN1_OCTET_STRING *oct = NULL;
272
+ X509_EXTENSION *extension = NULL;
273
+ if (!(obj = OBJ_txt2obj(ext, 0))) {
274
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_NAME_ERROR);
275
+ ERR_add_error_data(2, "name=", ext);
276
+ goto err;
277
+ }
278
+
279
+ if (gen_type == 1)
280
+ ext_der = string_to_hex(value, &ext_len);
281
+ else if (gen_type == 2)
282
+ ext_der = generic_asn1(value, ctx, &ext_len);
283
+
284
+ if (ext_der == NULL) {
285
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_EXTENSION_VALUE_ERROR);
286
+ ERR_add_error_data(2, "value=", value);
287
+ goto err;
288
+ }
289
+
290
+ if (!(oct = M_ASN1_OCTET_STRING_new())) {
291
+ OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE);
292
+ goto err;
293
+ }
294
+
295
+ oct->data = ext_der;
296
+ oct->length = ext_len;
297
+ ext_der = NULL;
298
+
299
+ extension = X509_EXTENSION_create_by_OBJ(NULL, obj, crit, oct);
300
+
301
+ err:
302
+ ASN1_OBJECT_free(obj);
303
+ M_ASN1_OCTET_STRING_free(oct);
304
+ if (ext_der)
305
+ OPENSSL_free(ext_der);
306
+ return extension;
326
307
 
308
+ }
309
+
310
+ static unsigned char *generic_asn1(char *value, X509V3_CTX *ctx,
311
+ long *ext_len)
312
+ {
313
+ ASN1_TYPE *typ;
314
+ unsigned char *ext_der = NULL;
315
+ typ = ASN1_generate_v3(value, ctx);
316
+ if (typ == NULL)
317
+ return NULL;
318
+ *ext_len = i2d_ASN1_TYPE(typ, &ext_der);
319
+ ASN1_TYPE_free(typ);
320
+ return ext_der;
321
+ }
322
+
323
+ /*
324
+ * This is the main function: add a bunch of extensions based on a config
325
+ * file section to an extension STACK.
326
+ */
327
327
 
328
328
  int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section,
329
- STACK_OF(X509_EXTENSION) **sk)
330
- {
331
- X509_EXTENSION *ext;
332
- STACK_OF(CONF_VALUE) *nval;
333
- CONF_VALUE *val;
334
- size_t i;
335
- if (!(nval = NCONF_get_section(conf, section))) return 0;
336
- for (i = 0; i < sk_CONF_VALUE_num(nval); i++)
337
- {
338
- val = sk_CONF_VALUE_value(nval, i);
339
- if (!(ext = X509V3_EXT_nconf(conf, ctx, val->name, val->value)))
340
- return 0;
341
- if (sk) X509v3_add_ext(sk, ext, -1);
342
- X509_EXTENSION_free(ext);
343
- }
344
- return 1;
345
- }
346
-
347
- /* Convenience functions to add extensions to a certificate, CRL and request */
329
+ STACK_OF(X509_EXTENSION) **sk)
330
+ {
331
+ X509_EXTENSION *ext;
332
+ STACK_OF(CONF_VALUE) *nval;
333
+ CONF_VALUE *val;
334
+ size_t i;
335
+ if (!(nval = NCONF_get_section(conf, section)))
336
+ return 0;
337
+ for (i = 0; i < sk_CONF_VALUE_num(nval); i++) {
338
+ val = sk_CONF_VALUE_value(nval, i);
339
+ if (!(ext = X509V3_EXT_nconf(conf, ctx, val->name, val->value)))
340
+ return 0;
341
+ if (sk)
342
+ X509v3_add_ext(sk, ext, -1);
343
+ X509_EXTENSION_free(ext);
344
+ }
345
+ return 1;
346
+ }
347
+
348
+ /*
349
+ * Convenience functions to add extensions to a certificate, CRL and request
350
+ */
348
351
 
349
352
  int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section,
350
- X509 *cert)
351
- {
352
- STACK_OF(X509_EXTENSION) **sk = NULL;
353
- if (cert)
354
- sk = &cert->cert_info->extensions;
355
- return X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
356
- }
353
+ X509 *cert)
354
+ {
355
+ STACK_OF(X509_EXTENSION) **sk = NULL;
356
+ if (cert)
357
+ sk = &cert->cert_info->extensions;
358
+ return X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
359
+ }
357
360
 
358
361
  /* Same as above but for a CRL */
359
362
 
360
363
  int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section,
361
- X509_CRL *crl)
362
- {
363
- STACK_OF(X509_EXTENSION) **sk = NULL;
364
- if (crl)
365
- sk = &crl->crl->extensions;
366
- return X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
367
- }
364
+ X509_CRL *crl)
365
+ {
366
+ STACK_OF(X509_EXTENSION) **sk = NULL;
367
+ if (crl)
368
+ sk = &crl->crl->extensions;
369
+ return X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
370
+ }
368
371
 
369
372
  /* Add extensions to certificate request */
370
373
 
371
374
  int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section,
372
- X509_REQ *req)
373
- {
374
- STACK_OF(X509_EXTENSION) *extlist = NULL, **sk = NULL;
375
- int i;
376
- if (req)
377
- sk = &extlist;
378
- i = X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
379
- if (!i || !sk)
380
- return i;
381
- i = X509_REQ_add_extensions(req, extlist);
382
- sk_X509_EXTENSION_pop_free(extlist, X509_EXTENSION_free);
383
- return i;
384
- }
375
+ X509_REQ *req)
376
+ {
377
+ STACK_OF(X509_EXTENSION) *extlist = NULL, **sk = NULL;
378
+ int i;
379
+ if (req)
380
+ sk = &extlist;
381
+ i = X509V3_EXT_add_nconf_sk(conf, ctx, section, sk);
382
+ if (!i || !sk)
383
+ return i;
384
+ i = X509_REQ_add_extensions(req, extlist);
385
+ sk_X509_EXTENSION_pop_free(extlist, X509_EXTENSION_free);
386
+ return i;
387
+ }
385
388
 
386
389
  /* Config database functions */
387
390
 
388
- char * X509V3_get_string(X509V3_CTX *ctx, char *name, char *section)
389
- {
390
- if(!ctx->db || !ctx->db_meth || !ctx->db_meth->get_string)
391
- {
392
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_OPERATION_NOT_DEFINED);
393
- return NULL;
394
- }
395
- if (ctx->db_meth->get_string)
396
- return ctx->db_meth->get_string(ctx->db, name, section);
397
- return NULL;
398
- }
399
-
400
- STACK_OF(CONF_VALUE) * X509V3_get_section(X509V3_CTX *ctx, char *section)
401
- {
402
- if(!ctx->db || !ctx->db_meth || !ctx->db_meth->get_section)
403
- {
404
- OPENSSL_PUT_ERROR(X509V3, X509V3_R_OPERATION_NOT_DEFINED);
405
- return NULL;
406
- }
407
- if (ctx->db_meth->get_section)
408
- return ctx->db_meth->get_section(ctx->db, section);
409
- return NULL;
410
- }
391
+ char *X509V3_get_string(X509V3_CTX *ctx, char *name, char *section)
392
+ {
393
+ if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_string) {
394
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_OPERATION_NOT_DEFINED);
395
+ return NULL;
396
+ }
397
+ if (ctx->db_meth->get_string)
398
+ return ctx->db_meth->get_string(ctx->db, name, section);
399
+ return NULL;
400
+ }
401
+
402
+ STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, char *section)
403
+ {
404
+ if (!ctx->db || !ctx->db_meth || !ctx->db_meth->get_section) {
405
+ OPENSSL_PUT_ERROR(X509V3, X509V3_R_OPERATION_NOT_DEFINED);
406
+ return NULL;
407
+ }
408
+ if (ctx->db_meth->get_section)
409
+ return ctx->db_meth->get_section(ctx->db, section);
410
+ return NULL;
411
+ }
411
412
 
412
413
  void X509V3_string_free(X509V3_CTX *ctx, char *str)
413
- {
414
- if (!str) return;
415
- if (ctx->db_meth->free_string)
416
- ctx->db_meth->free_string(ctx->db, str);
417
- }
414
+ {
415
+ if (!str)
416
+ return;
417
+ if (ctx->db_meth->free_string)
418
+ ctx->db_meth->free_string(ctx->db, str);
419
+ }
418
420
 
419
421
  void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section)
420
- {
421
- if (!section) return;
422
- if (ctx->db_meth->free_section)
423
- ctx->db_meth->free_section(ctx->db, section);
424
- }
422
+ {
423
+ if (!section)
424
+ return;
425
+ if (ctx->db_meth->free_section)
426
+ ctx->db_meth->free_section(ctx->db, section);
427
+ }
425
428
 
426
429
  static char *nconf_get_string(void *db, char *section, char *value)
427
- {
428
- /* TODO(fork): this should return a const value. */
429
- return (char *) NCONF_get_string(db, section, value);
430
- }
430
+ {
431
+ /* TODO(fork): this should return a const value. */
432
+ return (char *)NCONF_get_string(db, section, value);
433
+ }
431
434
 
432
435
  static STACK_OF(CONF_VALUE) *nconf_get_section(void *db, char *section)
433
- {
434
- return NCONF_get_section(db, section);
435
- }
436
+ {
437
+ return NCONF_get_section(db, section);
438
+ }
436
439
 
437
440
  static const X509V3_CONF_METHOD nconf_method = {
438
- nconf_get_string,
439
- nconf_get_section,
440
- NULL,
441
- NULL
441
+ nconf_get_string,
442
+ nconf_get_section,
443
+ NULL,
444
+ NULL
442
445
  };
443
446
 
444
447
  void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf)
445
- {
446
- ctx->db_meth = &nconf_method;
447
- ctx->db = conf;
448
- }
448
+ {
449
+ ctx->db_meth = &nconf_method;
450
+ ctx->db = conf;
451
+ }
449
452
 
450
453
  void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subj, X509_REQ *req,
451
- X509_CRL *crl, int flags)
452
- {
453
- ctx->issuer_cert = issuer;
454
- ctx->subject_cert = subj;
455
- ctx->crl = crl;
456
- ctx->subject_req = req;
457
- ctx->flags = flags;
458
- }
459
-
454
+ X509_CRL *crl, int flags)
455
+ {
456
+ ctx->issuer_cert = issuer;
457
+ ctx->subject_cert = subj;
458
+ ctx->crl = crl;
459
+ ctx->subject_req = req;
460
+ ctx->flags = flags;
461
+ }