标题:Qt如何读取windows下某个文件的数字签名时间?求助!
作者:wangqi
日期:2016-08-14 02:09
内容:
#1 [wangqi 08-16 15:41]
大神门看看我的求助啊,。挂了好几天了解决不了,谢谢啊;!!!!
#2 [kimtaikee 08-17 09:13]
你这是平台相关的问题,你要么查windows api 哪个是能够获取文件属性信息的函数,要么看看有没有开源库能够做这功能的。
#3 回 kimtaikee 的帖子 [wangqi 08-17 11:06]
kimtaikee:你这是平台相关的问题,你要么查windows api 哪个是能够获取文件属性信息的函数,要么看看有没有开源库能够做这功能的。 (2016-08-17 09:13)
嗯,我网上查了下windows的,可惜我看不太懂windows平台的代码啊,百度到了一段代码,大神懂吗?能否帮我看下
#4 [wangqi 08-17 11:10]
// FileSign.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include
#include
#include
#include
#include
#pragma comment(lib, "crypt32.lib")
#define ENCODING (X509_ASN_ENCODING | PKCS_7_ASN_ENCODING)
typedef struct {
LPWSTR lpszProgramName;//程序名
LPWSTR lpszPublisherLink;//发布者链接
LPWSTR lpszMoreInfoLink;//更多信息链接
} SPROG_PUBLISHERINFO, *PSPROG_PUBLISHERINFO;
BOOL GetProgAndPublisherInfo(PCMSG_SIGNER_INFO pSignerInfo,
PSPROG_PUBLISHERINFO Info);
//获取时间戳日期
BOOL GetDateOfTimeStamp(PCMSG_SIGNER_INFO pSignerInfo, SYSTEMTIME *st);
//打印证书信息
BOOL PrintCertificateInfo(PCCERT_CONTEXT pCertContext);
//获取签名信息的时间戳
BOOL GetTimeStampSignerInfo(PCMSG_SIGNER_INFO pSignerInfo,
PCMSG_SIGNER_INFO *pCounterSignerInfo);
int _tmain(int argc, TCHAR *argv[])
{
WCHAR szFileName;
HCERTSTORE hStore = NULL;
HCRYPTMSG hMsg = NULL;
PCCERT_CONTEXT pCertContext = NULL;
BOOL fResult;
DWORD dwEncoding, dwContentType, dwFormatType;
PCMSG_SIGNER_INFO pSignerInfo = NULL;
PCMSG_SIGNER_INFO pCounterSignerInfo = NULL;
DWORD dwSignerInfo;
CERT_INFO CertInfo;
SPROG_PUBLISHERINFO ProgPubInfo;
SYSTEMTIME st;
ZeroMemory(&ProgPubInfo, siz ..
#5 [wangqi 08-17 11:10]
这段windows代码可以直接运行,但是运行起来就报错了,求大神明示一下怎么用