diff options
author | Miloslav Trmač <mitr@redhat.com> | 2010-08-06 00:22:48 +0200 |
---|---|---|
committer | Miloslav Trmač <mitr@redhat.com> | 2010-08-23 20:01:59 +0200 |
commit | 276569aa1c2ce3f2584c7286e11be671f85d1f65 (patch) | |
tree | 8fe828b0f1ca059cc04c5041d12794b5ed990557 /userspace/ncrypto_session.c | |
parent | 8b68956147faae4ce64c8a557c64ae2d004401d9 (diff) | |
download | cryptodev-linux-276569aa1c2ce3f2584c7286e11be671f85d1f65.tar.gz cryptodev-linux-276569aa1c2ce3f2584c7286e11be671f85d1f65.tar.xz cryptodev-linux-276569aa1c2ce3f2584c7286e11be671f85d1f65.zip |
Support NCR_OP_VERIFY in *_once_*
Diffstat (limited to 'userspace/ncrypto_session.c')
-rw-r--r-- | userspace/ncrypto_session.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/userspace/ncrypto_session.c b/userspace/ncrypto_session.c index 9f6d317..e37aa21 100644 --- a/userspace/ncrypto_session.c +++ b/userspace/ncrypto_session.c @@ -37,7 +37,17 @@ ncr_session_once_key_data(ncr_key_t key, ncr_key_params_t params, ncr_crypto_op_ if (ioctl(__ncr_file_descriptor, NCRIO_SESSION_ONCE, &io) < 0) return -1; - return io.op.data.kdata.output_size; + switch (io.op.err) { + case NCR_VERIFICATION_FAILED: + errno = EDOM; + return -1; + case NCR_SUCCESS: + errno = 0; + return io.op.data.kdata.output_size; + default: + errno = EFAULT; + return -1; + } } int @@ -70,7 +80,17 @@ ncr_session_once_direct_data(ncr_key_t key, ncr_key_params_t params, ncr_crypto_ if (ioctl(__ncr_file_descriptor, NCRIO_SESSION_ONCE, &io) < 0) return -1; - return io.op.data.udata.output_size; + switch (io.op.err) { + case NCR_VERIFICATION_FAILED: + errno = EDOM; + return -1; + case NCR_SUCCESS: + errno = 0; + return io.op.data.udata.output_size; + default: + errno = EFAULT; + return -1; + } } int |