home *** CD-ROM | disk | FTP | other *** search
/ Il Mio Computer 2006 May / Mico05CD.bin / Utility / CryptoMX / des.js < prev    next >
Encoding:
Text File  |  2006-01-05  |  21.1 KB  |  487 lines

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