1=pod
2
3=head1 NAME
4
5MDC2, MDC2_Init, MDC2_Update, MDC2_Final - MDC2 hash function
6
7=head1 SYNOPSIS
8
9 #include <openssl/mdc2.h>
10
11 unsigned char *MDC2(const unsigned char *d, unsigned long n,
12                  unsigned char *md);
13
14 void MDC2_Init(MDC2_CTX *c);
15 void MDC2_Update(MDC2_CTX *c, const unsigned char *data,
16                  unsigned long len);
17 void MDC2_Final(unsigned char *md, MDC2_CTX *c);
18
19=head1 DESCRIPTION
20
21MDC2 is a method to construct hash functions with 128 bit output from
22block ciphers.  These functions are an implementation of MDC2 with
23DES.
24
25MDC2() computes the MDC2 message digest of the B<n>
26bytes at B<d> and places it in B<md> (which must have space for
27MDC2_DIGEST_LENGTH == 16 bytes of output). If B<md> is NULL, the digest
28is placed in a static array.
29
30The following functions may be used if the message is not completely
31stored in memory:
32
33MDC2_Init() initializes a B<MDC2_CTX> structure.
34
35MDC2_Update() can be called repeatedly with chunks of the message to
36be hashed (B<len> bytes at B<data>).
37
38MDC2_Final() places the message digest in B<md>, which must have space
39for MDC2_DIGEST_LENGTH == 16 bytes of output, and erases the B<MDC2_CTX>.
40
41Applications should use the higher level functions
42L<EVP_DigestInit(3)|EVP_DigestInit(3)> etc. instead of calling the
43hash functions directly.
44
45=head1 RETURN VALUES
46
47MDC2() returns a pointer to the hash value. 
48
49MDC2_Init(), MDC2_Update() and MDC2_Final() do not return values.
50
51=head1 CONFORMING TO
52
53ISO/IEC 10118-2, with DES
54
55=head1 SEE ALSO
56
57L<sha(3)|sha(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)>
58
59=head1 HISTORY
60
61MDC2(), MDC2_Init(), MDC2_Update() and MDC2_Final() are available since
62SSLeay 0.8.
63
64=cut
65