From 410b35e9135baa86e92bc07e0ef85d04e3ac0561 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 27 Jan 2015 14:29:33 +0100 Subject: [PATCH] crypto: make it easier to run Sha3 on multiple inputs crypto.Sha3(append(foo, bar)) --> crypto.Sha3(foo, bar) crypto.Sha3([]byte{}) --> crypto.Sha3() --- crypto/crypto.go | 7 ++++--- crypto/crypto_test.go | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/crypto/crypto.go b/crypto/crypto.go index d56b9112f7..42e6036b5e 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 441733f93c..c688566227 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) {