github.com/palcoin-project/palcd@v1.0.0/chaincfg/chainhash/hashfuncs.go (about)

     1  // Copyright (c) 2015 The Decred developers
     2  // Copyright (c) 2016-2017 The btcsuite developers
     3  // Use of this source code is governed by an ISC
     4  // license that can be found in the LICENSE file.
     5  
     6  package chainhash
     7  
     8  import "crypto/sha256"
     9  
    10  // HashB calculates hash(b) and returns the resulting bytes.
    11  func HashB(b []byte) []byte {
    12  	hash := sha256.Sum256(b)
    13  	return hash[:]
    14  }
    15  
    16  // HashH calculates hash(b) and returns the resulting bytes as a Hash.
    17  func HashH(b []byte) Hash {
    18  	return Hash(sha256.Sum256(b))
    19  }
    20  
    21  // DoubleHashB calculates hash(hash(b)) and returns the resulting bytes.
    22  func DoubleHashB(b []byte) []byte {
    23  	first := sha256.Sum256(b)
    24  	second := sha256.Sum256(first[:])
    25  	return second[:]
    26  }
    27  
    28  // DoubleHashH calculates hash(hash(b)) and returns the resulting bytes as a
    29  // Hash.
    30  func DoubleHashH(b []byte) Hash {
    31  	first := sha256.Sum256(b)
    32  	return Hash(sha256.Sum256(first[:]))
    33  }