1// ---------------------------- Start WEP functions 2var lastkeypressed; 3var keyTooBig = false; 4var keyTooBig_an = false; 5var mustbeHEX = false; 6var keysize; 7var keysize_an; 8var lastObj; 9if (document.layers) document.captureEvents(Event.KEYPRESS); 10 document.onkeypress = checkKey; 11 12function checkKey(evt) 13{ 14 evt = (evt) ? evt : ((window.event) ? window.event : null); 15 if (evt) 16 lastkeypressed = (evt.keyCode) ? evt.keyCode : (evt.which ) ? evt.which : null; 17 if ((lastkeypressed != 13) && (lastkeypressed != 8) && ( keyTooBig )) 18 { 19 keyTooBig = false; 20 alert("<%1149%> " + keysize + " <%1150%>"); 21 chkSize(lastObj); // for NS 6/7 22 return false; 23 } 24 else if ((lastkeypressed != 13) && (lastkeypressed != 8) && ( keyTooBig_an )) 25 { 26 keyTooBig_an = false; 27 alert("<%1149%> " + keysize_an + " <%1150%>"); 28 chkSize_an(lastObj); // for NS 6/7 29 return false; 30 } 31 else if (mustbeHEX) // not used here, don't know which input is being used 32 { 33 mustbeHEX = false; 34 if ( ((lastkeypressed > 47) && (lastkeypressed < 58 )) 35 || ((lastkeypressed > 96) && (lastkeypressed < 103)) 36 || ((lastkeypressed > 64) && (lastkeypressed < 71 )) 37 || (lastkeypressed == 8) 38 || (lastkeypressed == 13) ) 39 return true; // OK 40 else 41 return false; 42 } 43 return true; 44} 45function chkSize(fobj) 46{ 47 if(fobj.value.length > keysize) 48 fobj.value = fobj.value.substr(0,keysize); 49} 50function chkSize_an(fobj) 51{ 52 if(fobj.value.length > keysize_an) 53 fobj.value = fobj.value.substr(0,keysize_an); 54} 55function keyCheck(fobj) 56{ 57 lastObj = fobj; 58 keyTooBig = (fobj.value.length >= keysize ) ? true : false; 59} 60function keyCheck_an(fobj) 61{ 62 lastObj = fobj; 63 keyTooBig_an = (fobj.value.length >= keysize_an) ? true : false; 64} 65function calcPassphrase(F) 66{ 67 if(F.passphraseStr.value.length == 0) 68 return; 69 switch(F.wepenc.selectedIndex) 70 { 71 case 0: 72 PassPhrase40(F); 73 break; 74 case 1: 75 PassPhrase104(F); 76 break; 77 default: 78 break; 79 } 80} 81function PassPhrase40(F) 82{ 83 var seed = 0; 84 var pseed = new Array(0, 0, 0, 0); 85 var pkey = new Array(4); 86 var asciiObj = new Array(4); 87 Length = F.passphraseStr.value.length; 88 if(Length != 0) 89 { 90 for (i=0; i<Length; i++ ) 91 pseed[i%4] ^= F.passphraseStr.value.charCodeAt(i); 92 seed = pseed[0]; 93 seed += pseed[1] << 8; 94 seed += pseed[2] << 16; 95 seed += pseed[3] << 24; 96 } 97 F.KEY1.value = F.KEY2.value = ""; 98 F.KEY3.value = F.KEY4.value = ""; 99 pkey[0] = F.KEY1; 100 pkey[1] = F.KEY2; 101 pkey[2] = F.KEY3; 102 pkey[3] = F.KEY4; 103 for(j=0; j<4; j++) 104 { 105 for (i=0; i<5 ;i++ ) 106 { 107 seed = (214013 * seed) & 0xffffffff; 108 if(seed & 0x80000000) 109 seed = (seed & 0x7fffffff) + 0x80000000 + 0x269ec3; 110 else 111 seed = (seed & 0x7fffffff) + 0x269ec3; 112 temp = ((seed >> 16) & 0xff); 113 if(temp < 0x10) 114 pkey[j].value += "0" + temp.toString(16).toUpperCase(); 115 else 116 pkey[j].value += temp.toString(16).toUpperCase(); 117 } 118 } 119 F.wep_key_no[0].checked = true; 120} 121function PassPhrase104(F) 122{ 123 var pseed2 = ""; 124 Length2 = F.passphraseStr.value.length; 125 var asciiObj = ""; 126 for(p=0; p<64; p++) 127 { 128 tempCount = p % Length2; 129 pseed2 += F.passphraseStr.value.substring(tempCount, tempCount+1); 130 } 131 md5Str = calcMD5(pseed2); 132 F.KEY1.value = md5Str.substring(0, 26).toUpperCase(); 133 F.KEY2.value = F.KEY1.value; 134 F.KEY3.value = F.KEY1.value; 135 F.KEY4.value = F.KEY1.value; 136 F.wep_key_no[0].checked = true; 137} 138function calcPassphrase_an(F) 139{ 140 if(F.passphraseStr_an.value.length == 0) 141 return; 142 switch(F.wepenc_an.selectedIndex) 143 { 144 case 0: 145 PassPhrase40_an(F); 146 break; 147 case 1: 148 PassPhrase104_an(F); 149 break; 150 default: 151 break; 152 } 153} 154function PassPhrase40_an(F) 155{ 156 var seed = 0; 157 var pseed = new Array(0, 0, 0, 0); 158 var pkey = new Array(4); 159 var asciiObj = new Array(4); 160 Length = F.passphraseStr_an.value.length; 161 if(Length != 0) 162 { 163 for (i=0; i<Length; i++ ) 164 pseed[i%4] ^= F.passphraseStr_an.value.charCodeAt(i); 165 seed = pseed[0]; 166 seed += pseed[1] << 8; 167 seed += pseed[2] << 16; 168 seed += pseed[3] << 24; 169 } 170 F.KEY1_an.value = F.KEY2_an.value = ""; 171 F.KEY3_an.value = F.KEY4_an.value = ""; 172 pkey[0] = F.KEY1_an; 173 pkey[1] = F.KEY2_an; 174 pkey[2] = F.KEY3_an; 175 pkey[3] = F.KEY4_an; 176 for(j=0; j<4; j++) 177 { 178 for (i=0; i<5 ;i++ ) 179 { 180 seed = (214013 * seed) & 0xffffffff; 181 if(seed & 0x80000000) 182 seed = (seed & 0x7fffffff) + 0x80000000 + 0x269ec3; 183 else 184 seed = (seed & 0x7fffffff) + 0x269ec3; 185 temp = ((seed >> 16) & 0xff); 186 if(temp < 0x10) 187 pkey[j].value += "0" + temp.toString(16).toUpperCase(); 188 else 189 pkey[j].value += temp.toString(16).toUpperCase(); 190 } 191 } 192 F.wep_key_no_an[0].checked = true; 193} 194function PassPhrase104_an(F) 195{ 196 var pseed2 = ""; 197 Length2 = F.passphraseStr_an.value.length; 198 var asciiObj = ""; 199 for(p=0; p<64; p++) 200 { 201 tempCount = p % Length2; 202 pseed2 += F.passphraseStr_an.value.substring(tempCount, tempCount+1); 203 } 204 md5Str = calcMD5(pseed2); 205 F.KEY1_an.value = md5Str.substring(0, 26).toUpperCase(); 206 F.KEY2_an.value = F.KEY1_an.value; 207 F.KEY3_an.value = F.KEY1_an.value; 208 F.KEY4_an.value = F.KEY1_an.value; 209 F.wep_key_no_an[0].checked = true; 210} 211