summaryrefslogtreecommitdiff
path: root/ext/net/02_tls.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/net/02_tls.js')
-rw-r--r--ext/net/02_tls.js166
1 files changed, 79 insertions, 87 deletions
diff --git a/ext/net/02_tls.js b/ext/net/02_tls.js
index 632e1fbd4..4701d3da7 100644
--- a/ext/net/02_tls.js
+++ b/ext/net/02_tls.js
@@ -1,106 +1,98 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
-"use strict";
-((window) => {
- const core = window.Deno.core;
- const ops = core.ops;
- const { Listener, Conn } = window.__bootstrap.net;
- const { TypeError } = window.__bootstrap.primordials;
+const core = globalThis.Deno.core;
+const ops = core.ops;
+import { Conn, Listener } from "internal:ext/net/01_net.js";
+const primordials = globalThis.__bootstrap.primordials;
+const { TypeError } = primordials;
- function opStartTls(args) {
- return core.opAsync("op_tls_start", args);
- }
+function opStartTls(args) {
+ return core.opAsync("op_tls_start", args);
+}
+
+function opTlsHandshake(rid) {
+ return core.opAsync("op_tls_handshake", rid);
+}
- function opTlsHandshake(rid) {
- return core.opAsync("op_tls_handshake", rid);
+class TlsConn extends Conn {
+ handshake() {
+ return opTlsHandshake(this.rid);
}
+}
- class TlsConn extends Conn {
- handshake() {
- return opTlsHandshake(this.rid);
- }
+async function connectTls({
+ port,
+ hostname = "127.0.0.1",
+ transport = "tcp",
+ certFile = undefined,
+ caCerts = [],
+ certChain = undefined,
+ privateKey = undefined,
+ alpnProtocols = undefined,
+}) {
+ if (transport !== "tcp") {
+ throw new TypeError(`Unsupported transport: '${transport}'`);
}
+ const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync(
+ "op_net_connect_tls",
+ { hostname, port },
+ { certFile, caCerts, certChain, privateKey, alpnProtocols },
+ );
+ localAddr.transport = "tcp";
+ remoteAddr.transport = "tcp";
+ return new TlsConn(rid, remoteAddr, localAddr);
+}
- async function connectTls({
- port,
- hostname = "127.0.0.1",
- transport = "tcp",
- certFile = undefined,
- caCerts = [],
- certChain = undefined,
- privateKey = undefined,
- alpnProtocols = undefined,
- }) {
- if (transport !== "tcp") {
- throw new TypeError(`Unsupported transport: '${transport}'`);
- }
+class TlsListener extends Listener {
+ async accept() {
const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync(
- "op_net_connect_tls",
- { hostname, port },
- { certFile, caCerts, certChain, privateKey, alpnProtocols },
+ "op_net_accept_tls",
+ this.rid,
);
localAddr.transport = "tcp";
remoteAddr.transport = "tcp";
return new TlsConn(rid, remoteAddr, localAddr);
}
+}
- class TlsListener extends Listener {
- async accept() {
- const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync(
- "op_net_accept_tls",
- this.rid,
- );
- localAddr.transport = "tcp";
- remoteAddr.transport = "tcp";
- return new TlsConn(rid, remoteAddr, localAddr);
- }
+function listenTls({
+ port,
+ cert,
+ certFile,
+ key,
+ keyFile,
+ hostname = "0.0.0.0",
+ transport = "tcp",
+ alpnProtocols = undefined,
+ reusePort = false,
+}) {
+ if (transport !== "tcp") {
+ throw new TypeError(`Unsupported transport: '${transport}'`);
}
+ const { 0: rid, 1: localAddr } = ops.op_net_listen_tls(
+ { hostname, port },
+ { cert, certFile, key, keyFile, alpnProtocols, reusePort },
+ );
+ return new TlsListener(rid, localAddr);
+}
- function listenTls({
- port,
- cert,
- certFile,
- key,
- keyFile,
- hostname = "0.0.0.0",
- transport = "tcp",
+async function startTls(
+ conn,
+ {
+ hostname = "127.0.0.1",
+ certFile = undefined,
+ caCerts = [],
alpnProtocols = undefined,
- reusePort = false,
- }) {
- if (transport !== "tcp") {
- throw new TypeError(`Unsupported transport: '${transport}'`);
- }
- const { 0: rid, 1: localAddr } = ops.op_net_listen_tls(
- { hostname, port },
- { cert, certFile, key, keyFile, alpnProtocols, reusePort },
- );
- return new TlsListener(rid, localAddr);
- }
-
- async function startTls(
- conn,
- {
- hostname = "127.0.0.1",
- certFile = undefined,
- caCerts = [],
- alpnProtocols = undefined,
- } = {},
- ) {
- const { 0: rid, 1: localAddr, 2: remoteAddr } = await opStartTls({
- rid: conn.rid,
- hostname,
- certFile,
- caCerts,
- alpnProtocols,
- });
- return new TlsConn(rid, remoteAddr, localAddr);
- }
+ } = {},
+) {
+ const { 0: rid, 1: localAddr, 2: remoteAddr } = await opStartTls({
+ rid: conn.rid,
+ hostname,
+ certFile,
+ caCerts,
+ alpnProtocols,
+ });
+ return new TlsConn(rid, remoteAddr, localAddr);
+}
- window.__bootstrap.tls = {
- startTls,
- listenTls,
- connectTls,
- TlsConn,
- TlsListener,
- };
-})(this);
+export { connectTls, listenTls, startTls, TlsConn, TlsListener };