2014-01-09 06:46:05 +01:00
|
|
|
// Copyright (c) 2013-2014 Conformal Systems LLC.
|
2014-01-03 06:17:01 +01:00
|
|
|
// Use of this source code is governed by an ISC
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package btcutil
|
|
|
|
|
|
|
|
import (
|
2014-07-03 02:29:48 +02:00
|
|
|
"hash"
|
|
|
|
|
2014-01-03 06:17:01 +01:00
|
|
|
"code.google.com/p/go.crypto/ripemd160"
|
2014-01-05 05:23:01 +01:00
|
|
|
"github.com/conformal/fastsha256"
|
2014-01-03 06:17:01 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
// Calculate the hash of hasher over buf.
|
|
|
|
func calcHash(buf []byte, hasher hash.Hash) []byte {
|
|
|
|
hasher.Write(buf)
|
|
|
|
return hasher.Sum(nil)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Hash160 calculates the hash ripemd160(sha256(b)).
|
|
|
|
func Hash160(buf []byte) []byte {
|
2014-01-05 05:23:01 +01:00
|
|
|
return calcHash(calcHash(buf, fastsha256.New()), ripemd160.New())
|
2014-01-03 06:17:01 +01:00
|
|
|
}
|