| 351 | } |
| 352 | |
| 353 | void |
| 354 | AES_Decrypt::MainThread(void) |
| 355 | { |
| 356 | (void)Reset(); |
| 357 | |
| 358 | { |
| 359 | while(!RST_X) |
| 360 | (void)wait(); |
| 361 | } |
| 362 | |
| 363 | for(;;){ |
| 364 | (void)Input(); |
| 365 | |
| 366 | if( cmd == LOAD_KEY ){ |
| 367 | /* |
| 368 | * take R[][] and expand |
| 369 | * it into rk[][][] |
| 370 | */ |
| 371 | (void)SchedKey(R, rk); |
| 372 | (void)wait(3); |
| 373 | |
| 374 | //Dump_rk("AES_Descrypt::MainThread rk", rk); |
| 375 | } else { |
| 376 | /* |
| 377 | * take R[][] and rk[][][] |
| 378 | * and decrypt the data inplace |
| 379 | * into R[][] |
| 380 | */ |
| 381 | (void)Decrypt(); |
| 382 | (void)wait(12); |
| 383 | (void)Output(); |
| 384 | } |
| 385 | |
| 386 | } |
| 387 | } |
| 388 | |
| 389 | void |
| 390 | AES_Decrypt::Decrypt(void) |