xref: /freebsd/crypto/openssl/doc/man3/MD5.pod (revision e71b70530d95c4f34d8bdbd78d1242df1ba4a945)
1*e71b7053SJung-uk Kim=pod
2*e71b7053SJung-uk Kim
3*e71b7053SJung-uk Kim=head1 NAME
4*e71b7053SJung-uk Kim
5*e71b7053SJung-uk KimMD2, MD4, MD5, MD2_Init, MD2_Update, MD2_Final, MD4_Init, MD4_Update,
6*e71b7053SJung-uk KimMD4_Final, MD5_Init, MD5_Update, MD5_Final - MD2, MD4, and MD5 hash functions
7*e71b7053SJung-uk Kim
8*e71b7053SJung-uk Kim=head1 SYNOPSIS
9*e71b7053SJung-uk Kim
10*e71b7053SJung-uk Kim #include <openssl/md2.h>
11*e71b7053SJung-uk Kim
12*e71b7053SJung-uk Kim unsigned char *MD2(const unsigned char *d, unsigned long n, unsigned char *md);
13*e71b7053SJung-uk Kim
14*e71b7053SJung-uk Kim int MD2_Init(MD2_CTX *c);
15*e71b7053SJung-uk Kim int MD2_Update(MD2_CTX *c, const unsigned char *data, unsigned long len);
16*e71b7053SJung-uk Kim int MD2_Final(unsigned char *md, MD2_CTX *c);
17*e71b7053SJung-uk Kim
18*e71b7053SJung-uk Kim
19*e71b7053SJung-uk Kim #include <openssl/md4.h>
20*e71b7053SJung-uk Kim
21*e71b7053SJung-uk Kim unsigned char *MD4(const unsigned char *d, unsigned long n, unsigned char *md);
22*e71b7053SJung-uk Kim
23*e71b7053SJung-uk Kim int MD4_Init(MD4_CTX *c);
24*e71b7053SJung-uk Kim int MD4_Update(MD4_CTX *c, const void *data, unsigned long len);
25*e71b7053SJung-uk Kim int MD4_Final(unsigned char *md, MD4_CTX *c);
26*e71b7053SJung-uk Kim
27*e71b7053SJung-uk Kim
28*e71b7053SJung-uk Kim #include <openssl/md5.h>
29*e71b7053SJung-uk Kim
30*e71b7053SJung-uk Kim unsigned char *MD5(const unsigned char *d, unsigned long n, unsigned char *md);
31*e71b7053SJung-uk Kim
32*e71b7053SJung-uk Kim int MD5_Init(MD5_CTX *c);
33*e71b7053SJung-uk Kim int MD5_Update(MD5_CTX *c, const void *data, unsigned long len);
34*e71b7053SJung-uk Kim int MD5_Final(unsigned char *md, MD5_CTX *c);
35*e71b7053SJung-uk Kim
36*e71b7053SJung-uk Kim=head1 DESCRIPTION
37*e71b7053SJung-uk Kim
38*e71b7053SJung-uk KimMD2, MD4, and MD5 are cryptographic hash functions with a 128 bit output.
39*e71b7053SJung-uk Kim
40*e71b7053SJung-uk KimMD2(), MD4(), and MD5() compute the MD2, MD4, and MD5 message digest
41*e71b7053SJung-uk Kimof the B<n> bytes at B<d> and place it in B<md> (which must have space
42*e71b7053SJung-uk Kimfor MD2_DIGEST_LENGTH == MD4_DIGEST_LENGTH == MD5_DIGEST_LENGTH == 16
43*e71b7053SJung-uk Kimbytes of output). If B<md> is NULL, the digest is placed in a static
44*e71b7053SJung-uk Kimarray.
45*e71b7053SJung-uk Kim
46*e71b7053SJung-uk KimThe following functions may be used if the message is not completely
47*e71b7053SJung-uk Kimstored in memory:
48*e71b7053SJung-uk Kim
49*e71b7053SJung-uk KimMD2_Init() initializes a B<MD2_CTX> structure.
50*e71b7053SJung-uk Kim
51*e71b7053SJung-uk KimMD2_Update() can be called repeatedly with chunks of the message to
52*e71b7053SJung-uk Kimbe hashed (B<len> bytes at B<data>).
53*e71b7053SJung-uk Kim
54*e71b7053SJung-uk KimMD2_Final() places the message digest in B<md>, which must have space
55*e71b7053SJung-uk Kimfor MD2_DIGEST_LENGTH == 16 bytes of output, and erases the B<MD2_CTX>.
56*e71b7053SJung-uk Kim
57*e71b7053SJung-uk KimMD4_Init(), MD4_Update(), MD4_Final(), MD5_Init(), MD5_Update(), and
58*e71b7053SJung-uk KimMD5_Final() are analogous using an B<MD4_CTX> and B<MD5_CTX> structure.
59*e71b7053SJung-uk Kim
60*e71b7053SJung-uk KimApplications should use the higher level functions
61*e71b7053SJung-uk KimL<EVP_DigestInit(3)>
62*e71b7053SJung-uk Kimetc. instead of calling the hash functions directly.
63*e71b7053SJung-uk Kim
64*e71b7053SJung-uk Kim=head1 NOTE
65*e71b7053SJung-uk Kim
66*e71b7053SJung-uk KimMD2, MD4, and MD5 are recommended only for compatibility with existing
67*e71b7053SJung-uk Kimapplications. In new applications, SHA-1 or RIPEMD-160 should be
68*e71b7053SJung-uk Kimpreferred.
69*e71b7053SJung-uk Kim
70*e71b7053SJung-uk Kim=head1 RETURN VALUES
71*e71b7053SJung-uk Kim
72*e71b7053SJung-uk KimMD2(), MD4(), and MD5() return pointers to the hash value.
73*e71b7053SJung-uk Kim
74*e71b7053SJung-uk KimMD2_Init(), MD2_Update(), MD2_Final(), MD4_Init(), MD4_Update(),
75*e71b7053SJung-uk KimMD4_Final(), MD5_Init(), MD5_Update(), and MD5_Final() return 1 for
76*e71b7053SJung-uk Kimsuccess, 0 otherwise.
77*e71b7053SJung-uk Kim
78*e71b7053SJung-uk Kim=head1 CONFORMING TO
79*e71b7053SJung-uk Kim
80*e71b7053SJung-uk KimRFC 1319, RFC 1320, RFC 1321
81*e71b7053SJung-uk Kim
82*e71b7053SJung-uk Kim=head1 SEE ALSO
83*e71b7053SJung-uk Kim
84*e71b7053SJung-uk KimL<EVP_DigestInit(3)>
85*e71b7053SJung-uk Kim
86*e71b7053SJung-uk Kim=head1 COPYRIGHT
87*e71b7053SJung-uk Kim
88*e71b7053SJung-uk KimCopyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
89*e71b7053SJung-uk Kim
90*e71b7053SJung-uk KimLicensed under the OpenSSL license (the "License").  You may not use
91*e71b7053SJung-uk Kimthis file except in compliance with the License.  You can obtain a copy
92*e71b7053SJung-uk Kimin the file LICENSE in the source distribution or at
93*e71b7053SJung-uk KimL<https://www.openssl.org/source/license.html>.
94*e71b7053SJung-uk Kim
95*e71b7053SJung-uk Kim=cut
96