aboutsummaryrefslogtreecommitdiff
path: root/crypto.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-12-25 12:18:39 +0100
committerDimitri Sokolyuk <demon@dim13.org>2015-12-25 12:18:39 +0100
commitd856337a7dbe4bbab82aaf735c859d203ba89a40 (patch)
tree157753f8d0b99dfb5fec36ac1b7f77098b5183bb /crypto.go
parent0ac7df7972d1c16ea4dd9eaf5aadaa91956da6f3 (diff)
Add save and load cert
Diffstat (limited to 'crypto.go')
-rw-r--r--crypto.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/crypto.go b/crypto.go
index bb1dd6a..e005562 100644
--- a/crypto.go
+++ b/crypto.go
@@ -59,3 +59,20 @@ func Thumb(token string, key crypto.PublicKey) (string, error) {
}
return token + "." + base64.RawURLEncoding.EncodeToString(thumb), nil
}
+
+func SaveCert(w io.Writer, der []byte) error {
+ block := &pem.Block{
+ Type: "CERTIFICATE",
+ Bytes: der,
+ }
+ return pem.Encode(w, block)
+}
+
+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)
+}