diff options
author | Felix Lange <fjl@twurst.com> | 2015-01-27 21:29:33 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2015-02-06 07:00:36 +0800 |
commit | 410b35e9135baa86e92bc07e0ef85d04e3ac0561 (patch) | |
tree | bb20aca6d2a00af533bb2d0a6c1ee0baf80bff1d | |
parent | 2e48d39fc7fc9b8d65e9b6e0ce6863b9374f2233 (diff) | |
download | dexon-410b35e9135baa86e92bc07e0ef85d04e3ac0561.tar dexon-410b35e9135baa86e92bc07e0ef85d04e3ac0561.tar.gz dexon-410b35e9135baa86e92bc07e0ef85d04e3ac0561.tar.bz2 dexon-410b35e9135baa86e92bc07e0ef85d04e3ac0561.tar.lz dexon-410b35e9135baa86e92bc07e0ef85d04e3ac0561.tar.xz dexon-410b35e9135baa86e92bc07e0ef85d04e3ac0561.tar.zst dexon-410b35e9135baa86e92bc07e0ef85d04e3ac0561.zip |
crypto: make it easier to run Sha3 on multiple inputs
crypto.Sha3(append(foo, bar)) --> crypto.Sha3(foo, bar)
crypto.Sha3([]byte{}) --> crypto.Sha3()
-rw-r--r-- | crypto/crypto.go | 7 | ||||
-rw-r--r-- | crypto/crypto_test.go | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/crypto/crypto.go b/crypto/crypto.go index d56b9112f..42e6036b5 100644 --- a/crypto/crypto.go +++ b/crypto/crypto.go @@ -27,10 +27,11 @@ func init() { ecies.AddParamsForCurve(S256(), ecies.ECIES_AES128_SHA256) } -func Sha3(data []byte) []byte { +func Sha3(data ...[]byte) []byte { d := sha3.NewKeccak256() - d.Write(data) - + for _, b := range data { + d.Write(b) + } return d.Sum(nil) } diff --git a/crypto/crypto_test.go b/crypto/crypto_test.go index 441733f93..c68856622 100644 --- a/crypto/crypto_test.go +++ b/crypto/crypto_test.go @@ -18,7 +18,7 @@ import ( func TestSha3(t *testing.T) { msg := []byte("abc") exp, _ := hex.DecodeString("4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45") - checkhash(t, "Sha3-256", Sha3, msg, exp) + checkhash(t, "Sha3-256", func(in []byte) []byte { return Sha3(in) }, msg, exp) } func TestSha256(t *testing.T) { |