Subject: Re: Adding opencrypto, crypto acceelerator to GENERIC kernels?
To: Jason Thorpe <thorpej@wasabisystems.com>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-userlevel
Date: 11/18/2003 16:07:23
In message <953B91FE-1A14-11D8-B449-000A957650EC@wasabisystems.com>
Jason Thorpe writes:
>I agree -- please add it.

I added stanzas for opencrypto and hardware crypto accelerators to the
i386 GENERIC config. (Besides the PCI devices we have, FreeBSD
supports one more PCI device, and I know of at least one pc-card
accelerator with open-source drivers.)

I'm going to leave it there for a couple of days, in case anyone has
feedback about placement. I'm also re-thinking whether to add an
attribute for the crypto framework, just in case someone wants the
framework (e.g., for fast-ipsec) but explicttly doesnt want
/dev/crypto.

[OpenSSL support]

Below is the patch I posted to tech-crypto in August.  I know Jason
has tried it; last call for feedback before I commit this, too...
Please send me an explicit cc: with any feedback.



Index: crypto/dist/openssl//crypto/engine/eng_all.c
===================================================================
RCS file: /cvsroot/src/crypto/dist/openssl/crypto/engine/eng_all.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 eng_all.c
--- crypto/dist/openssl//crypto/engine/eng_all.c	2003/07/24 08:27:13	1.1.1.1
+++ crypto/dist/openssl//crypto/engine/eng_all.c	2003/08/15 21:09:51
@@ -95,13 +95,13 @@
 #ifndef OPENSSL_NO_HW_4758_CCA
 	ENGINE_load_4758cca();
 #endif
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
+#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 	ENGINE_load_cryptodev();
 #endif
 #endif
 	}
 
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
+#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 void ENGINE_setup_bsd_cryptodev(void) {
 	static int bsd_cryptodev_default_loaded = 0;
 	if (!bsd_cryptodev_default_loaded) {
Index: crypto/dist/openssl//crypto/engine/hw_cryptodev.c
===================================================================
RCS file: /cvsroot/src/crypto/dist/openssl/crypto/engine/hw_cryptodev.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 hw_cryptodev.c
--- crypto/dist/openssl//crypto/engine/hw_cryptodev.c	2003/07/24 08:27:19	1.1.1.1
+++ crypto/dist/openssl//crypto/engine/hw_cryptodev.c	2003/08/15 21:09:52
@@ -33,9 +33,9 @@
 #include <openssl/engine.h>
 #include <openssl/evp.h>
 
-#if (defined(__unix__) || defined(unix)) && !defined(USG)
+#if (defined(__unix__) || defined(unix) || defined(__NetBSD__)) && !defined(USG)
 #include <sys/param.h>
-# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 500000) || __FreeBSD_version >= 500041)
+# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 500000) || __FreeBSD_version >= 500041) || (__NetBSD_Version__ >= 106210000)
 # define HAVE_CRYPTODEV
 # endif
 # if (OpenBSD >= 200110)
Index: crypto/dist/openssl//crypto/evp/c_all.c
===================================================================
RCS file: /cvsroot/src/crypto/dist/openssl/crypto/evp/c_all.c,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 c_all.c
--- crypto/dist/openssl//crypto/evp/c_all.c	2003/07/24 08:27:27	1.1.1.3
+++ crypto/dist/openssl//crypto/evp/c_all.c	2003/08/15 21:09:52
@@ -74,7 +74,7 @@
 	OpenSSL_add_all_ciphers();
 	OpenSSL_add_all_digests();
 #ifndef OPENSSL_NO_ENGINE
-# if defined(__OpenBSD__) || defined(__FreeBSD__)
+# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 	ENGINE_setup_bsd_cryptodev();
 # endif
 #endif