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 #ifdef __UBOOT__ 31 struct pkcs7_signed_info; 32 struct x509_certificate; 33 34 int pkcs7_verify_one(struct pkcs7_message *pkcs7, 35 struct pkcs7_signed_info *sinfo, 36 struct x509_certificate **signer); 37 #else 38 /* 39 * pkcs7_trust.c 40 */ 41 extern int pkcs7_validate_trust(struct pkcs7_message *pkcs7, 42 struct key *trust_keyring); 43 44 /* 45 * pkcs7_verify.c 46 */ 47 extern int pkcs7_verify(struct pkcs7_message *pkcs7, 48 enum key_being_used_for usage); 49 50 extern int pkcs7_supply_detached_data(struct pkcs7_message *pkcs7, 51 const void *data, size_t datalen); 52 #endif 53 54 #endif /* _CRYPTO_PKCS7_H */ 55