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

version 1.3, 2002/03/23 10:34:48 version 1.4, 2002/03/23 11:27:41
Line 141  function init() { Line 141  function init() {
         etarr[i]=parseInt(et.substring(i*2,i*2+2));          etarr[i]=parseInt(et.substring(i*2,i*2+2));
      }       }
   
   // Selftest
        window.status="Self test";
   
   // Primitive test, "Cryptography: A New Dimension in Computer Security"
   // C.H. Meyer, S.M. Matyas, John Wiley and Sons, 1982, pg. 160
   
        uextkey=0x1234567;
        lextkey=bit[31]|0x9abcdef;
        ublock=uextkey;
        lblock=lextkey;
        ip();
        if (hexstring(lv)!='cc00ccff') { alert("IP failed: lv."); }
        if (hexstring(rv)!='f0aaf0aa') { alert("IP failed: rv."); }
        initkeys();
        if (hexstring(uk[1])!='000b0267') { alert("Key generation failed: uk"); }
        if (hexstring(lk[1])!='009b49a5') { alert("Key generation failed: lk"); }
        stage(1);
        if (hexstring(uexpand)!='007a1555') { alert("E failed: u"); }
        if (hexstring(lexpand)!='007a1555') { alert("E failed: l"); }
        if (hexstring(rv)!='921c209c') { alert("Stage 1 failed"); }
   
   // According to National Bureau of Standards, Special Publication 500-20,
   // "Validating the Correctness of Hardware Implementations of the
   //  NBS Data Encryption Standard", Rev. Sep. 1980.
   
   // PC-1 and PC-2 test
        ublock=0;
        lblock=0;     
        uextkey=0x1010101;
        lextkey=0x1010102;
        initkeys();
        encrypt();    
        var st=hexstring(ublock);
        st+=hexstring(lblock);
        if (st!="869efd7f9f265a09") {
           st+=": failed PC-1 and PC-2 test!";     
           alert(st);
        }
        window.status="Self test .";
   
   // According to NBS 500-20 IP and E test
        ublock=bit[28]|0x66b40b4;
        lblock=bit[30]|0xaba4bd6;
        uextkey=0x1010101;
        lextkey=0x1010101;
        initkeys();
        encrypt();    
        var st=hexstring(ublock);
        st+=hexstring(lblock);
        if (st!="0000000000000001") {
           st+=": failed IP and E test!";     
           alert(st);
        }
        window.status="Self test ..";
       
   // According to NBS 500-20 ptest
        ublock=0;
        lblock=0;
        uextkey=bit[28]|0x29116;
        lextkey=bit[31]|bit[28]|0x8100101;
        initkeys();
        encrypt();    
        var st=hexstring(ublock);
        st+=hexstring(lblock);
        if (st!="1aeac39a61f0a464") {
           st+=": failed ptest!";     
           alert(st);
        }
        window.status="Self test ...";
   
   // According to NBS 500-20 S-box test
        ublock=bit[28]|bit[29]|0x553228;
        lblock=bit[29]|bit[30]|0xd6f295a;
        var orgu=ublock;
        var orgl=lblock;
        uextkey=bit[28]|0xc587f1c;
        lextkey=bit[28]|0x3924fef;
        initkeys();
        encrypt();
        var st=hexstring(ublock);
        st+=hexstring(lblock);
        if (st!="63fac0d034d9f793") {
           st+=": failed S-box test!";     
           alert(st);
        }
        window.status="Self test ....";
   
   // Decryption test
        decrypt();
        if (ublock!=orgu) { alert("Decryption failed for ublock."); }
        if (lblock!=orgl) { alert("Decryption failed for lblock."); }
        window.status="Self test .....";
   
   // Reset keys
   
        uextkey=0;
        lextkey=0;
   
      window.status="Ready.";       window.status="Ready.";
 }  }
   

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


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