summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--userspace/ncrypto_key.c4
-rw-r--r--userspace/ncrypto_session.c21
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;