【问题标题】:PKCS11 ECDSA parameters in go module pkcs11go模块pkcs11中的PKCS11 ECDSA参数
【发布时间】:2021-03-07 16:13:23
【问题描述】:

我想知道如何使用 go module miekg/pkcs11 为 ECDSA 模板传递正确的参数值:这是我目前得到的:

    privateKeyTemplate := []*pkcs11.Attribute{
        pkcs11.NewAttribute(pkcs11.CKA_TOKEN, tokenPersistent),
        pkcs11.NewAttribute(pkcs11.CKA_ECDSA_PARAMS, []byte{{/*how to use secp256k1?*/}), 
        pkcs11.NewAttribute(pkcs11.CKA_SIGN, true),
        pkcs11.NewAttribute(pkcs11.CKA_LABEL, label),
        pkcs11.NewAttribute(pkcs11.CKA_SENSITIVE, true),
        pkcs11.NewAttribute(pkcs11.CKA_EXTRACTABLE, true),
    }

有人可以帮我解决这个问题吗?

谢谢

编辑:

Alexander 提供的字节数组是正确的,但是请注意我最初的问题也具有误导性。一个不应该将 ECDSA_PARAMS 放在私钥模板中,但只能放在公钥模板中。

【问题讨论】:

    标签: go pkcs#11 elliptic-curve ecdsa hsm


    【解决方案1】:

    OpenSC项目中检查这一行(3189):

    FILL_ATTR(privkey_templ[n_privkey_attr], CKA_EC_PARAMS, gost.param_oid.value, gost.param_oid.len); 
    

    还有这个(3199):

    FILL_ATTR(privkey_templ[n_privkey_attr], CKA_GOSTR3410_PARAMS, gost.param_oid.value, gost.param_oid.len);
    

    根据我对 GOST 密钥的经验,我建议这里必须是一个编码的 OID。在您的情况下,它可能如下所示:

    []byte{ 06, 04, 01, 02, 03, 04 }
    

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      相关资源
      最近更新 更多