18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* Asymmetric public-key cryptography data parser 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * See Documentation/crypto/asymmetric-keys.rst 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved. 78c2ecf20Sopenharmony_ci * Written by David Howells (dhowells@redhat.com) 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#ifndef _KEYS_ASYMMETRIC_PARSER_H 118c2ecf20Sopenharmony_ci#define _KEYS_ASYMMETRIC_PARSER_H 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci/* 148c2ecf20Sopenharmony_ci * Key data parser. Called during key instantiation. 158c2ecf20Sopenharmony_ci */ 168c2ecf20Sopenharmony_cistruct asymmetric_key_parser { 178c2ecf20Sopenharmony_ci struct list_head link; 188c2ecf20Sopenharmony_ci struct module *owner; 198c2ecf20Sopenharmony_ci const char *name; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci /* Attempt to parse a key from the data blob passed to add_key() or 228c2ecf20Sopenharmony_ci * keyctl_instantiate(). Should also generate a proposed description 238c2ecf20Sopenharmony_ci * that the caller can optionally use for the key. 248c2ecf20Sopenharmony_ci * 258c2ecf20Sopenharmony_ci * Return EBADMSG if not recognised. 268c2ecf20Sopenharmony_ci */ 278c2ecf20Sopenharmony_ci int (*parse)(struct key_preparsed_payload *prep); 288c2ecf20Sopenharmony_ci}; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciextern int register_asymmetric_key_parser(struct asymmetric_key_parser *); 318c2ecf20Sopenharmony_ciextern void unregister_asymmetric_key_parser(struct asymmetric_key_parser *); 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci#endif /* _KEYS_ASYMMETRIC_PARSER_H */ 34