Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/4789 to look at the new patch set (#3). Change subject: KuduRPC integration with OpenSSL ...................................................................... KuduRPC integration with OpenSSL This patch adds SSL support for the RPC layer in Kudu. It uses the OpenSSL library for this purpose. This is acheived by subclassing 'Socket' to add 'SSLSocket' which calls into the OpenSSL library for auth/read/write/shutdown. SSL is enabled only at a 'Connection' object level, i.e. the AcceptorPool still only works with regular 'Socket's, and the reactor threads also use a regular 'Socket' on a new outgoing call. The first point of any SSL activity happens in the context of the negotiation pool, where the SSL handshake happens before the SASL handshake. On a successful handshake, further communication is encrypted on that 'Connection'. A 'SSLFactory' is created at the 'Messenger' level. This factory is in-charge of creating 'SSLSocket' objects when necessary and also keeps a track of the certificates, keys and the SSL context that is shared among all the sockets of that 'Messenger'. Added a parameter to the rpc-test to additionally run the tests with SSL enabled. Future TODOs: - Enable authorization of SANs (SubjectAlternativeNames) - Make SSL methods (SSLv23, TLS1, etc.) configurable and OpenSSL version aware. (Choosing APIs based on supported versions) - Allow loading keys as strings vs files. (Need to use different APIs) Change-Id: I27167faa4e6a78e59b46093055b16682c93af0ea --- M CMakeLists.txt M src/kudu/rpc/connection.cc M src/kudu/rpc/connection.h M src/kudu/rpc/messenger.cc M src/kudu/rpc/messenger.h M src/kudu/rpc/negotiation.cc M src/kudu/rpc/reactor.cc M src/kudu/rpc/rpc-test-base.h M src/kudu/rpc/rpc-test.cc M src/kudu/rpc/sasl_client.cc M src/kudu/rpc/sasl_client.h M src/kudu/rpc/sasl_rpc-test.cc M src/kudu/rpc/sasl_server.cc M src/kudu/rpc/sasl_server.h M src/kudu/util/CMakeLists.txt M src/kudu/util/net/net_util-test.cc M src/kudu/util/net/socket.cc M src/kudu/util/net/socket.h A src/kudu/util/net/ssl_factory.cc A src/kudu/util/net/ssl_factory.h A src/kudu/util/net/ssl_socket.cc A src/kudu/util/net/ssl_socket.h 22 files changed, 806 insertions(+), 115 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/89/4789/3 -- To view, visit http://gerrit.cloudera.org:8080/4789 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I27167faa4e6a78e59b46093055b16682c93af0ea Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Sailesh Mukil <sail...@cloudera.com> Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com> Gerrit-Reviewer: Dan Burkert <danburk...@apache.org> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Sailesh Mukil <sail...@cloudera.com> Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <t...@apache.org>