2017-02-16 17:07:38 +01:00
|
|
|
// Copyright (c) 2013-2017 The btcsuite developers
|
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 (
|
2017-01-10 23:09:00 +01:00
|
|
|
"crypto/sha256"
|
2014-07-03 02:29:48 +02:00
|
|
|
"hash"
|
|
|
|
|
2017-02-16 17:07:38 +01:00
|
|
|
"golang.org/x/crypto/ripemd160"
|
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 {
|
2017-01-10 23:09:00 +01:00
|
|
|
return calcHash(calcHash(buf, sha256.New()), ripemd160.New())
|
2014-01-03 06:17:01 +01:00
|
|
|
}
|