[PATCH] Keys: Allow in-kernel key requestor to pass auxiliary data to upcaller
The proposed NFS key type uses its own method of passing key requests to userspace (upcalling) rather than invoking /sbin/request-key. This is because the responsible userspace daemon should already be running and will be contacted through rpc_pipefs. This patch permits the NFS filesystem to pass auxiliary data to the upcall operation (struct key_type::request_key) so that the upcaller can use a pre-existing communications channel more easily. Signed-off-by: David Howells <dhowells@redhat.com> Acked-By: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
94583779e6
commit
4e54f08543
6 changed files with 108 additions and 30 deletions
|
@ -177,7 +177,8 @@ struct key {
|
|||
/*
|
||||
* kernel managed key type definition
|
||||
*/
|
||||
typedef int (*request_key_actor_t)(struct key *key, struct key *authkey, const char *op);
|
||||
typedef int (*request_key_actor_t)(struct key *key, struct key *authkey,
|
||||
const char *op, void *aux);
|
||||
|
||||
struct key_type {
|
||||
/* name of the type */
|
||||
|
@ -285,6 +286,11 @@ extern struct key *request_key(struct key_type *type,
|
|||
const char *description,
|
||||
const char *callout_info);
|
||||
|
||||
extern struct key *request_key_with_auxdata(struct key_type *type,
|
||||
const char *description,
|
||||
const char *callout_info,
|
||||
void *aux);
|
||||
|
||||
extern int key_validate(struct key *key);
|
||||
|
||||
extern key_ref_t key_create_or_update(key_ref_t keyring,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue