Browse Subversion Repository
Diff of /branches/mty-makai/mty.c
Parent Directory
| Revision Log
| Patch
| 97 |
int seedOffset; |
int seedOffset; |
| 98 |
int verbose; |
int verbose; |
| 99 |
|
|
| 100 |
#ifdef OTAKU |
#ifdef NAMA |
| 101 |
unsigned char saltChar[2]; |
unsigned char saltChar[2]; |
| 102 |
#endif /* OTAKU */ |
#endif /* NAMA */ |
| 103 |
/* MAKAI end */ |
/* MAKAI end */ |
| 104 |
|
|
| 105 |
/* CRYPT64 記述子 */ |
/* CRYPT64 記述子 */ |
| 180 |
} |
} |
| 181 |
/* MAKAI end */ |
/* MAKAI end */ |
| 182 |
|
|
| 183 |
|
#ifndef ALLKEY |
| 184 |
/* 指定されたクラスと入っているキーから、classify を行う */ |
/* 指定されたクラスと入っているキーから、classify を行う */ |
| 185 |
void |
void |
| 186 |
key_make_map(uint8_t *key, int n) |
key_make_map(uint8_t *key, int n) |
| 232 |
if (n == 6) |
if (n == 6) |
| 233 |
kcls[7].map[0x00] |= KCLS_AN; |
kcls[7].map[0x00] |= KCLS_AN; |
| 234 |
} |
} |
| 235 |
|
#endif /* not ALLKEY */ |
| 236 |
|
|
| 237 |
/* マップから文字を拾ってセット */ |
/* マップから文字を拾ってセット */ |
| 238 |
unsigned |
unsigned |
| 389 |
} else { |
} else { |
| 390 |
if ( umeStr[0] == '\0' ) { |
if ( umeStr[0] == '\0' ) { |
| 391 |
#ifdef ALLKEY |
#ifdef ALLKEY |
| 392 |
if ( n == 1 || n == 2 ) { |
key[n] = rand() % 0x7f + 1; |
|
key[n] = rand() % 0xff + 1; |
|
|
} else { |
|
|
key[n] = rand() % 0x80 + 1; |
|
|
} |
|
| 393 |
#else /* ALLKEY */ |
#else /* ALLKEY */ |
| 394 |
key[n] = key_set(n, rand()); |
key[n] = key_set(n, rand()); |
| 395 |
#endif /* ALLKEY */ |
#endif /* ALLKEY */ |
| 421 |
{ |
{ |
| 422 |
/* MAKAI DEBUG */ |
/* MAKAI DEBUG */ |
| 423 |
#if 0 |
#if 0 |
| 424 |
|
if ( n != 7 ) { |
| 425 |
printf( "%d : %02x %02x %02x %02x %02x %02x %02x %02x\n", |
printf( "%d : %02x %02x %02x %02x %02x %02x %02x %02x\n", |
| 426 |
n, key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7] ); |
n, key[0], key[1], key[2], key[3], key[4], key[5], key[6], key[7] ); |
| 427 |
|
} |
| 428 |
#endif /* 0 */ |
#endif /* 0 */ |
| 429 |
|
|
| 430 |
if ( n >= 8 ) { |
if ( n >= 8 ) { |
| 452 |
return 1; |
return 1; |
| 453 |
} |
} |
| 454 |
|
|
| 455 |
|
/* MAKAI start */ |
| 456 |
|
#ifdef ALLKEY |
| 457 |
|
key[n] = ( key[n] & 0x7F ) + 1; |
| 458 |
|
if ( key[n] >= 0x80 ) { |
| 459 |
|
key[n] = 0xFF; /* 次に突入させないため */ |
| 460 |
|
return 0; |
| 461 |
|
} |
| 462 |
|
key_reset( key, n + 1 ); |
| 463 |
|
return 1; |
| 464 |
|
#endif /* ALLKEY */ |
| 465 |
|
/* MAKAI end */ |
| 466 |
|
|
| 467 |
/* 実際に増やしてみる */ |
/* 実際に増やしてみる */ |
| 468 |
assert( n >= 3 ); |
assert( n >= 3 ); |
| 469 |
for ( ;; ) { |
for ( ;; ) { |
| 507 |
|
|
| 508 |
key[8] = 0; |
key[8] = 0; |
| 509 |
|
|
| 510 |
|
#ifndef ALLKEY |
| 511 |
/* 初期マップを組む */ |
/* 初期マップを組む */ |
| 512 |
for ( i = 0; i < 256; i++ ) { |
for ( i = 0; i < 256; i++ ) { |
| 513 |
unsigned bm = 0; |
unsigned bm = 0; |
| 520 |
kcls[0].map[i - 128] |= kcls[0].map[i]; |
kcls[0].map[i - 128] |= kcls[0].map[i]; |
| 521 |
} |
} |
| 522 |
} |
} |
| 523 |
|
#endif /* not ALLKEY */ |
| 524 |
|
|
| 525 |
/* MAKAI start */ |
/* MAKAI start */ |
| 526 |
#ifdef ALLKEY |
#ifdef notdef |
| 527 |
{ |
{ |
| 528 |
int idx; |
int idx; |
| 529 |
kcls[0].map[0] = 0; |
kcls[0].map[0] = 0; |
| 609 |
for (i = 0; i < 2; i++) |
for (i = 0; i < 2; i++) |
| 610 |
{ |
{ |
| 611 |
unsigned s = k[1 + i] & 255; |
unsigned s = k[1 + i] & 255; |
| 612 |
|
#ifdef ALLKEY |
| 613 |
|
{ |
| 614 |
|
static unsigned char *s2c = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; |
| 615 |
|
s = rand() % 64; |
| 616 |
|
saltChar[i] = s2c[s]; |
| 617 |
|
} |
| 618 |
|
#else /* ALLKEY */ |
| 619 |
if (s > 'z') |
if (s > 'z') |
| 620 |
s = 0; |
s = 0; |
| 621 |
else if (s >= 'a') |
else if (s >= 'a') |
| 674 |
printf( "after %d : Key %02x, Salt %02x(%c)\n", i, k[1 + i], s, saltChar[i] ); |
printf( "after %d : Key %02x, Salt %02x(%c)\n", i, k[1 + i], s, saltChar[i] ); |
| 675 |
#endif /* 0 */ |
#endif /* 0 */ |
| 676 |
/* MAKAI DEBUG */ |
/* MAKAI DEBUG */ |
| 677 |
|
#endif /* ALLKEY */ |
| 678 |
|
|
| 679 |
#if DEBUG>=1 |
#if DEBUG>=1 |
| 680 |
printf("Salt %d:%3o\n", i, s & 63); |
printf("Salt %d:%3o\n", i, s & 63); |
| 1535 |
regExpStr[0] = '\0'; |
regExpStr[0] = '\0'; |
| 1536 |
#endif /* REON */ |
#endif /* REON */ |
| 1537 |
|
|
| 1538 |
#ifdef OTAKU |
#ifdef NAMA |
| 1539 |
fprintf(stderr, "生キーバージョン\n"); |
fprintf(stderr, "生キーバージョン\n"); |
| 1540 |
fprintf(stderr, "万が一、トリップが化けた場合、\n"); |
fprintf(stderr, "万が一、トリップが化けた場合、\n"); |
| 1541 |
fprintf(stderr, "http://trip.is-a-geek.net/test/read.cgi/ra8bbs/1217089930/\n"); |
fprintf(stderr, "http://trip.is-a-geek.net/test/read.cgi/ra8bbs/1217089930/\n"); |
| 1542 |
fprintf(stderr, "に報告すると次のバージョンで改善されるかも。\n\n"); |
fprintf(stderr, "に報告すると次のバージョンで改善されるかも。\n\n"); |
| 1543 |
#endif /* OTAKU */ |
#endif /* NAMA */ |
| 1544 |
|
|
| 1545 |
#ifdef MAKEY |
#ifdef MAKEY |
| 1546 |
fprintf(stderr, "魔キー空間バージョンにつき、シロウトにはおすすめできない。\n"); |
fprintf(stderr, "魔キー空間バージョンにつき、シロウトにはおすすめできない。\n\n"); |
| 1547 |
#endif /* MAKEY */ |
#endif /* MAKEY */ |
| 1548 |
|
|
| 1549 |
#ifdef ALLKEY |
#ifdef ALLKEY |
| 1550 |
fprintf(stderr, "キー全空間バージョンにつき、シロウトにはおすすめできない。\n"); |
fprintf(stderr, "キー全空間バージョンにつき、シロウトにはおすすめできない。\n\n"); |
| 1551 |
#endif /* MAKEY */ |
#endif /* MAKEY */ |
| 1552 |
/* MAKAI end */ |
/* MAKAI end */ |
| 1553 |
|
|
| 2110 |
if ( cr ) fprintf( stderr, "\n" ); |
if ( cr ) fprintf( stderr, "\n" ); |
| 2111 |
cr = 0; |
cr = 0; |
| 2112 |
/* MAKAI start */ |
/* MAKAI start */ |
| 2113 |
#ifdef OTAKU |
#ifdef NAMA |
| 2114 |
log_printf(rfp, "◆%s ##%02x%02x%02x%02x%02x%02x%02x%02x%c%c" |
log_printf(rfp, "◆%s ##%02x%02x%02x%02x%02x%02x%02x%02x%c%c" |
| 2115 |
"\t%04d/%02d/%02d %02d:%02d:%02d.%03d" |
"\t%04d/%02d/%02d %02d:%02d:%02d.%03d" |
| 2116 |
" 正 生\n", |
" 正 生\n", |
| 2117 |
hash, |
hash, |
| 2118 |
buf[0], buf[1], buf[2], buf[3], |
buf[1], buf[2], buf[3], buf[4], |
| 2119 |
buf[4], buf[5], buf[6], buf[7], |
buf[5], buf[6], buf[7], buf[8], |
| 2120 |
saltChar[0], saltChar[1], |
saltChar[0], saltChar[1], |
| 2121 |
plt->tm_year + 1900, plt->tm_mon + 1, plt->tm_mday, |
plt->tm_year + 1900, plt->tm_mon + 1, plt->tm_mday, |
| 2122 |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm); |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm); |
| 2123 |
#else /* OTAKU */ |
#else /* NAMA */ |
| 2124 |
if ( translate( buf+1, 0, 1 ) ) { |
if ( translate( buf+1, 0, 1 ) ) { |
| 2125 |
strcpy( buf2, buf ); |
strcpy( buf2, buf ); |
| 2126 |
} else { |
} else { |
| 2134 |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm, |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm, |
| 2135 |
buf[1], buf[2], buf[3], buf[4], buf[5], |
buf[1], buf[2], buf[3], buf[4], buf[5], |
| 2136 |
buf[6], buf[7], buf[8], buf[9], "正" ); |
buf[6], buf[7], buf[8], buf[9], "正" ); |
| 2137 |
#endif /* OTAKU */ |
#endif /* NAMA */ |
| 2138 |
/* MAKAI end */ |
/* MAKAI end */ |
| 2139 |
} |
} |
| 2140 |
} |
} |
| 2155 |
if ( cr ) fprintf( stderr, "\n" ); |
if ( cr ) fprintf( stderr, "\n" ); |
| 2156 |
cr = 0; |
cr = 0; |
| 2157 |
/* MAKAI start */ |
/* MAKAI start */ |
| 2158 |
#ifdef OTAKU |
#ifdef NAMA |
| 2159 |
log_printf(lfp, "◆%s ##%02x%02x%02x%02x%02x%02x%02x%02x%c%c" |
log_printf(lfp, "◆%s ##%02x%02x%02x%02x%02x%02x%02x%02x%c%c" |
| 2160 |
"\t%04d/%02d/%02d %02d:%02d:%02d.%03d" |
"\t%04d/%02d/%02d %02d:%02d:%02d.%03d" |
| 2161 |
" %s 生\n", |
" %s 生\n", |
| 2162 |
hash, |
hash, |
| 2163 |
buf[0], buf[1], buf[2], buf[3], |
buf[1], buf[2], buf[3], buf[4], |
| 2164 |
buf[4], buf[5], buf[6], buf[7], |
buf[5], buf[6], buf[7], buf[8], |
| 2165 |
saltChar[0], saltChar[1], |
saltChar[0], saltChar[1], |
| 2166 |
plt->tm_year + 1900, plt->tm_mon + 1, plt->tm_mday, |
plt->tm_year + 1900, plt->tm_mon + 1, plt->tm_mday, |
| 2167 |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm, kind); |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm, kind); |
| 2168 |
#else /* OTAKU */ |
#else /* NAMA */ |
| 2169 |
if ( translate( buf+1, 0, 1 ) ) { |
if ( translate( buf+1, 0, 1 ) ) { |
| 2170 |
strcpy( buf2, buf ); |
strcpy( buf2, buf ); |
| 2171 |
} else { |
} else { |
| 2179 |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm, |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm, |
| 2180 |
buf[1], buf[2], buf[3], buf[4], buf[5], |
buf[1], buf[2], buf[3], buf[4], buf[5], |
| 2181 |
buf[6], buf[7], buf[8], buf[9], kind ); |
buf[6], buf[7], buf[8], buf[9], kind ); |
| 2182 |
#endif /* OTAKU */ |
#endif /* NAMA */ |
| 2183 |
/* MAKAI end */ |
/* MAKAI end */ |
| 2184 |
} |
} |
| 2185 |
} |
} |
| 2254 |
if (cr) |
if (cr) |
| 2255 |
fprintf(stderr, "\n"); |
fprintf(stderr, "\n"); |
| 2256 |
cr = 0; |
cr = 0; |
| 2257 |
#ifdef OTAKU |
#ifdef NAMA |
| 2258 |
log_printf(ofp, "◆%s ##%02x%02x%02x%02x%02x%02x%02x%02x%c%c" |
log_printf(ofp, "◆%s ##%02x%02x%02x%02x%02x%02x%02x%02x%c%c" |
| 2259 |
"\t%04d/%02d/%02d %02d:%02d:%02d.%03d" |
"\t%04d/%02d/%02d %02d:%02d:%02d.%03d" |
| 2260 |
" %02d 生\n", |
" %02d 生\n", |
| 2265 |
plt->tm_year + 1900, plt->tm_mon + 1, plt->tm_mday, |
plt->tm_year + 1900, plt->tm_mon + 1, plt->tm_mday, |
| 2266 |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm, |
plt->tm_hour, plt->tm_min, plt->tm_sec, tb.millitm, |
| 2267 |
hitLen); |
hitLen); |
| 2268 |
#else /* OTAKU */ |
#else /* NAMA */ |
| 2269 |
if (translate(buf, 0, 1)) { |
if (translate(buf, 0, 1)) { |
| 2270 |
buf2[0] = '#'; |
buf2[0] = '#'; |
| 2271 |
strcpy( buf2+1, buf ); |
strcpy( buf2+1, buf ); |
| 2281 |
buf[0], buf[1], buf[2], buf[3], |
buf[0], buf[1], buf[2], buf[3], |
| 2282 |
buf[4], buf[5], buf[6], buf[7], |
buf[4], buf[5], buf[6], buf[7], |
| 2283 |
buf[8], hitLen); |
buf[8], hitLen); |
| 2284 |
#endif /* OTAKU */ |
#endif /* NAMA */ |
| 2285 |
/* MAKAI end */ |
/* MAKAI end */ |
| 2286 |
|
|
| 2287 |
} |
} |
|
|
Legend:
| Removed from v.225 |
|
| changed lines |
| |
Added in v.226 |
|
|
| |