diff options
Diffstat (limited to 'ext/net/02_tls.js')
-rw-r--r-- | ext/net/02_tls.js | 166 |
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 }; |