Skip to content

Commit dae7bfe

Browse files
Wenxing-houliyi77
authored andcommitted
CryptoPkg: Fix ASN1 tag hardcode
Signed-off-by: Wenxing Hou <[email protected]>
1 parent 08b4438 commit dae7bfe

File tree

3 files changed

+52
-52
lines changed

3 files changed

+52
-52
lines changed

CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptAuthenticode.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,43 +77,43 @@ AuthenticodeVerify (
7777
End = Ptr + Len;
7878

7979
//ContentInfo
80-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
80+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
8181
return FALSE;
8282
}
8383
//ContentType
84-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x06) != 0) {
84+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OID) != 0) {
8585
return FALSE;
8686
}
8787

8888
Ptr += ObjLen;
8989
//content
90-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0xA0) != 0) {
90+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) != 0) {
9191
return FALSE;
9292
}
9393

9494
End = Ptr + ObjLen;
9595
//signedData
96-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
96+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
9797
return FALSE;
9898
}
9999
//version
100-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x02) != 0) {
100+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_INTEGER) != 0) {
101101
return FALSE;
102102
}
103103
Ptr += ObjLen;
104104
//digestAlgo
105-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x31) != 0) {
105+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET) != 0) {
106106
return FALSE;
107107
}
108108
Ptr += ObjLen;
109109

110110
//encapContentInfo
111-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
111+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
112112
return FALSE;
113113
}
114114
End = Ptr + ObjLen;
115115
//eContentType
116-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x06) != 0) {
116+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OID) != 0) {
117117
return FALSE;
118118
}
119119

@@ -135,7 +135,7 @@ AuthenticodeVerify (
135135

136136
Ptr += ObjLen;
137137
//eContent
138-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0xA0) != 0) {
138+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) != 0) {
139139
return FALSE;
140140
}
141141

CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptPkcs7VerifyEku.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -553,37 +553,37 @@ VerifyEKUsInPkcs7Signature (
553553
End = Ptr + Len;
554554

555555
//cert
556-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
556+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
557557
return FALSE;
558558
}
559559
//tbscert
560-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x02) != 0) {
560+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_INTEGER) != 0) {
561561
return FALSE;
562562
}
563563

564564
Ptr += ObjLen;
565565
//signature algo
566-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x31) != 0) {
566+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET) != 0) {
567567
return FALSE;
568568
}
569569

570570
Ptr += ObjLen;
571571
//signature
572-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
572+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
573573
return FALSE;
574574
}
575575

576576
Ptr += ObjLen;
577577
OldEnd = Ptr;
578578
//cert
579-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0xA0) != 0) {
579+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) != 0) {
580580
return FALSE;
581581
}
582582

583583
End = Ptr + ObjLen;
584584

585585
//leaf cert
586-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
586+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
587587
return FALSE;
588588
}
589589
Ptr += ObjLen;
@@ -593,7 +593,7 @@ VerifyEKUsInPkcs7Signature (
593593
break;
594594
}
595595
OldEnd = Ptr;
596-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
596+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
597597
return FALSE;
598598
}
599599

CryptoPkg/Library/BaseCryptLibMbedTls/Pk/CryptTs.c

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -150,98 +150,98 @@ ImageTimestampVerify (
150150
End = Ptr + Len;
151151

152152
//ContentInfo
153-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
153+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
154154
return FALSE;
155155
}
156156
//ContentType
157-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x06) != 0) {
157+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OID) != 0) {
158158
return FALSE;
159159
}
160160

161161
Ptr += ObjLen;
162162
//content
163-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0xA0) != 0) {
163+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) != 0) {
164164
return FALSE;
165165
}
166166

167167
End = Ptr + ObjLen;
168168
//signedData
169-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
169+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
170170
return FALSE;
171171
}
172172
//version
173-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x02) != 0) {
173+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_INTEGER) != 0) {
174174
return FALSE;
175175
}
176176
Ptr += ObjLen;
177177
//digestAlgo
178-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x31) != 0) {
178+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET) != 0) {
179179
return FALSE;
180180
}
181181
Ptr += ObjLen;
182182

183183
//encapContentInfo
184-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
184+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
185185
return FALSE;
186186
}
187187
Ptr += ObjLen;
188188

189189
//cert
190-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0xA0) != 0) {
190+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) != 0) {
191191
return FALSE;
192192
}
193193
Ptr += ObjLen;
194194

195195
TempPtr = Ptr;
196196
//OPTIONAL CRLs
197-
if (mbedtls_asn1_get_tag(&TempPtr, End, &ObjLen, 0xA0) == 0) {
197+
if (mbedtls_asn1_get_tag(&TempPtr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) == 0) {
198198
Ptr = TempPtr + ObjLen;
199199
}
200200

201201
//signerInfo
202-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x31) != 0) {
202+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET) != 0) {
203203
return FALSE;
204204
}
205205

206206
//sub parse
207207
//signerInfo
208-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
208+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
209209
return FALSE;
210210
}
211211
End = Ptr + ObjLen;
212212

213213
//version
214-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x02) != 0) {
214+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_INTEGER) != 0) {
215215
return FALSE;
216216
}
217217
Ptr += ObjLen;
218218

219219
//sid
220-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
220+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
221221
return FALSE;
222222
}
223223
Ptr += ObjLen;
224224

225225
//digestalgo
226-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
226+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
227227
return FALSE;
228228
}
229229
Ptr += ObjLen;
230230

231231
//OPTIONAL AuthenticatedAttributes
232232
TempPtr = Ptr;
233-
if (mbedtls_asn1_get_tag(&TempPtr, End, &ObjLen, 0xA0) == 0) {
233+
if (mbedtls_asn1_get_tag(&TempPtr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) == 0) {
234234
Ptr = TempPtr + ObjLen;
235235
}
236236

237237
//signaturealgo
238-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
238+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
239239
return FALSE;
240240
}
241241
Ptr += ObjLen;
242242

243243
//signature
244-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x04) != 0) {
244+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OCTET_STRING) != 0) {
245245
return FALSE;
246246
}
247247
Ptr += ObjLen;
@@ -252,12 +252,12 @@ ImageTimestampVerify (
252252
}
253253

254254
//Attribute
255-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
255+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
256256
return FALSE;
257257
}
258258

259259
//type
260-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x06) != 0) {
260+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OID) != 0) {
261261
return FALSE;
262262
}
263263

@@ -267,84 +267,84 @@ ImageTimestampVerify (
267267
Ptr += ObjLen;
268268

269269
//values
270-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x31) != 0) {
270+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET) != 0) {
271271
return FALSE;
272272
}
273273

274274
//values
275-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
275+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
276276
return FALSE;
277277
}
278278

279279
//signedData OID
280-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x06) != 0) {
280+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OID) != 0) {
281281
return FALSE;
282282
}
283283
Ptr += ObjLen;
284284

285285
//[0]
286-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0xA0) != 0) {
286+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) != 0) {
287287
return FALSE;
288288
}
289289

290-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
290+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
291291
return FALSE;
292292
}
293293

294294
//integer
295-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x02) != 0) {
295+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_INTEGER) != 0) {
296296
return FALSE;
297297
}
298298
Ptr += ObjLen;
299299
//SET
300-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x31) != 0) {
300+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET) != 0) {
301301
return FALSE;
302302
}
303303
Ptr += ObjLen;
304304

305-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
305+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
306306
return FALSE;
307307
}
308308
//tST OID
309-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x06) != 0) {
309+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OID) != 0) {
310310
return FALSE;
311311
}
312312
Ptr += ObjLen;
313313

314-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0xA0) != 0) {
314+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC) != 0) {
315315
return FALSE;
316316
}
317317

318-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x04) != 0) {
318+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OCTET_STRING) != 0) {
319319
return FALSE;
320320
}
321321

322-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
322+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
323323
return FALSE;
324324
}
325325
//Integer
326-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x02) != 0) {
326+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_INTEGER) != 0) {
327327
return FALSE;
328328
}
329329
Ptr += ObjLen;
330330
//policy OID
331-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x06) != 0) {
331+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_OID) != 0) {
332332
return FALSE;
333333
}
334334
Ptr += ObjLen;
335335
//sequence
336-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x30) != 0) {
336+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0) {
337337
return FALSE;
338338
}
339339
Ptr += ObjLen;
340340
//Integer
341-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x02) != 0) {
341+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_INTEGER) != 0) {
342342
return FALSE;
343343
}
344344
Ptr += ObjLen;
345345

346346
//GeneralizedTime
347-
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, 0x18) != 0) {
347+
if (mbedtls_asn1_get_tag(&Ptr, End, &ObjLen, MBEDTLS_ASN1_GENERALIZED_TIME) != 0) {
348348
return FALSE;
349349
}
350350

0 commit comments

Comments
 (0)