1/* for WPS 2.0 checking */ 2var show_wep_or_wps_msg = false; 3var wps_version = "<%49%>"; 4var show_tkip_or_wps_v20_msg = false; 5var show_ssid_bc_or_wps_v20_msg = false; 6var show_open_or_wps_v20_msg = false; 7var needGrayOutWPS = 0; 8 9// ---------------------------- Start of WEP functions ---------------------------- 10var lastkeypressed; 11var keyTooBig = false; 12var mustbeHEX = false; 13var keysize; 14var lastObj; 15 16if (document.layers) document.captureEvents(Event.KEYPRESS); 17 document.onkeypress = checkKey; 18function checkKey(evt) 19{ 20 evt = (evt) ? evt : ((window.event) ? window.event : null); 21 if (evt) 22 lastkeypressed = (evt.keyCode) ? evt.keyCode : (evt.which ) ? evt.which : null; 23 if ((lastkeypressed != 13) && (lastkeypressed != 8) && ( keyTooBig )) 24 { 25 keyTooBig = false; 26 alert("<%1578%> " + keysize + " <%1579%>"); 27 chkSize(lastObj); // for NS 6/7 28 return false; 29 } 30 else if (mustbeHEX) // not used here, don't know which input is being used 31 { 32 mustbeHEX = false; 33 if ( ((lastkeypressed > 47) && (lastkeypressed < 58 )) 34 || ((lastkeypressed > 96) && (lastkeypressed < 103)) 35 || ((lastkeypressed > 64) && (lastkeypressed < 71 )) 36 || (lastkeypressed == 8) 37 || (lastkeypressed == 13) ) 38 return true; // OK 39 else 40 return false; 41 } 42 return true; 43} 44function chkSize(fobj) 45{ 46 if(fobj.value.length > keysize) 47 fobj.value = fobj.value.substr(0,keysize); 48} 49 50function CheckData_NONE() 51{ 52 if (wps_version == "2.0") 53 { 54 if (!show_open_or_wps_v20_msg) { 55 if (!confirm("<%57%>")){ 56 return false; 57 } 58 } 59 show_open_or_wps_v20_msg = true; 60 } 61 return true; 62} 63function CheckData_WEP(wepenc, wep_key_no, key, key1, key2, key3, key4) 64{ 65 var msg_key64_type = "<%47%>"; 66 var msg_key128_type = "<%48%>"; 67 68 var cf = document.forms[0]; 69 var msg = ""; var blankFlag = false; var sizeOK = false; var i; 70 var len = (wepenc.selectedIndex==0)?10:((wepenc.selectedIndex==1)?26:32); 71 72 for (i = 1; i < 5; i++ ) 73 { 74 msg = ""; 75 blankFlag = ! (eval(wep_key_no[i-1].checked)); // default key 76 if( (blankFlag) && (eval("(cf." + key + i + ".value.length == 0)")) ) 77 continue; // blank ok 78 sizeOK = ((eval("isHex(cf." + key + i +".value)")) && (eval("(cf." + key + i + ".value.length == len)"))); 79 if (!sizeOK) 80 { 81 msg += (len == 10)?msg_key64_type:msg_key128_type; 82 alertR(msg); 83 if (i==1) 84 key1.focus(); 85 else if (i==2) 86 key2.focus(); 87 else if (i==3) 88 key3.focus(); 89 else if (i==4) 90 key4.focus(); 91 return false; 92 } 93 } 94 95 if (wps_version == "2.0") 96 { 97 if (!show_tkip_or_wps_v20_msg) { 98 if (!confirm("<%1690%>")){ 99 return false; 100 } 101 } 102 show_tkip_or_wps_v20_msg = true; 103 needGrayOutWPS = 1; 104 } 105 return true; 106} 107 108 109function keyCheck(fobj) 110{ 111 lastObj = fobj; 112 keyTooBig = (fobj.value.length >= keysize ) ? true : false; 113} 114 115function calcPassphrase(wepenc, passphraseStr, wep_key_no, key1, key2, key3, key4) 116{ 117 if(passphraseStr.value.length == 0) 118 return; 119 switch(wepenc.selectedIndex) 120 { 121 case 0: 122 PassPhrase40(passphraseStr, wep_key_no, key1, key2, key3, key4); 123 break; 124 case 1: 125 PassPhrase104(passphraseStr, wep_key_no, key1, key2, key3, key4); 126 break; 127 default: 128 break; 129 } 130} 131 132function PassPhrase40(passphraseStr, wep_key_no, key1, key2, key3, key4) 133{ 134 var seed = 0; 135 var pseed = new Array(0, 0, 0, 0); 136 var pkey = new Array(4); 137 var asciiObj = new Array(4); 138 Length = passphraseStr.value.length; 139 if(Length != 0) 140 { 141 for (i=0; i<Length; i++ ) 142 pseed[i%4] ^= passphraseStr.value.charCodeAt(i); 143 seed = pseed[0]; 144 seed += pseed[1] << 8; 145 seed += pseed[2] << 16; 146 seed += pseed[3] << 24; 147 } 148 key1.value = key2.value = ""; 149 key3.value = key4.value = ""; 150 pkey[0] = key1; 151 pkey[1] = key2; 152 pkey[2] = key3; 153 pkey[3] = key4; 154 for(j=0; j<4; j++) 155 { 156 for (i=0; i<5 ;i++ ) 157 { 158 seed = (214013 * seed) & 0xffffffff; 159 if(seed & 0x80000000) 160 seed = (seed & 0x7fffffff) + 0x80000000 + 0x269ec3; 161 else 162 seed = (seed & 0x7fffffff) + 0x269ec3; 163 temp = ((seed >> 16) & 0xff); 164 if(temp < 0x10) 165 pkey[j].value += "0" + temp.toString(16).toUpperCase(); 166 else 167 pkey[j].value += temp.toString(16).toUpperCase(); 168 } 169 } 170 wep_key_no[0].checked = true; 171} 172 173function PassPhrase104(passphraseStr, wep_key_no, key1, key2, key3, key4) 174{ 175 var pseed2 = ""; 176 Length2 = passphraseStr.value.length; 177 var asciiObj = ""; 178 for(p=0; p<64; p++) 179 { 180 tempCount = p % Length2; 181 pseed2 += passphraseStr.value.substring(tempCount, tempCount+1); 182 } 183 md5Str = calcMD5(pseed2); 184 key1.value = md5Str.substring(0, 26).toUpperCase(); 185 key2.value = key1.value; 186 key3.value = key1.value; 187 key4.value = key1.value; 188 wep_key_no[0].checked = true; 189 //F.KEY2.disabled = F.KEY3.disabled = F.KEY4.disabled = true; 190} 191 192function setKeys(wepenc, key1, key2, key3, key4) 193{ 194 key1.disabled = key2.disabled = key3.disabled = key4.disabled = false; 195 if (wepenc.selectedIndex == 0) 196 { 197 keysize = 10; 198 key1.size = key2.size = key3.size = key4.size = keysize + 2 ; // extra for Mac 199 if (key1.value.length>10) 200 key1.value = key1.value.substring(0,10); 201 if (key2.value.length>10) 202 key2.value = key2.value.substring(0,10); 203 if (key3.value.length>10) 204 key3.value = key3.value.substring(0,10); 205 if (key4.value.length>10) 206 key4.value = key4.value.substring(0,10); 207 } 208 else if(wepenc.selectedIndex == 1) 209 { 210 keysize = 26; 211 key1.size = key2.size = key3.size = key4.size = keysize + 2; // extra for Mac 212 if (key1.value.length>26) 213 key1.value = key1.value.substring(0,26); 214 if (key2.value.length>26) 215 key2.value = key2.value.substring(0,26); 216 if (key3.value.length>26) 217 key3.value = key3.value.substring(0,26); 218 if (key4.value.length>26) 219 key4.value = key.value.substring(0,26); 220 } 221 else if(wepenc.selectedIndex == 2) 222 { 223 keysize = 32; 224 key1.size = key2.size = key3.size = key4.size = keysize + 2; // extra for Mac 225 } 226 //auto_disable(); 227} 228// ---------------------------- End of WEP functions ---------------------------- 229 230function CheckData_WPA(passphrase, sec_type) 231{ 232 if (wps_version == "2.0") 233 { 234 if (sec_type == "WPA-PSK") 235 { 236 if (!show_tkip_or_wps_v20_msg) { 237 if (!confirm("<%1690%>")){ 238 return false; 239 } 240 } 241 show_tkip_or_wps_v20_msg = true; 242 needGrayOutWPS = 1; 243 } 244 } 245 if(passphrase.value.length < 8) 246 { 247 alert("<%4259%>"); 248 passphrase.focus(); 249 return false; 250 } 251 if(passphrase.value.length > 63) 252 { 253 if ( isHex(passphrase.value) == false) 254 { 255 alert("<%4259%>"); 256 passphrase.value = ""; 257 passphrase.focus(); 258 return false; 259 } 260 } 261 262 if (passphrase.value.match( /[^\x20-\x7E]/ )) 263 { 264 alert("<%61%>"); 265 passphrase.focus(); 266 return false; 267 } 268 269 return true; 270} 271 272function CheckData_Manual(ssid, security_type, passphrase, wepenc, wep_key_no, key, key1, key2, key3, key4) 273{ 274 var msg_key64_type = "<%47%>"; 275 var msg_key128_type = "<%48%>"; 276 277 var security_type_value = security_type.value; 278 var msg = ""; 279 280 if (ssid.value == "") 281 { 282 alert("<%53%>"); 283 ssid.focus(); 284 return false; 285 } 286 287 if (ssid.value.match( /[^\x20-\x7E]/ )) 288 { 289 alert("<%54%>"); 290 ssid.focus(); 291 return false; 292 } 293 294 if (security_type_value == -1) // not selected 295 { 296 alert("<%4260%>"); 297 security_type.focus(); 298 return false; 299 } 300 else if (security_type_value == 1) // WEP 301 { 302 return CheckData_WEP(wepenc, wep_key_no, key, key1, key2, key3, key4); 303 } 304 else if (security_type_value == 2 || security_type_value == 3 || security_type_value == 4) //WPA-PSK/WPA2-PSK 305 { 306 return CheckData_WPA(passphrase); 307 } 308 return true; 309} 310 311