@@ -48,11 +48,12 @@ int main(int argc, char *argv[])
4848 EFI_GUID vendor_guid ;
4949 struct stat st ;
5050 short unsigned int var [MAX_VAR_LEN ];
51- UINT32 attributes = EFI_VARIABLE_NON_VOLATILE
51+ uint32_t attributes = EFI_VARIABLE_NON_VOLATILE
5252 | EFI_VARIABLE_RUNTIME_ACCESS
5353 | EFI_VARIABLE_BOOTSERVICE_ACCESS
5454 | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS ;
55- EFI_TIME timestamp = { 0 };
55+ EFI_TIME timestamp ;
56+ memset (& timestamp , 0 , sizeof (timestamp ));
5657
5758 while (argc > 1 ) {
5859 if (strcmp ("--help" , argv [1 ]) == 0 ) {
@@ -95,7 +96,6 @@ int main(int argc, char *argv[])
9596 vendor_guid = (EFI_GUID ){ 0xd719b2cb , 0x3d3a , 0x4596 , {0xa3 , 0xbc , 0xda , 0xd0 , 0xe , 0x67 , 0x65 , 0x6f }};
9697 }
9798
98- memset (& timestamp , 0 , sizeof (timestamp ));
9999 time_t t ;
100100 struct tm * tm , tms ;
101101
@@ -141,20 +141,19 @@ int main(int argc, char *argv[])
141141 int fdefifile = open (efifile , O_RDONLY );
142142 if (fdefifile == -1 ) {
143143 fprintf (stderr , "failed to open file %s: " , efifile );
144- perror ("" );
145144 exit (1 );
146145 }
147146 fstat (fdefifile , & st );
148147
149148 /* signature is over variable name (no null), the vendor GUID, the
150149 * attributes, the timestamp and the contents */
151- int signbuf_header_len = varlen + sizeof (EFI_GUID ) + sizeof (UINT32 ) + sizeof (EFI_TIME );
150+ int signbuf_header_len = varlen + sizeof (EFI_GUID ) + sizeof (uint32_t ) + sizeof (EFI_TIME );
152151 int signbuflen = signbuf_header_len + st .st_size ;
153152 char * signbuf = malloc (signbuflen );
154153 memcpy (signbuf , var , varlen );
155154 memcpy (signbuf + varlen , & vendor_guid , sizeof (EFI_GUID ));
156- memcpy (signbuf + varlen + sizeof (EFI_GUID ), & attributes , sizeof (UINT32 ));
157- memcpy (signbuf + varlen + sizeof (EFI_GUID ) + sizeof (UINT32 ), & timestamp , sizeof (EFI_TIME ));
155+ memcpy (signbuf + varlen + sizeof (EFI_GUID ), & attributes , sizeof (uint32_t ));
156+ memcpy (signbuf + varlen + sizeof (EFI_GUID ) + sizeof (uint32_t ), & timestamp , sizeof (EFI_TIME ));
158157 read (fdefifile , signbuf + signbuf_header_len , st .st_size );
159158
160159 printf ("Authentication Payload size %d\n" , signbuflen );
@@ -172,15 +171,15 @@ int main(int argc, char *argv[])
172171 unsigned char * var_auth = malloc (outlen );
173172
174173 // The length of the entire certificate, including the length of the header, in bytes.
175- // -- Is this correct? What about sizeof(EFI_TIME) and st.st_size ?
176- UINT32 dwLength = sizeof (WIN_CERTIFICATE ) + sizeof (EFI_GUID ) + sigsize ;
174+ // -- Is the timestamp not part of the header ?
175+ uint32_t dwLength = sizeof (WIN_CERTIFICATE ) + sizeof (EFI_GUID ) + sigsize ;
177176
178177 // The revision level of the WIN_CERTIFICATE structure. The current revision level is 0x0200.
179- UINT16 wRevision = 0x0200 ;
178+ uint16_t wRevision = 0x0200 ;
180179
181180 // The certificate type. See WIN_CERT_TYPE_xxx for the UEFI certificate types.
182181 // The UEFI specification reserves the range of certificate type values from 0x0EF0 to 0x0EFF.
183- UINT16 wCertificateType = WIN_CERT_TYPE_EFI_GUID ;
182+ uint16_t wCertificateType = WIN_CERT_TYPE_EFI_GUID ;
184183
185184 // This is the unique id which determines the format of the CertData.
186185 EFI_GUID certType = EFI_CERT_TYPE_PKCS7_GUID ;
@@ -189,14 +188,14 @@ int main(int argc, char *argv[])
189188 memcpy (var_auth , & timestamp , sizeof (EFI_TIME ));
190189
191190 // UINT32 AuthInfo.Hdr.dwLength
192- memcpy (var_auth + sizeof (EFI_TIME ), & dwLength , sizeof (UINT32 ));
191+ memcpy (var_auth + sizeof (EFI_TIME ), & dwLength , sizeof (uint32_t ));
193192
194193 // UINT16 AuthInfo.Hdr.wRevision
195- memcpy (var_auth + sizeof (EFI_TIME ) + sizeof (UINT32 ), & wRevision , sizeof (UINT16 ));
194+ memcpy (var_auth + sizeof (EFI_TIME ) + sizeof (uint32_t ), & wRevision , sizeof (uint16_t ));
196195
197196 // UINT16 AuthInfo.Hdr.wCertificateType
198- memcpy (var_auth + sizeof (EFI_TIME ) + sizeof (UINT32 ) + sizeof (UINT16 ),
199- & wCertificateType , sizeof (UINT16 ));
197+ memcpy (var_auth + sizeof (EFI_TIME ) + sizeof (uint32_t ) + sizeof (uint16_t ),
198+ & wCertificateType , sizeof (uint16_t ));
200199
201200 // EFI_GUID AuthInfo.CertType
202201 memcpy (var_auth + sizeof (EFI_TIME ) + sizeof (WIN_CERTIFICATE ),
@@ -213,7 +212,6 @@ int main(int argc, char *argv[])
213212 int fdoutfile = open (outfile , O_CREAT |O_WRONLY |O_TRUNC , S_IWUSR |S_IRUSR );
214213 if (fdoutfile == -1 ) {
215214 fprintf (stderr , "failed to open %s: " , outfile );
216- perror ("" );
217215 exit (1 );
218216 }
219217
0 commit comments