X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=keccak%2Fkeccak-asm.S;h=a827ea6e292671ebfa58e020c285a3151036fba1;hb=690a1cfe4c9b27d2b6c4b217022ddc6d20445c5e;hp=db8548cb4f44383a9caced05b95c32198d43860f;hpb=ae1ab232c9964531bcf50cd6580ff8081ef86990;p=avr-crypto-lib.git diff --git a/keccak/keccak-asm.S b/keccak/keccak-asm.S index db8548c..a827ea6 100644 --- a/keccak/keccak-asm.S +++ b/keccak/keccak-asm.S @@ -429,8 +429,6 @@ keccak_f1600: subi XL, lo8(4 * 5 * 8 + 8) sbci XH, hi8(4 * 5 * 8 + 8) rcall theta_2b - -; ret /* -- rho & pi -- for(i = 0; i < 5; ++i){ @@ -686,7 +684,6 @@ keccak_ctx2hash: ; length_b = (r9:r8) ; r = (r3:r2) ; (H:L) cp r2, r8 cpc r3, r9 -; rjmp 40f brsh 40f movw XL, r4 movw ZL, r6 @@ -842,14 +839,14 @@ keccak_lastBlock: movw r24, ctx_l movw r22, r4 rcall keccak_nextBlock - sub r4, pbs - sbc r5, __zero_reg__ + add r4, pbs + adc r5, __zero_reg__ sub length_b_l, pr_l - sbc length_b_l, pr_h + sbc length_b_h, pr_h rjmp 10b 20: - movw XL, r4 movw ZL, ctx_l + movw XL, r4 movw r22, length_b_l lsr r23 ror r22 @@ -867,12 +864,12 @@ keccak_lastBlock: dec r23 brne 10b 20: + ldi r25, 1 mov r18, length_b_l andi r18, 7 - mov r19, r18 - ldi r25, 1 breq 30f /* we have trailing bits */ + mov r19, r18 ld r24, X+ subi r18, 8 neg r18