From 045e74bb39d7743b774cfd2b889bc6ce1e1ad245 Mon Sep 17 00:00:00 2001 From: Jonathon Orsi Date: Mon, 23 Sep 2019 14:40:38 -0400 Subject: feat: Add Deno.dialTLS() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bartek IwaƄczuk --- js/tls.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 js/tls.ts (limited to 'js/tls.ts') diff --git a/js/tls.ts b/js/tls.ts new file mode 100644 index 000000000..ec24b458b --- /dev/null +++ b/js/tls.ts @@ -0,0 +1,21 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. +import { sendAsync } from "./dispatch_json.ts"; +import * as dispatch from "./dispatch.ts"; +import { Conn, ConnImpl } from "./net.ts"; + +// TODO(ry) There are many configuration options to add... +// https://docs.rs/rustls/0.16.0/rustls/struct.ClientConfig.html +interface DialTLSOptions { + port: number; + hostname?: string; +} +const dialTLSDefaults = { hostname: "127.0.0.1", transport: "tcp" }; + +/** + * dialTLS establishes a secure connection over TLS (transport layer security). + */ +export async function dialTLS(options: DialTLSOptions): Promise { + options = Object.assign(dialTLSDefaults, options); + const res = await sendAsync(dispatch.OP_DIAL_TLS, options); + return new ConnImpl(res.rid, res.remoteAddr!, res.localAddr!); +} -- cgit v1.2.3