#include <openssl/x509.h>\r
#include <openssl/pkcs7.h>\r
\r
+//\r
+// OID ASN.1 Value for SPC_INDIRECT_DATA_OBJID\r
+//\r
+UINT8 mSpcIndirectOidValue[] = {\r
+ 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x04\r
+ };\r
\r
/**\r
Verifies the validility of a PE/COFF Authenticode Signature as described in "Windows\r
UINT8 *SpcIndirectDataContent;\r
UINT8 Asn1Byte;\r
UINTN ContentSize;\r
+ UINT8 *SpcIndirectDataOid;\r
\r
//\r
// Check input parameters.\r
// some authenticode-specific structure. Use opaque ASN.1 string to retrieve\r
// PKCS#7 ContentInfo here.\r
//\r
+ SpcIndirectDataOid = (UINT8 *)(Pkcs7->d.sign->contents->type->data);\r
+ if (CompareMem (\r
+ SpcIndirectDataOid,\r
+ mSpcIndirectOidValue,\r
+ sizeof (mSpcIndirectOidValue)\r
+ ) != 0) {\r
+ //\r
+ // Un-matched SPC_INDIRECT_DATA_OBJID.\r
+ //\r
+ goto _Exit;\r
+ } \r
+\r
+\r
SpcIndirectDataContent = (UINT8 *)(Pkcs7->d.sign->contents->d.other->value.asn1_string->data);\r
\r
//\r