From fe565e17c38f43b064a65dd8235747e1da0d3a7c Mon Sep 17 00:00:00 2001
From: Alexander Neumann <alexander@bumpern.de>
Date: Sun, 24 Jan 2016 17:52:44 +0100
Subject: [PATCH] Key: Use Save() instead of Create()

---
 repository/key.go | 25 +++++++------------------
 1 file changed, 7 insertions(+), 18 deletions(-)

diff --git a/repository/key.go b/repository/key.go
index 78665513b..c44b43710 100644
--- a/repository/key.go
+++ b/repository/key.go
@@ -2,8 +2,6 @@ package repository
 
 import (
 	"crypto/rand"
-	"crypto/sha256"
-	"encoding/hex"
 	"encoding/json"
 	"errors"
 	"fmt"
@@ -191,26 +189,17 @@ func AddKey(s *Repository, password string, template *crypto.Key) (*Key, error)
 	}
 
 	// store in repository and return
-	blob, err := s.be.Create()
+	h := backend.Handle{
+		Type: backend.Key,
+		Name: backend.Hash(buf).String(),
+	}
+
+	err = s.be.Save(h, buf)
 	if err != nil {
 		return nil, err
 	}
 
-	plainhw := backend.NewHashingWriter(blob, sha256.New())
-
-	_, err = plainhw.Write(buf)
-	if err != nil {
-		return nil, err
-	}
-
-	name := hex.EncodeToString(plainhw.Sum(nil))
-
-	err = blob.Finalize(backend.Key, name)
-	if err != nil {
-		return nil, err
-	}
-
-	newkey.name = name
+	newkey.name = h.Name
 
 	return newkey, nil
 }