微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PKCS11 在 C# 中检索密钥检查值

如何解决PKCS11 在 C# 中检索密钥检查值

我已经使用 Pkcs11 生成了 DES2 密钥,现在我需要从 HSM 中检索密钥校验和值。

我的代码

public void checkValue(ISession session,String label)
{
                 
    List<IObjectAttribute> objectAttributes = new List<IObjectAttribute>();
    objectAttributes.Add(session.Factories.ObjectAttributeFactory.Create(CKA.CKA_CLASS,CKO.CKO_SECRET_KEY));
    objectAttributes.Add(session.Factories.ObjectAttributeFactory.Create(CKA.CKA_KEY_TYPE,CKK.CKK_DES2));
    objectAttributes.Add(session.Factories.ObjectAttributeFactory.Create(CKA.CKA_LABEL,label));
    List<IObjectHandle> foundobjects = session.FindAllObjects(objectAttributes);
    var key = foundobjects[0];

    List<IObjectAttribute> readAttrs = session.GetAttributeValue(key,new List<CKA>() {CKA.CKA_VALUE,CKA.CKA_CHECK_VALUE });
    byte[] Key = readAttrs[0].GetValueAsByteArray();
    byte[] KeyCheck1 = readAttrs[1].GetValueAsByteArray();
    richTextBox1.Text += "\n Key :" + BitConverter.ToString(Key);
    richTextBox1.Text += "\n Kcv :" + BitConverter.ToString(KeyCheck1);
}

通过使用此代码,我可以检索生成的密钥,但不能检索 KCV。如何从 HSM 检索 KCV。 (注意:生成的密钥不敏感)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。