Diff for /loncom/auth/londes.js between versions 1.4 and 1.5

version 1.4, 2002/03/23 11:27:41 version 1.5, 2002/03/23 11:59:22
Line 75  function andbit(value,i) { Line 75  function andbit(value,i) {
    return value&bit[i];     return value&bit[i];
 }  }
   
   // General OR function
   
   function orvalue(a,b) {
      return a|b;
   }
   
 // Function to OR with bit i  // Function to OR with bit i
   
 function orbit(value,i) {  function orbit(value,i) {
    return value|bit[i];     return orvalue(value,bit[i]);
 }  }
   
 // Initialize table arrays and perform self test  // Initialize table arrays and perform self test
Line 148  function init() { Line 154  function init() {
 // C.H. Meyer, S.M. Matyas, John Wiley and Sons, 1982, pg. 160  // C.H. Meyer, S.M. Matyas, John Wiley and Sons, 1982, pg. 160
   
      uextkey=0x1234567;       uextkey=0x1234567;
      lextkey=bit[31]|0x9abcdef;       lextkey=orbit(0x9abcdef,31);
      ublock=uextkey;       ublock=uextkey;
      lblock=lextkey;       lblock=lextkey;
      ip();       ip();
Line 182  function init() { Line 188  function init() {
      window.status="Self test .";       window.status="Self test .";
   
 // According to NBS 500-20 IP and E test  // According to NBS 500-20 IP and E test
      ublock=bit[28]|0x66b40b4;       ublock=orbit(0x66b40b4,28);
      lblock=bit[30]|0xaba4bd6;       lblock=orbit(0xaba4bd6,30);
      uextkey=0x1010101;       uextkey=0x1010101;
      lextkey=0x1010101;       lextkey=0x1010101;
      initkeys();       initkeys();
Line 199  function init() { Line 205  function init() {
 // According to NBS 500-20 ptest  // According to NBS 500-20 ptest
      ublock=0;       ublock=0;
      lblock=0;       lblock=0;
      uextkey=bit[28]|0x29116;       uextkey=orbit(0x29116,28);
      lextkey=bit[31]|bit[28]|0x8100101;       lextkey=orbit(orbit(0x8100101,28),31);
      initkeys();       initkeys();
      encrypt();           encrypt();    
      var st=hexstring(ublock);       var st=hexstring(ublock);
Line 212  function init() { Line 218  function init() {
      window.status="Self test ...";       window.status="Self test ...";
   
 // According to NBS 500-20 S-box test  // According to NBS 500-20 S-box test
      ublock=bit[28]|bit[29]|0x553228;       ublock=orbit(orbit(0x553228,28),29);
      lblock=bit[29]|bit[30]|0xd6f295a;       lblock=orbit(orbit(0xd6f295a,29),30);
      var orgu=ublock;       var orgu=ublock;
      var orgl=lblock;       var orgl=lblock;
      uextkey=bit[28]|0xc587f1c;       uextkey=orbit(0xc587f1c,28);
      lextkey=bit[28]|0x3924fef;       lextkey=orbit(0x3924fef,28);
      initkeys();       initkeys();
      encrypt();       encrypt();
      var st=hexstring(ublock);       var st=hexstring(ublock);
Line 395  function stage(si) { Line 401  function stage(si) {
        for (var kj=0; kj<=3; kj++) {         for (var kj=0; kj<=3; kj++) {
           if (andbit(uadd,ki-23+kj)!=0) { j=orbit(j,kj); }            if (andbit(uadd,ki-23+kj)!=0) { j=orbit(j,kj); }
        }         }
        rv=rv|sbarr[ks*64+i*16+j];         rv=orvalue(rv,sbarr[ks*64+i*16+j]);
        ks++;         ks++;
     }       } 
     for (var ki=18;ki>=0;ki=ki-6) {      for (var ki=18;ki>=0;ki=ki-6) {
Line 407  function stage(si) { Line 413  function stage(si) {
        for (var kj=0; kj<=3; kj++) {         for (var kj=0; kj<=3; kj++) {
           if (andbit(ladd,ki+1+kj)!=0) { j=orbit(j,kj); }            if (andbit(ladd,ki+1+kj)!=0) { j=orbit(j,kj); }
        }         }
        rv=rv|sbarr[ks*64+i*16+j];         rv=orvalue(rv,sbarr[ks*64+i*16+j]);
        ks++;         ks++;
     }      }
     permute();      permute();

Removed from v.1.4  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>