summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2021-10-29 17:13:31 +0200
committerGitHub <noreply@github.com>2021-10-29 17:13:31 +0200
commitb7341438f29de88f3458b32a835bfad560bda52e (patch)
treed58500fae822d3436bb513eb0c6cd9626048ab41 /cli
parent8e0fd1dca1dbf5dd30595a859640067020506668 (diff)
feat: stabilize Deno.startTls (#12581)
This commit stabilizes `Deno.startTls` and removes `certFile` from the `StartTlsOptions`.
Diffstat (limited to 'cli')
-rw-r--r--cli/dts/lib.deno.unstable.d.ts39
-rw-r--r--cli/tests/unit/tls_test.ts19
2 files changed, 1 insertions, 57 deletions
diff --git a/cli/dts/lib.deno.unstable.d.ts b/cli/dts/lib.deno.unstable.d.ts
index 5a570d005..c2014bc18 100644
--- a/cli/dts/lib.deno.unstable.d.ts
+++ b/cli/dts/lib.deno.unstable.d.ts
@@ -1093,45 +1093,6 @@ declare namespace Deno {
*/
export function connectTls(options: ConnectTlsOptions): Promise<TlsConn>;
- export interface StartTlsOptions {
- /** A literal IP address or host name that can be resolved to an IP address.
- * If not specified, defaults to `127.0.0.1`. */
- hostname?: string;
- /**
- * @deprecated This option is deprecated and will be removed in a future
- * release.
- *
- * Server certificate file.
- */
- certFile?: string;
- /** A list of root certificates that will be used in addition to the
- * default root certificates to verify the peer's certificate.
- *
- * Must be in PEM format. */
- caCerts?: string[];
- }
-
- /** **UNSTABLE**: new API, yet to be vetted.
- *
- * Start TLS handshake from an existing connection using
- * an optional cert file, hostname (default is "127.0.0.1"). Specifying CA
- * certs is optional. By default the configured root certificates are used.
- * Using this function requires that the other end of the connection is
- * prepared for TLS handshake.
- *
- * ```ts
- * const conn = await Deno.connect({ port: 80, hostname: "127.0.0.1" });
- * const caCert = await Deno.readTextFile("./certs/my_custom_root_CA.pem");
- * const tlsConn = await Deno.startTls(conn, { caCerts: [caCert], hostname: "localhost" });
- * ```
- *
- * Requires `allow-net` permission.
- */
- export function startTls(
- conn: Conn,
- options?: StartTlsOptions,
- ): Promise<TlsConn>;
-
export interface ListenTlsOptions {
/** **UNSTABLE**: new API, yet to be vetted.
*
diff --git a/cli/tests/unit/tls_test.ts b/cli/tests/unit/tls_test.ts
index c66f958d0..fb8888be4 100644
--- a/cli/tests/unit/tls_test.ts
+++ b/cli/tests/unit/tls_test.ts
@@ -1107,23 +1107,6 @@ unitTest(
unitTest(
{ permissions: { read: true, net: true } },
- async function startTLSCertFile() {
- const plainConn = await Deno.connect({
- hostname: "localhost",
- port: 4557,
- });
- const conn = await Deno.startTls(plainConn, {
- hostname: "localhost",
- certFile: "cli/tests/testdata/tls/RootCA.pem",
- });
- const result = decoder.decode(await readAll(conn));
- assertEquals(result, "PASS");
- conn.close();
- },
-);
-
-unitTest(
- { permissions: { read: true, net: true } },
async function tlsHandshakeSuccess() {
const hostname = "localhost";
const port = getPort();
@@ -1235,7 +1218,7 @@ unitTest(
const tcpConn = await Deno.connect({ hostname, port });
const tlsConn = await Deno.startTls(tcpConn, {
hostname: "foo.land",
- certFile: "cli/tests/testdata/tls/RootCA.crt",
+ caCerts: [Deno.readTextFileSync("cli/tests/testdata/tls/RootCA.pem")],
});
// Handshake fails because hostname doesn't match the certificate.
await assertRejects(