Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.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
Python 具有新密钥对的续订证书_Python_X509certificate_X509certificate2_Certenroll - Fatal编程技术网

Python 具有新密钥对的续订证书

Python 具有新密钥对的续订证书,python,x509certificate,x509certificate2,certenroll,Python,X509certificate,X509certificate2,Certenroll,我想创建CX509CertificateRequestPKC 带有初始值的证书 我想使用X509RequestInheritOptions.InheritNewSimilarkey在原始证书的密钥对存在的地方生成新的密钥对 但我得到错误CertEnroll::CX509CertificateRequestPkcs7::InitializeFromCertificate:请求的属性值为空。0x80094004(-2146877436 CERTSRV_E_属性为空) 这是我的密码 X509Store

我想创建CX509CertificateRequestPKC 带有初始值的证书 我想使用X509RequestInheritOptions.InheritNewSimilarkey在原始证书的密钥对存在的地方生成新的密钥对 但我得到错误CertEnroll::CX509CertificateRequestPkcs7::InitializeFromCertificate:请求的属性值为空。0x80094004(-2146877436 CERTSRV_E_属性为空) 这是我的密码

X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 c in store.Certificates)
{
    var cert2 = c.Subject;
    if (cert2.Contains("CN=test"))
    {
        var objPkcs72 = new CX509CertificateRequestPkcs7();
        string strCertificate = Convert.ToBase64String(c.RawData);
        var inheritOptions = X509RequestInheritOptions.InheritNewSimilarKey ;
        objPkcs72.InitializeFromCertificate(X509CertificateEnrollmentContext.ContextUser, false, strCertificate, EncodingType.XCN_CRYPT_STRING_BASE64, inheritOptions);
        ISignerCertificate signer = new CSignerCertificate();
        CERTENROLLLib.CSignerCertificate signer2 = new CERTENROLLLib.CSignerCertificate();
        signer2.Initialize(false, X509PrivateKeyVerify.VerifyAllowUI, EncodingType.XCN_CRYPT_STRING_BASE64, strCertificate);
        objPkcs72.SignerCertificate = signer2;
        string c2 = "";
        objEnroll.InitializeFromRequest(objPkcs72);
        var message2 = objEnroll.CreateRequest(EncodingType.XCN_CRYPT_STRING_BASE64);
        var iDisposition = objCertRequest.Submit(CR_IN_BASE64 | CR_IN_FORMATANY, message2, templateName, CAAddress);
        string c3 = objCertRequest.GetCertificate(CR_IN_BASE64 | CR_IN_FORMATANY);
        X509Certificate2 cert = new X509Certificate2(LoadFromCertBase64String(c2));
        objEnroll.InstallResponse(InstallResponseRestrictionFlags.AllowNone, c3, EncodingType.XCN_CRYPT_STRING_BASE64, "");
    }
}

请检查您的格式,这样这就不仅仅是一堵巨大的文本墙。您正在尝试的代码实际上是如何格式化的?@G.Anderson我试图更正它,但我正在使用手机,不幸的是我无法更正它