summaryrefslogtreecommitdiffstats
path: root/sys/opencrypto/cryptodev.c
diff options
context:
space:
mode:
authorLuiz Otavio O Souza <luiz@netgate.com>2015-09-15 12:59:59 -0500
committerLuiz Otavio O Souza <luiz@netgate.com>2015-10-20 11:50:34 -0500
commit3265517c75228764d648177e0f07457acda04846 (patch)
treed6faf80ba5a0fd972c30d82dd7f3fee6087174e0 /sys/opencrypto/cryptodev.c
parent82e938d40482c4204047485108b5c145c0101b29 (diff)
downloadFreeBSD-src-3265517c75228764d648177e0f07457acda04846.zip
FreeBSD-src-3265517c75228764d648177e0f07457acda04846.tar.gz
MFC r262994:
allow the kern.cryptodevallowsoft sysctl to enable symetric/hashes too... This will allow us to more easily test the software versions of these routines... Considering that we've never had an software asymetric implmentation, it's doubtful anyone has this enabled... TAG: IPSEC-HEAD Issue: #4841
Diffstat (limited to 'sys/opencrypto/cryptodev.c')
-rw-r--r--sys/opencrypto/cryptodev.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/opencrypto/cryptodev.c b/sys/opencrypto/cryptodev.c
index 5e949ca..4d16833 100644
--- a/sys/opencrypto/cryptodev.c
+++ b/sys/opencrypto/cryptodev.c
@@ -351,11 +351,14 @@ cryptof_truncate(
static int
checkforsoftware(int crid)
{
- if (crid & CRYPTOCAP_F_SOFTWARE)
- return EINVAL; /* XXX */
- if ((crid & CRYPTOCAP_F_HARDWARE) == 0 &&
- (crypto_getcaps(crid) & CRYPTOCAP_F_HARDWARE) == 0)
- return EINVAL; /* XXX */
+
+ if (!crypto_devallowsoft) {
+ if (crid & CRYPTOCAP_F_SOFTWARE)
+ return EINVAL; /* XXX */
+ if ((crid & CRYPTOCAP_F_HARDWARE) == 0 &&
+ (crypto_getcaps(crid) & CRYPTOCAP_F_HARDWARE) == 0)
+ return EINVAL; /* XXX */
+ }
return 0;
}
OpenPOWER on IntegriCloud