I am looking to put together an MD5 message digest program and have extracted the MD5.c and MD5.h files from PGP(excerpt of the MD5.h file below) but I'm not sure how it all works. Can someone who is familiar with the functions and the data structure please e-mail me with a bit of guidance as to what each one does and how to implement it. If anyone can lead me to a good description of the processes involved I would appreciate that too. Thanks. ----====---- struct MD5Context { uint32 buf[4]; uint32 bits[2]; unsigned char in[64]; }; void MD5Init(struct MD5Context *context); void MD5Update(struct MD5Context *context, unsigned char const *buf, unsigned len); void MD5Final(unsigned char digest[16], struct MD5Context *context); void MD5Transform(uint32 buf[4], uint32 const in[16]); ----====---- Philip Trauring --=--=====--=--=====--=--=====--=--=====--=--=====--=--=====--=--=====--=-- Philip Trauring Brandeis University MB1001 philip@cs.brandeis.edu P.O. Box 9110 (617) 736-5282 ['94/95] Waltham, Ma 02254-9110 --=--=====--=--=====--=--=====--=--=====--=--=====--=--=====--=--=====--=--
| I am looking to put together an MD5 message digest program and have | extracted the MD5.c and MD5.h files from PGP(excerpt of the MD5.h file | below) but I'm not sure how it all works. Can someone who is familiar with | the functions and the data structure please e-mail me with a bit of | guidance as to what each one does and how to implement it. If anyone can | lead me to a good description of the processes involved I would appreciate | that too. Thanks. I seem to recall that md5 is explained pretty well in Schneier. You may be doing this to learn, which is great, but you might be pleased to know that there are several md5 programs already available. Tripwire includes one, and there was one included in a CERT/CIAC advisory last year. Adam -- "It is seldom that liberty of any kind is lost all at once." -Hume
I am looking to put together an MD5 message digest program and have extracted the MD5.c and MD5.h files from PGP(excerpt of the MD5.h file below) but I'm not sure how it all works. Can someone who is familiar with the functions and the data structure please e-mail me with a bit of guidance as to what each one does and how to implement it. If anyone can lead me to a good description of the processes involved I would appreciate that too. Thanks.
Better than looking at sources, look for the file rsa.doc avail. from a lot of crypto/security ftp-sites... specifically something called the MD5-A RFC ...? It explains the algorithm pretty well, and is what I used to write my own assembler implementation with... better to work from an explanation of the algorithm than from sources which you may or may not understand what is going on.
participants (3)
-
Adam Shostack -
philip@cs.brandeis.edu -
Robert Rothenburg Walking-Owl