Как из этой подписи извлечь имя подписавшего?
От: xmen  
Дата: 19.10.08 22:23
Оценка: 18 (3)
#Имя: FAQ.winapi. WinVerifyTrust.name
Здравствуйте, x64, Вы писали:

x64>Вдогонку, не знаешь по случаю как из этой подписи извлечь имя подписавшего? Т.е. например строку типа "Microsoft Windows Component Publisher", "Mozilla Corporation" или "ACD Systems International Inc".


Wintrust.CryptCATAdminAcquireContext
kernel32.CreateFileA
Wintrust.CryptCATAdminCalcHashFromFileHandle
kernel32.CloseHandle
Wintrust.CryptCATAdminEnumCatalogFromHash
Wintrust.CryptCATAdminReleaseContext
Wintrust.WinVerifyTrust

WINTRUST_DATA WVTData;
if (WinVerifyTrust(NULL, WINTRUST_ACTION_GENERIC_VERIFY_V2, &WVTData) == NULL)
{
 for (i ...)
 {
   Wintrust.WTHelperProvDataFromStateData
   Wintrust.WTHelperGetProvSignerFromChain
   //CRYPT32.CertNameToStrA - имя в формате LDAP т.е. "C=US, S=Washington, L=Redmond, O=Microsoft Corporation, CN=Microsoft Windows Component Publisher"
   //далее идет разбор строки оставляют только "Microsoft Windows Component Publisher"
 }
 //потом еще раз вызываем
 WinVerifyTrust(NULL, WINTRUST_ACTION_GENERIC_VERIFY_V2, NULL);
}
winverifytrust
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.