diff options
-rw-r--r-- | sys/opencrypto/cryptodev.c | 10 |
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, |