diff options
author | Miloslav Trmač <mitr@redhat.com> | 2010-08-06 00:14:43 +0200 |
---|---|---|
committer | Miloslav Trmač <mitr@redhat.com> | 2010-08-23 20:01:59 +0200 |
commit | 8b68956147faae4ce64c8a557c64ae2d004401d9 (patch) | |
tree | cecf32c5485fc13191f2dc662179bc1c5352d304 /userspace/ncrypto_session.c | |
parent | 4155025dac75b5a6782b0d97517b88ccc7912500 (diff) | |
download | cryptodev-linux-8b68956147faae4ce64c8a557c64ae2d004401d9.tar.gz cryptodev-linux-8b68956147faae4ce64c8a557c64ae2d004401d9.tar.xz cryptodev-linux-8b68956147faae4ce64c8a557c64ae2d004401d9.zip |
Support output data in NCRIO_SESSION_UPDATE
Diffstat (limited to 'userspace/ncrypto_session.c')
-rw-r--r-- | userspace/ncrypto_session.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/userspace/ncrypto_session.c b/userspace/ncrypto_session.c index b8f5b67..9f6d317 100644 --- a/userspace/ncrypto_session.c +++ b/userspace/ncrypto_session.c @@ -104,7 +104,7 @@ ncr_session_init(ncr_session_t *session, ncr_key_t key, ncr_key_params_t params, } int -ncr_session_update_key_data(ncr_session_t session, ncr_key_t input) +ncr_session_update_key_data(ncr_session_t session, ncr_key_t input, void *output, size_t output_size) { struct ncr_session_op_st io; memset(&io, 0, sizeof(io)); @@ -116,6 +116,8 @@ ncr_session_update_key_data(ncr_session_t session, ncr_key_t input) io.ses = session; io.data.kdata.input = input; + io.data.kdata.output = output; + io.data.kdata.output_size = output_size; io.type = NCR_KEY_DATA; if (__ncr_file_descriptor < 0) { @@ -126,11 +128,11 @@ ncr_session_update_key_data(ncr_session_t session, ncr_key_t input) if (ioctl(__ncr_file_descriptor, NCRIO_SESSION_UPDATE, &io) < 0) return -1; - return 0; + return io.data.kdata.output_size; } int -ncr_session_update_direct_data(ncr_session_t session, void *input, size_t input_size) +ncr_session_update_direct_data(ncr_session_t session, void *input, size_t input_size, void *output, size_t output_size) { struct ncr_session_op_st io; memset(&io, 0, sizeof(io)); @@ -143,6 +145,8 @@ ncr_session_update_direct_data(ncr_session_t session, void *input, size_t input_ io.ses = session; io.data.udata.input = input; io.data.udata.input_size = input_size; + io.data.udata.output = output; + io.data.udata.output_size = output_size; io.type = NCR_DIRECT_DATA; if (__ncr_file_descriptor < 0) { @@ -153,7 +157,7 @@ ncr_session_update_direct_data(ncr_session_t session, void *input, size_t input_ if (ioctl(__ncr_file_descriptor, NCRIO_SESSION_UPDATE, &io) < 0) return -1; - return 0; + return io.data.udata.output_size; } int |