summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authordoug <>2015-06-20 01:07:25 +0000
committerdoug <>2015-06-20 01:07:25 +0000
commitd1a72a60fbd3d6dadffddba3c8b5d6caf10bfdb4 (patch)
tree144d1a93a079c76b8e2df6b6625e26229f129c6d /src/lib
parent423ea1a9bc2db6077e4924282a827eefbd2cdcd8 (diff)
downloadopenbsd-d1a72a60fbd3d6dadffddba3c8b5d6caf10bfdb4.tar.gz
openbsd-d1a72a60fbd3d6dadffddba3c8b5d6caf10bfdb4.tar.bz2
openbsd-d1a72a60fbd3d6dadffddba3c8b5d6caf10bfdb4.zip
Remove obsolete MDC-2DES from libcrypto.
ok deraadt@ jsing@ miod@
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/crypto/Makefile9
-rw-r--r--src/lib/libcrypto/doc/EVP_DigestInit.pod13
-rw-r--r--src/lib/libcrypto/doc/EVP_DigestSignInit.pod2
-rw-r--r--src/lib/libcrypto/doc/EVP_DigestVerifyInit.pod2
-rw-r--r--src/lib/libcrypto/doc/EVP_SignInit.pod2
-rw-r--r--src/lib/libcrypto/doc/EVP_VerifyInit.pod2
-rw-r--r--src/lib/libcrypto/evp/c_all.c5
-rw-r--r--src/lib/libcrypto/evp/evp.h5
-rw-r--r--src/lib/libcrypto/evp/m_mdc2.c118
-rw-r--r--src/lib/libcrypto/man/Makefile3
-rw-r--r--src/lib/libcrypto/mdc2/mdc2.h97
-rw-r--r--src/lib/libcrypto/mdc2/mdc2_one.c77
-rw-r--r--src/lib/libcrypto/mdc2/mdc2dgst.c179
-rw-r--r--src/lib/libcrypto/opensslfeatures.h1
-rw-r--r--src/lib/libcrypto/rsa/rsa_pmeth.c15
-rw-r--r--src/lib/libcrypto/rsa/rsa_sign.c17
-rw-r--r--src/lib/libssl/src/crypto/evp/c_all.c5
-rw-r--r--src/lib/libssl/src/crypto/evp/evp.h5
-rw-r--r--src/lib/libssl/src/crypto/evp/m_mdc2.c118
-rw-r--r--src/lib/libssl/src/crypto/mdc2/mdc2.h97
-rw-r--r--src/lib/libssl/src/crypto/mdc2/mdc2_one.c77
-rw-r--r--src/lib/libssl/src/crypto/mdc2/mdc2dgst.c179
-rw-r--r--src/lib/libssl/src/crypto/opensslfeatures.h1
-rw-r--r--src/lib/libssl/src/crypto/rsa/rsa_pmeth.c15
-rw-r--r--src/lib/libssl/src/crypto/rsa/rsa_sign.c17
-rw-r--r--src/lib/libssl/src/doc/apps/ca.pod2
-rw-r--r--src/lib/libssl/src/doc/apps/dgst.pod6
-rw-r--r--src/lib/libssl/src/doc/apps/openssl.pod4
-rw-r--r--src/lib/libssl/src/doc/apps/req.pod2
-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/apps/x509.pod4
-rw-r--r--src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod13
-rw-r--r--src/lib/libssl/src/doc/crypto/EVP_DigestSignInit.pod2
-rw-r--r--src/lib/libssl/src/doc/crypto/EVP_DigestVerifyInit.pod2
-rw-r--r--src/lib/libssl/src/doc/crypto/EVP_SignInit.pod2
-rw-r--r--src/lib/libssl/src/doc/crypto/EVP_VerifyInit.pod2
-rw-r--r--src/lib/libssl/src/doc/crypto/crypto.pod2
38 files changed, 45 insertions, 1062 deletions
diff --git a/src/lib/libcrypto/crypto/Makefile b/src/lib/libcrypto/crypto/Makefile
index a4e65fd6a6..d523e8029d 100644
--- a/src/lib/libcrypto/crypto/Makefile
+++ b/src/lib/libcrypto/crypto/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.57 2015/04/11 16:16:15 deraadt Exp $ 1# $OpenBSD: Makefile,v 1.58 2015/06/20 01:07:24 doug Exp $
2 2
3LIB= crypto 3LIB= crypto
4 4
@@ -146,7 +146,7 @@ SRCS+= e_des.c e_bf.c e_idea.c e_des3.c e_camellia.c
146SRCS+= e_rc4.c e_aes.c names.c 146SRCS+= e_rc4.c e_aes.c names.c
147SRCS+= e_xcbc_d.c e_rc2.c e_cast.c 147SRCS+= e_xcbc_d.c e_rc2.c e_cast.c
148SRCS+= m_null.c m_md4.c m_md5.c m_sha.c m_sha1.c m_wp.c 148SRCS+= m_null.c m_md4.c m_md5.c m_sha.c m_sha1.c m_wp.c
149SRCS+= m_dss.c m_dss1.c m_mdc2.c m_ripemd.c m_ecdsa.c 149SRCS+= m_dss.c m_dss1.c m_ripemd.c m_ecdsa.c
150SRCS+= p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c 150SRCS+= p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c
151SRCS+= bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c 151SRCS+= bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c
152SRCS+= c_all.c evp_lib.c 152SRCS+= c_all.c evp_lib.c
@@ -180,9 +180,6 @@ SRCS+= md4_dgst.c md4_one.c
180# md5/ 180# md5/
181SRCS+= md5_dgst.c md5_one.c 181SRCS+= md5_dgst.c md5_one.c
182 182
183# mdc2/
184SRCS+= mdc2dgst.c mdc2_one.c
185
186# modes/ 183# modes/
187SRCS+= cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c ccm128.c xts128.c 184SRCS+= cbc128.c ctr128.c cts128.c cfb128.c ofb128.c gcm128.c ccm128.c xts128.c
188 185
@@ -292,7 +289,6 @@ SRCS+= pcy_cache.c pcy_node.c pcy_data.c pcy_map.c pcy_tree.c pcy_lib.c
292 ${LCRYPTO_SRC}/lhash \ 289 ${LCRYPTO_SRC}/lhash \
293 ${LCRYPTO_SRC}/md4 \ 290 ${LCRYPTO_SRC}/md4 \
294 ${LCRYPTO_SRC}/md5 \ 291 ${LCRYPTO_SRC}/md5 \
295 ${LCRYPTO_SRC}/mdc2 \
296 ${LCRYPTO_SRC}/modes \ 292 ${LCRYPTO_SRC}/modes \
297 ${LCRYPTO_SRC}/objects \ 293 ${LCRYPTO_SRC}/objects \
298 ${LCRYPTO_SRC}/ocsp \ 294 ${LCRYPTO_SRC}/ocsp \
@@ -352,7 +348,6 @@ HDRS=\
352 crypto/lhash/lhash.h \ 348 crypto/lhash/lhash.h \
353 crypto/md4/md4.h \ 349 crypto/md4/md4.h \
354 crypto/md5/md5.h \ 350 crypto/md5/md5.h \
355 crypto/mdc2/mdc2.h \
356 crypto/modes/modes.h \ 351 crypto/modes/modes.h \
357 crypto/objects/objects.h \ 352 crypto/objects/objects.h \
358 crypto/ocsp/ocsp.h \ 353 crypto/ocsp/ocsp.h \
diff --git a/src/lib/libcrypto/doc/EVP_DigestInit.pod b/src/lib/libcrypto/doc/EVP_DigestInit.pod
index 4b48080b4a..ccb19fc0a7 100644
--- a/src/lib/libcrypto/doc/EVP_DigestInit.pod
+++ b/src/lib/libcrypto/doc/EVP_DigestInit.pod
@@ -8,7 +8,7 @@ EVP_MD_CTX_copy_ex, EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type,
8EVP_MD_size, EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size, 8EVP_MD_size, EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size,
9EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null, EVP_md2, EVP_md5, EVP_sha, 9EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null, EVP_md2, EVP_md5, EVP_sha,
10EVP_sha1, EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_dss, EVP_dss1, 10EVP_sha1, EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_dss, EVP_dss1,
11EVP_mdc2, EVP_ripemd160, EVP_get_digestbyname, EVP_get_digestbynid, 11EVP_ripemd160, EVP_get_digestbyname, EVP_get_digestbynid,
12EVP_get_digestbyobj - EVP digest routines 12EVP_get_digestbyobj - EVP digest routines
13 13
14=head1 SYNOPSIS 14=head1 SYNOPSIS
@@ -53,7 +53,6 @@ EVP_get_digestbyobj - EVP digest routines
53 const EVP_MD *EVP_sha1(void); 53 const EVP_MD *EVP_sha1(void);
54 const EVP_MD *EVP_dss(void); 54 const EVP_MD *EVP_dss(void);
55 const EVP_MD *EVP_dss1(void); 55 const EVP_MD *EVP_dss1(void);
56 const EVP_MD *EVP_mdc2(void);
57 const EVP_MD *EVP_ripemd160(void); 56 const EVP_MD *EVP_ripemd160(void);
58 57
59 const EVP_MD *EVP_sha224(void); 58 const EVP_MD *EVP_sha224(void);
@@ -134,8 +133,8 @@ algorithms are no longer linked this function is only retained for
134compatibility reasons. 133compatibility reasons.
135 134
136EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_sha224(), EVP_sha256(), 135EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_sha224(), EVP_sha256(),
137EVP_sha384(), EVP_sha512(), EVP_mdc2() and EVP_ripemd160() return B<EVP_MD> 136EVP_sha384(), EVP_sha512() and EVP_ripemd160() return B<EVP_MD>
138structures for the MD2, MD5, SHA, SHA1, SHA224, SHA256, SHA384, SHA512, MDC2 137structures for the MD2, MD5, SHA, SHA1, SHA224, SHA256, SHA384, SHA512
139and RIPEMD160 digest algorithms respectively. 138and RIPEMD160 digest algorithms respectively.
140 139
141EVP_dss() and EVP_dss1() return B<EVP_MD> structures for SHA and SHA1 digest 140EVP_dss() and EVP_dss1() return B<EVP_MD> structures for SHA and SHA1 digest
@@ -165,7 +164,7 @@ EVP_MD_size(), EVP_MD_block_size(), EVP_MD_CTX_size() and
165EVP_MD_CTX_block_size() return the digest or block size in bytes. 164EVP_MD_CTX_block_size() return the digest or block size in bytes.
166 165
167EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_dss(), 166EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_dss(),
168EVP_dss1(), EVP_mdc2() and EVP_ripemd160() return pointers to the 167EVP_dss1() and EVP_ripemd160() return pointers to the
169corresponding EVP_MD structures. 168corresponding EVP_MD structures.
170 169
171EVP_get_digestbyname(), EVP_get_digestbynid() and EVP_get_digestbyobj() 170EVP_get_digestbyname(), EVP_get_digestbynid() and EVP_get_digestbyobj()
@@ -253,7 +252,7 @@ digest name passed on the command line.
253=head1 SEE ALSO 252=head1 SEE ALSO
254 253
255L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 254L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
256L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 255L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
257L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 256L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
258 257
259=head1 HISTORY 258=head1 HISTORY
@@ -266,7 +265,7 @@ EVP_MD_CTX_cleanup(), EVP_MD_CTX_destroy(), EVP_DigestInit_ex()
266and EVP_DigestFinal_ex() were added in OpenSSL 0.9.7. 265and EVP_DigestFinal_ex() were added in OpenSSL 0.9.7.
267 266
268EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), 267EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(),
269EVP_dss(), EVP_dss1(), EVP_mdc2() and EVP_ripemd160() were 268EVP_dss(), EVP_dss1() and EVP_ripemd160() were
270changed to return truely const EVP_MD * in OpenSSL 0.9.7. 269changed to return truely const EVP_MD * in OpenSSL 0.9.7.
271 270
272The link between digests and signing algorithms was fixed in OpenSSL 1.0 and 271The link between digests and signing algorithms was fixed in OpenSSL 1.0 and
diff --git a/src/lib/libcrypto/doc/EVP_DigestSignInit.pod b/src/lib/libcrypto/doc/EVP_DigestSignInit.pod
index e70b88a4a9..7fd4c22e79 100644
--- a/src/lib/libcrypto/doc/EVP_DigestSignInit.pod
+++ b/src/lib/libcrypto/doc/EVP_DigestSignInit.pod
@@ -74,7 +74,7 @@ which indicates the maximum possible signature for any set of parameters.
74L<EVP_DigestVerifyInit(3)|EVP_DigestVerifyInit(3)>, 74L<EVP_DigestVerifyInit(3)|EVP_DigestVerifyInit(3)>,
75L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, 75L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
76L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 76L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
77L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 77L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
78L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 78L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
79 79
80=head1 HISTORY 80=head1 HISTORY
diff --git a/src/lib/libcrypto/doc/EVP_DigestVerifyInit.pod b/src/lib/libcrypto/doc/EVP_DigestVerifyInit.pod
index 9eebb15d22..0817cf0b02 100644
--- a/src/lib/libcrypto/doc/EVP_DigestVerifyInit.pod
+++ b/src/lib/libcrypto/doc/EVP_DigestVerifyInit.pod
@@ -69,7 +69,7 @@ will occur.
69L<EVP_DigestSignInit(3)|EVP_DigestSignInit(3)>, 69L<EVP_DigestSignInit(3)|EVP_DigestSignInit(3)>,
70L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, 70L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
71L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 71L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
72L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 72L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
73L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 73L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
74 74
75=head1 HISTORY 75=head1 HISTORY
diff --git a/src/lib/libcrypto/doc/EVP_SignInit.pod b/src/lib/libcrypto/doc/EVP_SignInit.pod
index 5a1b67e006..9aafa3d63a 100644
--- a/src/lib/libcrypto/doc/EVP_SignInit.pod
+++ b/src/lib/libcrypto/doc/EVP_SignInit.pod
@@ -89,7 +89,7 @@ The previous two bugs are fixed in the newer EVP_SignDigest*() function.
89L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>, 89L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>,
90L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, 90L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
91L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 91L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
92L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 92L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
93L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 93L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
94 94
95=head1 HISTORY 95=head1 HISTORY
diff --git a/src/lib/libcrypto/doc/EVP_VerifyInit.pod b/src/lib/libcrypto/doc/EVP_VerifyInit.pod
index c665ee2ebc..b0d3f8e4c9 100644
--- a/src/lib/libcrypto/doc/EVP_VerifyInit.pod
+++ b/src/lib/libcrypto/doc/EVP_VerifyInit.pod
@@ -83,7 +83,7 @@ L<evp(3)|evp(3)>,
83L<EVP_SignInit(3)|EVP_SignInit(3)>, 83L<EVP_SignInit(3)|EVP_SignInit(3)>,
84L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, 84L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
85L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 85L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
86L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 86L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
87L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 87L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
88 88
89=head1 HISTORY 89=head1 HISTORY
diff --git a/src/lib/libcrypto/evp/c_all.c b/src/lib/libcrypto/evp/c_all.c
index d794629ca8..5f9df3a7ad 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.16 2015/02/10 11:45:09 jsing Exp $ */ 1/* $OpenBSD: c_all.c,v 1.17 2015/06/20 01:07:24 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 *
@@ -265,9 +265,6 @@ OpenSSL_add_all_digests(void)
265 EVP_add_digest(EVP_streebog256()); 265 EVP_add_digest(EVP_streebog256());
266 EVP_add_digest(EVP_streebog512()); 266 EVP_add_digest(EVP_streebog512());
267#endif 267#endif
268#if !defined(OPENSSL_NO_MDC2) && !defined(OPENSSL_NO_DES)
269 EVP_add_digest(EVP_mdc2());
270#endif
271#ifndef OPENSSL_NO_RIPEMD 268#ifndef OPENSSL_NO_RIPEMD
272 EVP_add_digest(EVP_ripemd160()); 269 EVP_add_digest(EVP_ripemd160());
273 EVP_add_digest_alias(SN_ripemd160, "ripemd"); 270 EVP_add_digest_alias(SN_ripemd160, "ripemd");
diff --git a/src/lib/libcrypto/evp/evp.h b/src/lib/libcrypto/evp/evp.h
index 330e01e0e6..57f8753ced 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.44 2015/02/10 11:45:09 jsing Exp $ */ 1/* $OpenBSD: evp.h,v 1.45 2015/06/20 01:07:24 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 *
@@ -669,9 +669,6 @@ const EVP_MD *EVP_sha256(void);
669const EVP_MD *EVP_sha384(void); 669const EVP_MD *EVP_sha384(void);
670const EVP_MD *EVP_sha512(void); 670const EVP_MD *EVP_sha512(void);
671#endif 671#endif
672#ifndef OPENSSL_NO_MDC2
673const EVP_MD *EVP_mdc2(void);
674#endif
675#ifndef OPENSSL_NO_RIPEMD 672#ifndef OPENSSL_NO_RIPEMD
676const EVP_MD *EVP_ripemd160(void); 673const EVP_MD *EVP_ripemd160(void);
677#endif 674#endif
diff --git a/src/lib/libcrypto/evp/m_mdc2.c b/src/lib/libcrypto/evp/m_mdc2.c
deleted file mode 100644
index cfbdfc3852..0000000000
--- a/src/lib/libcrypto/evp/m_mdc2.c
+++ /dev/null
@@ -1,118 +0,0 @@
1/* $OpenBSD: m_mdc2.c,v 1.15 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_MDC2
64
65#include <openssl/evp.h>
66#include <openssl/mdc2.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 MDC2_Init(ctx->md_data);
78}
79
80static int
81update(EVP_MD_CTX *ctx, const void *data, size_t count)
82{
83 return MDC2_Update(ctx->md_data, data, count);
84}
85
86static int
87final(EVP_MD_CTX *ctx, unsigned char *md)
88{
89 return MDC2_Final(md, ctx->md_data);
90}
91
92static const EVP_MD mdc2_md = {
93 .type = NID_mdc2,
94 .pkey_type = NID_mdc2WithRSA,
95 .md_size = MDC2_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_ASN1_OCTET_STRING,
104 .verify = (evp_verify_method *)RSA_verify_ASN1_OCTET_STRING,
105 .required_pkey_type = {
106 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
107 },
108#endif
109 .block_size = MDC2_BLOCK,
110 .ctx_size = sizeof(EVP_MD *) + sizeof(MDC2_CTX),
111};
112
113const EVP_MD *
114EVP_mdc2(void)
115{
116 return (&mdc2_md);
117}
118#endif
diff --git a/src/lib/libcrypto/man/Makefile b/src/lib/libcrypto/man/Makefile
index 872391db3e..c968943cc0 100644
--- a/src/lib/libcrypto/man/Makefile
+++ b/src/lib/libcrypto/man/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.20 2015/05/24 15:44:52 schwarze Exp $ 1# $OpenBSD: Makefile,v 1.21 2015/06/20 01:07:24 doug Exp $
2 2
3.include <bsd.own.mk> # for NOMAN 3.include <bsd.own.mk> # for NOMAN
4 4
@@ -645,7 +645,6 @@ MLINKS+=\
645 EVP_DigestInit.3 EVP_md2.3 \ 645 EVP_DigestInit.3 EVP_md2.3 \
646 EVP_DigestInit.3 EVP_md5.3 \ 646 EVP_DigestInit.3 EVP_md5.3 \
647 EVP_DigestInit.3 EVP_md_null.3 \ 647 EVP_DigestInit.3 EVP_md_null.3 \
648 EVP_DigestInit.3 EVP_mdc2.3 \
649 EVP_DigestInit.3 EVP_ripemd160.3 \ 648 EVP_DigestInit.3 EVP_ripemd160.3 \
650 EVP_DigestInit.3 EVP_sha.3 \ 649 EVP_DigestInit.3 EVP_sha.3 \
651 EVP_DigestInit.3 EVP_sha1.3 \ 650 EVP_DigestInit.3 EVP_sha1.3 \
diff --git a/src/lib/libcrypto/mdc2/mdc2.h b/src/lib/libcrypto/mdc2/mdc2.h
deleted file mode 100644
index 9128eeb878..0000000000
--- a/src/lib/libcrypto/mdc2/mdc2.h
+++ /dev/null
@@ -1,97 +0,0 @@
1/* $OpenBSD: mdc2.h,v 1.13 2014/07/10 22:45:57 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#ifndef HEADER_MDC2_H
60#define HEADER_MDC2_H
61
62#include <openssl/opensslconf.h>
63
64#include <openssl/des.h>
65
66#ifdef __cplusplus
67extern "C" {
68#endif
69
70#ifdef OPENSSL_NO_MDC2
71#error MDC2 is disabled.
72#endif
73
74#define MDC2_BLOCK 8
75#define MDC2_DIGEST_LENGTH 16
76
77typedef struct mdc2_ctx_st
78 {
79 unsigned int num;
80 unsigned char data[MDC2_BLOCK];
81 DES_cblock h,hh;
82 int pad_type; /* either 1 or 2, default 1 */
83 } MDC2_CTX;
84
85
86int MDC2_Init(MDC2_CTX *c);
87int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len);
88int MDC2_Final(unsigned char *md, MDC2_CTX *c);
89unsigned char *MDC2(const unsigned char *d, size_t n,
90 unsigned char *md);
91
92#ifdef __cplusplus
93}
94#endif
95
96#endif
97
diff --git a/src/lib/libcrypto/mdc2/mdc2_one.c b/src/lib/libcrypto/mdc2/mdc2_one.c
deleted file mode 100644
index 8f922b1c7d..0000000000
--- a/src/lib/libcrypto/mdc2/mdc2_one.c
+++ /dev/null
@@ -1,77 +0,0 @@
1/* $OpenBSD: mdc2_one.c,v 1.4 2014/07/11 08:44:49 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
61#include <openssl/crypto.h>
62#include <openssl/mdc2.h>
63
64unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md)
65 {
66 MDC2_CTX c;
67 static unsigned char m[MDC2_DIGEST_LENGTH];
68
69 if (md == NULL) md=m;
70 if (!MDC2_Init(&c))
71 return NULL;
72 MDC2_Update(&c,d,n);
73 MDC2_Final(md,&c);
74 OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */
75 return(md);
76 }
77
diff --git a/src/lib/libcrypto/mdc2/mdc2dgst.c b/src/lib/libcrypto/mdc2/mdc2dgst.c
deleted file mode 100644
index b4b0068d59..0000000000
--- a/src/lib/libcrypto/mdc2/mdc2dgst.c
+++ /dev/null
@@ -1,179 +0,0 @@
1/* $OpenBSD: mdc2dgst.c,v 1.7 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 <stdlib.h>
61#include <string.h>
62#include <openssl/crypto.h>
63#include <openssl/des.h>
64#include <openssl/mdc2.h>
65
66#undef c2l
67#define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \
68 l|=((DES_LONG)(*((c)++)))<< 8L, \
69 l|=((DES_LONG)(*((c)++)))<<16L, \
70 l|=((DES_LONG)(*((c)++)))<<24L)
71
72#undef l2c
73#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
74 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
75 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
76 *((c)++)=(unsigned char)(((l)>>24L)&0xff))
77
78static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len);
79int MDC2_Init(MDC2_CTX *c)
80 {
81 c->num=0;
82 c->pad_type=1;
83 memset(&(c->h[0]),0x52,MDC2_BLOCK);
84 memset(&(c->hh[0]),0x25,MDC2_BLOCK);
85 return 1;
86 }
87
88int MDC2_Update(MDC2_CTX *c, const unsigned char *in, size_t len)
89 {
90 size_t i,j;
91
92 i=c->num;
93 if (i != 0)
94 {
95 if (i+len < MDC2_BLOCK)
96 {
97 /* partial block */
98 memcpy(&(c->data[i]),in,len);
99 c->num+=(int)len;
100 return 1;
101 }
102 else
103 {
104 /* filled one */
105 j=MDC2_BLOCK-i;
106 memcpy(&(c->data[i]),in,j);
107 len-=j;
108 in+=j;
109 c->num=0;
110 mdc2_body(c,&(c->data[0]),MDC2_BLOCK);
111 }
112 }
113 i=len&~((size_t)MDC2_BLOCK-1);
114 if (i > 0) mdc2_body(c,in,i);
115 j=len-i;
116 if (j > 0)
117 {
118 memcpy(&(c->data[0]),&(in[i]),j);
119 c->num=(int)j;
120 }
121 return 1;
122 }
123
124static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len)
125 {
126 DES_LONG tin0,tin1;
127 DES_LONG ttin0,ttin1;
128 DES_LONG d[2],dd[2];
129 DES_key_schedule k;
130 unsigned char *p;
131 size_t i;
132
133 for (i=0; i<len; i+=8)
134 {
135 c2l(in,tin0); d[0]=dd[0]=tin0;
136 c2l(in,tin1); d[1]=dd[1]=tin1;
137 c->h[0]=(c->h[0]&0x9f)|0x40;
138 c->hh[0]=(c->hh[0]&0x9f)|0x20;
139
140 DES_set_odd_parity(&c->h);
141 DES_set_key_unchecked(&c->h,&k);
142 DES_encrypt1(d,&k,1);
143
144 DES_set_odd_parity(&c->hh);
145 DES_set_key_unchecked(&c->hh,&k);
146 DES_encrypt1(dd,&k,1);
147
148 ttin0=tin0^dd[0];
149 ttin1=tin1^dd[1];
150 tin0^=d[0];
151 tin1^=d[1];
152
153 p=c->h;
154 l2c(tin0,p);
155 l2c(ttin1,p);
156 p=c->hh;
157 l2c(ttin0,p);
158 l2c(tin1,p);
159 }
160 }
161
162int MDC2_Final(unsigned char *md, MDC2_CTX *c)
163 {
164 unsigned int i;
165 int j;
166
167 i=c->num;
168 j=c->pad_type;
169 if ((i > 0) || (j == 2))
170 {
171 if (j == 2)
172 c->data[i++]=0x80;
173 memset(&(c->data[i]),0,MDC2_BLOCK-i);
174 mdc2_body(c,c->data,MDC2_BLOCK);
175 }
176 memcpy(md,(char *)c->h,MDC2_BLOCK);
177 memcpy(&(md[MDC2_BLOCK]),(char *)c->hh,MDC2_BLOCK);
178 return 1;
179 }
diff --git a/src/lib/libcrypto/opensslfeatures.h b/src/lib/libcrypto/opensslfeatures.h
index 811fac610f..a0fcc0078e 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_MDC2
9# define OPENSSL_NO_PSK 10# define OPENSSL_NO_PSK
10# define OPENSSL_NO_RC5 11# define OPENSSL_NO_RC5
11# define OPENSSL_NO_RFC3779 12# define OPENSSL_NO_RFC3779
diff --git a/src/lib/libcrypto/rsa/rsa_pmeth.c b/src/lib/libcrypto/rsa/rsa_pmeth.c
index 09166e105b..0b648138ee 100644
--- a/src/lib/libcrypto/rsa/rsa_pmeth.c
+++ b/src/lib/libcrypto/rsa/rsa_pmeth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_pmeth.c,v 1.16 2015/02/11 04:05:14 beck Exp $ */ 1/* $OpenBSD: rsa_pmeth.c,v 1.17 2015/06/20 01:07:25 doug Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -178,18 +178,7 @@ pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
178 return -1; 178 return -1;
179 } 179 }
180 180
181 if (EVP_MD_type(rctx->md) == NID_mdc2) { 181 if (rctx->pad_mode == RSA_X931_PADDING) {
182 unsigned int sltmp;
183
184 if (rctx->pad_mode != RSA_PKCS1_PADDING)
185 return -1;
186 ret = RSA_sign_ASN1_OCTET_STRING(NID_mdc2, tbs, tbslen,
187 sig, &sltmp, rsa);
188
189 if (ret <= 0)
190 return ret;
191 ret = sltmp;
192 } else if (rctx->pad_mode == RSA_X931_PADDING) {
193 if (!setup_tbuf(rctx, ctx)) 182 if (!setup_tbuf(rctx, ctx))
194 return -1; 183 return -1;
195 memcpy(rctx->tbuf, tbs, tbslen); 184 memcpy(rctx->tbuf, tbs, tbslen);
diff --git a/src/lib/libcrypto/rsa/rsa_sign.c b/src/lib/libcrypto/rsa/rsa_sign.c
index a446b563b3..09d8ef329d 100644
--- a/src/lib/libcrypto/rsa/rsa_sign.c
+++ b/src/lib/libcrypto/rsa/rsa_sign.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_sign.c,v 1.22 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: rsa_sign.c,v 1.23 2015/06/20 01:07:25 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 *
@@ -180,21 +180,6 @@ int_rsa_verify(int dtype, const unsigned char *m, unsigned int m_len,
180 if (i <= 0) 180 if (i <= 0)
181 goto err; 181 goto err;
182 182
183 /*
184 * Oddball MDC2 case: signature can be OCTET STRING.
185 * check for correct tag and length octets.
186 */
187 if (dtype == NID_mdc2 && i == 18 && s[0] == 0x04 && s[1] == 0x10) {
188 if (rm) {
189 memcpy(rm, s + 2, 16);
190 *prm_len = 16;
191 ret = 1;
192 } else if (memcmp(m, s + 2, 16))
193 RSAerr(RSA_F_INT_RSA_VERIFY, RSA_R_BAD_SIGNATURE);
194 else
195 ret = 1;
196 }
197
198 /* Special case: SSL signature */ 183 /* Special case: SSL signature */
199 if (dtype == NID_md5_sha1) { 184 if (dtype == NID_md5_sha1) {
200 if (i != SSL_SIG_LENGTH || memcmp(s, m, SSL_SIG_LENGTH)) 185 if (i != SSL_SIG_LENGTH || memcmp(s, m, SSL_SIG_LENGTH))
diff --git a/src/lib/libssl/src/crypto/evp/c_all.c b/src/lib/libssl/src/crypto/evp/c_all.c
index d794629ca8..5f9df3a7ad 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.16 2015/02/10 11:45:09 jsing Exp $ */ 1/* $OpenBSD: c_all.c,v 1.17 2015/06/20 01:07:24 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 *
@@ -265,9 +265,6 @@ OpenSSL_add_all_digests(void)
265 EVP_add_digest(EVP_streebog256()); 265 EVP_add_digest(EVP_streebog256());
266 EVP_add_digest(EVP_streebog512()); 266 EVP_add_digest(EVP_streebog512());
267#endif 267#endif
268#if !defined(OPENSSL_NO_MDC2) && !defined(OPENSSL_NO_DES)
269 EVP_add_digest(EVP_mdc2());
270#endif
271#ifndef OPENSSL_NO_RIPEMD 268#ifndef OPENSSL_NO_RIPEMD
272 EVP_add_digest(EVP_ripemd160()); 269 EVP_add_digest(EVP_ripemd160());
273 EVP_add_digest_alias(SN_ripemd160, "ripemd"); 270 EVP_add_digest_alias(SN_ripemd160, "ripemd");
diff --git a/src/lib/libssl/src/crypto/evp/evp.h b/src/lib/libssl/src/crypto/evp/evp.h
index 330e01e0e6..57f8753ced 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.44 2015/02/10 11:45:09 jsing Exp $ */ 1/* $OpenBSD: evp.h,v 1.45 2015/06/20 01:07:24 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 *
@@ -669,9 +669,6 @@ const EVP_MD *EVP_sha256(void);
669const EVP_MD *EVP_sha384(void); 669const EVP_MD *EVP_sha384(void);
670const EVP_MD *EVP_sha512(void); 670const EVP_MD *EVP_sha512(void);
671#endif 671#endif
672#ifndef OPENSSL_NO_MDC2
673const EVP_MD *EVP_mdc2(void);
674#endif
675#ifndef OPENSSL_NO_RIPEMD 672#ifndef OPENSSL_NO_RIPEMD
676const EVP_MD *EVP_ripemd160(void); 673const EVP_MD *EVP_ripemd160(void);
677#endif 674#endif
diff --git a/src/lib/libssl/src/crypto/evp/m_mdc2.c b/src/lib/libssl/src/crypto/evp/m_mdc2.c
deleted file mode 100644
index cfbdfc3852..0000000000
--- a/src/lib/libssl/src/crypto/evp/m_mdc2.c
+++ /dev/null
@@ -1,118 +0,0 @@
1/* $OpenBSD: m_mdc2.c,v 1.15 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_MDC2
64
65#include <openssl/evp.h>
66#include <openssl/mdc2.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 MDC2_Init(ctx->md_data);
78}
79
80static int
81update(EVP_MD_CTX *ctx, const void *data, size_t count)
82{
83 return MDC2_Update(ctx->md_data, data, count);
84}
85
86static int
87final(EVP_MD_CTX *ctx, unsigned char *md)
88{
89 return MDC2_Final(md, ctx->md_data);
90}
91
92static const EVP_MD mdc2_md = {
93 .type = NID_mdc2,
94 .pkey_type = NID_mdc2WithRSA,
95 .md_size = MDC2_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_ASN1_OCTET_STRING,
104 .verify = (evp_verify_method *)RSA_verify_ASN1_OCTET_STRING,
105 .required_pkey_type = {
106 EVP_PKEY_RSA, EVP_PKEY_RSA2, 0, 0,
107 },
108#endif
109 .block_size = MDC2_BLOCK,
110 .ctx_size = sizeof(EVP_MD *) + sizeof(MDC2_CTX),
111};
112
113const EVP_MD *
114EVP_mdc2(void)
115{
116 return (&mdc2_md);
117}
118#endif
diff --git a/src/lib/libssl/src/crypto/mdc2/mdc2.h b/src/lib/libssl/src/crypto/mdc2/mdc2.h
deleted file mode 100644
index 9128eeb878..0000000000
--- a/src/lib/libssl/src/crypto/mdc2/mdc2.h
+++ /dev/null
@@ -1,97 +0,0 @@
1/* $OpenBSD: mdc2.h,v 1.13 2014/07/10 22:45:57 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#ifndef HEADER_MDC2_H
60#define HEADER_MDC2_H
61
62#include <openssl/opensslconf.h>
63
64#include <openssl/des.h>
65
66#ifdef __cplusplus
67extern "C" {
68#endif
69
70#ifdef OPENSSL_NO_MDC2
71#error MDC2 is disabled.
72#endif
73
74#define MDC2_BLOCK 8
75#define MDC2_DIGEST_LENGTH 16
76
77typedef struct mdc2_ctx_st
78 {
79 unsigned int num;
80 unsigned char data[MDC2_BLOCK];
81 DES_cblock h,hh;
82 int pad_type; /* either 1 or 2, default 1 */
83 } MDC2_CTX;
84
85
86int MDC2_Init(MDC2_CTX *c);
87int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len);
88int MDC2_Final(unsigned char *md, MDC2_CTX *c);
89unsigned char *MDC2(const unsigned char *d, size_t n,
90 unsigned char *md);
91
92#ifdef __cplusplus
93}
94#endif
95
96#endif
97
diff --git a/src/lib/libssl/src/crypto/mdc2/mdc2_one.c b/src/lib/libssl/src/crypto/mdc2/mdc2_one.c
deleted file mode 100644
index 8f922b1c7d..0000000000
--- a/src/lib/libssl/src/crypto/mdc2/mdc2_one.c
+++ /dev/null
@@ -1,77 +0,0 @@
1/* $OpenBSD: mdc2_one.c,v 1.4 2014/07/11 08:44:49 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
61#include <openssl/crypto.h>
62#include <openssl/mdc2.h>
63
64unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md)
65 {
66 MDC2_CTX c;
67 static unsigned char m[MDC2_DIGEST_LENGTH];
68
69 if (md == NULL) md=m;
70 if (!MDC2_Init(&c))
71 return NULL;
72 MDC2_Update(&c,d,n);
73 MDC2_Final(md,&c);
74 OPENSSL_cleanse(&c,sizeof(c)); /* security consideration */
75 return(md);
76 }
77
diff --git a/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c b/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c
deleted file mode 100644
index b4b0068d59..0000000000
--- a/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c
+++ /dev/null
@@ -1,179 +0,0 @@
1/* $OpenBSD: mdc2dgst.c,v 1.7 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 <stdlib.h>
61#include <string.h>
62#include <openssl/crypto.h>
63#include <openssl/des.h>
64#include <openssl/mdc2.h>
65
66#undef c2l
67#define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \
68 l|=((DES_LONG)(*((c)++)))<< 8L, \
69 l|=((DES_LONG)(*((c)++)))<<16L, \
70 l|=((DES_LONG)(*((c)++)))<<24L)
71
72#undef l2c
73#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
74 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
75 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
76 *((c)++)=(unsigned char)(((l)>>24L)&0xff))
77
78static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len);
79int MDC2_Init(MDC2_CTX *c)
80 {
81 c->num=0;
82 c->pad_type=1;
83 memset(&(c->h[0]),0x52,MDC2_BLOCK);
84 memset(&(c->hh[0]),0x25,MDC2_BLOCK);
85 return 1;
86 }
87
88int MDC2_Update(MDC2_CTX *c, const unsigned char *in, size_t len)
89 {
90 size_t i,j;
91
92 i=c->num;
93 if (i != 0)
94 {
95 if (i+len < MDC2_BLOCK)
96 {
97 /* partial block */
98 memcpy(&(c->data[i]),in,len);
99 c->num+=(int)len;
100 return 1;
101 }
102 else
103 {
104 /* filled one */
105 j=MDC2_BLOCK-i;
106 memcpy(&(c->data[i]),in,j);
107 len-=j;
108 in+=j;
109 c->num=0;
110 mdc2_body(c,&(c->data[0]),MDC2_BLOCK);
111 }
112 }
113 i=len&~((size_t)MDC2_BLOCK-1);
114 if (i > 0) mdc2_body(c,in,i);
115 j=len-i;
116 if (j > 0)
117 {
118 memcpy(&(c->data[0]),&(in[i]),j);
119 c->num=(int)j;
120 }
121 return 1;
122 }
123
124static void mdc2_body(MDC2_CTX *c, const unsigned char *in, size_t len)
125 {
126 DES_LONG tin0,tin1;
127 DES_LONG ttin0,ttin1;
128 DES_LONG d[2],dd[2];
129 DES_key_schedule k;
130 unsigned char *p;
131 size_t i;
132
133 for (i=0; i<len; i+=8)
134 {
135 c2l(in,tin0); d[0]=dd[0]=tin0;
136 c2l(in,tin1); d[1]=dd[1]=tin1;
137 c->h[0]=(c->h[0]&0x9f)|0x40;
138 c->hh[0]=(c->hh[0]&0x9f)|0x20;
139
140 DES_set_odd_parity(&c->h);
141 DES_set_key_unchecked(&c->h,&k);
142 DES_encrypt1(d,&k,1);
143
144 DES_set_odd_parity(&c->hh);
145 DES_set_key_unchecked(&c->hh,&k);
146 DES_encrypt1(dd,&k,1);
147
148 ttin0=tin0^dd[0];
149 ttin1=tin1^dd[1];
150 tin0^=d[0];
151 tin1^=d[1];
152
153 p=c->h;
154 l2c(tin0,p);
155 l2c(ttin1,p);
156 p=c->hh;
157 l2c(ttin0,p);
158 l2c(tin1,p);
159 }
160 }
161
162int MDC2_Final(unsigned char *md, MDC2_CTX *c)
163 {
164 unsigned int i;
165 int j;
166
167 i=c->num;
168 j=c->pad_type;
169 if ((i > 0) || (j == 2))
170 {
171 if (j == 2)
172 c->data[i++]=0x80;
173 memset(&(c->data[i]),0,MDC2_BLOCK-i);
174 mdc2_body(c,c->data,MDC2_BLOCK);
175 }
176 memcpy(md,(char *)c->h,MDC2_BLOCK);
177 memcpy(&(md[MDC2_BLOCK]),(char *)c->hh,MDC2_BLOCK);
178 return 1;
179 }
diff --git a/src/lib/libssl/src/crypto/opensslfeatures.h b/src/lib/libssl/src/crypto/opensslfeatures.h
index 811fac610f..a0fcc0078e 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_MDC2
9# define OPENSSL_NO_PSK 10# define OPENSSL_NO_PSK
10# define OPENSSL_NO_RC5 11# define OPENSSL_NO_RC5
11# define OPENSSL_NO_RFC3779 12# define OPENSSL_NO_RFC3779
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_pmeth.c b/src/lib/libssl/src/crypto/rsa/rsa_pmeth.c
index 09166e105b..0b648138ee 100644
--- a/src/lib/libssl/src/crypto/rsa/rsa_pmeth.c
+++ b/src/lib/libssl/src/crypto/rsa/rsa_pmeth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_pmeth.c,v 1.16 2015/02/11 04:05:14 beck Exp $ */ 1/* $OpenBSD: rsa_pmeth.c,v 1.17 2015/06/20 01:07:25 doug Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -178,18 +178,7 @@ pkey_rsa_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
178 return -1; 178 return -1;
179 } 179 }
180 180
181 if (EVP_MD_type(rctx->md) == NID_mdc2) { 181 if (rctx->pad_mode == RSA_X931_PADDING) {
182 unsigned int sltmp;
183
184 if (rctx->pad_mode != RSA_PKCS1_PADDING)
185 return -1;
186 ret = RSA_sign_ASN1_OCTET_STRING(NID_mdc2, tbs, tbslen,
187 sig, &sltmp, rsa);
188
189 if (ret <= 0)
190 return ret;
191 ret = sltmp;
192 } else if (rctx->pad_mode == RSA_X931_PADDING) {
193 if (!setup_tbuf(rctx, ctx)) 182 if (!setup_tbuf(rctx, ctx))
194 return -1; 183 return -1;
195 memcpy(rctx->tbuf, tbs, tbslen); 184 memcpy(rctx->tbuf, tbs, tbslen);
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_sign.c b/src/lib/libssl/src/crypto/rsa/rsa_sign.c
index a446b563b3..09d8ef329d 100644
--- a/src/lib/libssl/src/crypto/rsa/rsa_sign.c
+++ b/src/lib/libssl/src/crypto/rsa/rsa_sign.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_sign.c,v 1.22 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: rsa_sign.c,v 1.23 2015/06/20 01:07:25 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 *
@@ -180,21 +180,6 @@ int_rsa_verify(int dtype, const unsigned char *m, unsigned int m_len,
180 if (i <= 0) 180 if (i <= 0)
181 goto err; 181 goto err;
182 182
183 /*
184 * Oddball MDC2 case: signature can be OCTET STRING.
185 * check for correct tag and length octets.
186 */
187 if (dtype == NID_mdc2 && i == 18 && s[0] == 0x04 && s[1] == 0x10) {
188 if (rm) {
189 memcpy(rm, s + 2, 16);
190 *prm_len = 16;
191 ret = 1;
192 } else if (memcmp(m, s + 2, 16))
193 RSAerr(RSA_F_INT_RSA_VERIFY, RSA_R_BAD_SIGNATURE);
194 else
195 ret = 1;
196 }
197
198 /* Special case: SSL signature */ 183 /* Special case: SSL signature */
199 if (dtype == NID_md5_sha1) { 184 if (dtype == NID_md5_sha1) {
200 if (i != SSL_SIG_LENGTH || memcmp(s, m, SSL_SIG_LENGTH)) 185 if (i != SSL_SIG_LENGTH || memcmp(s, m, SSL_SIG_LENGTH))
diff --git a/src/lib/libssl/src/doc/apps/ca.pod b/src/lib/libssl/src/doc/apps/ca.pod
index 7294627d16..ecbe7954d6 100644
--- a/src/lib/libssl/src/doc/apps/ca.pod
+++ b/src/lib/libssl/src/doc/apps/ca.pod
@@ -159,7 +159,7 @@ the number of days to certify the certificate for.
159 159
160=item B<-md alg> 160=item B<-md alg>
161 161
162the message digest to use. Possible values include md5, sha1 and mdc2. 162the message digest to use. Possible values include md5 and sha1.
163This option also applies to CRLs. 163This option also applies to CRLs.
164 164
165=item B<-policy arg> 165=item B<-policy arg>
diff --git a/src/lib/libssl/src/doc/apps/dgst.pod b/src/lib/libssl/src/doc/apps/dgst.pod
index da690472a3..d8b2abc6fb 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, mdc2, ripemd160 - message digests 5dgst, md5, md4, md2, sha1, sha, 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|-mdc2|-ripemd160|-dss1>] 10[B<-md5|-md4|-md2|-sha1|-sha|-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|mdc2|ripemd160>] 25[B<md5|md4|md2|sha1|sha|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 c40b50d950..718d679dbb 100644
--- a/src/lib/libssl/src/doc/apps/openssl.pod
+++ b/src/lib/libssl/src/doc/apps/openssl.pod
@@ -271,10 +271,6 @@ MD2 Digest
271 271
272MD5 Digest 272MD5 Digest
273 273
274=item B<mdc2>
275
276MDC2 Digest
277
278=item B<rmd160> 274=item B<rmd160>
279 275
280RMD-160 Digest 276RMD-160 Digest
diff --git a/src/lib/libssl/src/doc/apps/req.pod b/src/lib/libssl/src/doc/apps/req.pod
index 4f6d64766d..3d556bd968 100644
--- a/src/lib/libssl/src/doc/apps/req.pod
+++ b/src/lib/libssl/src/doc/apps/req.pod
@@ -387,7 +387,7 @@ option. For compatibility B<encrypt_rsa_key> is an equivalent option.
387=item B<default_md> 387=item B<default_md>
388 388
389This option specifies the digest algorithm to use. Possible values 389This option specifies the digest algorithm to use. Possible values
390include B<md5 sha1 mdc2>. If not present then MD5 is used. This 390include B<md5 sha1>. If not present then MD5 is used. This
391option can be overridden on the command line. 391option can be overridden on the command line.
392 392
393=item B<string_mask> 393=item B<string_mask>
diff --git a/src/lib/libssl/src/doc/apps/speed.pod b/src/lib/libssl/src/doc/apps/speed.pod
index 1cd1998d16..c309d9a060 100644
--- a/src/lib/libssl/src/doc/apps/speed.pod
+++ b/src/lib/libssl/src/doc/apps/speed.pod
@@ -9,7 +9,6 @@ speed - test library performance
9B<openssl speed> 9B<openssl speed>
10[B<-engine id>] 10[B<-engine id>]
11[B<md2>] 11[B<md2>]
12[B<mdc2>]
13[B<md5>] 12[B<md5>]
14[B<hmac>] 13[B<hmac>]
15[B<sha1>] 14[B<sha1>]
diff --git a/src/lib/libssl/src/doc/apps/ts.pod b/src/lib/libssl/src/doc/apps/ts.pod
index 1abf9df566..3075b6887a 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<-mdc2>|B<-ripemd160>|B<...>] 15[B<-md2>|B<-md4>|B<-md5>|B<-sha>|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<-mdc2>|B<-ripemd160>|B<...> 127=item B<-md2>|B<-md4>|B<-md5>|B<-sha>|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/apps/x509.pod b/src/lib/libssl/src/doc/apps/x509.pod
index e6ea9cd9d2..25471736a0 100644
--- a/src/lib/libssl/src/doc/apps/x509.pod
+++ b/src/lib/libssl/src/doc/apps/x509.pod
@@ -50,7 +50,7 @@ B<openssl> B<x509>
50[B<-CAserial filename>] 50[B<-CAserial filename>]
51[B<-text>] 51[B<-text>]
52[B<-C>] 52[B<-C>]
53[B<-md2|-md5|-sha1|-mdc2>] 53[B<-md2|-md5|-sha1>]
54[B<-clrext>] 54[B<-clrext>]
55[B<-extfile filename>] 55[B<-extfile filename>]
56[B<-extensions section>] 56[B<-extensions section>]
@@ -96,7 +96,7 @@ if this option is not specified.
96This specifies the output filename to write to or standard output by 96This specifies the output filename to write to or standard output by
97default. 97default.
98 98
99=item B<-md2|-md5|-sha1|-mdc2> 99=item B<-md2|-md5|-sha1>
100 100
101the digest to use. This affects any signing or display option that uses a message 101the digest to use. This affects any signing or display option that uses a message
102digest, such as the B<-fingerprint>, B<-signkey> and B<-CA> options. If not 102digest, such as the B<-fingerprint>, B<-signkey> and B<-CA> options. If not
diff --git a/src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod b/src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod
index 4b48080b4a..ccb19fc0a7 100644
--- a/src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod
+++ b/src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod
@@ -8,7 +8,7 @@ EVP_MD_CTX_copy_ex, EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type,
8EVP_MD_size, EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size, 8EVP_MD_size, EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size,
9EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null, EVP_md2, EVP_md5, EVP_sha, 9EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null, EVP_md2, EVP_md5, EVP_sha,
10EVP_sha1, EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_dss, EVP_dss1, 10EVP_sha1, EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_dss, EVP_dss1,
11EVP_mdc2, EVP_ripemd160, EVP_get_digestbyname, EVP_get_digestbynid, 11EVP_ripemd160, EVP_get_digestbyname, EVP_get_digestbynid,
12EVP_get_digestbyobj - EVP digest routines 12EVP_get_digestbyobj - EVP digest routines
13 13
14=head1 SYNOPSIS 14=head1 SYNOPSIS
@@ -53,7 +53,6 @@ EVP_get_digestbyobj - EVP digest routines
53 const EVP_MD *EVP_sha1(void); 53 const EVP_MD *EVP_sha1(void);
54 const EVP_MD *EVP_dss(void); 54 const EVP_MD *EVP_dss(void);
55 const EVP_MD *EVP_dss1(void); 55 const EVP_MD *EVP_dss1(void);
56 const EVP_MD *EVP_mdc2(void);
57 const EVP_MD *EVP_ripemd160(void); 56 const EVP_MD *EVP_ripemd160(void);
58 57
59 const EVP_MD *EVP_sha224(void); 58 const EVP_MD *EVP_sha224(void);
@@ -134,8 +133,8 @@ algorithms are no longer linked this function is only retained for
134compatibility reasons. 133compatibility reasons.
135 134
136EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_sha224(), EVP_sha256(), 135EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_sha224(), EVP_sha256(),
137EVP_sha384(), EVP_sha512(), EVP_mdc2() and EVP_ripemd160() return B<EVP_MD> 136EVP_sha384(), EVP_sha512() and EVP_ripemd160() return B<EVP_MD>
138structures for the MD2, MD5, SHA, SHA1, SHA224, SHA256, SHA384, SHA512, MDC2 137structures for the MD2, MD5, SHA, SHA1, SHA224, SHA256, SHA384, SHA512
139and RIPEMD160 digest algorithms respectively. 138and RIPEMD160 digest algorithms respectively.
140 139
141EVP_dss() and EVP_dss1() return B<EVP_MD> structures for SHA and SHA1 digest 140EVP_dss() and EVP_dss1() return B<EVP_MD> structures for SHA and SHA1 digest
@@ -165,7 +164,7 @@ EVP_MD_size(), EVP_MD_block_size(), EVP_MD_CTX_size() and
165EVP_MD_CTX_block_size() return the digest or block size in bytes. 164EVP_MD_CTX_block_size() return the digest or block size in bytes.
166 165
167EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_dss(), 166EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), EVP_dss(),
168EVP_dss1(), EVP_mdc2() and EVP_ripemd160() return pointers to the 167EVP_dss1() and EVP_ripemd160() return pointers to the
169corresponding EVP_MD structures. 168corresponding EVP_MD structures.
170 169
171EVP_get_digestbyname(), EVP_get_digestbynid() and EVP_get_digestbyobj() 170EVP_get_digestbyname(), EVP_get_digestbynid() and EVP_get_digestbyobj()
@@ -253,7 +252,7 @@ digest name passed on the command line.
253=head1 SEE ALSO 252=head1 SEE ALSO
254 253
255L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 254L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
256L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 255L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
257L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 256L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
258 257
259=head1 HISTORY 258=head1 HISTORY
@@ -266,7 +265,7 @@ EVP_MD_CTX_cleanup(), EVP_MD_CTX_destroy(), EVP_DigestInit_ex()
266and EVP_DigestFinal_ex() were added in OpenSSL 0.9.7. 265and EVP_DigestFinal_ex() were added in OpenSSL 0.9.7.
267 266
268EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(), 267EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha(), EVP_sha1(),
269EVP_dss(), EVP_dss1(), EVP_mdc2() and EVP_ripemd160() were 268EVP_dss(), EVP_dss1() and EVP_ripemd160() were
270changed to return truely const EVP_MD * in OpenSSL 0.9.7. 269changed to return truely const EVP_MD * in OpenSSL 0.9.7.
271 270
272The link between digests and signing algorithms was fixed in OpenSSL 1.0 and 271The link between digests and signing algorithms was fixed in OpenSSL 1.0 and
diff --git a/src/lib/libssl/src/doc/crypto/EVP_DigestSignInit.pod b/src/lib/libssl/src/doc/crypto/EVP_DigestSignInit.pod
index e70b88a4a9..7fd4c22e79 100644
--- a/src/lib/libssl/src/doc/crypto/EVP_DigestSignInit.pod
+++ b/src/lib/libssl/src/doc/crypto/EVP_DigestSignInit.pod
@@ -74,7 +74,7 @@ which indicates the maximum possible signature for any set of parameters.
74L<EVP_DigestVerifyInit(3)|EVP_DigestVerifyInit(3)>, 74L<EVP_DigestVerifyInit(3)|EVP_DigestVerifyInit(3)>,
75L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, 75L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
76L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 76L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
77L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 77L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
78L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 78L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
79 79
80=head1 HISTORY 80=head1 HISTORY
diff --git a/src/lib/libssl/src/doc/crypto/EVP_DigestVerifyInit.pod b/src/lib/libssl/src/doc/crypto/EVP_DigestVerifyInit.pod
index 9eebb15d22..0817cf0b02 100644
--- a/src/lib/libssl/src/doc/crypto/EVP_DigestVerifyInit.pod
+++ b/src/lib/libssl/src/doc/crypto/EVP_DigestVerifyInit.pod
@@ -69,7 +69,7 @@ will occur.
69L<EVP_DigestSignInit(3)|EVP_DigestSignInit(3)>, 69L<EVP_DigestSignInit(3)|EVP_DigestSignInit(3)>,
70L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, 70L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
71L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 71L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
72L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 72L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
73L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 73L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
74 74
75=head1 HISTORY 75=head1 HISTORY
diff --git a/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod b/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod
index 5a1b67e006..9aafa3d63a 100644
--- a/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod
+++ b/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod
@@ -89,7 +89,7 @@ The previous two bugs are fixed in the newer EVP_SignDigest*() function.
89L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>, 89L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>,
90L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, 90L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
91L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 91L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
92L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 92L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
93L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 93L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
94 94
95=head1 HISTORY 95=head1 HISTORY
diff --git a/src/lib/libssl/src/doc/crypto/EVP_VerifyInit.pod b/src/lib/libssl/src/doc/crypto/EVP_VerifyInit.pod
index c665ee2ebc..b0d3f8e4c9 100644
--- a/src/lib/libssl/src/doc/crypto/EVP_VerifyInit.pod
+++ b/src/lib/libssl/src/doc/crypto/EVP_VerifyInit.pod
@@ -83,7 +83,7 @@ L<evp(3)|evp(3)>,
83L<EVP_SignInit(3)|EVP_SignInit(3)>, 83L<EVP_SignInit(3)|EVP_SignInit(3)>,
84L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, 84L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
85L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, 85L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
86L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 86L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
87L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> 87L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
88 88
89=head1 HISTORY 89=head1 HISTORY
diff --git a/src/lib/libssl/src/doc/crypto/crypto.pod b/src/lib/libssl/src/doc/crypto/crypto.pod
index 2349014fce..bbd6ce9ea9 100644
--- a/src/lib/libssl/src/doc/crypto/crypto.pod
+++ b/src/lib/libssl/src/doc/crypto/crypto.pod
@@ -41,7 +41,7 @@ L<x509(3)|x509(3)>, L<x509v3(3)|x509v3(3)>
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<md2(3)|md2(3)>, L<md4(3)|md4(3)>,
44L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, 44L<md5(3)|md5(3)>, L<ripemd(3)|ripemd(3)>,
45L<sha(3)|sha(3)> 45L<sha(3)|sha(3)>
46 46
47=item AUXILIARY FUNCTIONS 47=item AUXILIARY FUNCTIONS