mirror of
https://github.com/sheumann/65816-crypto.git
synced 2024-10-02 08:55:35 +00:00
Small decryption optimization, saving a value in a register between rounds.
This commit is contained in:
parent
634ff1e865
commit
e46264f0c4
31
aes.macros
31
aes.macros
@ -244,17 +244,19 @@
|
|||||||
&out setc state2
|
&out setc state2
|
||||||
.cont
|
.cont
|
||||||
|
|
||||||
InvMixColumn 12,1,6,11,12
|
InvMixColumn 12,1,6,11,12,1
|
||||||
InvMixColumn 0,5,10,15,0
|
InvMixColumn 0,5,10,15,0
|
||||||
InvMixColumn 4,9,14,3,4
|
|
||||||
InvMixColumn 8,13,2,7,8
|
InvMixColumn 8,13,2,7,8
|
||||||
|
InvMixColumn 4,9,14,3,4,dotax=1
|
||||||
mend
|
mend
|
||||||
|
|
||||||
|
|
||||||
macro
|
macro
|
||||||
InvMixColumn &A,&B,&C,&D,&i
|
InvMixColumn &A,&B,&C,&D,&i,&skipldx,&dotax
|
||||||
|
|
||||||
|
aif C:&skipldx,.skip
|
||||||
ldx &state+&i+2
|
ldx &state+&i+2
|
||||||
|
.skip
|
||||||
lda Xtime9,X
|
lda Xtime9,X
|
||||||
ldy &state+&i+0
|
ldy &state+&i+0
|
||||||
eor XtimeB,Y
|
eor XtimeB,Y
|
||||||
@ -301,12 +303,17 @@
|
|||||||
tay
|
tay
|
||||||
lda InvSbox,Y
|
lda InvSbox,Y
|
||||||
eor rk+(&round-1)*16+&C
|
eor rk+(&round-1)*16+&C
|
||||||
|
aif (C:&dotax).AND.(&round<>1),.dotax
|
||||||
sta &out+&C
|
sta &out+&C
|
||||||
|
ago .done
|
||||||
|
.dotax
|
||||||
|
tax
|
||||||
|
.done
|
||||||
mend
|
mend
|
||||||
|
|
||||||
|
|
||||||
macro
|
macro
|
||||||
InvFinalRoundStep &to,&from
|
InvFinalRoundStep &to,&from,&dotax
|
||||||
|
|
||||||
lda state1+&from
|
lda state1+&from
|
||||||
aif (rk+&round*16+&from)>255,.bigindex
|
aif (rk+&round*16+&from)>255,.bigindex
|
||||||
@ -326,8 +333,12 @@
|
|||||||
ldx #(&round-1)*16+&to
|
ldx #(&round-1)*16+&to
|
||||||
eor rk,X
|
eor rk,X
|
||||||
.cont2
|
.cont2
|
||||||
|
aif C:&dotax,.dotax
|
||||||
sta state2+&to
|
sta state2+&to
|
||||||
|
ago .done
|
||||||
|
.dotax
|
||||||
|
tax
|
||||||
|
.done
|
||||||
mend
|
mend
|
||||||
|
|
||||||
|
|
||||||
@ -344,16 +355,16 @@
|
|||||||
InvFinalRoundStep 9,5
|
InvFinalRoundStep 9,5
|
||||||
InvFinalRoundStep 5,1
|
InvFinalRoundStep 5,1
|
||||||
|
|
||||||
InvFinalRoundStep 10,2
|
|
||||||
InvFinalRoundStep 2,10
|
|
||||||
InvFinalRoundStep 14,6
|
|
||||||
InvFinalRoundStep 6,14
|
|
||||||
|
|
||||||
InvFinalRoundStep 15,3
|
InvFinalRoundStep 15,3
|
||||||
InvFinalRoundStep 3,7
|
InvFinalRoundStep 3,7
|
||||||
InvFinalRoundStep 7,11
|
InvFinalRoundStep 7,11
|
||||||
InvFinalRoundStep 11,15
|
InvFinalRoundStep 11,15
|
||||||
|
|
||||||
|
InvFinalRoundStep 2,10
|
||||||
|
InvFinalRoundStep 10,2
|
||||||
|
InvFinalRoundStep 6,14
|
||||||
|
InvFinalRoundStep 14,6,1
|
||||||
|
|
||||||
mend
|
mend
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user