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 <crypto/pkcs7.h> 13 #include <crypto/hash_info.h> 14 15 struct pefile_context { 16 unsigned header_size; 17 unsigned image_checksum_offset; 18 unsigned cert_dirent_offset; 19 unsigned n_data_dirents; 20 unsigned n_sections; 21 unsigned certs_size; 22 unsigned sig_offset; 23 unsigned sig_len; 24 const struct section_header *secs; 25 26 /* PKCS#7 MS Individual Code Signing content */ 27 const void *digest; /* Digest */ 28 unsigned digest_len; /* Digest length */ 29 const char *digest_algo; /* Digest algorithm */ 30 }; 31 32 #define kenter(FMT, ...) \ 33 pr_devel("==> %s("FMT")\n", __func__, ##__VA_ARGS__) 34 #define kleave(FMT, ...) \ 35 pr_devel("<== %s()"FMT"\n", __func__, ##__VA_ARGS__) 36 37 /* 38 * mscode_parser.c 39 */ 40 extern int mscode_parse(void *_ctx, const void *content_data, size_t data_len, 41 size_t asn1hdrlen); 42