aboutsummaryrefslogtreecommitdiff
path: root/crypto.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-01-19 13:41:47 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-01-19 13:41:47 +0100
commit5266a287f27de41c60fee753bc8a3ef0a0532afc (patch)
tree40327f7a42c0a8cceaa8314e5cfc17afbd642f69 /crypto.go
parent77debcd18fde7e8c74537bd61e7b5d165fe44c47 (diff)
Pem header
Diffstat (limited to 'crypto.go')
-rw-r--r--crypto.go22
1 files changed, 11 insertions, 11 deletions
diff --git a/crypto.go b/crypto.go
index 7b3fc6b..4a58fda 100644
--- a/crypto.go
+++ b/crypto.go
@@ -13,6 +13,12 @@ import (
"path"
)
+const (
+ pemRSA = `RSA PRIVATE KEY`
+ pemEC = `EC PRIVATE KEY`
+ pemCRT = `CERTIFICATE`
+)
+
var errKeyType = errors.New("unknown key type")
func LoadKeyFile(fname string) (crypto.PrivateKey, error) {
@@ -31,9 +37,9 @@ func LoadKey(r io.Reader) (crypto.PrivateKey, error) {
}
block, _ := pem.Decode(der)
switch block.Type {
- case "RSA PRIVATE KEY":
+ case pemRSA:
return x509.ParsePKCS1PrivateKey(block.Bytes)
- case "EC PRIVATE KEY":
+ case pemEC:
return x509.ParseECPrivateKey(block.Bytes)
default:
return nil, errKeyType
@@ -45,26 +51,20 @@ func SaveKey(w io.Writer, key crypto.PrivateKey) error {
switch k := key.(type) {
case *rsa.PrivateKey:
der := x509.MarshalPKCS1PrivateKey(k)
- block = &pem.Block{
- Type: "RSA PRIVATE KEY",
- Bytes: der,
- }
+ block = &pem.Block{Type: pemRSA, Bytes: der}
case *ecdsa.PrivateKey:
der, err := x509.MarshalECPrivateKey(k)
if err != nil {
return err
}
- block = &pem.Block{
- Type: "EC PRIVATE KEY",
- Bytes: der,
- }
+ block = &pem.Block{Type: pemEC, Bytes: der}
}
return pem.Encode(w, block)
}
func SaveCert(w io.Writer, crt *x509.Certificate) error {
block := &pem.Block{
- Type: "CERTIFICATE",
+ Type: pemCRT,
Bytes: crt.Raw,
}
return pem.Encode(w, block)