working on removing dependency on cfssl.
This commit is contained in:
79
certlib/certerr/errors.go
Normal file
79
certlib/certerr/errors.go
Normal file
@@ -0,0 +1,79 @@
|
||||
package certerr
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// ErrEmptyCertificate indicates that a certificate could not be processed
|
||||
// because there was no data to process.
|
||||
var ErrEmptyCertificate = errors.New("certlib: empty certificate")
|
||||
|
||||
type ErrorSourceType uint8
|
||||
|
||||
func (t ErrorSourceType) String() string {
|
||||
switch t {
|
||||
case ErrorSourceCertificate:
|
||||
return "certificate"
|
||||
case ErrorSourcePrivateKey:
|
||||
return "private key"
|
||||
case ErrorSourceCSR:
|
||||
return "CSR"
|
||||
case ErrorSourceSCTList:
|
||||
return "SCT list"
|
||||
case ErrorSourceKeypair:
|
||||
return "TLS keypair"
|
||||
default:
|
||||
panic(fmt.Sprintf("unknown error source %d", t))
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
ErrorSourceCertificate ErrorSourceType = 1
|
||||
ErrorSourcePrivateKey ErrorSourceType = 2
|
||||
ErrorSourceCSR ErrorSourceType = 3
|
||||
ErrorSourceSCTList ErrorSourceType = 4
|
||||
ErrorSourceKeypair ErrorSourceType = 5
|
||||
)
|
||||
|
||||
// InvalidPEMType is used to indicate that we were expecting one type of PEM
|
||||
// file, but saw another.
|
||||
type InvalidPEMType struct {
|
||||
have string
|
||||
want []string
|
||||
}
|
||||
|
||||
func (err *InvalidPEMType) Error() string {
|
||||
if len(err.want) == 1 {
|
||||
return fmt.Sprintf("invalid PEM type: have %s, expected %s", err.have, err.want[0])
|
||||
} else {
|
||||
return fmt.Sprintf("invalid PEM type: have %s, expected one of %s", err.have, strings.Join(err.want, ", "))
|
||||
}
|
||||
}
|
||||
|
||||
// ErrInvalidPEMType returns a new InvalidPEMType error.
|
||||
func ErrInvalidPEMType(have string, want ...string) error {
|
||||
return &InvalidPEMType{
|
||||
have: have,
|
||||
want: want,
|
||||
}
|
||||
}
|
||||
|
||||
func LoadingError(t ErrorSourceType, err error) error {
|
||||
return fmt.Errorf("failed to load %s from disk: %w", t, err)
|
||||
}
|
||||
|
||||
func ParsingError(t ErrorSourceType, err error) error {
|
||||
return fmt.Errorf("failed to parse %s: %w", t, err)
|
||||
}
|
||||
|
||||
func DecodeError(t ErrorSourceType, err error) error {
|
||||
return fmt.Errorf("failed to decode %s: %w", t, err)
|
||||
}
|
||||
|
||||
func VerifyError(t ErrorSourceType, err error) error {
|
||||
return fmt.Errorf("failed to verify %s: %w", t, err)
|
||||
}
|
||||
|
||||
var ErrEncryptedPrivateKey = errors.New("private key is encrypted")
|
||||
Reference in New Issue
Block a user