1/*************************************************************** 2 * * 3 * JAVACRYPT: CLIENT-SIDE crypt(3) USING JAVASCRIPT * 4 * * 5 *************************************************************** 6 * * 7 * This Javascript allows you to calculate the encrypted * 8 * password generated by the UNIX function crypt(3) on your * 9 * computer without using an online script in PHP, PERL, * 10 * shell, or any other server-side script. The only changes * 11 * you need make in this are in function dP(), which is right * 12 * below the end of this comment. Refer to the directions * 13 * there for details. * 14 * * 15 * I wish I could take full credit for this script, but there * 16 * are several people who deserve most of the credit * 17 * * 18 * First and foremost, I thank John F. Dumas for writing * 19 * jcrypt.java, a Java-based implementation of crypt(3) and * 20 * from which this Javascript is heavily based (actually, I * 21 * just did a direct port from his code, using Sun's tutorial * 22 * and my knowledge of Javascript). I additionally thank * 23 * Eric Young for writing the C code off which Dumas based * 24 * his script. Finally, thanks goes to the original writers * 25 * of crypt(3), whoever they are. * 26 * * 27 * If you have questions, I suggest you ask John Dumas about * 28 * them, as I have no real idea what any of this code does. * 29 * Base the questions off his source code, as Javascript and * 30 * Java are (in basic operators) nearly identical. * 31 * * 32 * jcrypt.java source code can be found at: * 33 * http://locutus.kingwoodcable.com/jfd/crypt.html * 34 * * 35 ***************************************************************/ 36 37function dP(){ 38 if(confirm("Click OK if you have a salt.")) salt=prompt("Please input your two-character string [./a-zA-z0-9]:",''); 39 else salt=''; 40 pw_salt=this.crypt(salt,document.CRYPT.PW.value); // Change CRYPT.PW to the name of the form, then a 41 // period, then the name of the text box that 42 // contains the password to encrypt (lower/uppercase matters!) 43 // e.g., this: 44 // <form name=hK><input type=text name=pWd></form> 45 // yields this: 46 // pw_salt=this.crypt(salt,document.hK.pWd.value); 47 48 49 document.CRYPT.ENC_PW.value=pw_salt[0]; // For this line and the next, change CRYPT.ENC_PW and 50 document.CRYPT.Salt.value=pw_salt[1]; // CRYPT.Salt to the name of the form, then a period, then 51 // the name of the text box to display the encrypted 52 // password in or the salt used, respectively, as shown above. 53 return false; 54} 55 56function bTU(b){ 57 value=Math.floor(b); 58 return (value>=0?value:value+256); 59} 60function fBTI(b,offset){ 61 value=this.byteToUnsigned(b[offset++]); 62 value|=(this.byteToUnsigned(b[offset++])<<8); 63 value|=(this.byteToUnsigned(b[offset++])<<16); 64 value|=(this.byteToUnsigned(b[offset++])<<24); 65 return value; 66} 67function iTFB(iValue,b,offset){ 68 b[offset++]=((iValue)&0xff); 69 b[offset++]=((iValue>>>8)&0xff); 70 b[offset++]=((iValue>>>16)&0xff); 71 b[offset++]=((iValue>>>24)&0xff); 72} 73function P_P(a,b,n,m,results){ 74 t=((a>>>n)^b)&m; 75 a^=t<<n; 76 b^=t; 77 results[0]=a; 78 results[1]=b; 79} 80function H_P(a,n,m){ 81 t=((a<<(16-n))^a)&m; 82 a=a^t^(t>>>(16-n)); 83 return a; 84} 85function d_s_k(key){ 86 schedule=new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); 87 c=this.fourBytesToInt(key,0); 88 d=this.fourBytesToInt(key,4); 89 results=new Array(0,0); 90 this.PERM_OP(d,c,4,0x0f0f0f0f,results); 91 d=results[0];c=results[1]; 92 c=this.HPERM_OP(c,-2,0xcccc0000); 93 d=this.HPERM_OP(d,-2,0xcccc0000); 94 this.PERM_OP(d,c,1,0x55555555,results); 95 d=results[0];c=results[1]; 96 this.PERM_OP(c,d,8,0x00ff00ff,results); 97 c=results[0];d=results[1]; 98 this.PERM_OP(d,c,1,0x55555555,results); 99 d=results[0];c=results[1]; 100 d=(((d&0x000000ff)<<16)|(d&0x0000ff00)|((d&0x00ff0000)>>>16)|((c&0xf0000000)>>>4)); 101 c&=0x0fffffff; 102 s=0;t=0; 103 j=0; 104 for(i=0;i<this.ITERATIONS;i++){ 105 if(this.shifts2[i]){ 106 c=(c>>>2)|(c<<26); 107 d=(d>>>2)|(d<<26); 108 }else{ 109 c=(c>>>1)|(c<<27); 110 d=(d>>>1)|(d<<27); 111 } 112 c&=0x0fffffff; 113 d&=0x0fffffff; 114 s=this.skb[0][c&0x3f]|this.skb[1][((c>>>6)&0x03)|((c>>>7)&0x3c)]|this.skb[2][((c>>>13)&0x0f)|((c>>>14)&0x30)]|this.skb[3][((c>>>20)&0x01)|((c>>>21)&0x06)|((c>>>22)&0x38)]; 115 t=this.skb[4][d&0x3f]|this.skb[5][((d>>>7)&0x03)|((d>>>8)&0x3c)]|this.skb[6][(d>>>15)&0x3f]|this.skb[7][((d>>>21)&0x0f)|((d>>>22)&0x30)]; 116 schedule[j++]=((t<< 16)|(s&0x0000ffff))&0xffffffff; 117 s=((s>>>16)|(t&0xffff0000)); 118 s=(s<<4)|(s>>>28); 119 schedule[j++]=s&0xffffffff; 120 } 121 return schedule; 122} 123function D_E(L,R,S,E0,E1,s){ 124 v=R^(R>>>16); 125 u=v&E0; 126 v=v&E1; 127 u=(u^(u<<16))^R^s[S]; 128 t=(v^(v<<16))^R^s[S+1]; 129 t=(t>>>4)|(t<<28); 130 L^=this.SPtrans[1][t&0x3f]|this.SPtrans[3][(t>>>8)&0x3f]|this.SPtrans[5][(t>>>16)&0x3f]|this.SPtrans[7][(t>>>24)&0x3f]|this.SPtrans[0][u&0x3f]|this.SPtrans[2][(u>>>
1308)&0x3f]|this.SPtrans[4][(u>>>16)&0x3f]|this.SPtrans[6][(u>>>24)&0x3f]; 131 return L; 132} 133function bdy(schedule,Eswap0,Eswap1) { 134 left=0; 135 right=0; 136 t=0; 137 for(j=0;j<25;j++){ 138 for(i=0;i<this.ITERATIONS*2;i+=4){ 139 left=this.D_ENCRYPT(left, right,i,Eswap0,Eswap1,schedule); 140 right=this.D_ENCRYPT(right,left,i+2,Eswap0,Eswap1,schedule); 141 } 142 t=left; 143 left=right; 144 right=t; 145 } 146 t=right; 147 right=(left>>>1)|(left<<31); 148 left=(t>>>1)|(t<<31); 149 left&=0xffffffff; 150 right&=0xffffffff; 151 results=new Array(0,0); 152 this.PERM_OP(right,left,1,0x55555555,results); 153 right=results[0];left=results[1]; 154 this.PERM_OP(left,right,8,0x00ff00ff,results); 155 left=results[0];right=results[1]; 156 this.PERM_OP(right,left,2,0x33333333,results); 157 right=results[0];left=results[1]; 158 this.PERM_OP(left,right,16,0x0000ffff,results); 159 left=results[0];right=results[1]; 160 this.PERM_OP(right,left,4,0x0f0f0f0f,results); 161 right=results[0];left=results[1]; 162 out=new Array(0,0); 163 out[0]=left;out[1]=right; 164 return out; 165} 166function rC(){ return this.GOODCHARS[Math.floor(64*Math.random())]; } 167function cript(salt,original){ 168 if(salt.length>=2) salt=salt.substring(0,2); 169 while(salt.length<2) salt+=this.randChar(); 170 re=new RegExp("[^./a-zA-Z0-9]","g"); 171 if(re.test(salt)) salt=this.randChar()+this.randChar(); 172 charZero=salt.charAt(0)+''; 173 charOne=salt.charAt(1)+''; 174 ccZ=charZero.charCodeAt(0); 175 ccO=charOne.charCodeAt(0); 176 buffer=charZero+charOne+" "; 177 Eswap0=this.con_salt[ccZ]; 178 Eswap1=this.con_salt[ccO]<<4; 179 key=new Array(0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0); 180 for(i=0;i<key.length&&i<original.length;i++){ 181 iChar=original.charCodeAt(i); 182 key[i]=iChar<<1; 183 } 184 schedule=this.des_set_key(key); 185 out=this.body(schedule,Eswap0,Eswap1); 186 b=new Array(0,0,0,0,0,0,0,0,0); 187 this.intToFourBytes(out[0],b,0); 188 this.intToFourBytes(out[1],b,4); 189 b[8]=0; 190 for(i=2,y=0,u=0x80;i<13;i++){ 191 for(j=0,c=0;j<6;j++){ 192 c<<=1; 193 if((b[y]&u)!=0) c|=1; 194 u>>>=1; 195 if(u==0){ 196 y++; 197 u=0x80; 198 } 199 buffer=buffer.substring(0,i)+String.fromCharCode(this.cov_2char[c])+buffer.substring(i+1,buffer.length); 200 } 201 } 202 ret=new Array(buffer,salt); 203 return ret; 204} 205 206function Crypt() { 207this.ITERATIONS=16; 208this.GOODCHARS=new Array( 209 ".","/","0","1","2","3","4","5","6","7", 210 "8","9","A","B","C","D","E","F","G","H", 211 "I","J","K","L","M","N","O","P","Q","R", 212 "S","T","U","V","W","X","Y","Z","a","b", 213 "c","d","e","f","g","h","i","j","k","l", 214 "m","n","o","p","q","r","s","t","u","v", 215 "w","x","y","z"); 216this.con_salt=new Array( 217 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 218 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 219 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 220 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 221 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 222 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, 223 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, 224 0x0A,0x0B,0x05,0x06,0x07,0x08,0x09,0x0A, 225 0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12, 226 0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A, 227 0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22, 228 0x23,0x24,0x25,0x20,0x21,0x22,0x23,0x24, 229 0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C, 230 0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34, 231 0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C, 232 0x3D,0x3E,0x3F,0x00,0x00,0x00,0x00,0x00 ); 233this.shifts2=new Array( 234 false,false,true,true,true,true,true,true, 235 false,true, true,true,true,true,true,false ); 236this.skb=new Array(0,0,0,0,0,0,0,0); 237 this.skb[0]=new Array( 238 0x00000000,0x00000010,0x20000000,0x20000010,
239 0x00010000,0x00010010,0x20010000,0x20010010, 240 0x00000800,0x00000810,0x20000800,0x20000810, 241 0x00010800,0x00010810,0x20010800,0x20010810, 242 0x00000020,0x00000030,0x20000020,0x20000030, 243 0x00010020,0x00010030,0x20010020,0x20010030, 244 0x00000820,0x00000830,0x20000820,0x20000830, 245 0x00010820,0x00010830,0x20010820,0x20010830, 246 0x00080000,0x00080010,0x20080000,0x20080010, 247 0x00090000,0x00090010,0x20090000,0x20090010, 248 0x00080800,0x00080810,0x20080800,0x20080810, 249 0x00090800,0x00090810,0x20090800,0x20090810, 250 0x00080020,0x00080030,0x20080020,0x20080030, 251 0x00090020,0x00090030,0x20090020,0x20090030, 252 0x00080820,0x00080830,0x20080820,0x20080830, 253 0x00090820,0x00090830,0x20090820,0x20090830 ); 254 this.skb[1]=new Array( 255 0x00000000,0x02000000,0x00002000,0x02002000, 256 0x00200000,0x02200000,0x00202000,0x02202000, 257 0x00000004,0x02000004,0x00002004,0x02002004, 258 0x00200004,0x02200004,0x00202004,0x02202004, 259 0x00000400,0x02000400,0x00002400,0x02002400, 260 0x00200400,0x02200400,0x00202400,0x02202400, 261 0x00000404,0x02000404,0x00002404,0x02002404, 262 0x00200404,0x02200404,0x00202404,0x02202404, 263 0x10000000,0x12000000,0x10002000,0x12002000, 264 0x10200000,0x12200000,0x10202000,0x12202000, 265 0x10000004,0x12000004,0x10002004,0x12002004, 266 0x10200004,0x12200004,0x10202004,0x12202004, 267 0x10000400,0x12000400,0x10002400,0x12002400, 268 0x10200400,0x12200400,0x10202400,0x12202400, 269 0x10000404,0x12000404,0x10002404,0x12002404, 270 0x10200404,0x12200404,0x10202404,0x12202404 ); 271 this.skb[2]=new Array( 272 0x00000000,0x00000001,0x00040000,0x00040001, 273 0x01000000,0x01000001,0x01040000,0x01040001, 274 0x00000002,0x00000003,0x00040002,0x00040003, 275 0x01000002,0x01000003,0x01040002,0x01040003, 276 0x00000200,0x00000201,0x00040200,0x00040201, 277 0x01000200,0x01000201,0x01040200,0x01040201, 278 0x00000202,0x00000203,0x00040202,0x00040203, 279 0x01000202,0x01000203,0x01040202,0x01040203, 280 0x08000000,0x08000001,0x08040000,0x08040001, 281 0x09000000,0x09000001,0x09040000,0x09040001, 282 0x08000002,0x08000003,0x08040002,0x08040003, 283 0x09000002,0x09000003,0x09040002,0x09040003, 284 0x08000200,0x08000201,0x08040200,0x08040201, 285 0x09000200,0x09000201,0x09040200,0x09040201, 286 0x08000202,0x08000203,0x08040202,0x08040203, 287 0x09000202,0x09000203,0x09040202,0x09040203 ); 288 this.skb[3]=new Array( 289 0x00000000,0x00100000,0x00000100,0x00100100, 290 0x00000008,0x00100008,0x00000108,0x00100108, 291 0x00001000,0x00101000,0x00001100,0x00101100, 292 0x00001008,0x00101008,0x00001108,0x00101108, 293 0x04000000,0x04100000,0x04000100,0x04100100, 294 0x04000008,0x04100008,0x04000108,0x04100108, 295 0x04001000,0x04101000,0x04001100,0x04101100, 296 0x04001008,0x04101008,0x04001108,0x04101108, 297 0x00020000,0x00120000,0x00020100,0x00120100, 298 0x00020008,0x00120008,0x00020108,0x00120108, 299 0x00021000,0x00121000,0x00021100,0x00121100, 300 0x00021008,0x00121008,0x00021108,0x00121108, 301 0x04020000,0x04120000,0x04020100,0x04120100, 302 0x04020008,0x04120008,0x04020108,0x04120108, 303 0x04021000,0x04121000,0x04021100,0x04121100, 304 0x04021008,0x04121008,0x04021108,0x04121108 ); 305 this.skb[4]=new Array(
306 0x00000000,0x10000000,0x00010000,0x10010000, 307 0x00000004,0x10000004,0x00010004,0x10010004, 308 0x20000000,0x30000000,0x20010000,0x30010000, 309 0x20000004,0x30000004,0x20010004,0x30010004, 310 0x00100000,0x10100000,0x00110000,0x10110000, 311 0x00100004,0x10100004,0x00110004,0x10110004, 312 0x20100000,0x30100000,0x20110000,0x30110000, 313 0x20100004,0x30100004,0x20110004,0x30110004, 314 0x00001000,0x10001000,0x00011000,0x10011000, 315 0x00001004,0x10001004,0x00011004,0x10011004, 316 0x20001000,0x30001000,0x20011000,0x30011000, 317 0x20001004,0x30001004,0x20011004,0x30011004, 318 0x00101000,0x10101000,0x00111000,0x10111000, 319 0x00101004,0x10101004,0x00111004,0x10111004, 320 0x20101000,0x30101000,0x20111000,0x30111000, 321 0x20101004,0x30101004,0x20111004,0x30111004 ); 322 this.skb[5]=new Array( 323 0x00000000,0x08000000,0x00000008,0x08000008, 324 0x00000400,0x08000400,0x00000408,0x08000408, 325 0x00020000,0x08020000,0x00020008,0x08020008, 326 0x00020400,0x08020400,0x00020408,0x08020408, 327 0x00000001,0x08000001,0x00000009,0x08000009, 328 0x00000401,0x08000401,0x00000409,0x08000409, 329 0x00020001,0x08020001,0x00020009,0x08020009, 330 0x00020401,0x08020401,0x00020409,0x08020409, 331 0x02000000,0x0A000000,0x02000008,0x0A000008, 332 0x02000400,0x0A000400,0x02000408,0x0A000408, 333 0x02020000,0x0A020000,0x02020008,0x0A020008, 334 0x02020400,0x0A020400,0x02020408,0x0A020408, 335 0x02000001,0x0A000001,0x02000009,0x0A000009, 336 0x02000401,0x0A000401,0x02000409,0x0A000409, 337 0x02020001,0x0A020001,0x02020009,0x0A020009, 338 0x02020401,0x0A020401,0x02020409,0x0A020409 ); 339 this.skb[6]=new Array( 340 0x00000000,0x00000100,0x00080000,0x00080100, 341 0x01000000,0x01000100,0x01080000,0x01080100, 342 0x00000010,0x00000110,0x00080010,0x00080110, 343 0x01000010,0x01000110,0x01080010,0x01080110, 344 0x00200000,0x00200100,0x00280000,0x00280100, 345 0x01200000,0x01200100,0x01280000,0x01280100, 346 0x00200010,0x00200110,0x00280010,0x00280110, 347 0x01200010,0x01200110,0x01280010,0x01280110, 348 0x00000200,0x00000300,0x00080200,0x00080300, 349 0x01000200,0x01000300,0x01080200,0x01080300, 350 0x00000210,0x00000310,0x00080210,0x00080310, 351 0x01000210,0x01000310,0x01080210,0x01080310, 352 0x00200200,0x00200300,0x00280200,0x00280300, 353 0x01200200,0x01200300,0x01280200,0x01280300, 354 0x00200210,0x00200310,0x00280210,0x00280310, 355 0x01200210,0x01200310,0x01280210,0x01280310 ); 356 this.skb[7]=new Array( 357 0x00000000,0x04000000,0x00040000,0x04040000, 358 0x00000002,0x04000002,0x00040002,0x04040002, 359 0x00002000,0x04002000,0x00042000,0x04042000, 360 0x00002002,0x04002002,0x00042002,0x04042002, 361 0x00000020,0x04000020,0x00040020,0x04040020, 362 0x00000022,0x04000022,0x00040022,0x04040022, 363 0x00002020,0x04002020,0x00042020,0x04042020, 364 0x00002022,0x04002022,0x00042022,0x04042022, 365 0x00000800,0x04000800,0x00040800,0x04040800, 366 0x00000802,0x04000802,0x00040802,0x04040802, 367 0x00002800,0x04002800,0x00042800,0x04042800, 368 0x00002802,0x04002802,0x00042802,0x04042802, 369 0x00000820,0x04000820,0x00040820,0x04040820, 370 0x00000822,0x04000822,0x00040822,0x04040822, 371 0x00002820,0x04002820,0x00042820,0x04042820, 372 0x00002822,0x04002822,0x00042822,0x04042822 ); 373this.SPtrans=new Array(0,0,0,0,0,0,0,0); 374 this.SPtrans[0]=new Array( 375 0x00820200,0x00020000,0x80800000,0x80820200, 376 0x00800000,0x80020200,0x80020000,0x80800000, 377 0x80020200,0x00820200,0x00820000,0x80000200, 378 0x80800200,0x00800000,0x00000000,0x80020000, 379 0x00020000,0x80000000,0x00800200,0x00020200, 380 0x80820200,0x00820000,0x80000200,0x00800200, 381 0x80000000,0x00000200,0x00020200,0x80820000, 382 0x00000200,0x80800200,0x80820000,0x00000000,
383 0x00000000,0x80820200,0x00800200,0x80020000, 384 0x00820200,0x00020000,0x80000200,0x00800200, 385 0x80820000,0x00000200,0x00020200,0x80800000, 386 0x80020200,0x80000000,0x80800000,0x00820000, 387 0x80820200,0x00020200,0x00820000,0x80800200, 388 0x00800000,0x80000200,0x80020000,0x00000000, 389 0x00020000,0x00800000,0x80800200,0x00820200, 390 0x80000000,0x80820000,0x00000200,0x80020200 ); 391 this.SPtrans[1]=new Array( 392 0x10042004,0x00000000,0x00042000,0x10040000, 393 0x10000004,0x00002004,0x10002000,0x00042000, 394 0x00002000,0x10040004,0x00000004,0x10002000, 395 0x00040004,0x10042000,0x10040000,0x00000004, 396 0x00040000,0x10002004,0x10040004,0x00002000, 397 0x00042004,0x10000000,0x00000000,0x00040004, 398 0x10002004,0x00042004,0x10042000,0x10000004, 399 0x10000000,0x00040000,0x00002004,0x10042004, 400 0x00040004,0x10042000,0x10002000,0x00042004, 401 0x10042004,0x00040004,0x10000004,0x00000000, 402 0x10000000,0x00002004,0x00040000,0x10040004, 403 0x00002000,0x10000000,0x00042004,0x10002004, 404 0x10042000,0x00002000,0x00000000,0x10000004, 405 0x00000004,0x10042004,0x00042000,0x10040000, 406 0x10040004,0x00040000,0x00002004,0x10002000, 407 0x10002004,0x00000004,0x10040000,0x00042000 ); 408 this.SPtrans[2]=new Array( 409 0x41000000,0x01010040,0x00000040,0x41000040, 410 0x40010000,0x01000000,0x41000040,0x00010040,
411 0x01000040,0x00010000,0x01010000,0x40000000, 412 0x41010040,0x40000040,0x40000000,0x41010000, 413 0x00000000,0x40010000,0x01010040,0x00000040, 414 0x40000040,0x41010040,0x00010000,0x41000000, 415 0x41010000,0x01000040,0x40010040,0x01010000, 416 0x00010040,0x00000000,0x01000000,0x40010040, 417 0x01010040,0x00000040,0x40000000,0x00010000, 418 0x40000040,0x40010000,0x01010000,0x41000040, 419 0x00000000,0x01010040,0x00010040,0x41010000, 420 0x40010000,0x01000000,0x41010040,0x40000000, 421 0x40010040,0x41000000,0x01000000,0x41010040, 422 0x00010000,0x01000040,0x41000040,0x00010040, 423 0x01000040,0x00000000,0x41010000,0x40000040, 424 0x41000000,0x40010040,0x00000040,0x01010000 ); 425 this.SPtrans[3]=new Array( 426 0x00100402,0x04000400,0x00000002,0x04100402, 427 0x00000000,0x04100000,0x04000402,0x00100002, 428 0x04100400,0x04000002,0x04000000,0x00000402, 429 0x04000002,0x00100402,0x00100000,0x04000000, 430 0x04100002,0x00100400,0x00000400,0x00000002, 431 0x00100400,0x04000402,0x04100000,0x00000400, 432 0x00000402,0x00000000,0x00100002,0x04100400, 433 0x04000400,0x04100002,0x04100402,0x00100000, 434 0x04100002,0x00000402,0x00100000,0x04000002, 435 0x00100400,0x04000400,0x00000002,0x04100000, 436 0x04000402,0x00000000,0x00000400,0x00100002, 437 0x00000000,0x04100002,0x04100400,0x00000400, 438 0x04000000,0x04100402,0x00100402,0x00100000, 439 0x04100402,0x00000002,0x04000400,0x00100402, 440 0x00100002,0x00100400,0x04100000,0x04000402, 441 0x00000402,0x04000000,0x04000002,0x04100400 ); 442 this.SPtrans[4]=new Array( 443 0x02000000,0x00004000,0x00000100,0x02004108, 444 0x02004008,0x02000100,0x00004108,0x02004000, 445 0x00004000,0x00000008,0x02000008,0x00004100, 446 0x02000108,0x02004008,0x02004100,0x00000000, 447 0x00004100,0x02000000,0x00004008,0x00000108, 448 0x02000100,0x00004108,0x00000000,0x02000008, 449 0x00000008,0x02000108,0x02004108,0x00004008, 450 0x02004000,0x00000100,0x00000108,0x02004100, 451 0x02004100,0x02000108,0x00004008,0x02004000, 452 0x00004000,0x00000008,0x02000008,0x02000100, 453 0x02000000,0x00004100,0x02004108,0x00000000, 454 0x00004108,0x02000000,0x00000100,0x00004008, 455 0x02000108,0x00000100,0x00000000,0x02004108, 456 0x02004008,0x02004100,0x00000108,0x00004000, 457 0x00004100,0x02004008,0x02000100,0x00000108, 458 0x00000008,0x00004108,0x02004000,0x02000008 ); 459 460 this.SPtrans[5]=new Array( 461 0x20000010,0x00080010,0x00000000,0x20080800, 462 0x00080010,0x00000800,0x20000810,0x00080000, 463 0x00000810,0x20080810,0x00080800,0x20000000, 464 0x20000800,0x20000010,0x20080000,0x00080810, 465 0x00080000,0x20000810,0x20080010,0x00000000, 466 0x00000800,0x00000010,0x20080800,0x20080010, 467 0x20080810,0x20080000,0x20000000,0x00000810, 468 0x00000010,0x00080800,0x00080810,0x20000800, 469 0x00000810,0x20000000,0x20000800,0x00080810, 470 0x20080800,0x00080010,0x00000000,0x20000800, 471 0x20000000,0x00000800,0x20080010,0x00080000, 472 0x00080010,0x20080810,0x00080800,0x00000010, 473 0x20080810,0x00080800,0x00080000,0x20000810, 474 0x20000010,0x20080000,0x00080810,0x00000000, 475 0x00000800,0x20000010,0x20000810,0x20080800, 476 0x20080000,0x00000810,0x00000010,0x20080010 ); 477 this.SPtrans[6]=new Array( 478 0x00001000,0x00000080,0x00400080,0x00400001, 479 0x00401081,0x00001001,0x00001080,0x00000000, 480 0x00400000,0x00400081,0x00000081,0x00401000, 481 0x00000001,0x00401080,0x00401000,0x00000081, 482 0x00400081,0x00001000,0x00001001,0x00401081, 483 0x00000000,0x00400080,0x00400001,0x00001080, 484 0x00401001,0x00001081,0x00401080,0x00000001, 485 0x00001081,0x00401001,0x00000080,0x00400000, 486 0x00001081,0x00401000,0x00401001,0x00000081, 487 0x00001000,0x00000080,0x00400000,0x00401001, 488 0x00400081,0x00001081,0x00001080,0x00000000, 489 0x00000080,0x00400001,0x00000001,0x00400080,
490 0x00000000,0x00400081,0x00400080,0x00001080, 491 0x00000081,0x00001000,0x00401081,0x00400000, 492 0x00401080,0x00000001,0x00001001,0x00401081, 493 0x00400001,0x00401080,0x00401000,0x00001001 ); 494 this.SPtrans[7]=new Array( 495 0x08200020,0x08208000,0x00008020,0x00000000, 496 0x08008000,0x00200020,0x08200000,0x08208020, 497 0x00000020,0x08000000,0x00208000,0x00008020, 498 0x00208020,0x08008020,0x08000020,0x08200000, 499 0x00008000,0x00208020,0x00200020,0x08008000, 500 0x08208020,0x08000020,0x00000000,0x00208000, 501 0x08000000,0x00200000,0x08008020,0x08200020, 502 0x00200000,0x00008000,0x08208000,0x00000020, 503 0x00200000,0x00008000,0x08000020,0x08208020, 504 0x00008020,0x08000000,0x00000000,0x00208000, 505 0x08200020,0x08008020,0x08008000,0x00200020, 506 0x08208000,0x00000020,0x00200020,0x08008000, 507 0x08208020,0x00200000,0x08200000,0x08000020, 508 0x00208000,0x00008020,0x08008020,0x08200000, 509 0x00000020,0x08208000,0x00208020,0x00000000, 510 0x08000000,0x08200020,0x00008000,0x00208020 ); 511this.cov_2char=new Array( 512 0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35, 513 0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44, 514 0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C, 515 0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54, 516 0x55,0x56,0x57,0x58,0x59,0x5A,0x61,0x62, 517 0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A, 518 0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72, 519 0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A ); 520this.byteToUnsigned=bTU; 521this.fourBytesToInt=fBTI; 522this.intToFourBytes=iTFB; 523this.PERM_OP=P_P; 524this.HPERM_OP=H_P; 525this.des_set_key=d_s_k; 526this.D_ENCRYPT=D_E; 527this.body=bdy; 528this.randChar=rC; 529this.crypt=cript; 530this.displayPassword=dP; 531} 532Javacrypt=new Crypt();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.