【问题标题】:Extractig public key value via PKCS#11通过 PKCS#11 提取公钥值
【发布时间】:2018-08-07 01:27:08
【问题描述】:

我正在使用 Pkcs11 库从设备中检索密钥:

我能够检索公钥的 ObjectHandle。我尝试提取公钥值:

var publicKeyHandle = GetPublicKeyByLabel(Session, "KEY1_QAL_PUB");
var objectAttribute = Session.GetAttributeValue(publicKeyHandle, new List<CKA> { CKA.CKA_VALUE }).Single();
var keyVal =  objectAttribute.GetValueAsByteArray();

很遗憾,objectAttribute 已将 CannotBeRead 设置为 true,并且无法读取值。 即使我以用户或 SO 身份登录。

我理解这种情况,当密钥是私有的时 - 由于安全原因,我无法在 HSM 设备之外获得价值。但是为什么我不能提取公钥值呢?

【问题讨论】:

    标签: c# pkcs#11 pkcs11interop softhsm


    【解决方案1】:

    CKA_VALUE 不是 RSA 公钥对象的有效属性。如果要提取 RSA 公钥值,则需要阅读 CKA_PUBLIC_EXPONENTCKA_MODULUS 属性。详情请见PKCS#11 v2.20

    【讨论】:

    • 嗯,对。使用指数和模值很容易创建公钥。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多