diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-07-12 12:57:11 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-07-12 12:59:56 +0200 |
commit | 4f7b10f59b97b45d42577c4d6d33958d9565aef7 (patch) | |
tree | 0f78a952c73985d7e2d852f90f7319a52db785de /ncr-key-wrap.c | |
parent | 8d2faf007636a936a5346426f6fe5c251a1255bb (diff) | |
download | kernel-crypto-4f7b10f59b97b45d42577c4d6d33958d9565aef7.tar.gz kernel-crypto-4f7b10f59b97b45d42577c4d6d33958d9565aef7.tar.xz kernel-crypto-4f7b10f59b97b45d42577c4d6d33958d9565aef7.zip |
Initial additions to have PK encryption/decryption. Separated operations
on keys to read/write to prevent overwriting a key while using it. Several
other cleanups.
Diffstat (limited to 'ncr-key-wrap.c')
-rw-r--r-- | ncr-key-wrap.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/ncr-key-wrap.c b/ncr-key-wrap.c index 5fda82cb686..5510436502a 100644 --- a/ncr-key-wrap.c +++ b/ncr-key-wrap.c @@ -428,10 +428,10 @@ int ret; return ret; } - wkey = ncr_key_item_get( key_lst, wrap.keytowrap); - if (wkey == NULL) { + ret = ncr_key_item_get_read( &wkey, key_lst, wrap.keytowrap); + if (ret < 0) { err(); - return -EINVAL; + return ret; } if (!(wkey->flags & NCR_KEY_FLAG_WRAPPABLE)) { @@ -439,10 +439,9 @@ int ret; return -EPERM; } - key = ncr_key_item_get( key_lst, wrap.key.key); - if (key == NULL) { + ret = ncr_key_item_get_read( &key, key_lst, wrap.key.key); + if (ret < 0) { err(); - ret = -EINVAL; goto fail; } @@ -492,16 +491,15 @@ int ret; return ret; } - wkey = ncr_key_item_get( key_lst, wrap.keytowrap); - if (wkey == NULL) { + ret = ncr_key_item_get_write( &wkey, key_lst, wrap.keytowrap); + if (ret < 0) { err(); - return -EINVAL; + return ret; } - key = ncr_key_item_get( key_lst, wrap.key.key); - if (key == NULL) { + ret = ncr_key_item_get_read( &key, key_lst, wrap.key.key); + if (ret < 0) { err(); - ret = -EINVAL; goto fail; } @@ -554,10 +552,10 @@ int ret; return ret; } - wkey = ncr_key_item_get( key_lst, wrap.keytowrap); - if (wkey == NULL) { + ret = ncr_key_item_get_read( &wkey, key_lst, wrap.keytowrap); + if (ret < 0) { err(); - return -EINVAL; + return ret; } if (!(wkey->flags & NCR_KEY_FLAG_WRAPPABLE)) { @@ -613,10 +611,10 @@ int ret; return ret; } - wkey = ncr_key_item_get( key_lst, wrap.keytowrap); - if (wkey == NULL) { + ret = ncr_key_item_get_write( &wkey, key_lst, wrap.keytowrap); + if (ret < 0) { err(); - return -EINVAL; + return ret; } data = ncr_data_item_get(data_lst, wrap.data); |