0
0
Fork 0
pkictl/private_key.go

34 lines
769 B
Go

package main
import (
"errors"
"github.com/gibheer/pki"
)
const (
TypeLabelRSA = "RSA PRIVATE KEY"
TypeLabelECDSA = "EC PRIVATE KEY"
)
var (
ErrNoPKFound = errors.New("no private key found")
)
// Read the private key from the path and try to figure out which type of key it
// might be.
func ReadPrivateKeyFile(path string) (pkilib.PrivateKey, error) {
raw_pk, err := readSectionFromFile(path, TypeLabelECDSA)
if err == nil {
pk, err := pkilib.LoadPrivateKeyEcdsa(raw_pk)
if err != nil { return nil, err }
return pk, nil
}
raw_pk, err = readSectionFromFile(path, TypeLabelRSA)
if err == nil {
pk, err := pkilib.LoadPrivateKeyRsa(raw_pk)
if err != nil { return nil, err }
return pk, nil
}
return nil, ErrNoPKFound
}