CA
This commit is contained in:
49
flumi/Scripts/CertificateManager.gd
Normal file
49
flumi/Scripts/CertificateManager.gd
Normal file
@@ -0,0 +1,49 @@
|
||||
extends RefCounted
|
||||
class_name CertificateManager
|
||||
|
||||
static var trusted_ca_certificates: Array[String] = []
|
||||
static var ca_cache: Dictionary = {}
|
||||
|
||||
static func fetch_cert_via_http(url: String) -> String:
|
||||
var http_request = HTTPRequest.new()
|
||||
|
||||
var main_scene = Engine.get_main_loop().current_scene
|
||||
if not main_scene:
|
||||
return ""
|
||||
|
||||
main_scene.add_child(http_request)
|
||||
|
||||
var error = http_request.request(url)
|
||||
if error != OK:
|
||||
http_request.queue_free()
|
||||
return ""
|
||||
|
||||
var response = await http_request.request_completed
|
||||
http_request.queue_free()
|
||||
|
||||
var result = response[0]
|
||||
var response_code = response[1]
|
||||
var body = response[3]
|
||||
|
||||
if result != HTTPRequest.RESULT_SUCCESS or response_code != 200:
|
||||
return ""
|
||||
|
||||
return body.get_string_from_utf8()
|
||||
|
||||
static func initialize():
|
||||
load_builtin_ca()
|
||||
print("📋 Certificate Manager initialized with ", trusted_ca_certificates.size(), " trusted CAs")
|
||||
|
||||
static func load_builtin_ca():
|
||||
var ca_file = FileAccess.open("res://Assets/gurted-ca.crt", FileAccess.READ)
|
||||
if ca_file:
|
||||
var ca_cert_pem = ca_file.get_as_text()
|
||||
ca_file.close()
|
||||
|
||||
if not ca_cert_pem.is_empty():
|
||||
trusted_ca_certificates.append(ca_cert_pem)
|
||||
print("✅ Loaded built-in GURT CA certificate")
|
||||
else:
|
||||
print("⚠️ Built-in CA certificate not yet configured")
|
||||
else:
|
||||
print("❌ Could not load built-in CA certificate")
|
||||
Reference in New Issue
Block a user