aboutsummaryrefslogtreecommitdiff
path: root/crypto.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-12-31 01:24:02 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-12-31 01:24:02 +0100
commitf7a6acda0e7d04c3fd98e72c6089ba4cfad74ddf (patch)
tree13d089204bd0d5b22208185ba75429a7a01292b8 /crypto.go
parentf1387fc588b5943c276770d56ec7e1cef3cecaa1 (diff)
Encapsulate desire
Diffstat (limited to 'crypto.go')
-rw-r--r--crypto.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/crypto.go b/crypto.go
index f70cc2f..7ceefcc 100644
--- a/crypto.go
+++ b/crypto.go
@@ -25,11 +25,15 @@ func NewKey(w io.Writer, size int) (*rsa.PrivateKey, error) {
if err != nil {
return nil, err
}
+ return key, SaveKey(w, key)
+}
+
+func SaveKey(w io.Writer, key *rsa.PrivateKey) error {
block := &pem.Block{
Type: "RSA PRIVATE KEY",
Bytes: x509.MarshalPKCS1PrivateKey(key),
}
- return key, pem.Encode(w, block)
+ return pem.Encode(w, block)
}
func NewCSR(altnames []string, key *rsa.PrivateKey) (string, error) {
@@ -48,19 +52,19 @@ func NewCSR(altnames []string, key *rsa.PrivateKey) (string, error) {
return base64.RawURLEncoding.EncodeToString(der), nil
}
-func SaveCert(w io.Writer, der []byte) error {
+func SaveCert(w io.Writer, crt *x509.Certificate) error {
block := &pem.Block{
Type: "CERTIFICATE",
- Bytes: der,
+ Bytes: crt.Raw,
}
return pem.Encode(w, block)
}
-func LoadCert(r io.Reader) ([]*x509.Certificate, error) {
+func LoadCert(r io.Reader) (*x509.Certificate, error) {
der, err := ioutil.ReadAll(r)
if err != nil {
return nil, err
}
block, _ := pem.Decode(der)
- return x509.ParseCertificates(block.Bytes)
+ return x509.ParseCertificate(block.Bytes)
}