代码之家  ›  专栏  ›  技术社区  ›  D.R.

通过PKCS#11以编程方式将X509Certificate2中的密钥添加到密钥存储

  •  0
  • D.R.  · 技术社区  · 7 年前

    我们有一个安全的密钥存储,它具有PKCS#11接口。我们使用 PKCS#11 Interop Library for .NET . 我们还需要从证书导入密钥。如何导入 X509Certificate2 通过我们的PKCS#11接口进入我们的密钥存储?

    var key = x509Certificate2.PrivateKey;
    
    var attributes = new List<ObjectAttribute>();
    
    // What to do here? How to fill in the key into those attributes?
    
    pkcs11Session.CreateObject(attributes);
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Fabian Schmied    7 年前

    X509Certificate2.PrivateKey ,以下是一个带有PFX文件的示例:

    var certificate = new X509Certificate2(@"self-signed.pfx", "password", X509KeyStorageFlags.Exportable);
    var rsaPrivateKey = certificate.GetRSAPrivateKey();
    var parameters = rsaPrivateKey.ExportParameters(true);
    

    然而,确切的代码取决于几件事,即

    • 证书是如何创建的,以及它是否实际包含私钥引用(在本例中,是的,从PFX导入),
    • 密钥是否可导出(在本例中,是),以及

    我无法帮助您将其转换为您的库所需的属性,不过,也许其他人可以在这里插话。

    推荐文章