summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2001-09-24 17:14:40 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2001-09-24 17:14:40 (GMT)
commit287620f50d8b45a966280610165904b5b1c6be29 (patch)
tree3b130627ee2d30e626148c46d6acf62ef6cb710a /Modules
parentbb77e6801ea07653e3cc66dbfaa3b5102eae16e7 (diff)
downloadcpython-287620f50d8b45a966280610165904b5b1c6be29.zip
cpython-287620f50d8b45a966280610165904b5b1c6be29.tar.gz
cpython-287620f50d8b45a966280610165904b5b1c6be29.tar.bz2
Patch #463421: speed up md5 module with real memcpy/set.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/md5c.c32
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;
-}