mirror of
https://github.com/Ylianst/MeshCommander
synced 2026-02-23 16:13:02 +00:00
Added 802.11x support.
This commit is contained in:
183
index.html
183
index.html
@@ -886,6 +886,9 @@
|
||||
<!-- ###BEGIN###{Wireless} -->
|
||||
<span id="id_TableWifi2"></span>
|
||||
<!-- ###END###{Wireless} -->
|
||||
<!-- ###BEGIN###{NetAuth} -->
|
||||
<span id="id_TableNetAuth"></span>
|
||||
<!-- ###END###{NetAuth} -->
|
||||
</div>
|
||||
<!-- ###END###{NetworkSettings} -->
|
||||
<div id="p11" style="display:none">
|
||||
@@ -1069,7 +1072,7 @@
|
||||
<div id="DeskFocus" style="color:transparent;border:3px dotted rgba(255,0,0,.2);position:absolute;border-radius:5px" oncontextmenu="return false" onmousedown="dmousedown(event)" onmouseup="dmouseup(event)" onmousemove="dmousemove(event)"></div>
|
||||
<!-- ###END###{DesktopFocus} -->
|
||||
<!-- ###BEGIN###{DesktopInband} -->
|
||||
<canvas id="Desk" width=640 height=400 style="-ms-touch-action:none;margin-left:0px" oncontextmenu="return false" onmousedown="dmousedown(event)" onmouseup="dmouseup(event)" onmousemove="dmousemove(event)" onmousewheel="dmousewheel(event)" moz-opaque></canvas>
|
||||
<canvas id="Desk" width=640 height=400 style="-ms-touch-action:none;margin-left:0px" oncontextmenu="return false" onmousedown="dmousedown(event)" onmouseup="dmouseup(event)" onmousemove="dmousemove(event)" onwheel="dmousewheel(event)" moz-opaque></canvas>
|
||||
<!-- ###END###{DesktopInband} -->
|
||||
<!-- ###BEGIN###{!DesktopInband} -->
|
||||
<canvas id="Desk" width=640 height=400 style="-ms-touch-action:none;margin-left:0px" oncontextmenu="return false" onmousedown="dmousedown(event)" onmouseup="dmouseup(event)" onmousemove="dmousemove(event)" moz-opaque></canvas>
|
||||
@@ -1725,6 +1728,60 @@
|
||||
<label><input type="radio" name="d26a" id='idx_d26ocr1' value=1>Enabled<br></label>
|
||||
<label><input type="radio" name="d26a" id='idx_d26ocr0' value=0>Disabled<br></label>
|
||||
</div>
|
||||
<!-- ###BEGIN###{NetAuth} -->
|
||||
<div id="dialog27" style="margin:auto;margin:3px">
|
||||
<br>
|
||||
<div style='height:26px'>
|
||||
<select id="idx_d27enabled" style="float:right;width:200px" onclick="updateNetAuthDialog()">
|
||||
<option value="0">Disabled</option>
|
||||
<option value="1">Enabled</option>
|
||||
</select>
|
||||
<div>Enabled</div>
|
||||
</div>
|
||||
<div id="idx_d27protocoldiv" style='height:26px'>
|
||||
<select id='idx_d27protocol' style='float:right;width:200px' onclick='updateNetAuthDialog()'>
|
||||
<option value='0'>TLS</option>
|
||||
<option value='1'>TTLS MSCHAPv2</option>
|
||||
<option value='2'>PEAP MSCHAPv2</option>
|
||||
<option value='3'>EAP GTC</option>
|
||||
<option value='4'>EAPFAST MSCHAPv2</option>
|
||||
<option value='5'>EAPFAST GTC</option>
|
||||
<option value='6'>EAPFAST TLS</option>
|
||||
</select>
|
||||
<div>Protocol</div>
|
||||
</div>
|
||||
<div id="idx_d27servernamediv" style='height:26px'><input id='idx_d27servername' style="float:right;width:200px" maxlength="80" onkeyup="updateNetAuthDialog()" title="Maximum 32 characters"><div title="Maximum 32 characters">Server Name</div></div>
|
||||
<div id="idx_d27servernamecomparediv" style='height:26px'>
|
||||
<select id='idx_d27servernamecompare' style="float:right;width:200px" onclick="updateNetAuthDialog()">
|
||||
<option value='0'>Full Name</option>
|
||||
<option value='1'>Domain Suffix</option>
|
||||
</select>
|
||||
<div>Server Name Compare</div>
|
||||
</div>
|
||||
<div id="idx_d27domaindiv" style='height:26px'><input id="idx_d27domain" style="float:right;width:200px" maxlength="128" onkeyup="updateNetAuthDialog()" title="Maximum 128 characters"><div title="Maximum 128 characters">Domain</div></div>
|
||||
<div id="idx_d27usernamediv" style='height:26px'><input id="idx_d27username" style="float:right;width:200px" maxlength="128" onkeyup="updateNetAuthDialog()" title="Maximum 128 characters"><div title="Maximum 128 characters">Username</div></div>
|
||||
<div id="idx_d27passworddiv" style='height:26px'><input id="idx_d27password" type="password" style="float:right;width:200px" maxlength="32" onkeyup="updateNetAuthDialog()" title="Maximum length is 32 characters"><div title="Maximum length is 32 characters">Password</div></div>
|
||||
<div id="idx_d27roamingidentitydiv" style='height:26px'><input id="idx_d27roamingidentity" style="float:right;width:200px" maxlength="80" onkeyup="updateNetAuthDialog()" title="Maximum 80 characters"><div title="Maximum 80 characters">Roaming Identity</div></div>
|
||||
<div id="idx_d27pacdiv" style='height:26px'><input id="idx_d27pac" style="float:right;width:200px" maxlength="256" onkeyup="updateNetAuthDialog()" title="Maximum 256 characters"><div title="Maximum 256 characters">Protected Access Credentials</div></div>
|
||||
<div id="idx_d27pacpassworddiv" style='height:26px'><input id="idx_d27pacpassword" type="password" style="float:right;width:200px" maxlength="256" onkeyup="updateNetAuthDialog()" title="Maximum length is 256 characters"><div title="Maximum length is 256 characters">PAC Password</div></div>
|
||||
<div id="idx_d27clientcertdiv" style='height:26px'>
|
||||
<select id="idx_d27clientcert" style="float:right;width:200px" onclick="updateNetAuthDialog()"></select>
|
||||
<div>Client Certificate</div>
|
||||
</div>
|
||||
<div id="idx_d27servercertdiv" style='height:26px'>
|
||||
<select id="idx_d27servercert" style="float:right;width:200px" onclick="updateNetAuthDialog()"></select>
|
||||
<div>Server Issuer Cert</div>
|
||||
</div>
|
||||
<div id="idx_d27activeins0div" style='height:26px'>
|
||||
<select id="idx_d27activeins0" style="float:right;width:200px" onclick="updateNetAuthDialog()">
|
||||
<option value="0">Enabled</option>
|
||||
<option value="1">Disabled</option>
|
||||
</select>
|
||||
<div>Active in S0</div>
|
||||
</div>
|
||||
<div id="idx_d27pxetimeoutdiv" style='height:26px'><input id="idx_d27pxetimeout" style="float:right;width:200px" onkeyup="updateNetAuthDialog()"><div>PXE Timeout</div></div>
|
||||
</div>
|
||||
<!-- ###END###{NetAuth} -->
|
||||
</div>
|
||||
<div style="padding:10px;margin-bottom:4px">
|
||||
<input id="idx_dlgCancelButton" type="button" value="Cancel" style="float:right;width:80px;margin-left:5px" onclick="dialogclose(0)">
|
||||
@@ -1760,7 +1817,7 @@
|
||||
var LoadingHtml = '<div style=text-align:center;padding-top:20px>' + "Loading..." + '<div>';
|
||||
var amtversion = 0;
|
||||
var amtversionmin = 0;
|
||||
var amtFirstPull = 0; // Bitmask, Set this when the first pull request is made on a device: 1 = HardwareInfo, 2 = WirelessInfo, 4 = SystemDefense, 8 = Storage, 16 = EventLog, 32 = AuditLog
|
||||
var amtFirstPull = 0; // Bitmask, Set this when the first pull request is made on a device: 1 = HardwareInfo, 2 = WirelessInfo, 4 = SystemDefense, 8 = Storage, 16 = EventLog, 32 = AuditLog, 64 = ExtraInfo, 128 = 802.11x
|
||||
// ###BEGIN###{NetworkSettings}
|
||||
var amtwirelessif = -1; // Set to the interface index for the wireless interface, -1 if no wireless.
|
||||
// ###END###{NetworkSettings}
|
||||
@@ -5298,6 +5355,9 @@
|
||||
if (amtversion > 5) query.push('IPS_IPv6PortSettings', '*CIM_KVMRedirectionSAP', '*IPS_OptInService','*IPS_KVMRedirectionSettingData');
|
||||
if (amtversion > 9) query.push('*IPS_ScreenConfigurationService', '*IPS_PowerManagementService');
|
||||
if ((amtversion > 15) && (amtstack.wsman.comm.xtls == 1)) query.push('*CIM_BootService');
|
||||
// ###BEGIN###{NetAuth}
|
||||
if (amtversion > 2) query.push('*AMT_8021XProfile');
|
||||
// ###END###{NetAuth}
|
||||
amtstack.BatchEnum('', query, processSystemStatus, true);
|
||||
// ###END###{!Look-Intel-SBT}
|
||||
// ###BEGIN###{Wireless}
|
||||
@@ -5623,6 +5683,14 @@
|
||||
ddns = "Update by DHCP server";
|
||||
}
|
||||
x += TableEntry("Dynamic DNS", addLinkConditional(ddns, 'showEditDnsDlg()', xxAccountAdminName));
|
||||
|
||||
// ###BEGIN###{NetAuth}
|
||||
// 802.11x
|
||||
var netAuthProtocols = ["TLS", "TTLS MSCHAPv2", "PEAP MSCHAPv2", "EAP GTC", "EAPFAST MSCHAPv2", "EAPFAST GTC", "EAPFAST TLS"], netAuthStr = "Disabled";
|
||||
if (amtsysstate['AMT_8021XProfile'].responses.Body['Enabled']) { netAuthStr = "Enabled, " + netAuthProtocols[amtsysstate['AMT_8021XProfile'].responses.Body['AuthenticationProtocol']]; }
|
||||
x += TableEntry("802.11x", addLinkConditional(netAuthStr, 'editNetAuthProfile()', xxAccountAdminName));
|
||||
// ###END###{NetAuth}
|
||||
|
||||
x += TableEnd();
|
||||
|
||||
for (var y in amtsysstate['AMT_EthernetPortSettings'].responses) {
|
||||
@@ -7713,6 +7781,115 @@
|
||||
}
|
||||
|
||||
// ###END###{Wireless}
|
||||
// ###BEGIN###{NetAuth}
|
||||
|
||||
//
|
||||
// 802.11x SETTINGS
|
||||
//
|
||||
|
||||
function editNetAuthProfile() {
|
||||
if (xxdialogMode) return;
|
||||
|
||||
// Set certificates
|
||||
var clientcertoptions = '', servercertoptions = '';
|
||||
for (var i in xxCertificates) {
|
||||
if (xxCertificates[i].TrustedRootCertficate) {
|
||||
servercertoptions += '<option value="' + i + '">' + EscapeHtml(xxCertificates[i].XSubject['CN']) + '</option>';
|
||||
} else if (xxCertificates[i].XPrivateKey) {
|
||||
clientcertoptions += '<option value="' + i + '">' + EscapeHtml(xxCertificates[i].XSubject['CN']) + '</option>';
|
||||
}
|
||||
}
|
||||
if (clientcertoptions == '') { messagebox("802.11x Profile", "No client certificates available to enable 802.11x."); return; }
|
||||
QH('idx_d27clientcert', clientcertoptions);
|
||||
QH('idx_d27servercert', servercertoptions);
|
||||
|
||||
// Set profile
|
||||
var sc = amtsysstate['AMT_8021XProfile'].responses.Body;
|
||||
Q('idx_d27enabled').value = sc['Enabled'] ? 1 : 0;
|
||||
Q('idx_d27activeins0').value = (sc['ActiveInS0'] ? 1 : 0);
|
||||
Q('idx_d27pxetimeout').value = sc['PxeTimeout'];
|
||||
if (sc['Enabled']) {
|
||||
Q('idx_d27protocol').value = sc['AuthenticationProtocol'];
|
||||
Q('idx_d27roamingidentity').value = sc['RoamingIdentity'] ? sc['RoamingIdentity'] : '';
|
||||
Q('idx_d27servername').value = sc['ServerCertificateName'] ? sc['ServerCertificateName'] : '';
|
||||
Q('idx_d27servernamecompare').value = sc['ServerCertificateNameComparison'];
|
||||
Q('idx_d27username').value = sc['Username'] ? sc['Username'] : '';
|
||||
Q('idx_d27password').value = sc['Password'] ? sc['Password'] : '';
|
||||
Q('idx_d27domain').value = sc['Domain'] ? sc['Domain'] : '';
|
||||
Q('idx_d27pac').value = sc['ProtectedAccessCredential'] ? sc['ProtectedAccessCredential'] : '';
|
||||
Q('idx_d27pacpassword').value = sc['PACPassword'] ? sc['PACPassword'] : '';
|
||||
var scInstanceId = sc['ServerCertificateIssuer']['ReferenceParameters']['SelectorSet']['Selector']['Value'];
|
||||
var ccInstanceId = sc['ClientCertificate']['ReferenceParameters']['SelectorSet']['Selector']['Value'];
|
||||
for (var i in xxCertificates) {
|
||||
if (xxCertificates[i]['InstanceID'] == scInstanceId) { Q('idx_d27servercert').value = i; }
|
||||
if (xxCertificates[i]['InstanceID'] == ccInstanceId) { Q('idx_d27clientcert').value = i; }
|
||||
}
|
||||
}
|
||||
setDialogMode(27, "802.11x Profile", 3, function () { setNetAuthProfile() });
|
||||
updateNetAuthDialog();
|
||||
}
|
||||
|
||||
function updateNetAuthDialog() {
|
||||
QV('idx_d27protocoldiv', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27servernamediv', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27servernamecomparediv', (Q('idx_d27enabled').value == 1) && (Q('idx_d27servername').value != ''));
|
||||
QV('idx_d27domaindiv', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27usernamediv', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27passworddiv', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27roamingidentitydiv', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27pacdiv', (Q('idx_d27enabled').value == 1) && (Q('idx_d27protocol').value > 3));
|
||||
QV('idx_d27pacpassworddiv', (Q('idx_d27enabled').value == 1) && (Q('idx_d27protocol').value > 3));
|
||||
QV('idx_d27clientcertdiv', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27servercertdiv', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27activeins0div', Q('idx_d27enabled').value == 1);
|
||||
QV('idx_d27pxetimeoutdiv', Q('idx_d27enabled').value == 1);
|
||||
}
|
||||
|
||||
function setNetAuthProfile() {
|
||||
var sc = Clone(amtsysstate['AMT_8021XProfile'].responses.Body);
|
||||
sc['Enabled'] = (Q('idx_d27enabled').value == 1);
|
||||
if (sc['Enabled']) {
|
||||
sc['ActiveInS0'] = (Q('idx_d27activeins0').value == 1);
|
||||
sc['AuthenticationProtocol'] = Q('idx_d27protocol').value;
|
||||
if (Q('idx_d27roamingidentity').value != '') { sc['RoamingIdentity'] = Q('idx_d27roamingidentity').value; } else { delete sc['RoamingIdentity']; }
|
||||
if (Q('idx_d27servername').value != '') {
|
||||
sc['ServerCertificateName'] = Q('idx_d27servername').value;
|
||||
sc['ServerCertificateNameComparison'] = Q('idx_d27servernamecompare').value;
|
||||
} else {
|
||||
delete sc['ServerCertificateName'];
|
||||
delete sc['ServerCertificateNameComparison'];
|
||||
}
|
||||
if (Q('idx_d27username').value != '') { sc['Username'] = Q('idx_d27username').value; } else { delete sc['Username']; }
|
||||
if (Q('idx_d27password').value != '') { sc['Password'] = Q('idx_d27password').value; } else { delete sc['Password']; }
|
||||
if (Q('idx_d27domain').value != '') { sc['Domain'] = Q('idx_d27domain').value; } else { delete sc['Domain']; }
|
||||
if (Q('idx_d27protocol').value > 3) {
|
||||
sc['ProtectedAccessCredential'] = Q('idx_d27pac').value;
|
||||
sc['PACPassword'] = Q('idx_d27pacpassword').value;
|
||||
} else {
|
||||
delete sc['ProtectedAccessCredential'];
|
||||
delete sc['PACPassword'];
|
||||
}
|
||||
sc['ClientCertificate'] = '<a:Address>/wsman</a:Address><a:ReferenceParameters><w:ResourceURI>' + amtstack.CompleteName('AMT_PublicKeyCertificate') + '</w:ResourceURI><w:SelectorSet><w:Selector Name="InstanceID">' + xxCertificates[parseInt(Q('idx_d27clientcert').value)]['InstanceID'] + '</w:Selector></w:SelectorSet></a:ReferenceParameters>';
|
||||
sc['ServerCertificateIssuer'] = '<a:Address>/wsman</a:Address><a:ReferenceParameters><w:ResourceURI>' + amtstack.CompleteName('AMT_PublicKeyCertificate') + '</w:ResourceURI><w:SelectorSet><w:Selector Name="InstanceID">' + xxCertificates[parseInt(Q('idx_d27servercert').value)]['InstanceID'] + '</w:Selector></w:SelectorSet></a:ReferenceParameters>';
|
||||
sc['PxeTimeout'] = Q('idx_d27pxetimeout').value;
|
||||
}
|
||||
amtstack.Put('AMT_8021XProfile', sc, setNetAuthProfileEx);
|
||||
}
|
||||
|
||||
function setNetAuthProfileEx(stack, name, response, status) {
|
||||
if (status == 200) {
|
||||
amtsysstate['AMT_8021XProfile'].responses.Body = amtsysstate['AMT_8021XProfile'].response = response.Body;
|
||||
updateSystemStatus();
|
||||
} else {
|
||||
if (response.Header['WsmanError']) {
|
||||
messagebox("802.11x Error", response.Header['WsmanError'].replace(/_/g, ' '));
|
||||
} else {
|
||||
messagebox("802.11x Error", "Error, Status = " + status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ###END###{NetAuth}
|
||||
// ###END###{NetworkSettings}
|
||||
|
||||
// ###BEGIN###{HardwareInfo}
|
||||
@@ -13419,7 +13596,7 @@
|
||||
QV('id_dialogclose', b & 2);
|
||||
QV('idx_dlgDeleteButton', b & 4);
|
||||
if (y) QH('id_dialogtitle', y);
|
||||
for (var i = 1; i < 27; i++) { QV('dialog' + i, i == x); } // Edit this line when more dialogs are added
|
||||
for (var i = 1; i < 28; i++) { QV('dialog' + i, i == x); } // Edit this line when more dialogs are added
|
||||
QV('dialog', x);
|
||||
if (c) { if (x == 11) { QH('id_dialogOptions', c); } else { QH('id_dialogMessage', c); } }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user