blob: fee19b46e599055720d52c5bba8aec80bc67edf0 [file] [log] [blame]
Julian Hall29620bf2022-06-09 10:26:37 +01001/*
2 * Copyright (c) 2021-2023, Arm Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef COMMON_EFI_CERTIFICATE_H
8#define COMMON_EFI_CERTIFICATE_H
9
10#include <stdint.h>
11#include "efi_types.h"
12
13/* Certificate types (wCertificateType) */
14#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
15#define WIN_CERT_TYPE_EFI_PKCS115 0x0EF0
16#define WIN_CERT_TYPE_EFI_GUID 0x0EF1
17
18/* Current WIN_CERTIFICATE version */
19#define WIN_CERT_CURRENT_VERSION 0x0200
20
21/**
22 * The Authenticode WIN_CERTIFICATE structure
23 */
24typedef struct {
25
26 /* Length of certificate plus header in bytes */
27 uint32_t dwLength;
28
29 /* The revision of this structure */
30 uint16_t wRevision;
31
32 /* Certificate type */
33 uint16_t wCertificateType;
34
35 /* Certificate bytes follow this structure */
36
37} WIN_CERTIFICATE;
38
39/**
40 * Extends WIN_CERTIFICATE for a GUID defined certificate type
41 * (wCertificateType in WIN_CERTIFICATE set to WIN_CERT_TYPE_EFI_GUID).
42 */
43typedef struct {
44
45 WIN_CERTIFICATE Hdr;
46 EFI_GUID CertType;
47 uint8_t CertData[1];
48
49} WIN_CERTIFICATE_UEFI_GUID;
50
51
52#endif /* COMMON_EFI_CERTIFICATE_H */