2024-01-01 14:58:21 -05:00
|
|
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2023-02-14 11:38:45 -05:00
|
|
|
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
|
|
|
|
2023-06-27 02:18:22 -04:00
|
|
|
// TODO(petamoriken): enable prefer-primordials for node polyfills
|
|
|
|
// deno-lint-ignore-file prefer-primordials
|
|
|
|
|
2023-03-08 06:44:54 -05:00
|
|
|
import { notImplemented } from "ext:deno_node/_utils.ts";
|
2024-09-11 20:52:08 -04:00
|
|
|
import tlsCommon from "node:_tls_common";
|
|
|
|
import tlsWrap from "node:_tls_wrap";
|
2023-02-14 11:38:45 -05:00
|
|
|
|
|
|
|
// openssl -> rustls
|
|
|
|
const cipherMap = {
|
|
|
|
"__proto__": null,
|
|
|
|
"AES128-GCM-SHA256": "TLS13_AES_128_GCM_SHA256",
|
|
|
|
"AES256-GCM-SHA384": "TLS13_AES_256_GCM_SHA384",
|
|
|
|
"ECDHE-ECDSA-AES128-GCM-SHA256": "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
|
|
|
|
"ECDHE-ECDSA-AES256-GCM-SHA384": "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
|
|
|
|
"ECDHE-ECDSA-CHACHA20-POLY1305":
|
|
|
|
"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
|
|
|
|
"ECDHE-RSA-AES128-GCM-SHA256": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
|
|
|
|
"ECDHE-RSA-AES256-GCM-SHA384": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
|
|
|
|
"ECDHE-RSA-CHACHA20-POLY1305": "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
|
|
|
|
"TLS_AES_128_GCM_SHA256": "TLS13_AES_128_GCM_SHA256",
|
|
|
|
"TLS_AES_256_GCM_SHA384": "TLS13_AES_256_GCM_SHA384",
|
|
|
|
"TLS_CHACHA20_POLY1305_SHA256": "TLS13_CHACHA20_POLY1305_SHA256",
|
|
|
|
};
|
|
|
|
|
|
|
|
export function getCiphers() {
|
|
|
|
// TODO(bnoordhuis) Use locale-insensitive toLowerCase()
|
|
|
|
return Object.keys(cipherMap).map((name) => name.toLowerCase());
|
|
|
|
}
|
|
|
|
|
|
|
|
export const rootCertificates = undefined;
|
|
|
|
export const DEFAULT_ECDH_CURVE = "auto";
|
|
|
|
export const DEFAULT_MAX_VERSION = "TLSv1.3";
|
|
|
|
export const DEFAULT_MIN_VERSION = "TLSv1.2";
|
2024-09-11 20:25:46 -04:00
|
|
|
export const CLIENT_RENEG_LIMIT = 3;
|
|
|
|
export const CLIENT_RENEG_WINDOW = 600;
|
2023-02-14 11:38:45 -05:00
|
|
|
|
|
|
|
export class CryptoStream {}
|
|
|
|
export class SecurePair {}
|
|
|
|
export const Server = tlsWrap.Server;
|
|
|
|
export function createSecurePair() {
|
|
|
|
notImplemented("tls.createSecurePair");
|
|
|
|
}
|
|
|
|
|
|
|
|
export default {
|
|
|
|
CryptoStream,
|
|
|
|
SecurePair,
|
|
|
|
Server,
|
|
|
|
TLSSocket: tlsWrap.TLSSocket,
|
|
|
|
checkServerIdentity: tlsWrap.checkServerIdentity,
|
|
|
|
connect: tlsWrap.connect,
|
|
|
|
createSecureContext: tlsCommon.createSecureContext,
|
|
|
|
createSecurePair,
|
|
|
|
createServer: tlsWrap.createServer,
|
|
|
|
getCiphers,
|
|
|
|
rootCertificates,
|
|
|
|
DEFAULT_CIPHERS: tlsWrap.DEFAULT_CIPHERS,
|
|
|
|
DEFAULT_ECDH_CURVE,
|
|
|
|
DEFAULT_MAX_VERSION,
|
|
|
|
DEFAULT_MIN_VERSION,
|
2024-09-11 20:25:46 -04:00
|
|
|
CLIENT_RENEG_LIMIT,
|
|
|
|
CLIENT_RENEG_WINDOW,
|
2023-02-14 11:38:45 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
export const checkServerIdentity = tlsWrap.checkServerIdentity;
|
|
|
|
export const connect = tlsWrap.connect;
|
|
|
|
export const createSecureContext = tlsCommon.createSecureContext;
|
|
|
|
export const createServer = tlsWrap.createServer;
|
|
|
|
export const DEFAULT_CIPHERS = tlsWrap.DEFAULT_CIPHERS;
|
|
|
|
export const TLSSocket = tlsWrap.TLSSocket;
|