ICE81 validates the MsiDigitalCertificate table, MsiDigitalSignature table, MsiPatchCertificate table, and MsiPackageCertificate Table. This ICE custom action posts warnings for digital certificates that are unused or unreferenced, and it posts an error when the signed object does not exist or when the signed object's cabinet does not point to external data.
Note that ICE03 verifies that the entry in the Table column in the MsiDigitalSignature table is "Media."
ICE81 posts the following warnings for unused or unreferenced Digital Certificates.
|No reference to any of the records in the MsiDigitalCertificate table could be found in MsiDigitalSignature, MsiPackageCertificate, or MsiPatchCertificate tables.||This warning is returned if all records are unused.|
|No reference to the Digital Certificate  could be found in MsiDigitalSignature, MsiPackageCertificate, or MsiPatchCertificate tables.||This warning is returned if some records, but not all, are unused.|
ICE81 posts the following errors.
|Media Table does not exist. Hence all the entries in MsiDigitalSignature are incorrect||The signed object does not exist. This error is returned if the Media table does not exist but MsiDigitalSignature has entries.|
|Missing signed object  in Media Table||The signed object  does not exist. This error is returned if the Media table exists, but this entry in MsiDigitalSignature is not present in Media table.|
|The entry in table  with key  is signed. Hence the cabinet should point to an object outside the package (the value of Cabinet should NOT be prefixed with #)||The signed object's cabinet does not point to external data.  is table name.  is key in the Media table.|