diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2001-09-24 17:14:40 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2001-09-24 17:14:40 (GMT) |
commit | 287620f50d8b45a966280610165904b5b1c6be29 (patch) | |
tree | 3b130627ee2d30e626148c46d6acf62ef6cb710a /Modules/md5c.c | |
parent | bb77e6801ea07653e3cc66dbfaa3b5102eae16e7 (diff) | |
download | cpython-287620f50d8b45a966280610165904b5b1c6be29.zip cpython-287620f50d8b45a966280610165904b5b1c6be29.tar.gz cpython-287620f50d8b45a966280610165904b5b1c6be29.tar.bz2 |
Patch #463421: speed up md5 module with real memcpy/set.
Diffstat (limited to 'Modules/md5c.c')
-rw-r--r-- | Modules/md5c.c | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/Modules/md5c.c b/Modules/md5c.c index a2b8aec..ee89fec 100644 --- a/Modules/md5c.c +++ b/Modules/md5c.c @@ -48,8 +48,6 @@ documentation and/or software. static void MD5Transform(UINT4[4], unsigned char[64]); static void Encode(unsigned char *, UINT4 *, unsigned int); static void Decode(UINT4 *, unsigned char *, unsigned int); -static void MD5_memcpy(POINTER, POINTER, unsigned int); -static void MD5_memset(POINTER, int, unsigned int); static unsigned char PADDING[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -126,7 +124,7 @@ MD5Update(MD5_CTX *context, unsigned char *input, unsigned int inputLen) /* Transform as many times as possible. */ if (inputLen >= partLen) { - MD5_memcpy((POINTER)&context->buffer[index], (POINTER)input, partLen); + memcpy((POINTER)&context->buffer[index], (POINTER)input, partLen); MD5Transform(context->state, context->buffer); for (i = partLen; i + 63 < inputLen; i += 64) @@ -138,7 +136,7 @@ MD5Update(MD5_CTX *context, unsigned char *input, unsigned int inputLen) i = 0; /* Buffer remaining input */ - MD5_memcpy((POINTER)&context->buffer[index], + memcpy((POINTER)&context->buffer[index], (POINTER)&input[i], inputLen-i); } @@ -166,7 +164,7 @@ MD5Final(unsigned char digest[16], MD5_CTX *context) Encode(digest, context->state, 16); /* Zeroize sensitive information. */ - MD5_memset((POINTER)context, 0, sizeof (*context)); + memset((POINTER)context, 0, sizeof (*context)); } @@ -256,7 +254,7 @@ MD5Transform(UINT4 state[4], unsigned char block[64]) state[3] += d; /* Zeroize sensitive information. */ - MD5_memset((POINTER)x, 0, sizeof (x)); + memset((POINTER)x, 0, sizeof (x)); } @@ -290,25 +288,3 @@ Decode(UINT4 *output, unsigned char *input, unsigned int len) (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24); } } - - -/* Note: Replace "for loop" with standard memcpy if possible. */ -static void -MD5_memcpy(POINTER output, POINTER input, unsigned int len) -{ - unsigned int i; - - for (i = 0; i < len; i++) - output[i] = input[i]; -} - - -/* Note: Replace "for loop" with standard memset if possible. */ -static void -MD5_memset(POINTER output, int value, unsigned int len) -{ - unsigned int i; - - for (i = 0; i < len; i++) - ((char *)output)[i] = (char)value; -} |