通过 PKCS#11 以编程方式将 X509Certificate2 中的密钥添加到密钥库
Programmatically add key from X509Certificate2 via PKCS#11 to a key store
我们有一个具有 PKCS#11 接口的安全密钥库。我们使用 PKCS#11 Interop Library for .NET 访问它上面的密钥。我们还需要从证书中导入密钥。如何通过我们的 PKCS#11 接口将 X509Certificate2
的私钥导入我们的密钥库?
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);
如果您的问题是关于如何从 X509Certificate2.PrivateKey
中实际提取私钥详细信息,这里有一个 PFX 文件的示例:
var certificate = new X509Certificate2(@"self-signed.pfx", "password", X509KeyStorageFlags.Exportable);
var rsaPrivateKey = certificate.GetRSAPrivateKey();
var parameters = rsaPrivateKey.ExportParameters(true);
然而,确切的代码取决于一些事情,即
- 如何创建证书以及它是否实际包含私钥引用(在本例中,是的,从 PFX 导入),
- 密钥是否可导出(在本例中为是),以及
- 私钥类型(在本例中为 RSA)。
不过,关于如何将其转换为您的库所需的属性,我无法帮助您,也许其他人可以在这里插话。
我们有一个具有 PKCS#11 接口的安全密钥库。我们使用 PKCS#11 Interop Library for .NET 访问它上面的密钥。我们还需要从证书中导入密钥。如何通过我们的 PKCS#11 接口将 X509Certificate2
的私钥导入我们的密钥库?
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);
如果您的问题是关于如何从 X509Certificate2.PrivateKey
中实际提取私钥详细信息,这里有一个 PFX 文件的示例:
var certificate = new X509Certificate2(@"self-signed.pfx", "password", X509KeyStorageFlags.Exportable);
var rsaPrivateKey = certificate.GetRSAPrivateKey();
var parameters = rsaPrivateKey.ExportParameters(true);
然而,确切的代码取决于一些事情,即
- 如何创建证书以及它是否实际包含私钥引用(在本例中,是的,从 PFX 导入),
- 密钥是否可导出(在本例中为是),以及
- 私钥类型(在本例中为 RSA)。
不过,关于如何将其转换为您的库所需的属性,我无法帮助您,也许其他人可以在这里插话。