@cryptotaxi247 / kubo / commits / 26a481a90

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) {