14 """Tests experimental TLS Session Resumption API"""
21 from grpc
import _channel
27 _REQUEST = b
'\x00\x00\x00'
28 _RESPONSE = b
'\x00\x00\x00'
30 _UNARY_UNARY =
'/test/UnaryUnary'
32 _SERVER_HOST_OVERRIDE =
'foo.test.google.fr'
35 _AUTH_CTX =
'auth_ctx'
37 _PRIVATE_KEY = resources.private_key()
38 _CERTIFICATE_CHAIN = resources.certificate_chain()
39 _TEST_ROOT_CERTIFICATES = resources.test_root_certificates()
40 _SERVER_CERTS = ((_PRIVATE_KEY, _CERTIFICATE_CHAIN),)
41 _PROPERTY_OPTIONS = ((
42 'grpc.ssl_target_name_override',
43 _SERVER_HOST_OVERRIDE,
49 _ID: servicer_context.peer_identities(),
50 _ID_KEY: servicer_context.peer_identity_key(),
51 _AUTH_CTX: servicer_context.auth_context()
59 server = test_common.test_server()
60 server.add_generic_rpc_handlers((handler,))
62 port = server.add_secure_port(
'[::]:0', server_cred)
71 expect_ssl_session_reused):
74 options=channel_options)
75 response = channel.unary_unary(_UNARY_UNARY)(_REQUEST)
76 auth_data = pickle.loads(response)
77 self.assertEqual(expect_ssl_session_reused,
78 auth_data[_AUTH_CTX][
'ssl_session_reused'])
84 cache = session_cache.ssl_session_cache_lru(1)
86 root_certificates=_TEST_ROOT_CERTIFICATES)
87 channel_options = _PROPERTY_OPTIONS + (
88 (
'grpc.ssl_session_cache', cache),)
94 expect_ssl_session_reused=[b
'false'])
100 expect_ssl_session_reused=[b
'true'])
107 expect_ssl_session_reused=[b
'false'])
111 expect_ssl_session_reused=[b
'true'])
118 expect_ssl_session_reused=[b
'false'])
128 expect_ssl_session_reused=[b
'false'])
134 expect_ssl_session_reused=[b
'true'])
138 if __name__ ==
'__main__':
139 logging.basicConfig()
140 unittest.main(verbosity=2)