summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authordoug <>2015-09-13 23:36:21 +0000
committerdoug <>2015-09-13 23:36:21 +0000
commit5e0ea5055e21b1f3526587a5a17702ab3fee3e49 (patch)
tree804e21f7971977c17340feffa6cc8840e09b3cfe /src/lib
parentc221c5094439136f46f34e398f2908ca9b5bfb1d (diff)
downloadopenbsd-5e0ea5055e21b1f3526587a5a17702ab3fee3e49.tar.gz
openbsd-5e0ea5055e21b1f3526587a5a17702ab3fee3e49.tar.bz2
openbsd-5e0ea5055e21b1f3526587a5a17702ab3fee3e49.zip
Remove MD4 support from LibreSSL.
MD4 should have been removed a long time ago. Also, RFC 6150 moved it to historic in 2011. Rides the major crank from removing SHA-0. Discussed with many including beck@, millert@, djm@, sthen@ ok jsing@, input + ok bcook@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/crypto/Makefile9
-rw-r--r--src/lib/libcrypto/doc/MD5.pod67
-rw-r--r--src/lib/libcrypto/evp/c_all.c6
-rw-r--r--src/lib/libcrypto/evp/evp.h5
-rw-r--r--src/lib/libcrypto/evp/m_md4.c118
-rw-r--r--src/lib/libcrypto/man/Makefile12
-rw-r--r--src/lib/libcrypto/md4/md4.h103
-rw-r--r--src/lib/libcrypto/md4/md4_dgst.c167
-rw-r--r--src/lib/libcrypto/md4/md4_locl.h108
-rw-r--r--src/lib/libcrypto/md4/md4_one.c77
-rw-r--r--src/lib/libcrypto/opensslfeatures.h1
-rw-r--r--src/lib/libssl/doc/standards.txt6
-rw-r--r--src/lib/libssl/src/crypto/evp/c_all.c6
-rw-r--r--src/lib/libssl/src/crypto/evp/evp.h5
-rw-r--r--src/lib/libssl/src/crypto/evp/m_md4.c118
-rw-r--r--src/lib/libssl/src/crypto/md4/md4.h103
-rw-r--r--src/lib/libssl/src/crypto/md4/md4_dgst.c167
-rw-r--r--src/lib/libssl/src/crypto/md4/md4_locl.h108
-rw-r--r--src/lib/libssl/src/crypto/md4/md4_one.c77
-rw-r--r--src/lib/libssl/src/crypto/opensslfeatures.h1
-rw-r--r--src/lib/libssl/src/doc/apps/dgst.pod6
-rw-r--r--src/lib/libssl/src/doc/apps/openssl.pod8
-rw-r--r--src/lib/libssl/src/doc/apps/speed.pod1
-rw-r--r--src/lib/libssl/src/doc/apps/ts.pod4
-rw-r--r--src/lib/libssl/src/doc/crypto/MD5.pod67
-rw-r--r--src/lib/libssl/src/doc/crypto/crypto.pod6
-rw-r--r--src/lib/libssl/src/doc/standards.txt6
27 files changed, 42 insertions, 1320 deletions
diff --git a/src/lib/libcrypto/crypto/Makefile b/src/lib/libcrypto/crypto/Makefile
index 76a099cd5b..121aaf1d0a 100644
--- a/src/lib/libcrypto/crypto/Makefile
+++ b/src/lib/libcrypto/crypto/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.63 2015/09/13 21:09:56 doug Exp $ 1# $OpenBSD: Makefile,v 1.64 2015/09/13 23:36:21 doug Exp $
2 2
3LIB= crypto 3LIB= crypto
4 4
@@ -144,7 +144,7 @@ SRCS+= encode.c digest.c evp_enc.c evp_key.c
144SRCS+= e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c 144SRCS+= e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c
145SRCS+= e_rc4.c e_aes.c names.c 145SRCS+= e_rc4.c e_aes.c names.c
146SRCS+= e_xcbc_d.c e_rc2.c e_cast.c 146SRCS+= e_xcbc_d.c e_rc2.c e_cast.c
147SRCS+= m_null.c m_md4.c m_md5.c m_sha1.c m_wp.c 147SRCS+= m_null.c m_md5.c m_sha1.c m_wp.c
148SRCS+= m_dss.c m_dss1.c m_ripemd.c m_ecdsa.c 148SRCS+= m_dss.c m_dss1.c m_ripemd.c m_ecdsa.c
149SRCS+= p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c 149SRCS+= p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c
150SRCS+= bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c 150SRCS+= bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c
@@ -173,9 +173,6 @@ SRCS+= krb5_asn.c
173# lhash/ 173# lhash/
174SRCS+= lhash.c lh_stats.c 174SRCS+= lhash.c lh_stats.c
175 175
176# md4/
177SRCS+= md4_dgst.c md4_one.c
178
179# md5/ 176# md5/
180SRCS+= md5_dgst.c md5_one.c 177SRCS+= md5_dgst.c md5_one.c
181 178
@@ -286,7 +283,6 @@ SRCS+= pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c
286 ${LCRYPTO_SRC}/idea \ 283 ${LCRYPTO_SRC}/idea \
287 ${LCRYPTO_SRC}/krb5 \ 284 ${LCRYPTO_SRC}/krb5 \
288 ${LCRYPTO_SRC}/lhash \ 285 ${LCRYPTO_SRC}/lhash \
289 ${LCRYPTO_SRC}/md4 \
290 ${LCRYPTO_SRC}/md5 \ 286 ${LCRYPTO_SRC}/md5 \
291 ${LCRYPTO_SRC}/modes \ 287 ${LCRYPTO_SRC}/modes \
292 ${LCRYPTO_SRC}/objects \ 288 ${LCRYPTO_SRC}/objects \
@@ -344,7 +340,6 @@ HDRS=\
344 crypto/idea/idea.h \ 340 crypto/idea/idea.h \
345 crypto/krb5/krb5_asn.h \ 341 crypto/krb5/krb5_asn.h \
346 crypto/lhash/lhash.h \ 342 crypto/lhash/lhash.h \
347 crypto/md4/md4.h \
348 crypto/md5/md5.h \ 343 crypto/md5/md5.h \
349 crypto/modes/modes.h \ 344 crypto/modes/modes.h \
350 crypto/objects/objects.h \ 345 crypto/objects/objects.h \
diff --git a/src/lib/libcrypto/doc/MD5.pod b/src/lib/libcrypto/doc/MD5.pod
index b0edd5416f..056f94bd9e 100644
--- a/src/lib/libcrypto/doc/MD5.pod
+++ b/src/lib/libcrypto/doc/MD5.pod
@@ -2,33 +2,10 @@
2 2
3=head1 NAME 3=head1 NAME
4 4
5MD2, MD4, MD5, MD2_Init, MD2_Update, MD2_Final, MD4_Init, MD4_Update, 5MD5, MD5_Init, MD5_Update, MD5_Final - MD5 hash functions
6MD4_Final, MD5_Init, MD5_Update, MD5_Final - MD2, MD4, and MD5 hash functions
7 6
8=head1 SYNOPSIS 7=head1 SYNOPSIS
9 8
10 #include <openssl/md2.h>
11
12 unsigned char *MD2(const unsigned char *d, unsigned long n,
13 unsigned char *md);
14
15 int MD2_Init(MD2_CTX *c);
16 int MD2_Update(MD2_CTX *c, const unsigned char *data,
17 unsigned long len);
18 int MD2_Final(unsigned char *md, MD2_CTX *c);
19
20
21 #include <openssl/md4.h>
22
23 unsigned char *MD4(const unsigned char *d, unsigned long n,
24 unsigned char *md);
25
26 int MD4_Init(MD4_CTX *c);
27 int MD4_Update(MD4_CTX *c, const void *data,
28 unsigned long len);
29 int MD4_Final(unsigned char *md, MD4_CTX *c);
30
31
32 #include <openssl/md5.h> 9 #include <openssl/md5.h>
33 10
34 unsigned char *MD5(const unsigned char *d, unsigned long n, 11 unsigned char *MD5(const unsigned char *d, unsigned long n,
@@ -41,61 +18,43 @@ MD4_Final, MD5_Init, MD5_Update, MD5_Final - MD2, MD4, and MD5 hash functions
41 18
42=head1 DESCRIPTION 19=head1 DESCRIPTION
43 20
44MD2, MD4, and MD5 are cryptographic hash functions with a 128 bit output. 21MD5 is a cryptographic hash function with a 128 bit output.
45 22
46MD2(), MD4(), and MD5() compute the MD2, MD4, and MD5 message digest 23MD5() computes the MD5 message digest of the B<n> bytes at B<d> and
47of the B<n> bytes at B<d> and place it in B<md> (which must have space 24places it in B<md> (which must have space for MD5_DIGEST_LENGTH == 16
48for MD2_DIGEST_LENGTH == MD4_DIGEST_LENGTH == MD5_DIGEST_LENGTH == 16
49bytes of output). If B<md> is NULL, the digest is placed in a static 25bytes of output). If B<md> is NULL, the digest is placed in a static
50array. 26array.
51 27
52The following functions may be used if the message is not completely 28The following functions may be used if the message is not completely
53stored in memory: 29stored in memory:
54 30
55MD2_Init() initializes a B<MD2_CTX> structure.
56
57MD2_Update() can be called repeatedly with chunks of the message to
58be hashed (B<len> bytes at B<data>).
59
60MD2_Final() places the message digest in B<md>, which must have space
61for MD2_DIGEST_LENGTH == 16 bytes of output, and erases the B<MD2_CTX>.
62
63MD4_Init(), MD4_Update(), MD4_Final(), MD5_Init(), MD5_Update(), and
64MD5_Final() are analogous using an B<MD4_CTX> and B<MD5_CTX> structure.
65
66Applications should use the higher level functions 31Applications should use the higher level functions
67L<EVP_DigestInit(3)|EVP_DigestInit(3)> 32L<EVP_DigestInit(3)|EVP_DigestInit(3)>
68etc. instead of calling the hash functions directly. 33etc. instead of calling the hash functions directly.
69 34
70=head1 NOTE 35=head1 NOTE
71 36
72MD2, MD4, and MD5 are recommended only for compatibility with existing 37MD5 is recommended only for compatibility with legacy applications.
73applications. In new applications, SHA-1 or RIPEMD-160 should be 38In new applications, SHA-2 should be preferred.
74preferred.
75 39
76=head1 RETURN VALUES 40=head1 RETURN VALUES
77 41
78MD2(), MD4(), and MD5() return pointers to the hash value. 42MD5() returns a pointer to the hash value.
79 43
80MD2_Init(), MD2_Update(), MD2_Final(), MD4_Init(), MD4_Update(), 44MD5_Init(), MD5_Update(), and MD5_Final() return 1 for success, 0
81MD4_Final(), MD5_Init(), MD5_Update(), and MD5_Final() return 1 for 45otherwise.
82success, 0 otherwise.
83 46
84=head1 CONFORMING TO 47=head1 CONFORMING TO
85 48
86RFC 1319, RFC 1320, RFC 1321 49RFC 1321
87 50
88=head1 SEE ALSO 51=head1 SEE ALSO
89 52
90L<sha(3)|sha(3)>, L<ripemd(3)|ripemd(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> 53L<EVP_DigestInit(3)|EVP_DigestInit(3)>
91 54
92=head1 HISTORY 55=head1 HISTORY
93 56
94MD2(), MD2_Init(), MD2_Update() MD2_Final(), MD5(), MD5_Init(), 57MD5(), MD5_Init(), MD5_Update() and MD5_Final() are available in all
95MD5_Update() and MD5_Final() are available in all versions of SSLeay 58versions of OpenSSL.
96and OpenSSL.
97
98MD4(), MD4_Init(), and MD4_Update() are available in OpenSSL 0.9.6 and
99above.
100 59
101=cut 60=cut
diff --git a/src/lib/libcrypto/evp/c_all.c b/src/lib/libcrypto/evp/c_all.c
index 6568f2ba5a..6b23460210 100644
--- a/src/lib/libcrypto/evp/c_all.c
+++ b/src/lib/libcrypto/evp/c_all.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: c_all.c,v 1.18 2015/09/13 21:09:56 doug Exp $ */ 1/* $OpenBSD: c_all.c,v 1.19 2015/09/13 23:36:21 doug Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -228,10 +228,6 @@ OpenSSL_add_all_ciphers(void)
228void 228void
229OpenSSL_add_all_digests(void) 229OpenSSL_add_all_digests(void)
230{ 230{
231#ifndef OPENSSL_NO_MD4
232 EVP_add_digest(EVP_md4());
233#endif
234
235#ifndef OPENSSL_NO_MD5 231#ifndef OPENSSL_NO_MD5
236 EVP_add_digest(EVP_md5()); 232 EVP_add_digest(EVP_md5());
237 EVP_add_digest_alias(SN_md5, "ssl2-md5"); 233 EVP_add_digest_alias(SN_md5, "ssl2-md5");
diff --git a/src/lib/libcrypto/evp/evp.h b/src/lib/libcrypto/evp/evp.h
index c9a11c3a5f..381d4a45c1 100644
--- a/src/lib/libcrypto/evp/evp.h
+++ b/src/lib/libcrypto/evp/evp.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp.h,v 1.46 2015/09/13 21:09:56 doug Exp $ */ 1/* $OpenBSD: evp.h,v 1.47 2015/09/13 23:36:21 doug Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -648,9 +648,6 @@ void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k,
648#endif 648#endif
649 649
650const EVP_MD *EVP_md_null(void); 650const EVP_MD *EVP_md_null(void);
651#ifndef OPENSSL_NO_MD4
652const EVP_MD *EVP_md4(void);
653#endif
654#ifndef OPENSSL_NO_MD5 651#ifndef OPENSSL_NO_MD5
655const EVP_MD *EVP_md5(void); 652const EVP_MD *EVP_md5(void);
656#endif 653#endif
diff --git a/src/lib/libcrypto/evp/m_md4.c b/src/lib/libcrypto/evp/m_md4.c
deleted file mode 100644
index e08980b1ed..0000000000
--- a/src/lib/libcrypto/evp/m_md4.c
+++ /dev/null
@@ -1,118 +0,0 @@
1/* $OpenBSD: m_md4.c,v 1.14 2014/07/13 09:30:02 miod Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60
61#include <openssl/opensslconf.h>
62
63#ifndef OPENSSL_NO_MD4
64
65#include <openssl/evp.h>
66#include <openssl/md4.h>
67#include <openssl/objects.h>
68#include <openssl/x509.h>
69
70#ifndef OPENSSL_NO_RSA
71#include <openssl/rsa.h>
72#endif
73
74static int
75init(EVP_MD_CTX *ctx)
76{
77 return MD4_Init(ctx->md_data);
78}
79
80static int
81update(EVP_MD_CTX *ctx, const void *data, size_t count)
82{
83 return MD4_Update(ctx->md_data, data, count);
84}
85
86static int
87final(EVP_MD_CTX *ctx, unsigned char *md)
88{
89 return MD4_Final(md, ctx->md_data);
90}
91
92static const EVP_MD md4_md = {
93 .type = NID_md4,
94 .pkey_type = NID_md4WithRSAEncryption,
95 .md_size = MD4_DIGEST_LENGTH,
96 .flags = 0,
97 .init = init,
98 .update = update,
99 .final = final,
100 .copy = NULL,
101 .cleanup = NULL,
102#ifndef OPENSSL_NO_RSA
103 .sign = (evp_sign_method *)RSA_sign,
104 .verify = (evp_verify_method *)RSA_verify,
105 .required_pkey_type = {
106 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
107 },
108#endif
109 .block_size = MD4_CBLOCK,
110 .ctx_size = sizeof(EVP_MD *) + sizeof(MD4_CTX),
111};
112
113const EVP_MD *
114EVP_md4(void)
115{
116 return (&md4_md);
117}
118#endif
diff --git a/src/lib/libcrypto/man/Makefile b/src/lib/libcrypto/man/Makefile
index c968943cc0..101f79b6ff 100644
--- a/src/lib/libcrypto/man/Makefile
+++ b/src/lib/libcrypto/man/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.21 2015/06/20 01:07:24 doug Exp $ 1# $OpenBSD: Makefile,v 1.22 2015/09/13 23:36:21 doug Exp $
2 2
3.include <bsd.own.mk> # for NOMAN 3.include <bsd.own.mk> # for NOMAN
4 4
@@ -642,11 +642,9 @@ MLINKS+=\
642 EVP_DigestInit.3 EVP_get_digestbyname.3 \ 642 EVP_DigestInit.3 EVP_get_digestbyname.3 \
643 EVP_DigestInit.3 EVP_get_digestbynid.3 \ 643 EVP_DigestInit.3 EVP_get_digestbynid.3 \
644 EVP_DigestInit.3 EVP_get_digestbyobj.3 \ 644 EVP_DigestInit.3 EVP_get_digestbyobj.3 \
645 EVP_DigestInit.3 EVP_md2.3 \
646 EVP_DigestInit.3 EVP_md5.3 \ 645 EVP_DigestInit.3 EVP_md5.3 \
647 EVP_DigestInit.3 EVP_md_null.3 \ 646 EVP_DigestInit.3 EVP_md_null.3 \
648 EVP_DigestInit.3 EVP_ripemd160.3 \ 647 EVP_DigestInit.3 EVP_ripemd160.3 \
649 EVP_DigestInit.3 EVP_sha.3 \
650 EVP_DigestInit.3 EVP_sha1.3 \ 648 EVP_DigestInit.3 EVP_sha1.3 \
651 EVP_DigestSignInit.3 EVP_DigestSignUpdate.3 \ 649 EVP_DigestSignInit.3 EVP_DigestSignUpdate.3 \
652 EVP_DigestSignInit.3 EVP_DigestSignFinal.3 \ 650 EVP_DigestSignInit.3 EVP_DigestSignFinal.3 \
@@ -795,14 +793,6 @@ MLINKS+=\
795 HMAC.3 HMAC_Init.3 \ 793 HMAC.3 HMAC_Init.3 \
796 HMAC.3 HMAC_Update.3 \ 794 HMAC.3 HMAC_Update.3 \
797 HMAC.3 HMAC_cleanup.3 \ 795 HMAC.3 HMAC_cleanup.3 \
798 MD5.3 MD2.3 \
799 MD5.3 MD2_Final.3 \
800 MD5.3 MD2_Init.3 \
801 MD5.3 MD2_Update.3 \
802 MD5.3 MD4.3 \
803 MD5.3 MD4_Final.3 \
804 MD5.3 MD4_Init.3 \
805 MD5.3 MD4_Update.3 \
806 MD5.3 MD5_Final.3 \ 796 MD5.3 MD5_Final.3 \
807 MD5.3 MD5_Init.3 \ 797 MD5.3 MD5_Init.3 \
808 MD5.3 MD5_Update.3 \ 798 MD5.3 MD5_Update.3 \
diff --git a/src/lib/libcrypto/md4/md4.h b/src/lib/libcrypto/md4/md4.h
deleted file mode 100644
index 5d9b787a28..0000000000
--- a/src/lib/libcrypto/md4/md4.h
+++ /dev/null
@@ -1,103 +0,0 @@
1/* $OpenBSD: md4.h,v 1.14 2014/10/20 13:06:54 bcook Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stddef.h>
60
61#ifndef HEADER_MD4_H
62#define HEADER_MD4_H
63
64#include <openssl/opensslconf.h>
65
66#ifdef __cplusplus
67extern "C" {
68#endif
69
70#ifdef OPENSSL_NO_MD4
71#error MD4 is disabled.
72#endif
73
74/*
75 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
76 * ! MD4_LONG has to be at least 32 bits wide. !
77 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
78 */
79
80#define MD4_LONG unsigned int
81
82#define MD4_CBLOCK 64
83#define MD4_LBLOCK (MD4_CBLOCK/4)
84#define MD4_DIGEST_LENGTH 16
85
86typedef struct MD4state_st
87 {
88 MD4_LONG A,B,C,D;
89 MD4_LONG Nl,Nh;
90 MD4_LONG data[MD4_LBLOCK];
91 unsigned int num;
92 } MD4_CTX;
93
94int MD4_Init(MD4_CTX *c);
95int MD4_Update(MD4_CTX *c, const void *data, size_t len);
96int MD4_Final(unsigned char *md, MD4_CTX *c);
97unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md);
98void MD4_Transform(MD4_CTX *c, const unsigned char *b);
99#ifdef __cplusplus
100}
101#endif
102
103#endif
diff --git a/src/lib/libcrypto/md4/md4_dgst.c b/src/lib/libcrypto/md4/md4_dgst.c
deleted file mode 100644
index d4a0c6ff06..0000000000
--- a/src/lib/libcrypto/md4/md4_dgst.c
+++ /dev/null
@@ -1,167 +0,0 @@
1/* $OpenBSD: md4_dgst.c,v 1.14 2014/10/28 07:35:59 jsg Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <openssl/opensslv.h>
61#include <openssl/crypto.h>
62#include "md4_locl.h"
63
64/* Implemented from RFC1186 The MD4 Message-Digest Algorithm
65 */
66
67#define INIT_DATA_A (unsigned long)0x67452301L
68#define INIT_DATA_B (unsigned long)0xefcdab89L
69#define INIT_DATA_C (unsigned long)0x98badcfeL
70#define INIT_DATA_D (unsigned long)0x10325476L
71
72int MD4_Init(MD4_CTX *c)
73 {
74 memset (c,0,sizeof(*c));
75 c->A=INIT_DATA_A;
76 c->B=INIT_DATA_B;
77 c->C=INIT_DATA_C;
78 c->D=INIT_DATA_D;
79 return 1;
80 }
81
82#ifndef md4_block_data_order
83#ifdef X
84#undef X
85#endif
86void md4_block_data_order (MD4_CTX *c, const void *data_, size_t num)
87 {
88 const unsigned char *data=data_;
89 unsigned MD32_REG_T A,B,C,D,l;
90#ifndef MD32_XARRAY
91 /* See comment in crypto/sha/sha_locl.h for details. */
92 unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
93 XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
94# define X(i) XX##i
95#else
96 MD4_LONG XX[MD4_LBLOCK];
97# define X(i) XX[i]
98#endif
99
100 A=c->A;
101 B=c->B;
102 C=c->C;
103 D=c->D;
104
105 for (;num--;)
106 {
107 HOST_c2l(data,l); X( 0)=l;
108 HOST_c2l(data,l); X( 1)=l;
109 /* Round 0 */
110 R0(A,B,C,D,X( 0), 3,0); HOST_c2l(data,l); X( 2)=l;
111 R0(D,A,B,C,X( 1), 7,0); HOST_c2l(data,l); X( 3)=l;
112 R0(C,D,A,B,X( 2),11,0); HOST_c2l(data,l); X( 4)=l;
113 R0(B,C,D,A,X( 3),19,0); HOST_c2l(data,l); X( 5)=l;
114 R0(A,B,C,D,X( 4), 3,0); HOST_c2l(data,l); X( 6)=l;
115 R0(D,A,B,C,X( 5), 7,0); HOST_c2l(data,l); X( 7)=l;
116 R0(C,D,A,B,X( 6),11,0); HOST_c2l(data,l); X( 8)=l;
117 R0(B,C,D,A,X( 7),19,0); HOST_c2l(data,l); X( 9)=l;
118 R0(A,B,C,D,X( 8), 3,0); HOST_c2l(data,l); X(10)=l;
119 R0(D,A,B,C,X( 9), 7,0); HOST_c2l(data,l); X(11)=l;
120 R0(C,D,A,B,X(10),11,0); HOST_c2l(data,l); X(12)=l;
121 R0(B,C,D,A,X(11),19,0); HOST_c2l(data,l); X(13)=l;
122 R0(A,B,C,D,X(12), 3,0); HOST_c2l(data,l); X(14)=l;
123 R0(D,A,B,C,X(13), 7,0); HOST_c2l(data,l); X(15)=l;
124 R0(C,D,A,B,X(14),11,0);
125 R0(B,C,D,A,X(15),19,0);
126 /* Round 1 */
127 R1(A,B,C,D,X( 0), 3,0x5A827999L);
128 R1(D,A,B,C,X( 4), 5,0x5A827999L);
129 R1(C,D,A,B,X( 8), 9,0x5A827999L);
130 R1(B,C,D,A,X(12),13,0x5A827999L);
131 R1(A,B,C,D,X( 1), 3,0x5A827999L);
132 R1(D,A,B,C,X( 5), 5,0x5A827999L);
133 R1(C,D,A,B,X( 9), 9,0x5A827999L);
134 R1(B,C,D,A,X(13),13,0x5A827999L);
135 R1(A,B,C,D,X( 2), 3,0x5A827999L);
136 R1(D,A,B,C,X( 6), 5,0x5A827999L);
137 R1(C,D,A,B,X(10), 9,0x5A827999L);
138 R1(B,C,D,A,X(14),13,0x5A827999L);
139 R1(A,B,C,D,X( 3), 3,0x5A827999L);
140 R1(D,A,B,C,X( 7), 5,0x5A827999L);
141 R1(C,D,A,B,X(11), 9,0x5A827999L);
142 R1(B,C,D,A,X(15),13,0x5A827999L);
143 /* Round 2 */
144 R2(A,B,C,D,X( 0), 3,0x6ED9EBA1L);
145 R2(D,A,B,C,X( 8), 9,0x6ED9EBA1L);
146 R2(C,D,A,B,X( 4),11,0x6ED9EBA1L);
147 R2(B,C,D,A,X(12),15,0x6ED9EBA1L);
148 R2(A,B,C,D,X( 2), 3,0x6ED9EBA1L);
149 R2(D,A,B,C,X(10), 9,0x6ED9EBA1L);
150 R2(C,D,A,B,X( 6),11,0x6ED9EBA1L);
151 R2(B,C,D,A,X(14),15,0x6ED9EBA1L);
152 R2(A,B,C,D,X( 1), 3,0x6ED9EBA1L);
153 R2(D,A,B,C,X( 9), 9,0x6ED9EBA1L);
154 R2(C,D,A,B,X( 5),11,0x6ED9EBA1L);
155 R2(B,C,D,A,X(13),15,0x6ED9EBA1L);
156 R2(A,B,C,D,X( 3), 3,0x6ED9EBA1L);
157 R2(D,A,B,C,X(11), 9,0x6ED9EBA1L);
158 R2(C,D,A,B,X( 7),11,0x6ED9EBA1L);
159 R2(B,C,D,A,X(15),15,0x6ED9EBA1L);
160
161 A = c->A += A;
162 B = c->B += B;
163 C = c->C += C;
164 D = c->D += D;
165 }
166 }
167#endif
diff --git a/src/lib/libcrypto/md4/md4_locl.h b/src/lib/libcrypto/md4/md4_locl.h
deleted file mode 100644
index efe0ec83a7..0000000000
--- a/src/lib/libcrypto/md4/md4_locl.h
+++ /dev/null
@@ -1,108 +0,0 @@
1/* $OpenBSD: md4_locl.h,v 1.7 2014/10/20 13:06:54 bcook Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdlib.h>
60#include <string.h>
61#include <openssl/opensslconf.h>
62#include <openssl/md4.h>
63
64void md4_block_data_order (MD4_CTX *c, const void *p,size_t num);
65
66#define DATA_ORDER_IS_LITTLE_ENDIAN
67
68#define HASH_LONG MD4_LONG
69#define HASH_CTX MD4_CTX
70#define HASH_CBLOCK MD4_CBLOCK
71#define HASH_UPDATE MD4_Update
72#define HASH_TRANSFORM MD4_Transform
73#define HASH_FINAL MD4_Final
74#define HASH_MAKE_STRING(c,s) do { \
75 unsigned long ll; \
76 ll=(c)->A; HOST_l2c(ll,(s)); \
77 ll=(c)->B; HOST_l2c(ll,(s)); \
78 ll=(c)->C; HOST_l2c(ll,(s)); \
79 ll=(c)->D; HOST_l2c(ll,(s)); \
80 } while (0)
81#define HASH_BLOCK_DATA_ORDER md4_block_data_order
82
83#include "md32_common.h"
84
85/*
86#define F(x,y,z) (((x) & (y)) | ((~(x)) & (z)))
87#define G(x,y,z) (((x) & (y)) | ((x) & ((z))) | ((y) & ((z))))
88*/
89
90/* As pointed out by Wei Dai <weidai@eskimo.com>, the above can be
91 * simplified to the code below. Wei attributes these optimizations
92 * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
93 */
94#define F(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
95#define G(b,c,d) (((b) & (c)) | ((b) & (d)) | ((c) & (d)))
96#define H(b,c,d) ((b) ^ (c) ^ (d))
97
98#define R0(a,b,c,d,k,s,t) { \
99 a+=((k)+(t)+F((b),(c),(d))); \
100 a=ROTATE(a,s); };
101
102#define R1(a,b,c,d,k,s,t) { \
103 a+=((k)+(t)+G((b),(c),(d))); \
104 a=ROTATE(a,s); };\
105
106#define R2(a,b,c,d,k,s,t) { \
107 a+=((k)+(t)+H((b),(c),(d))); \
108 a=ROTATE(a,s); };
diff --git a/src/lib/libcrypto/md4/md4_one.c b/src/lib/libcrypto/md4/md4_one.c
deleted file mode 100644
index 9577d6577b..0000000000
--- a/src/lib/libcrypto/md4/md4_one.c
+++ /dev/null
@@ -1,77 +0,0 @@
1/* $OpenBSD: md4_one.c,v 1.8 2015/09/10 15:56:25 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <string.h>
61#include <openssl/md4.h>
62#include <openssl/crypto.h>
63
64unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md)
65 {
66 MD4_CTX c;
67 static unsigned char m[MD4_DIGEST_LENGTH];
68
69 if (md == NULL) md=m;
70 if (!MD4_Init(&c))
71 return NULL;
72 MD4_Update(&c,d,n);
73 MD4_Final(md,&c);
74 explicit_bzero(&c,sizeof(c));
75 return(md);
76 }
77
diff --git a/src/lib/libcrypto/opensslfeatures.h b/src/lib/libcrypto/opensslfeatures.h
index ba4dbba959..3d1972f661 100644
--- a/src/lib/libcrypto/opensslfeatures.h
+++ b/src/lib/libcrypto/opensslfeatures.h
@@ -6,6 +6,7 @@
6# define OPENSSL_NO_JPAKE 6# define OPENSSL_NO_JPAKE
7# define OPENSSL_NO_KRB5 7# define OPENSSL_NO_KRB5
8# define OPENSSL_NO_MD2 8# define OPENSSL_NO_MD2
9# define OPENSSL_NO_MD4
9# define OPENSSL_NO_MDC2 10# define OPENSSL_NO_MDC2
10# define OPENSSL_NO_PSK 11# define OPENSSL_NO_PSK
11# define OPENSSL_NO_RC5 12# define OPENSSL_NO_RC5
diff --git a/src/lib/libssl/doc/standards.txt b/src/lib/libssl/doc/standards.txt
index 7bada8d35f..e9eacc5840 100644
--- a/src/lib/libssl/doc/standards.txt
+++ b/src/lib/libssl/doc/standards.txt
@@ -27,12 +27,6 @@ Implemented:
27These are documents that describe things that are implemented (in 27These are documents that describe things that are implemented (in
28whole or at least great parts) in OpenSSL. 28whole or at least great parts) in OpenSSL.
29 29
301319 The MD2 Message-Digest Algorithm. B. Kaliski. April 1992.
31 (Format: TXT=25661 bytes) (Status: INFORMATIONAL)
32
331320 The MD4 Message-Digest Algorithm. R. Rivest. April 1992. (Format:
34 TXT=32407 bytes) (Status: INFORMATIONAL)
35
361321 The MD5 Message-Digest Algorithm. R. Rivest. April 1992. (Format: 301321 The MD5 Message-Digest Algorithm. R. Rivest. April 1992. (Format:
37 TXT=35222 bytes) (Status: INFORMATIONAL) 31 TXT=35222 bytes) (Status: INFORMATIONAL)
38 32
diff --git a/src/lib/libssl/src/crypto/evp/c_all.c b/src/lib/libssl/src/crypto/evp/c_all.c
index 6568f2ba5a..6b23460210 100644
--- a/src/lib/libssl/src/crypto/evp/c_all.c
+++ b/src/lib/libssl/src/crypto/evp/c_all.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: c_all.c,v 1.18 2015/09/13 21:09:56 doug Exp $ */ 1/* $OpenBSD: c_all.c,v 1.19 2015/09/13 23:36:21 doug Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -228,10 +228,6 @@ OpenSSL_add_all_ciphers(void)
228void 228void
229OpenSSL_add_all_digests(void) 229OpenSSL_add_all_digests(void)
230{ 230{
231#ifndef OPENSSL_NO_MD4
232 EVP_add_digest(EVP_md4());
233#endif
234
235#ifndef OPENSSL_NO_MD5 231#ifndef OPENSSL_NO_MD5
236 EVP_add_digest(EVP_md5()); 232 EVP_add_digest(EVP_md5());
237 EVP_add_digest_alias(SN_md5, "ssl2-md5"); 233 EVP_add_digest_alias(SN_md5, "ssl2-md5");
diff --git a/src/lib/libssl/src/crypto/evp/evp.h b/src/lib/libssl/src/crypto/evp/evp.h
index c9a11c3a5f..381d4a45c1 100644
--- a/src/lib/libssl/src/crypto/evp/evp.h
+++ b/src/lib/libssl/src/crypto/evp/evp.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp.h,v 1.46 2015/09/13 21:09:56 doug Exp $ */ 1/* $OpenBSD: evp.h,v 1.47 2015/09/13 23:36:21 doug Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -648,9 +648,6 @@ void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k,
648#endif 648#endif
649 649
650const EVP_MD *EVP_md_null(void); 650const EVP_MD *EVP_md_null(void);
651#ifndef OPENSSL_NO_MD4
652const EVP_MD *EVP_md4(void);
653#endif
654#ifndef OPENSSL_NO_MD5 651#ifndef OPENSSL_NO_MD5
655const EVP_MD *EVP_md5(void); 652const EVP_MD *EVP_md5(void);
656#endif 653#endif
diff --git a/src/lib/libssl/src/crypto/evp/m_md4.c b/src/lib/libssl/src/crypto/evp/m_md4.c
deleted file mode 100644
index e08980b1ed..0000000000
--- a/src/lib/libssl/src/crypto/evp/m_md4.c
+++ /dev/null
@@ -1,118 +0,0 @@
1/* $OpenBSD: m_md4.c,v 1.14 2014/07/13 09:30:02 miod Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60
61#include <openssl/opensslconf.h>
62
63#ifndef OPENSSL_NO_MD4
64
65#include <openssl/evp.h>
66#include <openssl/md4.h>
67#include <openssl/objects.h>
68#include <openssl/x509.h>
69
70#ifndef OPENSSL_NO_RSA
71#include <openssl/rsa.h>
72#endif
73
74static int
75init(EVP_MD_CTX *ctx)
76{
77 return MD4_Init(ctx->md_data);
78}
79
80static int
81update(EVP_MD_CTX *ctx, const void *data, size_t count)
82{
83 return MD4_Update(ctx->md_data, data, count);
84}
85
86static int
87final(EVP_MD_CTX *ctx, unsigned char *md)
88{
89 return MD4_Final(md, ctx->md_data);
90}
91
92static const EVP_MD md4_md = {
93 .type = NID_md4,
94 .pkey_type = NID_md4WithRSAEncryption,
95 .md_size = MD4_DIGEST_LENGTH,
96 .flags = 0,
97 .init = init,
98 .update = update,
99 .final = final,
100 .copy = NULL,
101 .cleanup = NULL,
102#ifndef OPENSSL_NO_RSA
103 .sign = (evp_sign_method *)RSA_sign,
104 .verify = (evp_verify_method *)RSA_verify,
105 .required_pkey_type = {
106 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
107 },
108#endif
109 .block_size = MD4_CBLOCK,
110 .ctx_size = sizeof(EVP_MD *) + sizeof(MD4_CTX),
111};
112
113const EVP_MD *
114EVP_md4(void)
115{
116 return (&md4_md);
117}
118#endif
diff --git a/src/lib/libssl/src/crypto/md4/md4.h b/src/lib/libssl/src/crypto/md4/md4.h
deleted file mode 100644
index 5d9b787a28..0000000000
--- a/src/lib/libssl/src/crypto/md4/md4.h
+++ /dev/null
@@ -1,103 +0,0 @@
1/* $OpenBSD: md4.h,v 1.14 2014/10/20 13:06:54 bcook Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stddef.h>
60
61#ifndef HEADER_MD4_H
62#define HEADER_MD4_H
63
64#include <openssl/opensslconf.h>
65
66#ifdef __cplusplus
67extern "C" {
68#endif
69
70#ifdef OPENSSL_NO_MD4
71#error MD4 is disabled.
72#endif
73
74/*
75 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
76 * ! MD4_LONG has to be at least 32 bits wide. !
77 * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
78 */
79
80#define MD4_LONG unsigned int
81
82#define MD4_CBLOCK 64
83#define MD4_LBLOCK (MD4_CBLOCK/4)
84#define MD4_DIGEST_LENGTH 16
85
86typedef struct MD4state_st
87 {
88 MD4_LONG A,B,C,D;
89 MD4_LONG Nl,Nh;
90 MD4_LONG data[MD4_LBLOCK];
91 unsigned int num;
92 } MD4_CTX;
93
94int MD4_Init(MD4_CTX *c);
95int MD4_Update(MD4_CTX *c, const void *data, size_t len);
96int MD4_Final(unsigned char *md, MD4_CTX *c);
97unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md);
98void MD4_Transform(MD4_CTX *c, const unsigned char *b);
99#ifdef __cplusplus
100}
101#endif
102
103#endif
diff --git a/src/lib/libssl/src/crypto/md4/md4_dgst.c b/src/lib/libssl/src/crypto/md4/md4_dgst.c
deleted file mode 100644
index d4a0c6ff06..0000000000
--- a/src/lib/libssl/src/crypto/md4/md4_dgst.c
+++ /dev/null
@@ -1,167 +0,0 @@
1/* $OpenBSD: md4_dgst.c,v 1.14 2014/10/28 07:35:59 jsg Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <openssl/opensslv.h>
61#include <openssl/crypto.h>
62#include "md4_locl.h"
63
64/* Implemented from RFC1186 The MD4 Message-Digest Algorithm
65 */
66
67#define INIT_DATA_A (unsigned long)0x67452301L
68#define INIT_DATA_B (unsigned long)0xefcdab89L
69#define INIT_DATA_C (unsigned long)0x98badcfeL
70#define INIT_DATA_D (unsigned long)0x10325476L
71
72int MD4_Init(MD4_CTX *c)
73 {
74 memset (c,0,sizeof(*c));
75 c->A=INIT_DATA_A;
76 c->B=INIT_DATA_B;
77 c->C=INIT_DATA_C;
78 c->D=INIT_DATA_D;
79 return 1;
80 }
81
82#ifndef md4_block_data_order
83#ifdef X
84#undef X
85#endif
86void md4_block_data_order (MD4_CTX *c, const void *data_, size_t num)
87 {
88 const unsigned char *data=data_;
89 unsigned MD32_REG_T A,B,C,D,l;
90#ifndef MD32_XARRAY
91 /* See comment in crypto/sha/sha_locl.h for details. */
92 unsigned MD32_REG_T XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
93 XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
94# define X(i) XX##i
95#else
96 MD4_LONG XX[MD4_LBLOCK];
97# define X(i) XX[i]
98#endif
99
100 A=c->A;
101 B=c->B;
102 C=c->C;
103 D=c->D;
104
105 for (;num--;)
106 {
107 HOST_c2l(data,l); X( 0)=l;
108 HOST_c2l(data,l); X( 1)=l;
109 /* Round 0 */
110 R0(A,B,C,D,X( 0), 3,0); HOST_c2l(data,l); X( 2)=l;
111 R0(D,A,B,C,X( 1), 7,0); HOST_c2l(data,l); X( 3)=l;
112 R0(C,D,A,B,X( 2),11,0); HOST_c2l(data,l); X( 4)=l;
113 R0(B,C,D,A,X( 3),19,0); HOST_c2l(data,l); X( 5)=l;
114 R0(A,B,C,D,X( 4), 3,0); HOST_c2l(data,l); X( 6)=l;
115 R0(D,A,B,C,X( 5), 7,0); HOST_c2l(data,l); X( 7)=l;
116 R0(C,D,A,B,X( 6),11,0); HOST_c2l(data,l); X( 8)=l;
117 R0(B,C,D,A,X( 7),19,0); HOST_c2l(data,l); X( 9)=l;
118 R0(A,B,C,D,X( 8), 3,0); HOST_c2l(data,l); X(10)=l;
119 R0(D,A,B,C,X( 9), 7,0); HOST_c2l(data,l); X(11)=l;
120 R0(C,D,A,B,X(10),11,0); HOST_c2l(data,l); X(12)=l;
121 R0(B,C,D,A,X(11),19,0); HOST_c2l(data,l); X(13)=l;
122 R0(A,B,C,D,X(12), 3,0); HOST_c2l(data,l); X(14)=l;
123 R0(D,A,B,C,X(13), 7,0); HOST_c2l(data,l); X(15)=l;
124 R0(C,D,A,B,X(14),11,0);
125 R0(B,C,D,A,X(15),19,0);
126 /* Round 1 */
127 R1(A,B,C,D,X( 0), 3,0x5A827999L);
128 R1(D,A,B,C,X( 4), 5,0x5A827999L);
129 R1(C,D,A,B,X( 8), 9,0x5A827999L);
130 R1(B,C,D,A,X(12),13,0x5A827999L);
131 R1(A,B,C,D,X( 1), 3,0x5A827999L);
132 R1(D,A,B,C,X( 5), 5,0x5A827999L);
133 R1(C,D,A,B,X( 9), 9,0x5A827999L);
134 R1(B,C,D,A,X(13),13,0x5A827999L);
135 R1(A,B,C,D,X( 2), 3,0x5A827999L);
136 R1(D,A,B,C,X( 6), 5,0x5A827999L);
137 R1(C,D,A,B,X(10), 9,0x5A827999L);
138 R1(B,C,D,A,X(14),13,0x5A827999L);
139 R1(A,B,C,D,X( 3), 3,0x5A827999L);
140 R1(D,A,B,C,X( 7), 5,0x5A827999L);
141 R1(C,D,A,B,X(11), 9,0x5A827999L);
142 R1(B,C,D,A,X(15),13,0x5A827999L);
143 /* Round 2 */
144 R2(A,B,C,D,X( 0), 3,0x6ED9EBA1L);
145 R2(D,A,B,C,X( 8), 9,0x6ED9EBA1L);
146 R2(C,D,A,B,X( 4),11,0x6ED9EBA1L);
147 R2(B,C,D,A,X(12),15,0x6ED9EBA1L);
148 R2(A,B,C,D,X( 2), 3,0x6ED9EBA1L);
149 R2(D,A,B,C,X(10), 9,0x6ED9EBA1L);
150 R2(C,D,A,B,X( 6),11,0x6ED9EBA1L);
151 R2(B,C,D,A,X(14),15,0x6ED9EBA1L);
152 R2(A,B,C,D,X( 1), 3,0x6ED9EBA1L);
153 R2(D,A,B,C,X( 9), 9,0x6ED9EBA1L);
154 R2(C,D,A,B,X( 5),11,0x6ED9EBA1L);
155 R2(B,C,D,A,X(13),15,0x6ED9EBA1L);
156 R2(A,B,C,D,X( 3), 3,0x6ED9EBA1L);
157 R2(D,A,B,C,X(11), 9,0x6ED9EBA1L);
158 R2(C,D,A,B,X( 7),11,0x6ED9EBA1L);
159 R2(B,C,D,A,X(15),15,0x6ED9EBA1L);
160
161 A = c->A += A;
162 B = c->B += B;
163 C = c->C += C;
164 D = c->D += D;
165 }
166 }
167#endif
diff --git a/src/lib/libssl/src/crypto/md4/md4_locl.h b/src/lib/libssl/src/crypto/md4/md4_locl.h
deleted file mode 100644
index efe0ec83a7..0000000000
--- a/src/lib/libssl/src/crypto/md4/md4_locl.h
+++ /dev/null
@@ -1,108 +0,0 @@
1/* $OpenBSD: md4_locl.h,v 1.7 2014/10/20 13:06:54 bcook Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdlib.h>
60#include <string.h>
61#include <openssl/opensslconf.h>
62#include <openssl/md4.h>
63
64void md4_block_data_order (MD4_CTX *c, const void *p,size_t num);
65
66#define DATA_ORDER_IS_LITTLE_ENDIAN
67
68#define HASH_LONG MD4_LONG
69#define HASH_CTX MD4_CTX
70#define HASH_CBLOCK MD4_CBLOCK
71#define HASH_UPDATE MD4_Update
72#define HASH_TRANSFORM MD4_Transform
73#define HASH_FINAL MD4_Final
74#define HASH_MAKE_STRING(c,s) do { \
75 unsigned long ll; \
76 ll=(c)->A; HOST_l2c(ll,(s)); \
77 ll=(c)->B; HOST_l2c(ll,(s)); \
78 ll=(c)->C; HOST_l2c(ll,(s)); \
79 ll=(c)->D; HOST_l2c(ll,(s)); \
80 } while (0)
81#define HASH_BLOCK_DATA_ORDER md4_block_data_order
82
83#include "md32_common.h"
84
85/*
86#define F(x,y,z) (((x) & (y)) | ((~(x)) & (z)))
87#define G(x,y,z) (((x) & (y)) | ((x) & ((z))) | ((y) & ((z))))
88*/
89
90/* As pointed out by Wei Dai <weidai@eskimo.com>, the above can be
91 * simplified to the code below. Wei attributes these optimizations
92 * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
93 */
94#define F(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
95#define G(b,c,d) (((b) & (c)) | ((b) & (d)) | ((c) & (d)))
96#define H(b,c,d) ((b) ^ (c) ^ (d))
97
98#define R0(a,b,c,d,k,s,t) { \
99 a+=((k)+(t)+F((b),(c),(d))); \
100 a=ROTATE(a,s); };
101
102#define R1(a,b,c,d,k,s,t) { \
103 a+=((k)+(t)+G((b),(c),(d))); \
104 a=ROTATE(a,s); };\
105
106#define R2(a,b,c,d,k,s,t) { \
107 a+=((k)+(t)+H((b),(c),(d))); \
108 a=ROTATE(a,s); };
diff --git a/src/lib/libssl/src/crypto/md4/md4_one.c b/src/lib/libssl/src/crypto/md4/md4_one.c
deleted file mode 100644
index 9577d6577b..0000000000
--- a/src/lib/libssl/src/crypto/md4/md4_one.c
+++ /dev/null
@@ -1,77 +0,0 @@
1/* $OpenBSD: md4_one.c,v 1.8 2015/09/10 15:56:25 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved.
4 *
5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL.
8 *
9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package.
22 *
23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions
25 * are met:
26 * 1. Redistributions of source code must retain the copyright
27 * notice, this list of conditions and the following disclaimer.
28 * 2. Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
31 * 3. All advertising materials mentioning features or use of this software
32 * must display the following acknowledgement:
33 * "This product includes cryptographic software written by
34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE.
52 *
53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence
56 * [including the GNU Public Licence.]
57 */
58
59#include <stdio.h>
60#include <string.h>
61#include <openssl/md4.h>
62#include <openssl/crypto.h>
63
64unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md)
65 {
66 MD4_CTX c;
67 static unsigned char m[MD4_DIGEST_LENGTH];
68
69 if (md == NULL) md=m;
70 if (!MD4_Init(&c))
71 return NULL;
72 MD4_Update(&c,d,n);
73 MD4_Final(md,&c);
74 explicit_bzero(&c,sizeof(c));
75 return(md);
76 }
77
diff --git a/src/lib/libssl/src/crypto/opensslfeatures.h b/src/lib/libssl/src/crypto/opensslfeatures.h
index ba4dbba959..3d1972f661 100644
--- a/src/lib/libssl/src/crypto/opensslfeatures.h
+++ b/src/lib/libssl/src/crypto/opensslfeatures.h
@@ -6,6 +6,7 @@
6# define OPENSSL_NO_JPAKE 6# define OPENSSL_NO_JPAKE
7# define OPENSSL_NO_KRB5 7# define OPENSSL_NO_KRB5
8# define OPENSSL_NO_MD2 8# define OPENSSL_NO_MD2
9# define OPENSSL_NO_MD4
9# define OPENSSL_NO_MDC2 10# define OPENSSL_NO_MDC2
10# define OPENSSL_NO_PSK 11# define OPENSSL_NO_PSK
11# define OPENSSL_NO_RC5 12# define OPENSSL_NO_RC5
diff --git a/src/lib/libssl/src/doc/apps/dgst.pod b/src/lib/libssl/src/doc/apps/dgst.pod
index d8b2abc6fb..daaa87a50a 100644
--- a/src/lib/libssl/src/doc/apps/dgst.pod
+++ b/src/lib/libssl/src/doc/apps/dgst.pod
@@ -2,12 +2,12 @@
2 2
3=head1 NAME 3=head1 NAME
4 4
5dgst, md5, md4, md2, sha1, sha, ripemd160 - message digests 5dgst, md5, sha1, ripemd160 - message digests
6 6
7=head1 SYNOPSIS 7=head1 SYNOPSIS
8 8
9B<openssl> B<dgst> 9B<openssl> B<dgst>
10[B<-md5|-md4|-md2|-sha1|-sha|-ripemd160|-dss1>] 10[B<-md5|-sha1|-ripemd160|-dss1>]
11[B<-c>] 11[B<-c>]
12[B<-d>] 12[B<-d>]
13[B<-hex>] 13[B<-hex>]
@@ -22,7 +22,7 @@ B<openssl> B<dgst>
22[B<-hmac key>] 22[B<-hmac key>]
23[B<file...>] 23[B<file...>]
24 24
25[B<md5|md4|md2|sha1|sha|ripemd160>] 25[B<md5|sha1|ripemd160>]
26[B<-c>] 26[B<-c>]
27[B<-d>] 27[B<-d>]
28[B<file...>] 28[B<file...>]
diff --git a/src/lib/libssl/src/doc/apps/openssl.pod b/src/lib/libssl/src/doc/apps/openssl.pod
index 718d679dbb..a000a02331 100644
--- a/src/lib/libssl/src/doc/apps/openssl.pod
+++ b/src/lib/libssl/src/doc/apps/openssl.pod
@@ -263,10 +263,6 @@ X.509 Certificate Data Management.
263 263
264=over 10 264=over 10
265 265
266=item B<md2>
267
268MD2 Digest
269
270=item B<md5> 266=item B<md5>
271 267
272MD5 Digest 268MD5 Digest
@@ -275,10 +271,6 @@ MD5 Digest
275 271
276RMD-160 Digest 272RMD-160 Digest
277 273
278=item B<sha>
279
280SHA Digest
281
282=item B<sha1> 274=item B<sha1>
283 275
284SHA-1 Digest 276SHA-1 Digest
diff --git a/src/lib/libssl/src/doc/apps/speed.pod b/src/lib/libssl/src/doc/apps/speed.pod
index c309d9a060..61990f0dd5 100644
--- a/src/lib/libssl/src/doc/apps/speed.pod
+++ b/src/lib/libssl/src/doc/apps/speed.pod
@@ -8,7 +8,6 @@ speed - test library performance
8 8
9B<openssl speed> 9B<openssl speed>
10[B<-engine id>] 10[B<-engine id>]
11[B<md2>]
12[B<md5>] 11[B<md5>]
13[B<hmac>] 12[B<hmac>]
14[B<sha1>] 13[B<sha1>]
diff --git a/src/lib/libssl/src/doc/apps/ts.pod b/src/lib/libssl/src/doc/apps/ts.pod
index 3075b6887a..f495a14038 100644
--- a/src/lib/libssl/src/doc/apps/ts.pod
+++ b/src/lib/libssl/src/doc/apps/ts.pod
@@ -12,7 +12,7 @@ B<-query>
12[B<-config> configfile] 12[B<-config> configfile]
13[B<-data> file_to_hash] 13[B<-data> file_to_hash]
14[B<-digest> digest_bytes] 14[B<-digest> digest_bytes]
15[B<-md2>|B<-md4>|B<-md5>|B<-sha>|B<-sha1>|B<-ripemd160>|B<...>] 15[B<-md5>|B<-sha1>|B<-ripemd160>|B<...>]
16[B<-policy> object_id] 16[B<-policy> object_id]
17[B<-no_nonce>] 17[B<-no_nonce>]
18[B<-cert>] 18[B<-cert>]
@@ -124,7 +124,7 @@ per byte, the bytes optionally separated by colons (e.g. 1A:F6:01:... or
1241AF601...). The number of bytes must match the message digest algorithm 1241AF601...). The number of bytes must match the message digest algorithm
125in use. (Optional) 125in use. (Optional)
126 126
127=item B<-md2>|B<-md4>|B<-md5>|B<-sha>|B<-sha1>|B<-ripemd160>|B<...> 127=item B<-md5>|B<-sha1>|B<-ripemd160>|B<...>
128 128
129The message digest to apply to the data file, it supports all the message 129The message digest to apply to the data file, it supports all the message
130digest algorithms that are supported by the openssl B<dgst> command. 130digest algorithms that are supported by the openssl B<dgst> command.
diff --git a/src/lib/libssl/src/doc/crypto/MD5.pod b/src/lib/libssl/src/doc/crypto/MD5.pod
index b0edd5416f..056f94bd9e 100644
--- a/src/lib/libssl/src/doc/crypto/MD5.pod
+++ b/src/lib/libssl/src/doc/crypto/MD5.pod
@@ -2,33 +2,10 @@
2 2
3=head1 NAME 3=head1 NAME
4 4
5MD2, MD4, MD5, MD2_Init, MD2_Update, MD2_Final, MD4_Init, MD4_Update, 5MD5, MD5_Init, MD5_Update, MD5_Final - MD5 hash functions
6MD4_Final, MD5_Init, MD5_Update, MD5_Final - MD2, MD4, and MD5 hash functions
7 6
8=head1 SYNOPSIS 7=head1 SYNOPSIS
9 8
10 #include <openssl/md2.h>
11
12 unsigned char *MD2(const unsigned char *d, unsigned long n,
13 unsigned char *md);
14
15 int MD2_Init(MD2_CTX *c);
16 int MD2_Update(MD2_CTX *c, const unsigned char *data,
17 unsigned long len);
18 int MD2_Final(unsigned char *md, MD2_CTX *c);
19
20
21 #include <openssl/md4.h>
22
23 unsigned char *MD4(const unsigned char *d, unsigned long n,
24 unsigned char *md);
25
26 int MD4_Init(MD4_CTX *c);
27 int MD4_Update(MD4_CTX *c, const void *data,
28 unsigned long len);
29 int MD4_Final(unsigned char *md, MD4_CTX *c);
30
31
32 #include <openssl/md5.h> 9 #include <openssl/md5.h>
33 10
34 unsigned char *MD5(const unsigned char *d, unsigned long n, 11 unsigned char *MD5(const unsigned char *d, unsigned long n,
@@ -41,61 +18,43 @@ MD4_Final, MD5_Init, MD5_Update, MD5_Final - MD2, MD4, and MD5 hash functions
41 18
42=head1 DESCRIPTION 19=head1 DESCRIPTION
43 20
44MD2, MD4, and MD5 are cryptographic hash functions with a 128 bit output. 21MD5 is a cryptographic hash function with a 128 bit output.
45 22
46MD2(), MD4(), and MD5() compute the MD2, MD4, and MD5 message digest 23MD5() computes the MD5 message digest of the B<n> bytes at B<d> and
47of the B<n> bytes at B<d> and place it in B<md> (which must have space 24places it in B<md> (which must have space for MD5_DIGEST_LENGTH == 16
48for MD2_DIGEST_LENGTH == MD4_DIGEST_LENGTH == MD5_DIGEST_LENGTH == 16
49bytes of output). If B<md> is NULL, the digest is placed in a static 25bytes of output). If B<md> is NULL, the digest is placed in a static
50array. 26array.
51 27
52The following functions may be used if the message is not completely 28The following functions may be used if the message is not completely
53stored in memory: 29stored in memory:
54 30
55MD2_Init() initializes a B<MD2_CTX> structure.
56
57MD2_Update() can be called repeatedly with chunks of the message to
58be hashed (B<len> bytes at B<data>).
59
60MD2_Final() places the message digest in B<md>, which must have space
61for MD2_DIGEST_LENGTH == 16 bytes of output, and erases the B<MD2_CTX>.
62
63MD4_Init(), MD4_Update(), MD4_Final(), MD5_Init(), MD5_Update(), and
64MD5_Final() are analogous using an B<MD4_CTX> and B<MD5_CTX> structure.
65
66Applications should use the higher level functions 31Applications should use the higher level functions
67L<EVP_DigestInit(3)|EVP_DigestInit(3)> 32L<EVP_DigestInit(3)|EVP_DigestInit(3)>
68etc. instead of calling the hash functions directly. 33etc. instead of calling the hash functions directly.
69 34
70=head1 NOTE 35=head1 NOTE
71 36
72MD2, MD4, and MD5 are recommended only for compatibility with existing 37MD5 is recommended only for compatibility with legacy applications.
73applications. In new applications, SHA-1 or RIPEMD-160 should be 38In new applications, SHA-2 should be preferred.
74preferred.
75 39
76=head1 RETURN VALUES 40=head1 RETURN VALUES
77 41
78MD2(), MD4(), and MD5() return pointers to the hash value. 42MD5() returns a pointer to the hash value.
79 43
80MD2_Init(), MD2_Update(), MD2_Final(), MD4_Init(), MD4_Update(), 44MD5_Init(), MD5_Update(), and MD5_Final() return 1 for success, 0
81MD4_Final(), MD5_Init(), MD5_Update(), and MD5_Final() return 1 for 45otherwise.
82success, 0 otherwise.
83 46
84=head1 CONFORMING TO 47=head1 CONFORMING TO
85 48
86RFC 1319, RFC 1320, RFC 1321 49RFC 1321
87 50
88=head1 SEE ALSO 51=head1 SEE ALSO
89 52
90L<sha(3)|sha(3)>, L<ripemd(3)|ripemd(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> 53L<EVP_DigestInit(3)|EVP_DigestInit(3)>
91 54
92=head1 HISTORY 55=head1 HISTORY
93 56
94MD2(), MD2_Init(), MD2_Update() MD2_Final(), MD5(), MD5_Init(), 57MD5(), MD5_Init(), MD5_Update() and MD5_Final() are available in all
95MD5_Update() and MD5_Final() are available in all versions of SSLeay 58versions of OpenSSL.
96and OpenSSL.
97
98MD4(), MD4_Init(), and MD4_Update() are available in OpenSSL 0.9.6 and
99above.
100 59
101=cut 60=cut
diff --git a/src/lib/libssl/src/doc/crypto/crypto.pod b/src/lib/libssl/src/doc/crypto/crypto.pod
index bbd6ce9ea9..11087ccc1f 100644
--- a/src/lib/libssl/src/doc/crypto/crypto.pod
+++ b/src/lib/libssl/src/doc/crypto/crypto.pod
@@ -28,7 +28,7 @@ hash functions and a cryptographic pseudo-random number generator.
28=item SYMMETRIC CIPHERS 28=item SYMMETRIC CIPHERS
29 29
30L<blowfish(3)|blowfish(3)>, L<cast(3)|cast(3)>, L<des(3)|des(3)>, 30L<blowfish(3)|blowfish(3)>, L<cast(3)|cast(3)>, L<des(3)|des(3)>,
31L<idea(3)|idea(3)>, L<rc2(3)|rc2(3)>, L<rc4(3)|rc4(3)>, L<rc5(3)|rc5(3)> 31L<idea(3)|idea(3)>, L<rc2(3)|rc2(3)>, L<rc4(3)|rc4(3)>
32 32
33=item PUBLIC KEY CRYPTOGRAPHY AND KEY AGREEMENT 33=item PUBLIC KEY CRYPTOGRAPHY AND KEY AGREEMENT
34 34
@@ -40,9 +40,7 @@ L<x509(3)|x509(3)>, L<x509v3(3)|x509v3(3)>
40 40
41=item AUTHENTICATION CODES, HASH FUNCTIONS 41=item AUTHENTICATION CODES, HASH FUNCTIONS
42 42
43L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, L<md4(3)|md4(3)>, 43L<hmac(3)|hmac(3)>, L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>
44L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
45L<sha(3)|sha(3)>
46 44
47=item AUXILIARY FUNCTIONS 45=item AUXILIARY FUNCTIONS
48 46
diff --git a/src/lib/libssl/src/doc/standards.txt b/src/lib/libssl/src/doc/standards.txt
index 7bada8d35f..e9eacc5840 100644
--- a/src/lib/libssl/src/doc/standards.txt
+++ b/src/lib/libssl/src/doc/standards.txt
@@ -27,12 +27,6 @@ Implemented:
27These are documents that describe things that are implemented (in 27These are documents that describe things that are implemented (in
28whole or at least great parts) in OpenSSL. 28whole or at least great parts) in OpenSSL.
29 29
301319 The MD2 Message-Digest Algorithm. B. Kaliski. April 1992.
31 (Format: TXT=25661 bytes) (Status: INFORMATIONAL)
32
331320 The MD4 Message-Digest Algorithm. R. Rivest. April 1992. (Format:
34 TXT=32407 bytes) (Status: INFORMATIONAL)
35
361321 The MD5 Message-Digest Algorithm. R. Rivest. April 1992. (Format: 301321 The MD5 Message-Digest Algorithm. R. Rivest. April 1992. (Format:
37 TXT=35222 bytes) (Status: INFORMATIONAL) 31 TXT=35222 bytes) (Status: INFORMATIONAL)
38 32