INNER CODE UNIT · Go
privateKeyToPublicKey
hashicorp/terraform-provider-tls · internal/provider/common_key.go:137
func privateKeyToPublicKey(prvKey crypto.PrivateKey) (crypto.PublicKey, error) {
signer, ok := prvKey.(crypto.Signer)
if !ok {
return nil, fmt.Errorf("unsupported private key type: %T", prvKey)
}
return signer.Public(), nil
}
// privateKeyToAlgorithm identifies the Algorithm used by a given crypto.PrivateKey.
func privateKeyToAlgorithm(prvKey crypto.PrivateKey) (Algorithm, error) {
switch prvKey.(type) {
case rsa.PrivateKey, *rsa.PrivateKey:
return RSA, nil
case ecdsa.PrivateKey, *ecdsa.PrivateKey:
return ECDSA, nil
case ed25519.PrivateKey, *ed25519.PrivateKey:
return ED25519, nil