1 /* PE Binary parser bits 2 * 3 * Copyright (C) 2014 Red Hat, Inc. All Rights Reserved. 4 * Written by David Howells (dhowells@redhat.com) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public Licence 8 * as published by the Free Software Foundation; either version 9 * 2 of the Licence, or (at your option) any later version. 10 */ 11 12 #include <linux/verify_pefile.h> 13 #include <crypto/pkcs7.h> 14 #include <crypto/hash_info.h> 15 16 struct pefile_context { 17 unsigned header_size; 18 unsigned image_checksum_offset; 19 unsigned cert_dirent_offset; 20 unsigned n_data_dirents; 21 unsigned n_sections; 22 unsigned certs_size; 23 unsigned sig_offset; 24 unsigned sig_len; 25 const struct section_header *secs; 26 struct pkcs7_message *pkcs7; 27 28 /* PKCS#7 MS Individual Code Signing content */ 29 const void *digest; /* Digest */ 30 unsigned digest_len; /* Digest length */ 31 enum hash_algo digest_algo; /* Digest algorithm */ 32 }; 33 34 #define kenter(FMT, ...) \ 35 pr_devel("==> %s("FMT")\n", __func__, ##__VA_ARGS__) 36 #define kleave(FMT, ...) \ 37 pr_devel("<== %s()"FMT"\n", __func__, ##__VA_ARGS__) 38 39 /* 40 * mscode_parser.c 41 */ 42 extern int mscode_parse(struct pefile_context *ctx); 43