summaryrefslogtreecommitdiff
path: root/src
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
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')
-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
-rw-r--r--src/regress/lib/libcrypto/Makefile3
-rw-r--r--src/regress/lib/libcrypto/md4/Makefile9
-rw-r--r--src/regress/lib/libcrypto/md4/md4test.c125
-rw-r--r--src/usr.bin/openssl/openssl.115
-rw-r--r--src/usr.bin/openssl/openssl.c5
-rw-r--r--src/usr.bin/openssl/req.c4
-rw-r--r--src/usr.bin/openssl/speed.c35
-rw-r--r--src/usr.bin/openssl/ts.c4
35 files changed, 58 insertions, 1504 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
diff --git a/src/regress/lib/libcrypto/Makefile b/src/regress/lib/libcrypto/Makefile
index a6c1bbffd3..d3d86ab6b2 100644
--- a/src/regress/lib/libcrypto/Makefile
+++ b/src/regress/lib/libcrypto/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.19 2015/09/13 21:09:56 doug Exp $ 1# $OpenBSD: Makefile,v 1.20 2015/09/13 23:36:21 doug Exp $
2 2
3SUBDIR= \ 3SUBDIR= \
4 aead \ 4 aead \
@@ -24,7 +24,6 @@ SUBDIR= \
24 hmac \ 24 hmac \
25 idea \ 25 idea \
26 ige \ 26 ige \
27 md4 \
28 md5 \ 27 md5 \
29 pbkdf2 \ 28 pbkdf2 \
30 pkcs7 \ 29 pkcs7 \
diff --git a/src/regress/lib/libcrypto/md4/Makefile b/src/regress/lib/libcrypto/md4/Makefile
deleted file mode 100644
index a46047a40a..0000000000
--- a/src/regress/lib/libcrypto/md4/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
1# $OpenBSD: Makefile,v 1.3 2014/07/08 15:53:52 jsing Exp $
2
3PROG= md4test
4LDADD= -lcrypto
5DPADD= ${LIBCRYPTO}
6WARNINGS= Yes
7CFLAGS+= -DLIBRESSL_INTERNAL -Werror
8
9.include <bsd.regress.mk>
diff --git a/src/regress/lib/libcrypto/md4/md4test.c b/src/regress/lib/libcrypto/md4/md4test.c
deleted file mode 100644
index 60b2c0eedb..0000000000
--- a/src/regress/lib/libcrypto/md4/md4test.c
+++ /dev/null
@@ -1,125 +0,0 @@
1/* crypto/md4/md4test.c */
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 <stdlib.h>
62
63#include <openssl/evp.h>
64#include <openssl/md4.h>
65
66static char *test[]={
67 "",
68 "a",
69 "abc",
70 "message digest",
71 "abcdefghijklmnopqrstuvwxyz",
72 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
73 "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
74 NULL,
75 };
76
77static char *ret[]={
78"31d6cfe0d16ae931b73c59d7e0c089c0",
79"bde52cb31de33e46245e05fbdbd6fb24",
80"a448017aaf21d8525fc10ae87aa6729d",
81"d9130a8164549fe818874806e1c7014b",
82"d79e1c308aa5bbcdeea8ed63df412da9",
83"043f8582f241db351ce627e153e7f0e4",
84"e33b4ddc9c38f2199c3e7b164fcc0536",
85};
86
87static char *pt(unsigned char *md);
88int main(int argc, char *argv[])
89 {
90 int i,err=0;
91 char **P,**R;
92 char *p;
93 unsigned char md[MD4_DIGEST_LENGTH];
94
95 P=test;
96 R=ret;
97 i=1;
98 while (*P != NULL)
99 {
100 EVP_Digest(&(P[0][0]),strlen((char *)*P),md,NULL,EVP_md4(), NULL);
101 p=pt(md);
102 if (strcmp(p,(char *)*R) != 0)
103 {
104 printf("error calculating MD4 on '%s'\n",*P);
105 printf("got %s instead of %s\n",p,*R);
106 err++;
107 }
108 else
109 printf("test %d ok\n",i);
110 i++;
111 R++;
112 P++;
113 }
114 exit(err);
115 }
116
117static char *pt(unsigned char *md)
118 {
119 int i;
120 static char buf[80];
121
122 for (i=0; i<MD4_DIGEST_LENGTH; i++)
123 snprintf(buf + i*2, sizeof(buf) - i*2, "%02x",md[i]);
124 return(buf);
125 }
diff --git a/src/usr.bin/openssl/openssl.1 b/src/usr.bin/openssl/openssl.1
index 50063b653d..de0a56735a 100644
--- a/src/usr.bin/openssl/openssl.1
+++ b/src/usr.bin/openssl/openssl.1
@@ -1,4 +1,4 @@
1.\" $OpenBSD: openssl.1,v 1.26 2015/09/13 17:57:11 jmc Exp $ 1.\" $OpenBSD: openssl.1,v 1.27 2015/09/13 23:36:21 doug Exp $
2.\" ==================================================================== 2.\" ====================================================================
3.\" Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. 3.\" Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
4.\" 4.\"
@@ -383,8 +383,6 @@ Streebog-256 digest.
383Streebog-512 digest. 383Streebog-512 digest.
384.It Cm md_gost94 384.It Cm md_gost94
385GOST R 34.11-94 digest. 385GOST R 34.11-94 digest.
386.It Cm md4
387MD4 digest.
388.It Cm md5 386.It Cm md5
389MD5 digest. 387MD5 digest.
390.It Cm ripemd160 388.It Cm ripemd160
@@ -1795,7 +1793,7 @@ install user certificates and CAs in MSIE using the Xenroll control.
1795.Bk -words 1793.Bk -words
1796.Oo 1794.Oo
1797.Fl gost-mac | streebog256 | streebog512 | md_gost94 | 1795.Fl gost-mac | streebog256 | streebog512 | md_gost94 |
1798.Fl md4 | md5 | ripemd160 | sha | sha1 | 1796.Fl md5 | ripemd160 | sha1 |
1799.Fl sha224 | sha256 | sha384 | sha512 | whirlpool 1797.Fl sha224 | sha256 | sha384 | sha512 | whirlpool
1800.Oc 1798.Oc
1801.Op Fl binary 1799.Op Fl binary
@@ -1818,7 +1816,7 @@ install user certificates and CAs in MSIE using the Xenroll control.
1818.Pp 1816.Pp
1819.Nm openssl 1817.Nm openssl
1820.Cm gost-mac | streebog256 | streebog512 | md_gost94 | 1818.Cm gost-mac | streebog256 | streebog512 | md_gost94 |
1821.Cm md4 | md5 | ripemd160 | sha | sha1 | 1819.Cm md5 | ripemd160 | sha | sha1 |
1822.Cm sha224 | sha256 | sha384 | sha512 | whirlpool 1820.Cm sha224 | sha256 | sha384 | sha512 | whirlpool
1823.Op Fl c 1821.Op Fl c
1824.Op Fl d 1822.Op Fl d
@@ -5085,7 +5083,7 @@ instead of standard output.
5085.Op Fl key Ar keyfile 5083.Op Fl key Ar keyfile
5086.Op Fl keyform Ar DER | PEM 5084.Op Fl keyform Ar DER | PEM
5087.Op Fl keyout Ar file 5085.Op Fl keyout Ar file
5088.Op Fl md4 | md5 | sha1 5086.Op Fl md5 | sha1
5089.Op Fl modulus 5087.Op Fl modulus
5090.Op Fl nameopt Ar option 5088.Op Fl nameopt Ar option
5091.Op Fl new 5089.Op Fl new
@@ -7664,7 +7662,6 @@ command were first added in
7664.Op Cm dsa2048 7662.Op Cm dsa2048
7665.Op Cm hmac 7663.Op Cm hmac
7666.Op Cm md2 7664.Op Cm md2
7667.Op Cm md4
7668.Op Cm md5 7665.Op Cm md5
7669.Op Cm rc2 7666.Op Cm rc2
7670.Op Cm rc2-cbc 7667.Op Cm rc2-cbc
@@ -7715,7 +7712,7 @@ benchmarks in parallel.
7715.Nm "openssl ts" 7712.Nm "openssl ts"
7716.Bk -words 7713.Bk -words
7717.Fl query 7714.Fl query
7718.Op Fl md4 | md5 | ripemd160 | sha | sha1 7715.Op Fl md5 | ripemd160 | sha1
7719.Op Fl cert 7716.Op Fl cert
7720.Op Fl config Ar configfile 7717.Op Fl config Ar configfile
7721.Op Fl data Ar file_to_hash 7718.Op Fl data Ar file_to_hash
@@ -7836,7 +7833,7 @@ This option specifies a previously created time stamp request in DER
7836format that will be printed into the output file. 7833format that will be printed into the output file.
7837Useful when you need to examine the content of a request in human-readable 7834Useful when you need to examine the content of a request in human-readable
7838format. 7835format.
7839.It Fl md4|md5|ripemd160|sha|sha1 7836.It Fl md5|ripemd160|sha1
7840The message digest to apply to the data file. 7837The message digest to apply to the data file.
7841It supports all the message digest algorithms that are supported by the 7838It supports all the message digest algorithms that are supported by the
7842.Nm dgst 7839.Nm dgst
diff --git a/src/usr.bin/openssl/openssl.c b/src/usr.bin/openssl/openssl.c
index d0c0ec0551..1bda338356 100644
--- a/src/usr.bin/openssl/openssl.c
+++ b/src/usr.bin/openssl/openssl.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: openssl.c,v 1.10 2015/09/13 12:41:01 bcook Exp $ */ 1/* $OpenBSD: openssl.c,v 1.11 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 *
@@ -217,9 +217,6 @@ FUNCTION functions[] = {
217 { FUNC_TYPE_MD, "streebog256", dgst_main }, 217 { FUNC_TYPE_MD, "streebog256", dgst_main },
218 { FUNC_TYPE_MD, "streebog512", dgst_main }, 218 { FUNC_TYPE_MD, "streebog512", dgst_main },
219#endif 219#endif
220#ifndef OPENSSL_NO_MD4
221 { FUNC_TYPE_MD, "md4", dgst_main },
222#endif
223#ifndef OPENSSL_NO_MD5 220#ifndef OPENSSL_NO_MD5
224 { FUNC_TYPE_MD, "md5", dgst_main }, 221 { FUNC_TYPE_MD, "md5", dgst_main },
225#endif 222#endif
diff --git a/src/usr.bin/openssl/req.c b/src/usr.bin/openssl/req.c
index 5ed658bfb1..f359e7392e 100644
--- a/src/usr.bin/openssl/req.c
+++ b/src/usr.bin/openssl/req.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: req.c,v 1.7 2015/09/11 14:30:23 bcook Exp $ */ 1/* $OpenBSD: req.c,v 1.8 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 *
@@ -354,7 +354,7 @@ bad:
354 BIO_printf(bio_err, " -newkey rsa:bits generate a new RSA key of 'bits' in size\n"); 354 BIO_printf(bio_err, " -newkey rsa:bits generate a new RSA key of 'bits' in size\n");
355 BIO_printf(bio_err, " -newkey dsa:file generate a new DSA key, parameters taken from CA in 'file'\n"); 355 BIO_printf(bio_err, " -newkey dsa:file generate a new DSA key, parameters taken from CA in 'file'\n");
356 BIO_printf(bio_err, " -newkey ec:file generate a new EC key, parameters taken from CA in 'file'\n"); 356 BIO_printf(bio_err, " -newkey ec:file generate a new EC key, parameters taken from CA in 'file'\n");
357 BIO_printf(bio_err, " -[digest] Digest to sign with (md5, sha1, md4)\n"); 357 BIO_printf(bio_err, " -[digest] Digest to sign with (md5, sha1)\n");
358 BIO_printf(bio_err, " -config file request template file.\n"); 358 BIO_printf(bio_err, " -config file request template file.\n");
359 BIO_printf(bio_err, " -subj arg set or modify request subject\n"); 359 BIO_printf(bio_err, " -subj arg set or modify request subject\n");
360 BIO_printf(bio_err, " -multivalue-rdn enable support for multivalued RDNs\n"); 360 BIO_printf(bio_err, " -multivalue-rdn enable support for multivalued RDNs\n");
diff --git a/src/usr.bin/openssl/speed.c b/src/usr.bin/openssl/speed.c
index a0fa9dcd8b..d9fe3309b7 100644
--- a/src/usr.bin/openssl/speed.c
+++ b/src/usr.bin/openssl/speed.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: speed.c,v 1.13 2015/09/12 15:49:53 bcook Exp $ */ 1/* $OpenBSD: speed.c,v 1.14 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 *
@@ -124,9 +124,6 @@
124#ifndef OPENSSL_NO_IDEA 124#ifndef OPENSSL_NO_IDEA
125#include <openssl/idea.h> 125#include <openssl/idea.h>
126#endif 126#endif
127#ifndef OPENSSL_NO_MD4
128#include <openssl/md4.h>
129#endif
130#ifndef OPENSSL_NO_MD5 127#ifndef OPENSSL_NO_MD5
131#include <openssl/md5.h> 128#include <openssl/md5.h>
132#endif 129#endif
@@ -173,7 +170,8 @@ static int do_multi(int multi);
173#define MAX_ECDH_SIZE 256 170#define MAX_ECDH_SIZE 256
174 171
175static const char *names[ALGOR_NUM] = { 172static const char *names[ALGOR_NUM] = {
176 "md2", NULL /* was mdc2 */, "md4", "md5", "hmac(md5)", "sha1", "rmd160", 173 "md2", NULL /* was mdc2 */, NULL /* was md4 */, "md5", "hmac(md5)",
174 "sha1", "rmd160",
177 "rc4", "des cbc", "des ede3", "idea cbc", "seed cbc", 175 "rc4", "des cbc", "des ede3", "idea cbc", "seed cbc",
178 "rc2 cbc", "rc5-32/12 cbc", "blowfish cbc", "cast cbc", 176 "rc2 cbc", "rc5-32/12 cbc", "blowfish cbc", "cast cbc",
179 "aes-128 cbc", "aes-192 cbc", "aes-256 cbc", 177 "aes-128 cbc", "aes-192 cbc", "aes-256 cbc",
@@ -234,9 +232,6 @@ speed_main(int argc, char **argv)
234 long rsa_count; 232 long rsa_count;
235 unsigned rsa_num; 233 unsigned rsa_num;
236 unsigned char md[EVP_MAX_MD_SIZE]; 234 unsigned char md[EVP_MAX_MD_SIZE];
237#ifndef OPENSSL_NO_MD4
238 unsigned char md4[MD4_DIGEST_LENGTH];
239#endif
240#ifndef OPENSSL_NO_MD5 235#ifndef OPENSSL_NO_MD5
241 unsigned char md5[MD5_DIGEST_LENGTH]; 236 unsigned char md5[MD5_DIGEST_LENGTH];
242 unsigned char hmac[MD5_DIGEST_LENGTH]; 237 unsigned char hmac[MD5_DIGEST_LENGTH];
@@ -318,7 +313,6 @@ speed_main(int argc, char **argv)
318 CAMELLIA_KEY camellia_ks1, camellia_ks2, camellia_ks3; 313 CAMELLIA_KEY camellia_ks1, camellia_ks2, camellia_ks3;
319#endif 314#endif
320#define D_MD2 0 315#define D_MD2 0
321#define D_MD4 2
322#define D_MD5 3 316#define D_MD5 3
323#define D_HMAC 4 317#define D_HMAC 4
324#define D_SHA1 5 318#define D_SHA1 5
@@ -557,11 +551,6 @@ speed_main(int argc, char **argv)
557 j--; /* Otherwise, -mr gets confused with an 551 j--; /* Otherwise, -mr gets confused with an
558 * algorithm. */ 552 * algorithm. */
559 } else 553 } else
560#ifndef OPENSSL_NO_MD4
561 if (strcmp(*argv, "md4") == 0)
562 doit[D_MD4] = 1;
563 else
564#endif
565#ifndef OPENSSL_NO_MD5 554#ifndef OPENSSL_NO_MD5
566 if (strcmp(*argv, "md5") == 0) 555 if (strcmp(*argv, "md5") == 0)
567 doit[D_MD5] = 1; 556 doit[D_MD5] = 1;
@@ -812,9 +801,6 @@ speed_main(int argc, char **argv)
812 BIO_printf(bio_err, "Error: bad option or value\n"); 801 BIO_printf(bio_err, "Error: bad option or value\n");
813 BIO_printf(bio_err, "\n"); 802 BIO_printf(bio_err, "\n");
814 BIO_printf(bio_err, "Available values:\n"); 803 BIO_printf(bio_err, "Available values:\n");
815#ifndef OPENSSL_NO_MD4
816 BIO_printf(bio_err, "md4 ");
817#endif
818#ifndef OPENSSL_NO_MD5 804#ifndef OPENSSL_NO_MD5
819 BIO_printf(bio_err, "md5 "); 805 BIO_printf(bio_err, "md5 ");
820#ifndef OPENSSL_NO_HMAC 806#ifndef OPENSSL_NO_HMAC
@@ -837,7 +823,7 @@ speed_main(int argc, char **argv)
837 BIO_printf(bio_err, "rmd160"); 823 BIO_printf(bio_err, "rmd160");
838#endif 824#endif
839#if !defined(OPENSSL_NO_MD2) || \ 825#if !defined(OPENSSL_NO_MD2) || \
840 !defined(OPENSSL_NO_MD4) || !defined(OPENSSL_NO_MD5) || \ 826 !defined(OPENSSL_NO_MD5) || \
841 !defined(OPENSSL_NO_SHA1) || !defined(OPENSSL_NO_RIPEMD160) || \ 827 !defined(OPENSSL_NO_SHA1) || !defined(OPENSSL_NO_RIPEMD160) || \
842 !defined(OPENSSL_NO_WHIRLPOOL) 828 !defined(OPENSSL_NO_WHIRLPOOL)
843 BIO_printf(bio_err, "\n"); 829 BIO_printf(bio_err, "\n");
@@ -996,19 +982,6 @@ speed_main(int argc, char **argv)
996#define COUNT(d) (count) 982#define COUNT(d) (count)
997 signal(SIGALRM, sig_done); 983 signal(SIGALRM, sig_done);
998 984
999#ifndef OPENSSL_NO_MD4
1000 if (doit[D_MD4]) {
1001 for (j = 0; j < SIZE_NUM; j++) {
1002 print_message(names[D_MD4], c[D_MD4][j], lengths[j]);
1003 Time_F(START);
1004 for (count = 0, run = 1; COND(c[D_MD4][j]); count++)
1005 EVP_Digest(&(buf[0]), (unsigned long) lengths[j], &(md4[0]), NULL, EVP_md4(), NULL);
1006 d = Time_F(STOP);
1007 print_result(D_MD4, j, count, d);
1008 }
1009 }
1010#endif
1011
1012#ifndef OPENSSL_NO_MD5 985#ifndef OPENSSL_NO_MD5
1013 if (doit[D_MD5]) { 986 if (doit[D_MD5]) {
1014 for (j = 0; j < SIZE_NUM; j++) { 987 for (j = 0; j < SIZE_NUM; j++) {
diff --git a/src/usr.bin/openssl/ts.c b/src/usr.bin/openssl/ts.c
index 258e636b03..d2bf2a6cd6 100644
--- a/src/usr.bin/openssl/ts.c
+++ b/src/usr.bin/openssl/ts.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ts.c,v 1.7 2015/09/12 19:34:07 lteo Exp $ */ 1/* $OpenBSD: ts.c,v 1.8 2015/09/13 23:36:21 doug Exp $ */
2/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL 2/* Written by Zoltan Glozik (zglozik@stones.com) for the OpenSSL
3 * project 2002. 3 * project 2002.
4 */ 4 */
@@ -298,7 +298,7 @@ usage:
298 BIO_printf(bio_err, "usage:\n" 298 BIO_printf(bio_err, "usage:\n"
299 "ts -query [-config configfile] " 299 "ts -query [-config configfile] "
300 "[-data file_to_hash] [-digest digest_bytes]" 300 "[-data file_to_hash] [-digest digest_bytes]"
301 "[-md2|-md4|-md5|-sha|-sha1|-ripemd160] " 301 "[-md5|-sha1|-ripemd160] "
302 "[-policy object_id] [-no_nonce] [-cert] " 302 "[-policy object_id] [-no_nonce] [-cert] "
303 "[-in request.tsq] [-out request.tsq] [-text]\n"); 303 "[-in request.tsq] [-out request.tsq] [-text]\n");
304 BIO_printf(bio_err, "or\n" 304 BIO_printf(bio_err, "or\n"