- uint8_t tmp[8][8];
- uint8_t j;
- uint16_t i=hashsize_b;
- while(i>=64){
- i-=64;
- memcpy(tmp,ctx->s, 64);
- blank_round(ctx);
- memxor(ctx->s, tmp, 64);
- blank_round(ctx);
- for(j=0; j<8; ++j){
- *((uint8_t*)dest) = ctx->s[7-j][0] ^ tmp[7-j][0];
- dest = (uint8_t*)dest + 1;
- }
- }
- if(i>=32){
- memcpy(tmp,ctx->s, 64);
- blank_round(ctx);
- memxor(ctx->s, tmp, 64);
- blank_round(ctx);
- for(j=0; j<4; ++j){
- *((uint8_t*)dest) = ctx->s[3-j][0] ^ tmp[3-j][0];
- dest = (uint8_t*)dest + 1;
- }
- }