summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/opencrypto/cryptodev.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/opencrypto/cryptodev.c b/sys/opencrypto/cryptodev.c
index fa1b0d8..9c3490f 100644
--- a/sys/opencrypto/cryptodev.c
+++ b/sys/opencrypto/cryptodev.c
@@ -265,8 +265,14 @@ cryptof_ioctl(
}
error = crypto_newsession(&sid, (txform ? &crie : &cria), 1);
- if (error)
- goto bail;
+ if (error) {
+ if (crypto_devallowsoft) {
+ error = crypto_newsession(&sid,
+ (txform ? &crie : &cria), 0);
+ }
+ if (error)
+ goto bail;
+ }
cse = csecreate(fcr, sid, crie.cri_key, crie.cri_klen,
cria.cri_key, cria.cri_klen, sop->cipher, sop->mac, txform,
OpenPOWER on IntegriCloud