草庐IT

windows - 使用 MS CryptoAPI 保存/恢复证书会使附加的私钥无效

我编写了一个程序,该程序应该使用WindowsCryptoAPI保存和恢复用户证书。我的印象是它工作正常,但现在用户提示证书恢复后附加到证书的私钥无效。我使用以下方式保存证书:HCERTSTOREhCertStore=CertOpenStore(CERT_STORE_PROV_PHYSICAL_W,0,NULL,CERT_SYSTEM_STORE_CURRENT_USER|CERT_STORE_OPEN_EXISTING_FLAG|CERT_STORE_READONLY_FLAG|CERT_STORE_UPDATE_KEYID_FLAG,(PVOID)storeName.c_str()

windows - 测试 MS-CAPI CSP,即使使用 WinDbg 内核调试,签名也会失败

尝试在Win7下测试一个新的CSP。将启动配置设置为允许内核调试,运行WndDbg并选择file:kerneldebug并设置为本地。尝试将signtool与我的新CSP一起使用仍然会导致签名失败检查。环境是:OSName:MicrosoftWindows7HomePremiumOSVersion:6.1.7601ServicePack1Build7601OSManufacturer:MicrosoftCorporationOSConfiguration:StandaloneWorkstationOSBuildType:MultiprocessorFreeSystemModel:Del

windows - 在 Windows Crypto API 中跟踪 CSP 调用

我正在使用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

windows - Microsoft CryptoAPI 书籍

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我需要使用MicrosoftCryptoAPI编写自己的SSL套接字(CSocketansestor)以及服务器端证书验证。你能告诉我哪本书对我有帮助(或任何其他用户友好的信息来源)吗?

java - 使用 Java 访问 MS CryptoAPI

我试图充分利用MSCAPI,并陷入了一个巨大的恶作剧......SunMSCapi提供者只有,嗯,提供,因为缺乏更好的词,至少对于签名,以下算法:MD2withRSAMD5与RSASHA1与RSA而且我并不急于使用BouncyCaSTLe制作的GOST3411withECGOST3410或RIPEMD128withRSA等算法使用,但它会很好,在这种特殊情况下,即使不是必需的,也非常重要,至少能够登录SHA256withRSA算法...(512等和ECDSA加密,将是一个很大的优势,但我不期望那么多)。我正在尝试寻找替代方案,但只找到了thiswrapper,看起来不错,但我必须再深入

c++ - Windows XP 与 Vista/7 上的 MS Crypto API 行为

我正在尝试了解如何在XP、Vista和Windows7中获取从PEM格式(示例包含在下面的代码中)导入的公钥。示例代码将在XP和WindowsVista/7上导入key,但方式不同。在WindowsXP上,密码提供者的名称中需要字符串"(Prototype)",并允许对CryptImportPublicKeyInfo的调用通过。在Windows7上,"(Prototype)"提供程序显然存在,但不支持对CryptImportPublicKeyInfo的调用,这令人困惑。这些操作系统之间的正确实现是什么样的?是否有必要检测XP并请求带有"(Prototype)"的名称,而没有它用于其他操

c - Microsoft Crypto API 禁止使用 RSAES-OAEP key 传输算法

我正在使用CryptEncryptMessage生成PKCS#7封装的消息。我正在使用szOID_NIST_AES256_CBC作为加密算法。生成的消息似乎是有效的,但是RSAES-OAEP对于在野外支持有限的关键传输算法(Thunderbird、OpenSSLSMIME模块等不支持它)。我希望CAPI恢复到旧版本RSAencryption用于key传输。有没有办法做到这一点,如果有办法而不是使用CryptEncryptMessage,我可以恢复到低级消息传递功能。但即使使用低级函数,我也找不到办法做到这一点。代码:CRYPT_ENCRYPT_MESSAGE_PARAEncryptMe

Java 安全性 - MSCAPI 提供程序 : How to use without password popup?

我已经设法使用Sun'sMSCAPIprovider在我的申请中。我现在遇到的问题是它总是弹出一个窗口,要求输入密码,即使我已经在代码中提供了它。这是个问题,因为我需要网络服务中的加密功能。这是我现在的代码:Stringalias="AliastomyPK";char[]pass="MyPassword".toCharArray();KeyStoreks=KeyStore.getInstance("Windows-MY");ks.load(null,pass);Providerp=ks.getProvider();Signaturesig=Signature.getInstance("

java - 加载 MSCAPI Java keystore 而不加载私钥(硬 token )

我想在Java中加载一个MSCAPIkeystore并检查MY存储中的可用证书。但是,这些证书的一些key驻留在硬件token上,并且弹出窗口会在加载期间询问token。有没有办法在加载Windowskeystore时延迟加载私钥?keyStore=KeyStore.getInstance("Windows-MY","SunMSCAPI");keystore.load(null,null); 最佳答案 弹出窗口是从MS-CAPI加密服务提供程序(CSP)激活的-USBtoken制造商提供的DLL-最后通过驱动程序(也由token制造