设为首页 加入收藏

TOP

C++ 验证微软数字签名(二)
2013-04-24 12:13:49 来源: 作者: 【 】 浏览:710
Tags:  验证 微软 数字签名

 

  GUID action = WINTRUST_ACTION_GENERIC_VERIFY_V2;

  HRESULT hr  = WinVerifyTrust( NULL, &action, &wd );

  bRet        = SUCCEEDED( hr );

  if ( NULL != hCatInfo )

  {

  CryptCATAdminReleaseCatalogContext( hCatAdmin, hCatInfo, 0 );

  }

  CryptCATAdminReleaseContext( hCatAdmin, 0 );

  delete[] pszMemberTag;

  return bRet;

  }

  这段代码是在一个老外的论坛上不经意搜索到的,一个貌似德国人(因为他的注释不是英文写的,德国亦仅猜测尔,西班牙、葡萄牙、法兰西、俄罗斯亦都有可能)写的Delphi代码,其中使用了WinTrust.dll中的导出函数。使用VS2005的朋友们可以包含WinTrust.h、SoftPub.h和Mscat.h,并添加导入库WinTrust.lib;使用VC6的朋友们可以参考MSDN上的函数及结构体声明,并用函数指针进行调用。

  本人补充一下一些类型,方便翻译成别的语言:

  typedef struct _WINTRUST_DATA

  { DWORD cbStruct;

  LPVOID pPolicyCallbackData;

  LPVOID pSIPClientData;

  DWORD dwUIChoice;

  DWORD fdwRevocationChecks;

  DWORD dwUnionChoice;

  union {

  struct WINTRUST_FILE_INFO_* pFile;

  struct WINTRUST_CATALOG_INFO_* pCatalog;

  struct WINTRUST_BLOB_INFO_* pBlob;

  struct WINTRUST_SGNR_INFO_* pSgnr;

  struct WINTRUST_CERT_INFO_* pCert;

  };

  DWORD dwStateAction;

  HANDLE hWVTStateData;

  WCHAR* pwszURLReference;

  DWORD dwProvFlags;

  DWORD dwUIContext;

  } WINTRUST_DATA,  *PWINTRUST_DATA;

  typedef struct WINTRUST_FILE_INFO_

  { DWORD cbStruct;

  LPCWSTR pcwszFilePath;

  HANDLE hFile;

  GUID* pgKnownSubject;

  } WINTRUST_FILE_INFO,  *PWINTRUCT_FILE_INFO;

  typedef struct WINTRUST_CATALOG_INFO_

  { DWORD cbStruct;  DWORD dwCatalogVersion;

  LPCWSTR pcwszCatalogFilePath;

  LPCWSTR pcwszMemberTag;

  LPCWSTR pcwszMemberFilePath;

  HANDLE hMemberFile;

  } WINTRUST_CATALOG_INFO,  *PWINTRUST_CATALOG_INFO;

  typedef struct CATALOG_INFO_

  { DWORD cbStruct;

  WCHAR wszCatalogFile[MAX_PATH];

  } CATALOG_INFO;

  本人再补充一下用到的API声明:

  LONG WINAPI WinVerifyTrust(

  __in          HWND hWnd,

  __in          GUID* pgActionID,

  __in          LPVOID pWVTData

  );

  Related

      

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇?й????? 下一篇JNI对HAL的封装

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: