]> git.cryptolib.org Git - avr-crypto-lib.git/blobdiff - skein/threefish256_enc_asm.S
included skein tweak for round 3
[avr-crypto-lib.git] / skein / threefish256_enc_asm.S
index dfa5d05c4ff175bfe67db101845b9b8a3788b2fd..184d32a5aa6866bb5bad3341be5f7527f5be8ffe 100644 (file)
@@ -62,11 +62,20 @@ threefish256_init:
        movw r30, r20
        movw r26, r24
        ldi r24, 4
-       ldi A7, 0x55
-       mov A6, A7
-       movw A4, A6
-       movw A2, A6
+;      ldi A7, 0x55
+;      mov A6, A7
+;      movw A4, A6
+;      movw A2, A6
+;      movw A0, A6
+       ldi A6, 0x22 ; 0x1BD1.1BDA.A9FC.1A22
+       ldi A7, 0x1A
        movw A0, A6
+       ldi A2, 0xFC
+       ldi A3, 0xA9
+       ldi A4, 0xDA
+       ldi A5, 0x1B
+       ldi A6, 0xD1
+       ldi A7, 0x1B
 1:
        ld r0, X+
        st Z+, r0
@@ -373,8 +382,12 @@ threefish256_slut3:
        .byte 0x08, 0x10, 0x00, 0x08, 0x10, 0x00, 0x08
 ;threefish256_rc0: .byte  5, 36, 13, 58, 26, 53, 11, 59
 ;threefish256_rc1: .byte 56, 28, 46, 44, 20, 35, 42, 50
+/* old round constants
 threefish256_rc0: .byte 0x1b, 0x44, 0x2b, 0x72, 0x32, 0x7b, 0x13, 0x73
 threefish256_rc1: .byte 0x70, 0x34, 0x6a, 0x54, 0x24, 0x43, 0x52, 0x62
+*/
+threefish256_rc0:  .byte 0x2a, 0x64, 0x39, 0x1b, 0x31, 0x6a, 0x72, 0x40
+threefish256_rc1:  .byte 0x20, 0x71, 0x50, 0x5b, 0x41, 0x14, 0x3a, 0x40
 
 add_z_to_x8:
        ld r0, Z+