add es256k (secp256k1 curve) support by trung · Pull Request #643 · smallstep/cli

if strings.ToLower(ctx.String("alg")) == "es256k" {
hexRaw, err := os.ReadFile(keyFile)
if err != nil {
return nil, errors.Wrap(err, "read file error")
}
raw, err := hex.DecodeString(strings.TrimPrefix(strings.TrimSpace(string(hexRaw)), "0x"))
if err != nil {
return nil, errors.Wrap(err, "file content is not in hex")
}
if isPubKey {
secp256k1Pk, err := secp256k1.ParsePubKey(raw)
if err != nil {
return nil, errors.Wrap(err, "unable to parse public key")
}
return secp256k1Pk.ToECDSA(), nil
}
secp256k1Pk := secp256k1.PrivKeyFromBytes(raw)
return secp256k1Pk.ToECDSA(), nil
}