fixed key hashing interface + test
Juan Batiz-Benet committed
Oct 1, 2014 at 00:52 UTC
26a481a904ab51501184da6c2693e17a6b53a0e1
3 files changed
+17
-11
crypto/key.go
+11
@@ -15,6 +15,8 @@ import (
15
"math/big"
16
17
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
18
+
19
+ u "github.com/jbenet/go-ipfs/util"
20
)
21
22
var ErrBadKeyType = errors.New("invalid or unsupported key type")
@@ -249,3 +251,12 @@ func KeyEqual(k1, k2 Key) bool {
251
b2, err2 := k2.Bytes()
252
return bytes.Equal(b1, b2) && err1 == err2
253
}
254
+
255
+// KeyHash hashes a key.
256
+func KeyHash(k Key) ([]byte, error) {
257
+ kb, err := k.Bytes()
258
+ if err != nil {
259
+ return nil, err
260
+ }
261
+ return u.Hash(kb)
262
+}
crypto/key_test.go
+4
@@ -92,3 +92,7 @@ func (pk testkey) Bytes() ([]byte, error) {
92
func (pk testkey) Equals(k Key) bool {
93
return KeyEqual(pk, k)
94
}
95
+
96
+func (pk testkey) Hash() ([]byte, error) {
97
+ return KeyHash(pk)
98
+}
crypto/rsa.go
+2
-11
@@ -9,7 +9,6 @@ import (
9
"errors"
10
11
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto"
12
- u "github.com/jbenet/go-ipfs/util"
12
)
13
14
type RsaPrivateKey struct {
@@ -48,11 +47,7 @@ func (pk *RsaPublicKey) Equals(k Key) bool {
47
}
48
49
func (pk *RsaPublicKey) Hash() ([]byte, error) {
51
- pkb, err := pk.Bytes()
52
- if err != nil {
53
- return nil, err
54
- }
55
- return u.Hash(pkb)
50
+ return KeyHash(pk)
51
}
52
53
func (sk *RsaPrivateKey) GenSecret() []byte {
@@ -85,11 +80,7 @@ func (sk *RsaPrivateKey) Equals(k Key) bool {
80
}
81
82
func (sk *RsaPrivateKey) Hash() ([]byte, error) {
88
- skb, err := sk.Bytes()
89
- if err != nil {
90
- return nil, err
91
- }
92
- return u.Hash(skb)
83
+ return KeyHash(sk)
84
}
85
86
func UnmarshalRsaPrivateKey(b []byte) (*RsaPrivateKey, error) {