RFC Errata
Found 7 records.
Status: Verified (5)
RFC 1321, "The MD5 Message-Digest Algorithm", April 1992
Note: This RFC has been updated by RFC 6151
Source of RFC: pem (sec)
Errata ID: 550
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Matt Borland
Date Reported: 2001-01-19
In Section A.4:
#define MD MD5
It should say:
#define MD 5
Errata ID: 551
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Gregory Smith
Date Reported: 2002-06-14
Section 3.4 says:
/* Round 3. */ /* Let [abcd k s t] denote the operation a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */
It should say:
/* Round 3. */ /* Let [abcd k s i] denote the operation a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ /* Do the following 16 operations. */
Errata ID: 552
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Michael Amling
Date Reported: 2000-04-12
Section 3.4 says:
the each bit of F(X,Y,Z) will be independent
It should say:
then each bit of F(X,Y,Z) will be independent
Errata ID: 553
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Gennaro Prota
Date Reported: 2006-11-15
Verifier Name: Tim Polk
Date Verified: 2010-04-19
Appendix A says:
printf ("MD%d time trial. Digesting %d %d-byte blocks ...", MD, TEST_BLOCK_LEN, TEST_BLOCK_COUNT);
It should say:
printf ("MD%d time trial. Digesting %d %d-byte blocks ...", MD, TEST_BLOCK_COUNT, TEST_BLOCK_LEN);
Errata ID: 585
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Gregory Smith
Date Reported: 2002-06-14
Section 3.4 says:
/* Round 4. */ /* Let [abcd k s t] denote the operation a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
It should say:
/* Round 4. */ /* Let [abcd k s i] denote the operation a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
Status: Reported (1)
RFC 1321, "The MD5 Message-Digest Algorithm", April 1992
Note: This RFC has been updated by RFC 6151
Source of RFC: pem (sec)
Errata ID: 7814
Status: Reported
Type: Technical
Publication Format(s) : TEXT
Reported By: Nilstrieb
Date Reported: 2024-02-19
Appendix A.1 says:
/* POINTER defines a generic pointer type */ typedef unsigned char *POINTER; /* UINT2 defines a two byte word */ typedef unsigned short int UINT2; /* UINT4 defines a four byte word */ typedef unsigned long int UINT4;
It should say:
#include <stdint.h> /* POINTER defines a generic pointer type */ typedef unsigned char *POINTER; /* UINT2 defines a two byte word */ typedef uint16_t UINT2; /* UINT4 defines a four byte word */ typedef uint32_t UINT4;
Notes:
On some modern systems like x86-64 Linux, unsigned long int is 8 bytes, which causes the original implementation to be incorrect.
Status: Held for Document Update (1)
RFC 1321, "The MD5 Message-Digest Algorithm", April 1992
Note: This RFC has been updated by RFC 6151
Source of RFC: pem (sec)
Errata ID: 6193
Status: Held for Document Update
Type: Technical
Publication Format(s) : TEXT
Reported By: User
Date Reported: 2020-05-29
Held for Document Update by: Paul Wouters
Date Held: 2024-01-12
Section A.4 says:
printf ("Speed = %ld bytes/second\n", (long)TEST_BLOCK_LEN * (long)TEST_BLOCK_COUNT/(endTime-startTime));
It should say:
if(endTime-startTime) printf ("Speed = %ld bytes/second\n", (long)TEST_BLOCK_LEN * (long)TEST_BLOCK_COUNT/(endTime-startTime));
Notes:
The result of endTime-startTime may be zero. The result is a division by zero. This check prevents this.
AD Note: Technically endTime-startTime is not a bool, so a better fix would be:
if ((endTime-startTime) !=0)