INNER CODE UNIT · Go
ykGenerateKey
go-piv/piv-go · v2/piv/key.go:975
func ykGenerateKey(tx *scTx, slot Slot, o Key) (crypto.PublicKey, error) {
alg, ok := algorithmsMap[o.Algorithm]
if !ok {
return nil, fmt.Errorf("unsupported algorithm")
}
tp, ok := touchPolicyMap[o.TouchPolicy]
if !ok {
return nil, fmt.Errorf("unsupported touch policy")
}
pp, ok := pinPolicyMap[o.PINPolicy]
if !ok {
return nil, fmt.Errorf("unsupported pin policy")
}
// https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-73-4.pdf#page=95
cmd := apdu{
instruction: insGenerateAsymmetric,
param2: byte(slot.Key),
data: []byte{