diff options
-rw-r--r-- | userspace/ncrypto_key.c | 4 | ||||
-rw-r--r-- | userspace/ncrypto_session.c | 21 |
2 files changed, 13 insertions, 12 deletions
diff --git a/userspace/ncrypto_key.c b/userspace/ncrypto_key.c index ca4cfeb..b5f2c92 100644 --- a/userspace/ncrypto_key.c +++ b/userspace/ncrypto_key.c @@ -243,7 +243,7 @@ ncr_key_wrap(ncr_key_t key, ncr_wrap_algorithm_t algorithm, ncr_key_params_t par struct ncr_key_wrap_st io; memset(&io, 0, sizeof(io)); - if (!key || !keytowrap || !idata || !idata_size || (algorithm == NCR_ALG_NONE)) { + if (!key || !keytowrap || !idata || !idata_size) { errno = EINVAL; return -1; } @@ -273,7 +273,7 @@ ncr_key_unwrap(ncr_key_t key, ncr_wrap_algorithm_t algorithm, ncr_key_params_t p struct ncr_key_wrap_st io; memset(&io, 0, sizeof(io)); - if (!key || !keytowrap || !idata || !idata_size || (algorithm == NCR_ALG_NONE)) { + if (!key || !keytowrap || !idata || !idata_size) { errno = EINVAL; return -1; } diff --git a/userspace/ncrypto_session.c b/userspace/ncrypto_session.c index f8c1784..94a494a 100644 --- a/userspace/ncrypto_session.c +++ b/userspace/ncrypto_session.c @@ -21,7 +21,7 @@ ncr_session_once_key_data(ncr_key_t key, ncr_key_params_t params, ncr_crypto_op_ io.init.algorithm = algorithm; io.init.key = key; - if (!params) + if (params) memmove(&io.init.params, params, sizeof(io.init.params)); io.init.op = op; io.op.data.kdata.input = input; @@ -37,7 +37,7 @@ 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 0; + return io.op.data.kdata.output_size; } int @@ -51,10 +51,10 @@ ncr_session_once_direct_data(ncr_key_t key, ncr_key_params_t params, ncr_crypto_ return -1; } - io.init.algorithm = algorithm; io.init.key = key; - if (!params) + if (params) memmove(&io.init.params, params, sizeof(io.init.params)); + io.init.algorithm = algorithm; io.init.op = op; io.op.data.udata.input = input; io.op.data.udata.input_size = input_size; @@ -70,7 +70,7 @@ 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 0; + return io.op.data.udata.output_size; } int @@ -86,7 +86,7 @@ ncr_session_init(ncr_session_t *session, ncr_key_t key, ncr_key_params_t params, io.algorithm = algorithm; io.key = key; - if (!params) + if (params) memmove(&io.params, params, sizeof(io.params)); io.op = op; @@ -168,9 +168,9 @@ ncr_session_final(ncr_session_t session, void *output, size_t output_size) } io.ses = session; - io.data.kdata.output = output; - io.data.kdata.output_size = output_size; - io.type = NCR_KEY_DATA; + io.data.udata.output = output; + io.data.udata.output_size = output_size; + io.type = NCR_DIRECT_DATA; if (__ncr_file_descriptor < 0) { errno = EBADF; @@ -185,7 +185,8 @@ ncr_session_final(ncr_session_t session, void *output, size_t output_size) errno = EDOM; return -1; case NCR_SUCCESS: - return (errno = 0); + errno = 0; + return io.data.udata.output_size; default: errno = EFAULT; return -1; |