我能够检索公钥的 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 设备之外获得价值。但是为什么我不能提取公钥值呢?