]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - sha1-asm.S
forgot hfal_shabval.*
[avr-crypto-lib.git] / sha1-asm.S
index 74d7c11223aa7a35f1e12638c25d1537c4cdaa04..f571685984c5046fd0f4280adbc9a5fe513720a8 100644 (file)
@@ -271,21 +271,24 @@ sha1_lastBlock_localSpace = (SHA1_BLOCK_BITS/8+1)
 
 
 sha1_lastBlock:
-       tst r20
-       brne sha1_lastBlock_prolog
        cpi r21, 0x02
-       brne sha1_lastBlock_prolog
+       brlo sha1_lastBlock_prolog
        push r25
        push r24
        push r23
        push r22
+       push r21
+       push r20
        rcall sha1_nextBlock
+       pop r20
+       pop r21
        pop r22
        pop r23
        pop r24
        pop r25
-       clr r21
-       clr r22
+       subi r21, 2
+       subi r23, -2
+       rjmp sha1_lastBlock
 sha1_lastBlock_prolog:
        /* allocate space on stack */
        in r30, SPL
@@ -732,7 +735,7 @@ sha1_nextBlock_update_a:
        inc LoopC
        cpi LoopC, 80
        brge 1f
-       jmp sha1_nextBlock_mainloop
+       rjmp sha1_nextBlock_mainloop
 /**************************************/
 1:     
    /* littel patch */
@@ -799,10 +802,13 @@ sha1_nextBlock_KTable:
 .int   0x8f1bbcdc 
 .int   0xca62c1d6
 sha1_nextBlock_JumpTable:
-jmp sha1_nextBlock_Ch  
-jmp sha1_nextBlock_Parity
-jmp sha1_nextBlock_Maj
-jmp sha1_nextBlock_Parity
+rjmp sha1_nextBlock_Ch
+       nop     
+rjmp sha1_nextBlock_Parity
+       nop
+rjmp sha1_nextBlock_Maj
+       nop
+rjmp sha1_nextBlock_Parity
 
         /* X and Y still point at a[1] aka b ; return value in tmp1 */
 sha1_nextBlock_Ch:
@@ -814,13 +820,6 @@ sha1_nextBlock_Ch:
        ldd tmp3, Y+7   /* load from d */
        and tmp2, tmp3
        eor tmp1, tmp2
-       /**
-       precall
-       ldi r24, lo8(ch_str)
-       ldi r25, hi8(ch_str)
-       call uart_putstr_P
-       postcall
-       /**/
        ret
        
 sha1_nextBlock_Maj:
@@ -833,13 +832,6 @@ sha1_nextBlock_Maj:
        eor tmp1, tmp2
        and tmp3, tmp4
        eor tmp1, tmp3
-       /**
-       precall
-       ldi r24, lo8(maj_str)
-       ldi r25, hi8(maj_str)
-       call uart_putstr_P
-       postcall
-       /**/
        ret
 
 sha1_nextBlock_Parity:
@@ -848,14 +840,6 @@ sha1_nextBlock_Parity:
        eor tmp1, tmp2
        ldd tmp2, Y+7   /* load from d */
        eor tmp1, tmp2
-       
-       /**
-       precall
-       ldi r24, lo8(parity_str)
-       ldi r25, hi8(parity_str)
-       call uart_putstr_P
-       postcall
-       /**/
        ret
 /*     
 ch_str:                        .asciz "\r\nCh"