NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | ATTRIBUTES | SEE ALSO
cc [ flag ... ] file ... -lmd5 [ library ... ] #include <md5.h>void MD5Init(MD5_CTX *context);
The MD5Init() initializes an MD5 context structure that is used as an input argument to the MD5Update() and MD5Final() functions. This function must be called every time a new hash needs to be computed.
The MD5Update() function updates the MD5 context buffer that will be used in the final hash output.
The MD5Final() function generates the final MD5 hash, using the md5 context that was updated in the calls to MD5Update().
These function should be called if scatter/gather buffer support is required. For applications that need to hash a single contiguous buffer, md5_calc() provides a single call to generate the MD5 hash.
These functions do not return a value.
The following is a sample function that must authenticate a message that is found in multiple buffers. The calling function provides an authentication buffer that will contain the result of the MD5 hash.
int AuthenticateMsg(unsigned char *auth_buffer, struct iovec *messageIov, unsigned int num_buffers) { MD5_CTX md5_ context; unsigned int i; MD5Init(&md5_context); for(i=0, i<num_buffers; i++ { MD5Update(&md5_context, messageIov->iov_base, messageIov->iov_len); messageIov += sizeof(struct iovec); } MD5Final(auth_buffer, &md5_context); return 0; }
Since the buffer to be computed is contiguous, the md5_calc() function can be used to generate the MD5 hash.
int AuthenticateMsg(unsigned char *auth_buffer, unsigned char *buffer, unsigned int length) { md5_calc(buffer, auth_buffer, length); return (0); }
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
MT-Level | MT-Safe |
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | ATTRIBUTES | SEE ALSO