This seems to be fairly easy. Curio already has wrappers around ssl module in standard library. SSLContext (and, in case of HTTP/2 client, server hostname, ALPN protocol list) needs to be passed down to curio.open_connection and curio.tcp_server/curio.run_server.