163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
if (size < t) {
memcpy(p, buffer, size);
return;
}
memcpy(p, buffer, t);
OF_BSWAP32_V_IF_BE((uint32_t*)in, 16);
md5_transform(buf, (uint32_t*)in);
buffer += t;
size -= t;
}
/* Process data in 64-byte chunks */
while (size >= 64) {
memcpy(in, buffer, 64);
OF_BSWAP32_V_IF_BE((uint32_t*)in, 16);
md5_transform(buf, (uint32_t*)in);
buffer += 64;
size -= 64;
}
/* Handle any remaining bytes of data. */
|
|
|
|
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
if (size < t) {
memcpy(p, buffer, size);
return;
}
memcpy(p, buffer, t);
of_bswap32_vec_if_be((uint32_t*)in, 16);
md5_transform(buf, (uint32_t*)in);
buffer += t;
size -= t;
}
/* Process data in 64-byte chunks */
while (size >= 64) {
memcpy(in, buffer, 64);
of_bswap32_vec_if_be((uint32_t*)in, 16);
md5_transform(buf, (uint32_t*)in);
buffer += 64;
size -= 64;
}
/* Handle any remaining bytes of data. */
|
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
/* Bytes of padding needed to make 64 bytes */
count = 64 - 1 - count;
/* Pad out to 56 mod 64 */
if (count < 8) {
/* Two lots of padding: Pad the first block to 64 bytes */
memset(p, 0, count);
OF_BSWAP32_V_IF_BE((uint32_t*)in, 16);
md5_transform(buf, (uint32_t*)in);
/* Now fill the next block with 56 bytes */
memset(in, 0, 56);
} else {
/* Pad block to 56 bytes */
memset(p, 0, count - 8);
}
OF_BSWAP32_V_IF_BE((uint32_t*)in, 14);
/* Append length in bits and transform */
((uint32_t*)in)[14] = bits[0];
((uint32_t*)in)[15] = bits[1];
md5_transform(buf, (uint32_t*)in);
OF_BSWAP32_V_IF_BE(buf, 4);
isCalculated = YES;
return (uint8_t*)buf;
}
@end
|
|
|
|
|
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
|
/* Bytes of padding needed to make 64 bytes */
count = 64 - 1 - count;
/* Pad out to 56 mod 64 */
if (count < 8) {
/* Two lots of padding: Pad the first block to 64 bytes */
memset(p, 0, count);
of_bswap32_vec_if_be((uint32_t*)in, 16);
md5_transform(buf, (uint32_t*)in);
/* Now fill the next block with 56 bytes */
memset(in, 0, 56);
} else {
/* Pad block to 56 bytes */
memset(p, 0, count - 8);
}
of_bswap32_vec_if_be((uint32_t*)in, 14);
/* Append length in bits and transform */
((uint32_t*)in)[14] = bits[0];
((uint32_t*)in)[15] = bits[1];
md5_transform(buf, (uint32_t*)in);
of_bswap32_vec_if_be(buf, 4);
isCalculated = YES;
return (uint8_t*)buf;
}
@end
|