On Wed, Oct 13, 2021 at 01:46:04PM +0200, Theo Buehler wrote:
> I don't think anyone will want to compile this against OpenSSL 0.9.7 or
> earlier. Calling OpenSSL_add_all_algorithms() has not been necessary
> for a few years, so let's remove libcrypto.c.
OK bluhm@
> Index: Makefile
> ===================================================================
> RCS file: /cvs/src/sbin/isakmpd/Makefile,v
> retrieving revision 1.89
> diff -u -p -r1.89 Makefile
> --- Makefile 11 Feb 2021 19:41:05 -0000 1.89
> +++ Makefile 13 Oct 2021 10:36:08 -0000
> @@ -38,7 +38,7 @@ SRCS= app.c attribute.c cert.c connecti
> field.c hash.c if.c ike_auth.c ike_main_mode.c \
> ike_phase_1.c ike_quick_mode.c init.c ipsec.c ipsec_fld.c \
> ipsec_num.c isakmpd.c isakmp_doi.c isakmp_fld.c isakmp_num.c \
> - key.c libcrypto.c log.c message.c \
> + key.c log.c message.c \
> prf.c sa.c sysdep.c timer.c transport.c virtual.c udp.c \
> ui.c util.c x509.c \
> pf_key_v2.c policy.c ike_aggressive.c isakmp_cfg.c \
> Index: init.c
> ===================================================================
> RCS file: /cvs/src/sbin/isakmpd/init.c,v
> retrieving revision 1.43
> diff -u -p -r1.43 init.c
> --- init.c 15 Jan 2018 09:54:48 -0000 1.43
> +++ init.c 13 Oct 2021 10:33:53 -0000
> @@ -71,7 +71,6 @@ init(void)
> group_init();
> ipsec_init();
> isakmp_doi_init();
> - libcrypto_init();
>
> timer_init();
>
> Index: key.c
> ===================================================================
> RCS file: /cvs/src/sbin/isakmpd/key.c,v
> retrieving revision 1.26
> diff -u -p -r1.26 key.c
> --- key.c 3 Feb 2017 08:23:46 -0000 1.26
> +++ key.c 13 Oct 2021 10:35:35 -0000
> @@ -119,19 +119,12 @@ key_internalize(int type, int private, u
> return strdup((char *)data);
> case ISAKMP_KEY_RSA:
> switch (private) {
> -#if OPENSSL_VERSION_NUMBER >= 0x00907000L
> case ISAKMP_KEYTYPE_PUBLIC:
> return d2i_RSAPublicKey(NULL,
> (const u_int8_t **)&data, datalen);
> case ISAKMP_KEYTYPE_PRIVATE:
> return d2i_RSAPrivateKey(NULL,
> (const u_int8_t **)&data, datalen);
> -#else
> - case ISAKMP_KEYTYPE_PUBLIC:
> - return d2i_RSAPublicKey(NULL, &data, datalen);
> - case ISAKMP_KEYTYPE_PRIVATE:
> - return d2i_RSAPrivateKey(NULL, &data, datalen);
> -#endif
> default:
> log_error("key_internalize: not public or private "
> "RSA key passed");
> Index: libcrypto.c
> ===================================================================
> RCS file: libcrypto.c
> diff -N libcrypto.c
> --- libcrypto.c 8 Apr 2005 22:32:10 -0000 1.19
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,44 +0,0 @@
> -/* $OpenBSD: libcrypto.c,v 1.19 2005/04/08 22:32:10 cloder Exp $ */
> -/* $EOM: libcrypto.c,v 1.14 2000/09/28 12:53:27 niklas Exp $ */
> -
> -/*
> - * Copyright (c) 1999, 2000, 2001 Niklas Hallqvist. All rights reserved.
> - * Copyright (c) 1999, 2000 Angelos D. Keromytis. All rights reserved.
> - *
> - * Redistribution and use in source and binary forms, with or without
> - * modification, are permitted provided that the following conditions
> - * are met:
> - * 1. Redistributions of source code must retain the above copyright
> - * notice, this list of conditions and the following disclaimer.
> - * 2. Redistributions in binary form must reproduce the above copyright
> - * notice, this list of conditions and the following disclaimer in the
> - * documentation and/or other materials provided with the distribution.
> - *
> - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
> - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
> - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
> - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
> - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
> - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
> - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> - */
> -
> -/*
> - * This code was written under funding by Ericsson Radio Systems.
> - */
> -
> -#include "libcrypto.h"
> -
> -void
> -libcrypto_init(void)
> -{
> - /* Add all algorithms known by SSL */
> -#if OPENSSL_VERSION_NUMBER >= 0x00905100L
> - OpenSSL_add_all_algorithms();
> -#else
> - SSLeay_add_all_algorithms();
> -#endif
> -}
> Index: libcrypto.h
> ===================================================================
> RCS file: /cvs/src/sbin/isakmpd/libcrypto.h,v
> retrieving revision 1.18
> diff -u -p -r1.18 libcrypto.h
> --- libcrypto.h 11 Jul 2014 10:01:00 -0000 1.18
> +++ libcrypto.h 13 Oct 2021 10:35:14 -0000
> @@ -35,7 +35,6 @@
>
> #include <stdio.h>
>
> -/* XXX I want #include <ssl/cryptall.h> but we appear to not install meth.h
> */
> #include <openssl/ssl.h>
> #include <openssl/bio.h>
> #include <openssl/md5.h>
> @@ -43,7 +42,5 @@
> #include <openssl/rsa.h>
> #include <openssl/x509_vfy.h>
> #include <openssl/x509.h>
> -
> -extern void libcrypto_init(void);
>
> #endif /* _LIBCRYPTO_H_ */
> Index: x509.c
> ===================================================================
> RCS file: /cvs/src/sbin/isakmpd/x509.c,v
> retrieving revision 1.119
> diff -u -p -r1.119 x509.c
> --- x509.c 2 Jul 2021 11:15:12 -0000 1.119
> +++ x509.c 13 Oct 2021 10:33:18 -0000
> @@ -658,7 +658,6 @@ x509_read_from_dir(X509_STORE *ctx, char
> int
> x509_read_crls_from_dir(X509_STORE *ctx, char *name)
> {
> -#if OPENSSL_VERSION_NUMBER >= 0x00907000L
> FILE *crlfp;
> X509_CRL *crl;
> struct stat sb;
> @@ -729,8 +728,6 @@ x509_read_crls_from_dir(X509_STORE *ctx,
> X509_STORE_set_flags(ctx, X509_V_FLAG_CRL_CHECK);
> }
>
> -#endif /* OPENSSL_VERSION_NUMBER >=
> 0x00907000L */
> -
> return 1;
> }
>
> @@ -791,7 +788,6 @@ x509_crl_init(void)
> * is valid for OpenSSL versions prior to 0.9.7. For now, simply do not
> * support it.
> */
> -#if OPENSSL_VERSION_NUMBER >= 0x00907000L
> char *dirname;
> dirname = conf_get_str("X509-certificates", "CRL-directory");
> if (!dirname) {
> @@ -803,10 +799,6 @@ x509_crl_init(void)
> "x509_crl_init: x509_read_crls_from_dir failed"));
> return 0;
> }
> -#else
> - LOG_DBG((LOG_CRYPTO, 10, "x509_crl_init: CRL support only "
> - "with OpenSSL v0.9.7 or later"));
> -#endif
>
> return 1;
> }
> @@ -831,19 +823,11 @@ x509_cert_validate(void *scert)
> * we trust.
> */
> X509_STORE_CTX_init(&csc, x509_cas, cert, NULL);
> -#if OPENSSL_VERSION_NUMBER >= 0x00908000L
> /* XXX See comment in x509_read_crls_from_dir. */
> if (x509_cas->param->flags & X509_V_FLAG_CRL_CHECK) {
> X509_STORE_CTX_set_flags(&csc, X509_V_FLAG_CRL_CHECK);
> X509_STORE_CTX_set_flags(&csc, X509_V_FLAG_CRL_CHECK_ALL);
> }
> -#elif OPENSSL_VERSION_NUMBER >= 0x00907000L
> - /* XXX See comment in x509_read_crls_from_dir. */
> - if (x509_cas->flags & X509_V_FLAG_CRL_CHECK) {
> - X509_STORE_CTX_set_flags(&csc, X509_V_FLAG_CRL_CHECK);
> - X509_STORE_CTX_set_flags(&csc, X509_V_FLAG_CRL_CHECK_ALL);
> - }
> -#endif
> res = X509_verify_cert(&csc);
> err = csc.error;
> X509_STORE_CTX_cleanup(&csc);