aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/engine/eng_cryptodev.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2003-01-16 18:29:30 +0000
committerRichard Levitte <levitte@openssl.org>2003-01-16 18:29:30 +0000
commitc00cee00fd8756ca94c162794e02d7bf73a77ecf (patch)
tree0b8d727e1601b6e4aa424cf07e7dd3d619316c10 /crypto/engine/eng_cryptodev.c
parent8228f302ddcb8b80ddc3696ce68f74af8bf8ae44 (diff)
downloadopenssl-c00cee00fd8756ca94c162794e02d7bf73a77ecf.tar.gz
FreeBSD has /dev/crypto as well.
PR: 462
Diffstat (limited to 'crypto/engine/eng_cryptodev.c')
-rw-r--r--crypto/engine/eng_cryptodev.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/crypto/engine/eng_cryptodev.c b/crypto/engine/eng_cryptodev.c
index be7ed6bb3f..a658528d31 100644
--- a/crypto/engine/eng_cryptodev.c
+++ b/crypto/engine/eng_cryptodev.c
@@ -33,31 +33,28 @@
#include <openssl/engine.h>
#include <openssl/evp.h>
-#ifndef __OpenBSD__
-
-void
-ENGINE_load_cryptodev(void)
-{
- /* This is a NOP unless __OpenBSD__ is defined */
- return;
-}
-
-#else /* __OpenBSD__ */
-
-#include <sys/types.h>
+#if (defined(__unix__) || defined(unix)) && !defined(USG)
#include <sys/param.h>
+# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 50000) || __FreeBSD_version >= 50041)
+# define HAVE_CRYPTODEV
+# endif
+# if (OpenBSD >= 200110)
+# define HAVE_SYSLOG_R
+# endif
+#endif
-#if OpenBSD < 200112
+#ifndef HAVE_CRYPTODEV
void
ENGINE_load_cryptodev(void)
{
- /* This is a NOP unless we have release 3.0 (released december 2001) */
+ /* This is a NOP on platforms without /dev/crypto */
return;
}
-#else /* OpenBSD 3.0 or above */
-
+#else
+
+#include <sys/types.h>
#include <crypto/cryptodev.h>
#include <sys/ioctl.h>
#include <errno.h>
@@ -1032,12 +1029,18 @@ static DH_METHOD cryptodev_dh = {
static int
cryptodev_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)())
{
+#ifdef HAVE_SYSLOG_R
struct syslog_data sd = SYSLOG_DATA_INIT;
+#endif
switch (cmd) {
default:
+#ifdef HAVE_SYSLOG_R
syslog_r(LOG_ERR, &sd,
"cryptodev_ctrl: unknown command %d", cmd);
+#else
+ syslog(LOG_ERR, "cryptodev_ctrl: unknown command %d", cmd);
+#endif
break;
}
return (1);
@@ -1064,7 +1067,7 @@ ENGINE_load_cryptodev(void)
close(fd);
if (!ENGINE_set_id(engine, "cryptodev") ||
- !ENGINE_set_name(engine, "OpenBSD cryptodev engine") ||
+ !ENGINE_set_name(engine, "BSD cryptodev engine") ||
!ENGINE_set_ciphers(engine, cryptodev_engine_ciphers) ||
!ENGINE_set_digests(engine, cryptodev_engine_digests) ||
!ENGINE_set_ctrl_function(engine, cryptodev_ctrl) ||
@@ -1126,5 +1129,4 @@ ENGINE_load_cryptodev(void)
ERR_clear_error();
}
-#endif /* OpenBSD 3.0 or above */
-#endif /* __OpenBSD__ */
+#endif /* HAVE_CRYPTODEV */