From: Michael Tremer Date: Tue, 9 Mar 2010 23:18:18 +0000 (+0100) Subject: Add cryptodev support to kernel. X-Git-Tag: v2.9-beta1~412^2~36^2 X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=commitdiff_plain;h=fb25052fb3f254f21a3d65273f606374d56aa00d Add cryptodev support to kernel. --- diff --git a/lfs/openssl b/lfs/openssl index 96c66bbb84..eaa5d654ca 100644 --- a/lfs/openssl +++ b/lfs/openssl @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-0.9.8k-cryptodev.diff ifeq "$(PADLOCK)" "1" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/openssl-0.9.8g-engine-padlock.patch endif diff --git a/src/patches/openssl-0.9.8k-cryptodev.diff b/src/patches/openssl-0.9.8k-cryptodev.diff new file mode 100644 index 0000000000..0a4793a2d8 --- /dev/null +++ b/src/patches/openssl-0.9.8k-cryptodev.diff @@ -0,0 +1,101 @@ +diff -ur openssl-0.9.8k/crypto/engine/eng_all.c openssl-0.9.8k.new/crypto/engine/eng_all.c +--- openssl-0.9.8k/crypto/engine/eng_all.c 2008-06-04 21:01:39.000000000 +0300 ++++ openssl-0.9.8k.new/crypto/engine/eng_all.c 2009-11-24 13:41:49.000000000 +0200 +@@ -104,16 +104,15 @@ + #endif + #endif + #ifndef OPENSSL_NO_HW +-#if defined(__OpenBSD__) || defined(__FreeBSD__) ++# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 500000) || __FreeBSD_version >= 500041) || defined(__linux__) + ENGINE_load_cryptodev(); +-#endif ++# endif + #if defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_NO_CAPIENG) + ENGINE_load_capi(); + #endif + #endif + } + +-#if defined(__OpenBSD__) || defined(__FreeBSD__) + void ENGINE_setup_bsd_cryptodev(void) { + static int bsd_cryptodev_default_loaded = 0; + if (!bsd_cryptodev_default_loaded) { +@@ -122,4 +121,3 @@ + } + bsd_cryptodev_default_loaded=1; + } +-#endif +diff -ur openssl-0.9.8k/crypto/engine/eng_cryptodev.c openssl-0.9.8k.new/crypto/engine/eng_cryptodev.c +--- openssl-0.9.8k/crypto/engine/eng_cryptodev.c 2004-06-15 14:45:42.000000000 +0300 ++++ openssl-0.9.8k.new/crypto/engine/eng_cryptodev.c 2009-11-24 13:45:31.000000000 +0200 +@@ -34,14 +34,15 @@ + #if (defined(__unix__) || defined(unix)) && !defined(USG) && \ + (defined(OpenBSD) || defined(__FreeBSD_version)) + #include +-# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 500000) || __FreeBSD_version >= 500041) +-# define HAVE_CRYPTODEV +-# endif + # if (OpenBSD >= 200110) + # define HAVE_SYSLOG_R + # endif + #endif + ++#if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 500000) || __FreeBSD_version >= 500041) || defined(__linux__) ++# define HAVE_CRYPTODEV ++#endif ++ + #ifndef HAVE_CRYPTODEV + + void +@@ -54,7 +55,12 @@ + #else + + #include +-#include ++#if defined(__linux__) ++# include ++# define HAVE_CRYPTODEV_NAME ++#else ++# include ++#endif + #include + #include + #include +@@ -77,7 +83,11 @@ + static int get_dev_crypto(void); + static int cryptodev_max_iv(int cipher); + static int cryptodev_key_length_valid(int cipher, int len); +-static int cipher_nid_to_cryptodev(int nid); ++#ifndef HAVE_CRYPTODEV_NAME ++ static int cipher_nid_to_cryptodev(int nid); ++#else ++ static char *cipher_nid_to_cryptodev_name(int nid); ++#endif + static int get_cryptodev_ciphers(const int **cnids); + static int get_cryptodev_digests(const int **cnids); + static int cryptodev_usable_ciphers(const int **nids); +diff -ur openssl-0.9.8k/crypto/engine/engine.h openssl-0.9.8k.new/crypto/engine/engine.h +--- openssl-0.9.8k/crypto/engine/engine.h 2008-06-04 21:01:40.000000000 +0300 ++++ openssl-0.9.8k.new/crypto/engine/engine.h 2009-11-24 13:41:49.000000000 +0200 +@@ -703,9 +703,7 @@ + * values. */ + void *ENGINE_get_static_state(void); + +-#if defined(__OpenBSD__) || defined(__FreeBSD__) + void ENGINE_setup_bsd_cryptodev(void); +-#endif + + /* BEGIN ERROR CODES */ + /* The following lines are auto generated by the script mkerr.pl. Any changes +diff -ur openssl-0.9.8k/crypto/evp/c_all.c openssl-0.9.8k.new/crypto/evp/c_all.c +--- openssl-0.9.8k/crypto/evp/c_all.c 2004-08-29 19:36:04.000000000 +0300 ++++ openssl-0.9.8k.new/crypto/evp/c_all.c 2009-11-24 13:41:49.000000000 +0200 +@@ -83,8 +83,6 @@ + OpenSSL_add_all_ciphers(); + OpenSSL_add_all_digests(); + #ifndef OPENSSL_NO_ENGINE +-# if defined(__OpenBSD__) || defined(__FreeBSD__) + ENGINE_setup_bsd_cryptodev(); +-# endif + #endif + }