summaryrefslogtreecommitdiffstats
path: root/sha1/msauth.asm
diff options
context:
space:
mode:
Diffstat (limited to 'sha1/msauth.asm')
-rw-r--r--sha1/msauth.asm187
1 files changed, 133 insertions, 54 deletions
diff --git a/sha1/msauth.asm b/sha1/msauth.asm
index 20523ae..e4d0929 100644
--- a/sha1/msauth.asm
+++ b/sha1/msauth.asm
@@ -108,27 +108,27 @@ sha1_loop:
sta idx
cmp #20
bhs sha1_k2
- lda #(K1-base)
+ lda #(K1-BASE_START)
sta k
; T1 = (B & C) | ((~B) & D)
- lda #(T2-base)
+ lda #(T2-BASE_START)
sta dest
- lda #(VB-base)
+ lda #(VB-BASE_START)
sta src1
- lda #(FFFFFFFF-base)
+ lda #(FFFFFFFF-BASE_START)
jsr xor4 ;T2=~B
- lda #(T2-base)
+ lda #(T2-BASE_START)
sta src1
- lda #(VD-base)
+ lda #(VD-BASE_START)
jsr and4 ;T2=T2&D
bra sha1_t2_or_bandc ; T1=T2 | (B&C)
sha1_k2:
cmp #40
bhs sha1_k3
- lda #(K2-base)
+ lda #(K2-BASE_START)
sta k
bra sha1_k24 ; T1 = B ^ C ^ D
@@ -136,88 +136,88 @@ sha1_k3:
cmp #60
bhs sha1_k4
; T1 = (B & C) | (B & D) | (C & D)
- lda #(K3-base)
+ lda #(K3-BASE_START)
sta k
- lda #(T1-base)
+ lda #(T1-BASE_START)
sta dest
- lda #(VD-base)
+ lda #(VD-BASE_START)
sta src1
- lda #(VB-base)
+ lda #(VB-BASE_START)
jsr and4 ; T1=B&D
- lda #(T2-base)
+ lda #(T2-BASE_START)
sta dest
- lda #(VC-base)
+ lda #(VC-BASE_START)
jsr and4 ; T2=C&D
- lda #(T2-base)
+ lda #(T2-BASE_START)
sta src1
- lda #(T1-base)
+ lda #(T1-BASE_START)
jsr or4 ; T2=T1|T2
sha1_t2_or_bandc:
- lda #(T1-base)
+ lda #(T1-BASE_START)
sta dest
- lda #(VB-base)
+ lda #(VB-BASE_START)
sta src1
- lda #(VC-base)
+ lda #(VC-BASE_START)
jsr and4 ; T1 = B&C
- lda #(T1-base)
+ lda #(T1-BASE_START)
sta src1
- lda #(T2-base)
+ lda #(T2-BASE_START)
jsr or4 ; T1= T1|T2
bra sha1_shuffle
sha1_k4:
- lda #(K4-base)
+ lda #(K4-BASE_START)
sta k
sha1_k24:
; T1 = B ^ C ^ D
- lda #(T1-base)
+ lda #(T1-BASE_START)
sta dest
- lda #(VB-base)
+ lda #(VB-BASE_START)
sta src1
- lda #(VC-base)
+ lda #(VC-BASE_START)
jsr xor4
- lda #(T1-base)
+ lda #(T1-BASE_START)
sta src1
- lda #(VD-base)
+ lda #(VD-BASE_START)
jsr xor4
sha1_shuffle:
; T1 is src1 and dest here
- lda #(VE-base)
+ lda #(VE-BASE_START)
jsr add4 ; T1=T1+E
lda k
jsr add4 ; T1=T1+k
; get data here
- lda #(ZERO-base)
+ lda #(ZERO-BASE_START)
jsr add4 ; T1=T1+data
- lda #(VD-base)
+ lda #(VD-BASE_START)
jsr copy_down ; E=D
- lda #(VC-base)
+ lda #(VC-BASE_START)
jsr copy_down ; D=C
- lda #(VB-base)
+ lda #(VB-BASE_START)
jsr copy_down ; C=B
lda #30
jsr rot_left ; C=ROTLEFT(C,30)
- lda #(VA-base)
+ lda #(VA-BASE_START)
jsr copy_down ; B=A
- lda #(VA-base)
+ lda #(VA-BASE_START)
sta dest
sta src1
lda #5
jsr rot_left ; A=ROTLEFT(A,5)
- lda #(T1-base)
+ lda #(T1-BASE_START)
jsr add4 ; A=A+T1
@@ -250,7 +250,7 @@ copy_down:
sta src1
add #4
sta dest
- lda #(ZERO-base)
+ lda #(ZERO-BASE_START)
add4:
sta src2
@@ -275,25 +275,25 @@ or4:
sta op4_src2
op4_binary:
ldx #0
- lda #base & $ff
+ lda #BASE_START & $ff
add src2
sta op4_src2+2
txa
- adc #base>>8
+ adc #BASE_START>>8
sta op4_src2+1
- lda #base & $ff
+ lda #BASE_START & $ff
add src1
sta op4_src1+2
txa
- adc #base>>8
+ adc #BASE_START>>8
sta op4_src1+1
- lda #base & $ff
+ lda #BASE_START & $ff
add dest
sta op4_dst+2
txa
- adc #base>>8
+ adc #BASE_START>>8
sta op4_dst+1
clc
@@ -314,28 +314,36 @@ rot_left:
ldx dest
sta rot_cnt
rot_loop:
- lda base,x
+ lda BASE_START,x
rola
- lda base+1,x
+ lda BASE_START+1,x
rola
- sta base+1,x
- lda base+2,x
+ sta BASE_START+1,x
+ lda BASE_START+2,x
rola
- sta base+2,x
- lda base+3,x
+ sta BASE_START+2,x
+ lda BASE_START+3,x
rola
- sta base+3,x
- lda base,x
+ sta BASE_START+3,x
+ lda BASE_START,x
rola
- sta base,x
+ sta BASE_START,x
dec rot_cnt
bne rot_loop
rts
-data:
-
-H: DB $01
+BASE_START:
+
+KEY:
+ DW $0e89
+ DW $6e38
+ DW $3cbb
+ DW $e9cf
+ DW $0000
+ DW $e44f
+
+IH: DB $01
DB $23
DB $45
DB $67
@@ -355,7 +363,6 @@ H: DB $01
DB $E1
DB $D2
DB $C3
-base:
K1:
DB $99
DB $79
@@ -409,4 +416,76 @@ T2: DW 0
ZERO: DW 0
DW 0
+
+
+WBUF:
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+
+KEYOR:
+ DW 0
+ DW 0
+
+
+H:
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+
+
+DATA1:
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+ DW 0
+DATA2:
+ DW 0
+ DW 0
+
+BASE_END: