mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
keys: Implement update for the big_key type
Implement the ->update op for the big_key type. Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
521fd61c84
commit
b6f61c3146
@ -18,5 +18,6 @@ extern void big_key_revoke(struct key *key);
|
|||||||
extern void big_key_destroy(struct key *key);
|
extern void big_key_destroy(struct key *key);
|
||||||
extern void big_key_describe(const struct key *big_key, struct seq_file *m);
|
extern void big_key_describe(const struct key *big_key, struct seq_file *m);
|
||||||
extern long big_key_read(const struct key *key, char *buffer, size_t buflen);
|
extern long big_key_read(const struct key *key, char *buffer, size_t buflen);
|
||||||
|
extern int big_key_update(struct key *key, struct key_preparsed_payload *prep);
|
||||||
|
|
||||||
#endif /* _KEYS_BIG_KEY_TYPE_H */
|
#endif /* _KEYS_BIG_KEY_TYPE_H */
|
||||||
|
@ -47,7 +47,7 @@ struct key_type key_type_big_key = {
|
|||||||
.destroy = big_key_destroy,
|
.destroy = big_key_destroy,
|
||||||
.describe = big_key_describe,
|
.describe = big_key_describe,
|
||||||
.read = big_key_read,
|
.read = big_key_read,
|
||||||
/* no ->update(); don't add it without changing chacha20poly1305's nonce */
|
.update = big_key_update,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -191,6 +191,23 @@ void big_key_destroy(struct key *key)
|
|||||||
key->payload.data[big_key_data] = NULL;
|
key->payload.data[big_key_data] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Update a big key
|
||||||
|
*/
|
||||||
|
int big_key_update(struct key *key, struct key_preparsed_payload *prep)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = key_payload_reserve(key, prep->datalen);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
if (key_is_positive(key))
|
||||||
|
big_key_destroy(key);
|
||||||
|
|
||||||
|
return generic_key_instantiate(key, prep);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* describe the big_key key
|
* describe the big_key key
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user