aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bun.js/bindings/ZigGlobalObject.cpp21
m---------src/deps/uws0
-rw-r--r--src/js/node/tls.js4
-rw-r--r--src/js/out/modules/node/tls.js6
4 files changed, 28 insertions, 3 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp
index 0262050ff..34ef5e38a 100644
--- a/src/bun.js/bindings/ZigGlobalObject.cpp
+++ b/src/bun.js/bindings/ZigGlobalObject.cpp
@@ -199,6 +199,7 @@ namespace JSCastingHelpers = JSC::JSCastingHelpers;
#include <wtf/RAMSize.h>
#include <wtf/text/Base64.h>
#include "simdutf.h"
+#include "libusockets.h"
constexpr size_t DEFAULT_ERROR_STACK_TRACE_LIMIT = 10;
@@ -1641,6 +1642,26 @@ JSC:
return JSValue::encode(obj);
}
+ if(string == "rootCertificates"_s) {
+ auto sourceOrigin = callFrame->callerSourceOrigin(vm).url();
+ bool isBuiltin = sourceOrigin.protocolIs("builtin"_s);
+ if (!isBuiltin) {
+ return JSC::JSValue::encode(JSC::jsUndefined());
+ }
+ struct us_cert_string_t* out;
+ auto size = us_raw_root_certs(&out);
+ if (size < 0) {
+ return JSValue::encode(JSC::jsUndefined());
+ }
+ auto rootCertificates = JSC::JSArray::create(vm, globalObject->arrayStructureForIndexingTypeDuringAllocation(JSC::ArrayWithContiguous), size);
+ for(auto i = 0; i < size; i++) {
+ auto raw = out[i];
+ auto str = WTF::String::fromUTF8(raw.str, raw.len);
+ rootCertificates->putDirectIndex(globalObject, i, JSC::jsString(vm, str));
+ }
+ return JSValue::encode(rootCertificates);
+ }
+
if (string == "masqueradesAsUndefined"_s) {
return JSValue::encode(InternalFunction::createFunctionThatMasqueradesAsUndefined(vm, globalObject, 0, String(), functionCallNotImplemented));
}
diff --git a/src/deps/uws b/src/deps/uws
-Subproject 875948226eede72861a5170212ff6b43c4b7d7f
+Subproject f29c6e24c33483c342bbc83c41cc032f42fbf77
diff --git a/src/js/node/tls.js b/src/js/node/tls.js
index 0966b584b..e8c2dd998 100644
--- a/src/js/node/tls.js
+++ b/src/js/node/tls.js
@@ -677,7 +677,7 @@ function convertALPNProtocols(protocols, out) {
out.ALPNProtocols = protocols;
}
}
-
+var rootCertificates = $lazy("rootCertificates");
var exports = {
[Symbol.for("CommonJS")]: 0,
CLIENT_RENEG_LIMIT,
@@ -698,6 +698,7 @@ var exports = {
Server,
TLSSocket,
checkServerIdentity,
+ rootCertificates,
};
export {
@@ -719,5 +720,6 @@ export {
checkServerIdentity,
Server,
TLSSocket,
+ rootCertificates,
exports as default,
};
diff --git a/src/js/out/modules/node/tls.js b/src/js/out/modules/node/tls.js
index d994a6244..fba1e413a 100644
--- a/src/js/out/modules/node/tls.js
+++ b/src/js/out/modules/node/tls.js
@@ -414,7 +414,7 @@ var CLIENT_RENEG_LIMIT = 3, CLIENT_RENEG_WINDOW = 600, DEFAULT_ECDH_CURVE = "aut
return new TLSSocket(port).connect(port, host2, connectListener);
}
return new TLSSocket().connect(port, host2, connectListener);
-}, connect = createConnection, exports = {
+}, connect = createConnection, rootCertificates = globalThis[Symbol.for("Bun.lazy")]("rootCertificates"), exports = {
[Symbol.for("CommonJS")]: 0,
CLIENT_RENEG_LIMIT,
CLIENT_RENEG_WINDOW,
@@ -433,9 +433,11 @@ var CLIENT_RENEG_LIMIT = 3, CLIENT_RENEG_WINDOW = 600, DEFAULT_ECDH_CURVE = "aut
SecureContext,
Server,
TLSSocket,
- checkServerIdentity
+ checkServerIdentity,
+ rootCertificates
};
export {
+ rootCertificates,
parseCertString,
getCurves,
getCiphers,