Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查传统CSP是否支持';PP#u KEYSET_secu#u DESCR';旗帜_C_Cryptography_Cryptoapi_Cng_Dpapi - Fatal编程技术网

检查传统CSP是否支持';PP#u KEYSET_secu#u DESCR';旗帜

检查传统CSP是否支持';PP#u KEYSET_secu#u DESCR';旗帜,c,cryptography,cryptoapi,cng,dpapi,C,Cryptography,Cryptoapi,Cng,Dpapi,我通过GUI在windows证书存储中导入了一个pfx。当我检查“certutil-storemycn”的输出时 它将CSP显示为“Microsoft增强加密提供程序v1.0”,这是传统的CSP,而不是新的CNG。我正在使用Windows2012服务器 (我知道我可以通过certutil-csp“csp_name”导入,并获得新的csp,如“Microsoft软件密钥存储提供商”) 我想在证书对应的私钥上设置DACL。尽管如此,由于我有传统的CSP,我必须使用“CryptoSetProvPara

我通过GUI在windows证书存储中导入了一个pfx。当我检查“certutil-storemycn”的输出时

它将CSP显示为“Microsoft增强加密提供程序v1.0”,这是传统的CSP,而不是新的CNG。我正在使用Windows2012服务器

(我知道我可以通过certutil-csp“csp_name”导入,并获得新的csp,如“Microsoft软件密钥存储提供商”)

我想在证书对应的私钥上设置DACL。尽管如此,由于我有传统的CSP,我必须使用“CryptoSetProvParam”,而不是CNG等效物。我机器上的旧版CSP支持“PP_KEYSET_SEC_DESCR”标志,但我的客户可能正在使用不支持此标志的旧版CSP

1。是否有办法检查旧版CSP是否支持此“PP\U KEYSET\U SEC\U DESCR”标志?

我知道CNG等效标志“NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY”,但如果我使用“CryptAcquireCertificatePrivateKey”获取密钥的NCRYPT句柄,API“NCryptGetProperty”将失败,错误为NTE_BAD_key_STATE

2。如果句柄是NCrypt,但底层CSP是遗留的,为什么“NCryptGetProperty”会失败?