KEYS: Split role of the keyring pointer for keyring restrict functions

The first argument to the restrict_link_func_t functions was a keyring
pointer. These functions are called by the key subsystem with this
argument set to the destination keyring, but restrict_link_by_signature
expects a pointer to the relevant trusted keyring.

Restrict functions may need something other than a single struct key
pointer to allow or reject key linkage, so the data used to make that
decision (such as the trust keyring) is moved to a new, fourth
argument. The first argument is now always the destination keyring.

Signed-off-by: Mat Martineau <[email protected]>
This commit is contained in:
Mat Martineau 2016-08-30 11:33:13 -07:00
commit aaf66c8838
8 changed files with 39 additions and 25 deletions

View file

@ -50,9 +50,10 @@ struct key;
struct key_type;
union key_payload;
extern int restrict_link_by_signature(struct key *trust_keyring,
extern int restrict_link_by_signature(struct key *dest_keyring,
const struct key_type *type,
const union key_payload *payload);
const union key_payload *payload,
struct key *trust_keyring);
extern int verify_signature(const struct key *key,
const struct public_key_signature *sig);