Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/mty-makai/mty.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 148 by notanpe, Mon Apr 23 14:02:47 2007 UTC revision 150 by notanpe, Tue Apr 24 06:58:46 2007 UTC
# Line 1303  main(int argc, char *argv[]) Line 1303  main(int argc, char *argv[])
1303    int tn;    int tn;
1304    int cr;    int cr;
1305  #ifdef KEYCHECK  #ifdef KEYCHECK
1306    #define  KCCNT   1000000
1307    unsigned int  ok, ng;    unsigned int  ok, ng;
1308  #endif  #endif /* KEYCHECK */
1309    
1310    /* 鍵文字列 */    /* 鍵文字列 */
1311    uint8_t key[8 + 8];    uint8_t key[8 + 8];
# Line 1384  main(int argc, char *argv[]) Line 1385  main(int argc, char *argv[])
1385    code = scoreboard_map(sfp);    code = scoreboard_map(sfp);
1386    
1387    /* キーの初期化 */    /* キーの初期化 */
1388    srand(time(NULL));    /* 魔改造 起動時刻が同じでも乱数系列が変わるように */
1389      srand(time(NULL)-getpid());
1390    key_init(key);    key_init(key);
1391    set_salt(code, key);    set_salt(code, key);
1392    
# Line 1469  main(int argc, char *argv[]) Line 1471  main(int argc, char *argv[])
1471    status.startTime = status.lastTime = usec();    status.startTime = status.lastTime = usec();
1472  #ifdef KEYCHECK  #ifdef KEYCHECK
1473    ok = ng = 0;    ok = ng = 0;
1474  #endif  #endif /* KEYCHECK */
1475    /* 探索ループだぞっと */    /* 探索ループだぞっと */
1476    for (;;)    for (;;)
1477          {          {
# Line 1661  main(int argc, char *argv[]) Line 1663  main(int argc, char *argv[])
1663  #ifndef KEYCHECK  #ifndef KEYCHECK
1664                    if (!t)                    if (!t)
1665                          continue;                          continue;
1666  #endif  #endif /* KEYCHECK */
1667    
1668                    nap_total += ALU_BITS;                    nap_total += ALU_BITS;
1669    
# Line 1675  main(int argc, char *argv[]) Line 1677  main(int argc, char *argv[])
1677  #ifndef KEYCHECK  #ifndef KEYCHECK
1678                            if (!(t & ((ALU_T)1 << k)))                            if (!(t & ((ALU_T)1 << k)))
1679                                  continue;                                  continue;
1680  #endif  #endif /* KEYCHECK */
1681    
1682                            nap_hit++;                            nap_hit++;
1683    
# Line 1694  main(int argc, char *argv[]) Line 1696  main(int argc, char *argv[])
1696                                                                     kk, k,                                                                     kk, k,
1697                                                                     xhash[(ALU_BITS * kk + k) & 0x3F])))                                                                     xhash[(ALU_BITS * kk + k) & 0x3F])))
1698                                  continue;                                  continue;
1699  #endif  #endif /* KEYCHECK */
1700    
1701                            for (i = 1; i < 11; i++)                            for (i = 1; i < 11; i++)
1702                                  {                                  {
# Line 1707  main(int argc, char *argv[]) Line 1709  main(int argc, char *argv[])
1709                            memcpy(buf, pkt_c->uk.key, 8);                            memcpy(buf, pkt_c->uk.key, 8);
1710                            buf[8] = buf[9] = 0;                            buf[8] = buf[9] = 0;
1711                            buf[7] = (buf[7] & -(1 << N_STRIDE) & 0x7F) + ALU_BITS * kk + k;                            buf[7] = (buf[7] & -(1 << N_STRIDE) & 0x7F) + ALU_BITS * kk + k;
1712    #ifdef KEYCHECK
1713    {
1714    #include <crypt.h>
1715      char  *res;
1716      char  salt[3];
1717      static unsigned char  saltTable[] =
1718      ".............................................../0123456789ABCDEF"
1719      "GABCDEFGHIJKLMNOPQRSTUVWXYZabcdefabcdefghijklmnopqrstuvwxyz....."
1720      "................................................................"
1721      "................................................................";
1722      salt[2] = '\0';
1723      salt[0] = saltTable[buf[1]];
1724      salt[1] = saltTable[buf[2]];
1725      res = crypt( buf, salt );
1726      if ( strcmp( res+3, hash ) != 0 ) {
1727       printf( "res+3 = <%s>, hash = <%s>\n", res+3, hash );
1728       exit( 0 );
1729      }
1730    }
1731    #endif /* KEYCHECK */
1732                            time( &tloc );                            time( &tloc );
1733                            if (translate(buf, 0, 1))                            if (translate(buf, 0, 1))
1734                                  {                                  {
1735  #ifdef KEYCHECK  #ifdef KEYCHECK
1736  ok++;  ok++;
1737  if ( ok + ng >= 100000000 ) {  if ( ok + ng >= KCCNT ) {
1738   printf( "\nok = %lu, ng = %lu\n", ok, ng );   printf( "\nok = %u, ng = %u\n", ok, ng );
1739   exit( 1 );   exit( 1 );
1740  }  }
1741  #endif  #endif /* KEYCHECK */
1742    #ifndef KEYCHECK
1743                                    if (cr)                                    if (cr)
1744                                          fprintf(stderr, "\n");                                          fprintf(stderr, "\n");
1745                                    cr = 0;                                    cr = 0;
# Line 1731  if ( ok + ng >= 100000000 ) { Line 1754  if ( ok + ng >= 100000000 ) {
1754                                                           buf[0], buf[1], buf[2], buf[3],                                                           buf[0], buf[1], buf[2], buf[3],
1755                                                           buf[4], buf[5], buf[6], buf[7],                                                           buf[4], buf[5], buf[6], buf[7],
1756                                                           buf[8], ctime(&tloc) );                                                           buf[8], ctime(&tloc) );
1757    #endif /* not KEYCHECK */
1758                                  }                                  }
1759                            else                            else
1760                                  {                                  {
1761  #ifdef KEYCHECK  #ifdef KEYCHECK
1762  ng++;  ng++;
1763  if ( ok + ng >= 100000000 ) {  if ( ok + ng >= KCCNT ) {
1764   printf( "\nok = %lu, ng = %lu\n", ok, ng );   printf( "\nok = %u, ng = %u\n", ok, ng );
1765   exit( 1 );   exit( 1 );
1766  }  }
1767  #endif  #endif /* KEYCHECK */
1768    #ifndef KEYCHECK
1769  /* 魔改造 failed も表示する */  /* 魔改造 failed も表示する */
1770                                    if (cr)                                    if (cr)
1771                                          fprintf(stderr, "\n");                                          fprintf(stderr, "\n");
# Line 1753  if ( ok + ng >= 100000000 ) { Line 1778  if ( ok + ng >= 100000000 ) {
1778                                                           hash,                                                           hash,
1779                                                           buf[0], buf[1], buf[2], buf[3],                                                           buf[0], buf[1], buf[2], buf[3],
1780                                                           buf[4], buf[5], buf[6], buf[7], ctime(&tloc) );                                                           buf[4], buf[5], buf[6], buf[7], ctime(&tloc) );
1781    #endif /* not KEYCHECK */
1782                                  }                                  }
 #ifdef KEYCHECK  
 printf( "ok = %lu, ng = %lu\n", ok, ng );  
 #endif  
1783                          }                          }
1784                  }                  }
1785    

Legend:
Removed from v.148  
changed lines
  Added in v.150

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26