diff --git a/addons/server/functions/fnc_3denCoreModuleConfig.sqf b/addons/server/functions/fnc_3denCoreModuleConfig.sqf index 589e1bc..8f609c7 100644 --- a/addons/server/functions/fnc_3denCoreModuleConfig.sqf +++ b/addons/server/functions/fnc_3denCoreModuleConfig.sqf @@ -6,20 +6,62 @@ params [ ["_activated", true, [true]] ]; -if (isServer) exitWith { - ["Connecting to TCP Socket", "success", "TCP Socket"] call EFUNC(main,notify); + if (isServer) exitWith { + ["Connecting to TCP Socket", "success", "TCP Socket"] call EFUNC(main,notify); - _tak_server_instance_address = _logic getVariable QGVAR(moduleInstanceAddress); - _tak_server_instance_port = _logic getVariable QGVAR(moduleInstancePort); + _transport_mode = _logic getVariable [QGVAR(moduleTransportMode), "tcp"]; + _tak_server_instance_address = _logic getVariable QGVAR(moduleInstanceAddress); + _tak_server_instance_port = _logic getVariable QGVAR(moduleInstancePort); + _tak_server_tls_name = _logic getVariable [QGVAR(moduleTlsServerName), ""]; + _tak_server_tls_ca_cert_path = _logic getVariable [QGVAR(moduleTlsCaCertPath), ""]; + _tak_server_tls_client_cert_path = _logic getVariable [QGVAR(moduleTlsClientCertPath), ""]; + _tak_server_tls_client_key_path = _logic getVariable [QGVAR(moduleTlsClientKeyPath), ""]; + _tak_server_enrollment_port = _logic getVariable [QGVAR(moduleEnrollmentPort), 8446]; + _tak_server_enrollment_username = _logic getVariable [QGVAR(moduleEnrollmentUsername), ""]; + _tak_server_enrollment_password = _logic getVariable [QGVAR(moduleEnrollmentPassword), ""]; + _tak_server_enrollment_client_uid = _logic getVariable [QGVAR(moduleEnrollmentClientUid), ""]; - _tak_server_fulladdress = _tak_server_instance_address + ":" + (str _tak_server_instance_port); + _tak_server_fulladdress = _tak_server_instance_address + ":" + (str _tak_server_instance_port); - missionNamespace setVariable ["armatak_server_instance", _tak_server_fulladdress]; - missionNamespace setVariable ["armatak_tcp_socket_is_running", true]; + missionNamespace setVariable ["armatak_server_instance", _tak_server_fulladdress]; + missionNamespace setVariable ["armatak_tcp_socket_is_running", true]; - "armatak" callExtension ["tcp_socket:start", [_tak_server_fulladdress]]; + if (_tak_server_tls_name == "") then { + _tak_server_tls_name = _tak_server_instance_address; + }; - _syncUnits = synchronizedObjects _logic; + switch (_transport_mode) do { + case "manual_mtls": { + "armatak" callExtension [ + "tcp_socket:start_mtls", + [ + _tak_server_fulladdress, + _tak_server_tls_name, + _tak_server_tls_ca_cert_path, + _tak_server_tls_client_cert_path, + _tak_server_tls_client_key_path + ] + ]; + }; + case "enroll_mtls": { + "armatak" callExtension [ + "tcp_socket:start_enroll_mtls", + [ + _tak_server_instance_address, + _tak_server_tls_name, + str _tak_server_enrollment_port, + _tak_server_enrollment_username, + _tak_server_enrollment_password, + _tak_server_enrollment_client_uid + ] + ]; + }; + default { + "armatak" callExtension ["tcp_socket:start", [_tak_server_fulladdress]]; + }; + }; + + _syncUnits = synchronizedObjects _logic; missionNamespace setVariable ["armatak_server_syncedUnits", _syncUnits]; diff --git a/addons/server/functions/fnc_ZeusCoreModuleConfig.sqf b/addons/server/functions/fnc_ZeusCoreModuleConfig.sqf index 8889cf4..5a84ac3 100644 --- a/addons/server/functions/fnc_ZeusCoreModuleConfig.sqf +++ b/addons/server/functions/fnc_ZeusCoreModuleConfig.sqf @@ -13,15 +13,57 @@ disableSerialization; ["Connecting to TCP Socket", "success", "TCP Socket"] call EFUNC(main,notify); +_transport_mode = toLower (ctrlText 14006); _tak_server_instance_address = ctrlText 14000; _tak_server_instance_port = ctrlText 14001; +_tak_server_tls_name = ctrlText 14002; +_tak_server_tls_ca_cert_path = ctrlText 14003; +_tak_server_tls_client_cert_path = ctrlText 14004; +_tak_server_tls_client_key_path = ctrlText 14005; +_tak_server_enrollment_port = ctrlText 14007; +_tak_server_enrollment_username = ctrlText 14008; +_tak_server_enrollment_password = ctrlText 14009; +_tak_server_enrollment_client_uid = ctrlText 14010; _tak_server_fulladdress = ((_tak_server_instance_address) + ":" + (_tak_server_instance_port)); missionNamespace setVariable ["armatak_server_instance", _tak_server_fulladdress]; missionNamespace setVariable ["armatak_tcp_socket_is_running", true]; -"armatak" callExtension ["tcp_socket:start", [_tak_server_fulladdress]]; +if (_tak_server_tls_name == "") then { + _tak_server_tls_name = _tak_server_instance_address; +}; + +switch (_transport_mode) do { + case "manual_mtls": { + "armatak" callExtension [ + "tcp_socket:start_mtls", + [ + _tak_server_fulladdress, + _tak_server_tls_name, + _tak_server_tls_ca_cert_path, + _tak_server_tls_client_cert_path, + _tak_server_tls_client_key_path + ] + ]; + }; + case "enroll_mtls": { + "armatak" callExtension [ + "tcp_socket:start_enroll_mtls", + [ + _tak_server_instance_address, + _tak_server_tls_name, + _tak_server_enrollment_port, + _tak_server_enrollment_username, + _tak_server_enrollment_password, + _tak_server_enrollment_client_uid + ] + ]; + }; + default { + "armatak" callExtension ["tcp_socket:start", [_tak_server_fulladdress]]; + }; +}; _syncUnits = [];