go模块pkcs11中的PKCS11 ECDSA参数

PKCS11 ECDSA parameters in go module pkcs11

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

    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 放在私钥模板中,而只能放在 public 密钥模板中。

检查 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 }