iPXE
WinCertificate.h
Go to the documentation of this file.
1/** @file
2 GUID for UEFI WIN_CERTIFICATE structure.
3
4 Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 @par Revision Reference:
8 GUID defined in UEFI 2.0 spec.
9**/
10
11#ifndef __EFI_WIN_CERTIFICATE_H__
12#define __EFI_WIN_CERTIFICATE_H__
13
14FILE_LICENCE ( BSD2_PATENT );
15FILE_SECBOOT ( PERMITTED );
16
17//
18// _WIN_CERTIFICATE.wCertificateType
19//
20#define WIN_CERT_TYPE_PKCS_SIGNED_DATA 0x0002
21#define WIN_CERT_TYPE_EFI_PKCS115 0x0EF0
22#define WIN_CERT_TYPE_EFI_GUID 0x0EF1
23
24///
25/// The WIN_CERTIFICATE structure is part of the PE/COFF specification.
26///
27typedef struct {
28 ///
29 /// The length of the entire certificate,
30 /// including the length of the header, in bytes.
31 ///
33 ///
34 /// The revision level of the WIN_CERTIFICATE
35 /// structure. The current revision level is 0x0200.
36 ///
38 ///
39 /// The certificate type. See WIN_CERT_TYPE_xxx for the UEFI
40 /// certificate types. The UEFI specification reserves the range of
41 /// certificate type values from 0x0EF0 to 0x0EFF.
42 ///
44 ///
45 /// The following is the actual certificate. The format of
46 /// the certificate depends on wCertificateType.
47 ///
48 /// UINT8 bCertificate[ANYSIZE_ARRAY];
49 ///
51
52///
53/// WIN_CERTIFICATE_UEFI_GUID.CertType
54///
55#define EFI_CERT_TYPE_RSA2048_SHA256_GUID \
56 {0xa7717414, 0xc616, 0x4977, {0x94, 0x20, 0x84, 0x47, 0x12, 0xa7, 0x35, 0xbf } }
57
58///
59/// WIN_CERTIFICATE_UEFI_GUID.CertData
60///
66
67///
68/// Certificate which encapsulates a GUID-specific digital signature
69///
70typedef struct {
71 ///
72 /// This is the standard WIN_CERTIFICATE header, where
73 /// wCertificateType is set to WIN_CERT_TYPE_EFI_GUID.
74 ///
76 ///
77 /// This is the unique id which determines the
78 /// format of the CertData. .
79 ///
81 ///
82 /// The following is the certificate data. The format of
83 /// the data is determined by the CertType.
84 /// If CertType is EFI_CERT_TYPE_RSA2048_SHA256_GUID,
85 /// the CertData will be EFI_CERT_BLOCK_RSA_2048_SHA256 structure.
86 ///
89
90///
91/// Certificate which encapsulates the RSASSA_PKCS1-v1_5 digital signature.
92///
93/// The WIN_CERTIFICATE_UEFI_PKCS1_15 structure is derived from
94/// WIN_CERTIFICATE and encapsulate the information needed to
95/// implement the RSASSA-PKCS1-v1_5 digital signature algorithm as
96/// specified in RFC2437.
97///
98typedef struct {
99 ///
100 /// This is the standard WIN_CERTIFICATE header, where
101 /// wCertificateType is set to WIN_CERT_TYPE_UEFI_PKCS1_15.
102 ///
104 ///
105 /// This is the hashing algorithm which was performed on the
106 /// UEFI executable when creating the digital signature.
107 ///
109 ///
110 /// The following is the actual digital signature. The
111 /// size of the signature is the same size as the key
112 /// (1024-bit key is 128 bytes) and can be determined by
113 /// subtracting the length of the other parts of this header
114 /// from the total length of the certificate as found in
115 /// Hdr.dwLength.
116 ///
117 /// UINT8 Signature[];
118 ///
120
122
123#endif
unsigned short UINT16
2-byte unsigned value.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
EFI_GUID gEfiCertTypeRsa2048Sha256Guid
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
WIN_CERTIFICATE_UEFI_GUID.CertData.
Certificate which encapsulates the RSASSA_PKCS1-v1_5 digital signature.
WIN_CERTIFICATE Hdr
This is the standard WIN_CERTIFICATE header, where wCertificateType is set to WIN_CERT_TYPE_UEFI_PKCS...
EFI_GUID HashAlgorithm
This is the hashing algorithm which was performed on the UEFI executable when creating the digital si...
Certificate which encapsulates a GUID-specific digital signature.
UINT8 CertData[1]
The following is the certificate data.
WIN_CERTIFICATE Hdr
This is the standard WIN_CERTIFICATE header, where wCertificateType is set to WIN_CERT_TYPE_EFI_GUID.
EFI_GUID CertType
This is the unique id which determines the format of the CertData.
The WIN_CERTIFICATE structure is part of the PE/COFF specification.
UINT16 wRevision
The revision level of the WIN_CERTIFICATE structure.
UINT32 dwLength
The length of the entire certificate, including the length of the header, in bytes.
UINT16 wCertificateType
The certificate type.