[PATCH 00/12] KEYS: Use preparsing in most key types

From: David Howells
Date: Thu Mar 20 2014 - 08:04:47 EST

Here are a set of patches that make all but encrypted and trusted keys use
preparsing. Unfortunately, encrypted and trusted keys incorrectly use the
update op to alter a key, so other changes will need to be made for them.

These changes permit payload parsing when instantiating or updating a key to be
done before locks are taken and to determine the amount of quota that will be
required in advance. The latter will make it possible to do LRU discard before
any locks are taken.

They can be found here also:


David Howells (12):
KEYS: Provide a generic instantiation function
KEYS: struct key_preparsed_payload should have two payload pointers
KEYS: Allow expiry time to be set when preparsing a key
KEYS: Call ->free_preparse() even after ->preparse() returns an error
KEYS: user: Use key preparsing
KEYS: Ceph: Use key preparsing
KEYS: Ceph: Use user_match()
KEYS: DNS: Use key preparsing
KEYS: RxRPC: Use key preparsing
KEYS: big_key: Use key preparsing
KEYS: keyring: Provide key preparsing
KEYS: request_key_auth: Provide key preparsing

Documentation/security/keys.txt | 14 ++-
crypto/asymmetric_keys/asymmetric_type.c | 27 -----
crypto/asymmetric_keys/x509_public_key.c | 2
fs/nfs/idmap.c | 8 +
include/keys/big_key-type.h | 3 -
include/keys/user-type.h | 3 -
include/linux/key-type.h | 5 +
net/ceph/crypto.c | 26 +++--
net/dns_resolver/dns_key.c | 43 +++++---
net/rxrpc/ar-key.c | 165 ++++++++++++++++++------------
security/keys/big_key.c | 41 +++++--
security/keys/encrypted-keys/encrypted.c | 2
security/keys/key.c | 49 ++++++++-
security/keys/keyring.c | 34 ++++--
security/keys/request_key_auth.c | 13 ++
security/keys/user_defined.c | 41 ++++---
16 files changed, 291 insertions(+), 185 deletions(-)

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/