1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* PKCS#7 crypto data parser 3 * 4 * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved. 5 * Written by David Howells (dhowells@redhat.com) 6 */ 7 8 #ifndef _CRYPTO_PKCS7_H 9 #define _CRYPTO_PKCS7_H 10 11 #ifndef __UBOOT__ 12 #include <linux/verification.h> 13 #include <crypto/public_key.h> 14 #endif 15 16 struct key; 17 struct pkcs7_message; 18 19 /* 20 * pkcs7_parser.c 21 */ 22 extern struct pkcs7_message *pkcs7_parse_message(const void *data, 23 size_t datalen); 24 extern void pkcs7_free_message(struct pkcs7_message *pkcs7); 25 26 extern int pkcs7_get_content_data(const struct pkcs7_message *pkcs7, 27 const void **_data, size_t *_datalen, 28 size_t *_headerlen); 29 30 #ifndef __UBOOT__ 31 /* 32 * pkcs7_trust.c 33 */ 34 extern int pkcs7_validate_trust(struct pkcs7_message *pkcs7, 35 struct key *trust_keyring); 36 37 /* 38 * pkcs7_verify.c 39 */ 40 extern int pkcs7_verify(struct pkcs7_message *pkcs7, 41 enum key_being_used_for usage); 42 43 extern int pkcs7_supply_detached_data(struct pkcs7_message *pkcs7, 44 const void *data, size_t datalen); 45 #endif 46 47 #endif /* _CRYPTO_PKCS7_H */ 48