Microsoft is moving away from SHA1. As a result, many executable files now have two or more signatures; one uses the SHA1 digest for backward compatibility and one uses SHA256.
For example, if you look at the properties vstest.executionengine.exefrom Visual Studio 2013 (look at the properties in Windows 8 or Server 2012), you will see that it has 3 different signatures from 3 different certificates.
I already have a code that uses a combination CryptQueryObject, CryptMsgGetParamand .NET SignedCms, but he sees only one of the three signatures. It seems that there is only one message with one signatory.
I need to get certificate information for all signatures. How are multiple signatures modeled - is it several messages or several subscribers in one message? Has Microsoft added new APIs or new flags to access multiple signatures?
source
share