@@ -61,91 +61,109 @@ uint8_t *MD5(uint8_t *message, uint64_t message_len, uint8_t *digest)
61
61
_a5 (& D , A , B , C , 1 , 12 , 2 , F , X );
62
62
_a5 (& C , D , A , B , 2 , 17 , 3 , F , X );
63
63
_a5 (& B , C , D , A , 3 , 22 , 4 , F , X );
64
+ printf ("1 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
64
65
65
66
_a5 (& A , B , C , D , 4 , 7 , 5 , F , X );
66
67
_a5 (& D , A , B , C , 5 , 12 , 6 , F , X );
67
68
_a5 (& C , D , A , B , 6 , 17 , 7 , F , X );
68
69
_a5 (& B , C , D , A , 7 , 22 , 8 , F , X );
70
+ printf ("1 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
69
71
70
72
_a5 (& A , B , C , D , 8 , 7 , 9 , F , X );
71
73
_a5 (& D , A , B , C , 9 , 12 , 10 , F , X );
72
74
_a5 (& C , D , A , B , 10 , 17 , 11 , F , X );
73
75
_a5 (& B , C , D , A , 11 , 22 , 12 , F , X );
76
+ printf ("1 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
74
77
75
78
_a5 (& A , B , C , D , 12 , 7 , 13 , F , X );
76
79
_a5 (& D , A , B , C , 13 , 12 , 14 , F , X );
77
80
_a5 (& C , D , A , B , 14 , 17 , 15 , F , X );
78
81
_a5 (& B , C , D , A , 15 , 22 , 16 , F , X );
82
+ printf ("1 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
79
83
80
84
// Round 2
81
85
_a5 (& A , B , C , D , 1 , 5 , 17 , G , X );
82
86
_a5 (& D , A , B , C , 6 , 9 , 18 , G , X );
83
87
_a5 (& C , D , A , B , 11 , 14 , 19 , G , X );
84
88
_a5 (& B , C , D , A , 0 , 20 , 20 , G , X );
89
+ printf ("2 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
85
90
86
91
_a5 (& A , B , C , D , 5 , 5 , 21 , G , X );
87
92
_a5 (& D , A , B , C , 10 , 9 , 22 , G , X );
88
93
_a5 (& C , D , A , B , 15 , 14 , 23 , G , X );
89
94
_a5 (& B , C , D , A , 4 , 20 , 24 , G , X );
95
+ printf ("2 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
90
96
91
97
_a5 (& A , B , C , D , 9 , 5 , 25 , G , X );
92
98
_a5 (& D , A , B , C , 14 , 9 , 26 , G , X );
93
99
_a5 (& C , D , A , B , 3 , 14 , 27 , G , X );
94
100
_a5 (& B , C , D , A , 8 , 20 , 28 , G , X );
101
+ printf ("2 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
95
102
96
103
_a5 (& A , B , C , D , 13 , 5 , 29 , G , X );
97
104
_a5 (& D , A , B , C , 2 , 9 , 30 , G , X );
98
105
_a5 (& C , D , A , B , 7 , 14 , 31 , G , X );
99
106
_a5 (& B , C , D , A , 12 , 20 , 32 , G , X );
107
+ printf ("2 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
100
108
101
109
// Round 3
102
110
_a5 (& A , B , C , D , 5 , 4 , 33 , H , X );
103
111
_a5 (& D , A , B , C , 8 , 11 , 34 , H , X );
104
112
_a5 (& C , D , A , B , 11 , 16 , 35 , H , X );
105
113
_a5 (& B , C , D , A , 14 , 23 , 36 , H , X );
114
+ printf ("3 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
106
115
107
116
_a5 (& A , B , C , D , 1 , 4 , 37 , H , X );
108
117
_a5 (& D , A , B , C , 4 , 11 , 38 , H , X );
109
118
_a5 (& C , D , A , B , 7 , 16 , 39 , H , X );
110
119
_a5 (& B , C , D , A , 10 , 23 , 40 , H , X );
120
+ printf ("3 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
111
121
112
122
_a5 (& A , B , C , D , 13 , 4 , 41 , H , X );
113
123
_a5 (& D , A , B , C , 0 , 11 , 42 , H , X );
114
124
_a5 (& C , D , A , B , 3 , 16 , 43 , H , X );
115
125
_a5 (& B , C , D , A , 6 , 23 , 44 , H , X );
126
+ printf ("3 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
116
127
117
128
_a5 (& A , B , C , D , 9 , 4 , 45 , H , X );
118
129
_a5 (& D , A , B , C , 12 , 11 , 46 , H , X );
119
130
_a5 (& C , D , A , B , 15 , 16 , 47 , H , X );
120
131
_a5 (& B , C , D , A , 2 , 23 , 48 , H , X );
132
+ printf ("3 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
121
133
122
134
// Round 4
123
135
_a5 (& A , B , C , D , 0 , 6 , 49 , I , X );
124
136
_a5 (& D , A , B , C , 7 , 10 , 50 , I , X );
125
137
_a5 (& C , D , A , B , 14 , 15 , 51 , I , X );
126
138
_a5 (& B , C , D , A , 5 , 21 , 52 , I , X );
139
+ printf ("4 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
127
140
128
141
_a5 (& A , B , C , D , 12 , 6 , 53 , I , X );
129
142
_a5 (& D , A , B , C , 3 , 10 , 54 , I , X );
130
143
_a5 (& C , D , A , B , 10 , 15 , 55 , I , X );
131
144
_a5 (& B , C , D , A , 1 , 21 , 56 , I , X );
145
+ printf ("4 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
132
146
133
147
_a5 (& A , B , C , D , 8 , 6 , 57 , I , X );
134
148
_a5 (& D , A , B , C , 15 , 10 , 58 , I , X );
135
149
_a5 (& C , D , A , B , 6 , 15 , 59 , I , X );
136
150
_a5 (& B , C , D , A , 13 , 21 , 60 , I , X );
151
+ printf ("4 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
137
152
138
153
_a5 (& A , B , C , D , 4 , 6 , 61 , I , X );
139
154
_a5 (& D , A , B , C , 11 , 10 , 62 , I , X );
140
155
_a5 (& C , D , A , B , 2 , 15 , 63 , I , X );
141
156
_a5 (& B , C , D , A , 9 , 21 , 64 , I , X );
157
+ printf ("4 >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
142
158
143
159
A += AA ;
144
160
B += BB ;
145
161
C += CC ;
146
162
D += DD ;
147
163
}
148
164
165
+ printf ("F >> A: %08X B: %08X C: %08X D: %08X\n" , A , B , C , D );
166
+
149
167
uint32_t ABCD [] = {A , B , C , D };
150
168
151
169
for (size_t i = 0 ; i < 4 ; ++ i )
0 commit comments