我有在Windows平台中使用的密码代码,它使用CryptoAPI函数,需要将其转换为在OSX上使用CommonCrypto。基本上原始代码是这样的,为简洁起见删除了错误检查:-CryptAcquireContext(&m_hProv,NULL,NULL,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT));CryptCreateHash(m_hProv,CALG_MD5,0,0,&hHash);CryptHashData(hHash,(LPBYTE)pszInputData,lstrlen(pszInputData)*sizeof(TCHAR),0);CryptDe
ChainConfig.cbSize=sizeof(CERT_CHAIN_ENGINE_CONFIG);ChainConfig.hRestrictedRoot=NULL;ChainConfig.hRestrictedTrust=NULL;ChainConfig.hRestrictedOther=NULL;ChainConfig.cAdditionalStore=0;ChainConfig.rghAdditionalStore=NULL;ChainConfig.dwFlags=CERT_CHAIN_CACHE_END_CERT;ChainConfig.dwUrlRetrievalTime
我们有一个遗留的Windows工作流程流程,它使用SignerSign将数字签名应用于EXE。我们正在从WindowsWorkflow流程中迁移出来,因此我一直在为我们的新流程准备一个工具来执行相同的签名操作。我将工作流事件中的代码签名代码复制/粘贴到新项目中的类中,但在尝试运行它时遇到错误。代码的粗略概述是:CertOpenStore用于打开包含私钥和证书的PFX文件。通过对生成的证书存储句柄调用CertEnumCertificatesInStore获取证书上下文。SignerSign被调用,SIGNER_SUBJECT_INFO指向目标EXE文件,SIGNER_CERT指向上一步的
我已经采用了SHA1HMACexample来自微软的网站并根据这个stack-overflowpost进行了修改以及Internet上的其他一些建议,但是我无法生成正确的值。基本上我只是将SHA1替换为MD5CALG_SHA1->CALG_MD5。有人有工作示例吗?密码的CryptDeriveKey()使用什么算法(RC2或RC4)重要吗?谢谢!编辑:找到工作代码here 最佳答案 您的值与示例不同,因为您使用了不同的键:可以使用Linux获取示例值openssldgst-md5-hmackey命令。如果该命令的长度小于MD5哈希b
我正在考虑使用来自Python的WindowsCryptoAPI,但我找不到任何现有的模块-作为win32all套件的一部分的win32crypt模块只公开了几个没有用的高级函数对我来说。是否有包装CryptoAPI的现有模块?搜索PyPi找到了zip。从ctypes、cython等调用API的示例代码失败将很有用。 最佳答案 这个:HowcanIuseaDLLfilefromPython?+从Crypt32.dll获取所需函数的地址应该可行。 关于python-如何从Python使用W
我正在使用WindowsServer2008R2证书颁发机构处理私钥存档。在客户端,我很想知道当客户端请求启用存档的证书时,Windows进程调用了哪些CryptoAPI函数。特别是,我的重点是跟踪此处列出的函数调用,http://msdn.microsoft.com/en-us/library/aa922849.aspx,存在于Advapi32.dll中。我在这里试用了windbg/cdb脚本(http://blogs.msdn.com/b/alejacma/archive/2007/10/31/cryptoapi-tracer.aspx)。我在发出证书请求时将它附加到mmc.exe
我想更改在调用需要智能卡PIN的CryptoApi操作时显示的文本。当前提示非常通用(使用系统语言),“请输入您的身份验证PIN”:此对话框在COM对象中调用CryptSignMessage时显示,但调用是从C#WPF桌面应用程序(.NET4.5)进行的。如何自定义对话框?我找到了CryptSetProvParam函数的PP_PIN_PROMPT_STRING参数,但该函数需要HCRYPTPROV而我没有那个句柄。我只有读者姓名和签名证书。就是无法理解它。是否可以从C++或C#(最好是C#)自定义PIN对话框? 最佳答案 我相信以下
我想知道存储在机器和用户key容器存储中的RSAkey容器文件的GUID后缀是什么。我无法通过CAPI/CNG将其中一些识别为关键容器,尽管我将使用命令行工具公开我的案例。以下命令适用于提升提示中的PowerShell。在大多数机器上,所有这些文件名的GUID后缀都是相同的,但是在这台机器上有四个不同的GUID,而API只返回一个key。这个GUID是什么?我不喜欢存储在我机器上的随机secret,我不知道这是什么;它们可以安全删除吗?机器存储目录的内容是:>ls-n$env:ProgramData\Microsoft\Crypto\Rsa\MachineKeys|sort{"$_"[
是否可以使用MS加密API导入DER编码的公钥?所以我可以验证签名?我需要一段代码或帮助MSCryptoAPI导入DER编码的公钥/证书。 最佳答案 以下三个步骤将允许您导入您的公钥证书使用CertCreateCertificateContext获取证书上下文用CertOpenStore打开其他人的证书库地址簿使用CertAddCertificateContextToStore将证书上下文添加到其他人的证书库中 关于windows-使用加密API导入DER编码的公钥,我们在StackOv
我已将证书添加到系统存储中,如下所示:PCCERT_CONTEXTpCertContext;HCERTSTOREhCertStore;CRYPT_KEY_PROV_INFOprovInfo;if(pCertContext=CertCreateCertificateContext(MY_ENCODING_TYPE,certDER,certSize)){provInfo.pwszContainerName=idCert;provInfo.pwszProvName=provName;provInfo.dwProvType=provType;provInfo.dwFlags=0;provInf