aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/node-tls.exports.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/node-tls.exports.js')
-rw-r--r--src/bun.js/node-tls.exports.js141
1 files changed, 141 insertions, 0 deletions
diff --git a/src/bun.js/node-tls.exports.js b/src/bun.js/node-tls.exports.js
new file mode 100644
index 000000000..298fd490a
--- /dev/null
+++ b/src/bun.js/node-tls.exports.js
@@ -0,0 +1,141 @@
+function parseCertString() {
+ throw Error("Not implemented");
+}
+
+var InternalSecureContext = class SecureContext {};
+function SecureContext() {
+ return new InternalSecureContext();
+}
+
+function createSecureContext(options) {
+ return new SecureContext();
+}
+
+const { [Symbol.for("::bunternal::")]: InternalTCPSocket } =
+ import.meta.require("net");
+
+const buntls = Symbol.for("::buntls::");
+
+var SocketClass;
+const TLSSocket = (function (InternalTLSSocket) {
+ SocketClass = InternalTLSSocket;
+ Object.defineProperty(SocketClass.prototype, Symbol.toStringTag, {
+ value: "TLSSocket",
+ enumerable: false,
+ });
+
+ return Object.defineProperty(
+ function Socket(options) {
+ return new InternalTLSSocket(options);
+ },
+ Symbol.hasInstance,
+ {
+ value(instance) {
+ return instance instanceof InternalTLSSocket;
+ },
+ },
+ );
+})(
+ class TLSSocket extends InternalTCPSocket {
+ constructor(options) {
+ super(options);
+ }
+
+ _secureEstablished = false;
+ _securePending = true;
+ _newSessionPending;
+ _controlReleased;
+ secureConnecting = false;
+ _SNICallback;
+ servername;
+ alpnProtocol;
+ authorized = true;
+ authorizationError;
+
+ encrypted = true;
+
+ exportKeyingMaterial() {
+ throw Error("Not implented in Bun yet");
+ }
+ setMaxSendFragment() {
+ throw Error("Not implented in Bun yet");
+ }
+ setServername() {
+ throw Error("Not implented in Bun yet");
+ }
+ setSession() {
+ throw Error("Not implented in Bun yet");
+ }
+ getPeerCertificate() {
+ throw Error("Not implented in Bun yet");
+ }
+ getCertificate() {
+ throw Error("Not implented in Bun yet");
+ }
+ getPeerX509Certificate() {
+ throw Error("Not implented in Bun yet");
+ }
+ getX509Certificate() {
+ throw Error("Not implented in Bun yet");
+ }
+
+ emit(event, args) {
+ super.emit(event, args);
+
+ if (event === "connect" && !this._readableState?.destroyed) {
+ this.authorized = true;
+ this.secureConnecting = false;
+ this._secureEstablished = true;
+ this._securePending = false;
+
+ super.emit("secureConnect", args);
+ }
+ }
+
+ [buntls](port, host) {
+ var { servername } = this;
+ if (servername) {
+ return {
+ serverName: typeof servername === "string" ? servername : host,
+ };
+ }
+
+ return true;
+ }
+ },
+);
+export const CLIENT_RENEG_LIMIT = 3,
+ CLIENT_RENEG_WINDOW = 600,
+ DEFAULT_ECDH_CURVE = "auto",
+ // https://github.com/Jarred-Sumner/uSockets/blob/fafc241e8664243fc0c51d69684d5d02b9805134/src/crypto/openssl.c#L519-L523
+ DEFAULT_CIPHERS =
+ "DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256",
+ DEFAULT_MIN_VERSION = "TLSv1.2",
+ DEFAULT_MAX_VERSION = "TLSv1.3";
+
+var exports = {
+ createSecureContext,
+ parseCertString,
+
+ getCiphers() {
+ return DEFAULT_CIPHERS.split(":");
+ },
+
+ getCurves() {
+ return;
+ },
+
+ convertALPNProtocols(protocols, out) {},
+ TLSSocket,
+ SecureContext,
+ CLIENT_RENEG_LIMIT,
+ CLIENT_RENEG_WINDOW,
+ DEFAULT_ECDH_CURVE,
+ DEFAULT_CIPHERS,
+ DEFAULT_MIN_VERSION,
+ DEFAULT_MAX_VERSION,
+ [Symbol.for("CommonJS")]: 0,
+};
+
+export default exports;
+export { createSecureContext, parseCertString, TLSSocket, SecureContext };