xref: /linux/include/keys/asymmetric-parser.h (revision ec63e2a4897075e427c121d863bd89c44578094f)
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 */
38