GNU Linux-libre 4.19.211-gnu1
[releases.git] / include / keys / asymmetric-parser.h
1 /* Asymmetric public-key cryptography data parser
2  *
3  * See Documentation/crypto/asymmetric-keys.txt
4  *
5  * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
6  * Written by David Howells (dhowells@redhat.com)
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public Licence
10  * as published by the Free Software Foundation; either version
11  * 2 of the Licence, or (at your option) any later version.
12  */
13
14 #ifndef _KEYS_ASYMMETRIC_PARSER_H
15 #define _KEYS_ASYMMETRIC_PARSER_H
16
17 /*
18  * Key data parser.  Called during key instantiation.
19  */
20 struct asymmetric_key_parser {
21         struct list_head        link;
22         struct module           *owner;
23         const char              *name;
24
25         /* Attempt to parse a key from the data blob passed to add_key() or
26          * keyctl_instantiate().  Should also generate a proposed description
27          * that the caller can optionally use for the key.
28          *
29          * Return EBADMSG if not recognised.
30          */
31         int (*parse)(struct key_preparsed_payload *prep);
32 };
33
34 extern int register_asymmetric_key_parser(struct asymmetric_key_parser *);
35 extern void unregister_asymmetric_key_parser(struct asymmetric_key_parser *);
36
37 #endif /* _KEYS_ASYMMETRIC_PARSER_H */