| 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ | 
|---|
| 2 | /* Asymmetric public-key cryptography data parser | 
|---|
| 3 | * | 
|---|
| 4 | * See Documentation/crypto/asymmetric-keys.rst | 
|---|
| 5 | * | 
|---|
| 6 | * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved. | 
|---|
| 7 | * Written by David Howells (dhowells@redhat.com) | 
|---|
| 8 | */ | 
|---|
| 9 |  | 
|---|
| 10 | #ifndef _KEYS_ASYMMETRIC_PARSER_H | 
|---|
| 11 | #define _KEYS_ASYMMETRIC_PARSER_H | 
|---|
| 12 |  | 
|---|
| 13 | struct key_preparsed_payload; | 
|---|
| 14 |  | 
|---|
| 15 | /* | 
|---|
| 16 | * Key data parser.  Called during key instantiation. | 
|---|
| 17 | */ | 
|---|
| 18 | struct asymmetric_key_parser { | 
|---|
| 19 | struct list_head	link; | 
|---|
| 20 | struct module		*owner; | 
|---|
| 21 | const char		*name; | 
|---|
| 22 |  | 
|---|
| 23 | /* Attempt to parse a key from the data blob passed to add_key() or | 
|---|
| 24 | * keyctl_instantiate().  Should also generate a proposed description | 
|---|
| 25 | * that the caller can optionally use for the key. | 
|---|
| 26 | * | 
|---|
| 27 | * Return EBADMSG if not recognised. | 
|---|
| 28 | */ | 
|---|
| 29 | int (*parse)(struct key_preparsed_payload *prep); | 
|---|
| 30 | }; | 
|---|
| 31 |  | 
|---|
| 32 | extern int register_asymmetric_key_parser(struct asymmetric_key_parser *); | 
|---|
| 33 | extern void unregister_asymmetric_key_parser(struct asymmetric_key_parser *); | 
|---|
| 34 |  | 
|---|
| 35 | #endif /* _KEYS_ASYMMETRIC_PARSER_H */ | 
|---|
| 36 |  | 
|---|