diff options
Diffstat (limited to 'libgo/go/crypto/sha256/sha256.go')
-rw-r--r-- | libgo/go/crypto/sha256/sha256.go | 43 |
1 files changed, 12 insertions, 31 deletions
diff --git a/libgo/go/crypto/sha256/sha256.go b/libgo/go/crypto/sha256/sha256.go index 3fd446f..e1cccf6 100644 --- a/libgo/go/crypto/sha256/sha256.go +++ b/libgo/go/crypto/sha256/sha256.go @@ -8,6 +8,7 @@ package sha256 import ( "crypto" + "encoding/binary" "errors" "hash" ) @@ -104,35 +105,15 @@ func (d *digest) UnmarshalBinary(b []byte) error { return nil } -func putUint32(x []byte, s uint32) { - _ = x[3] - x[0] = byte(s >> 24) - x[1] = byte(s >> 16) - x[2] = byte(s >> 8) - x[3] = byte(s) -} - -func putUint64(x []byte, s uint64) { - _ = x[7] - x[0] = byte(s >> 56) - x[1] = byte(s >> 48) - x[2] = byte(s >> 40) - x[3] = byte(s >> 32) - x[4] = byte(s >> 24) - x[5] = byte(s >> 16) - x[6] = byte(s >> 8) - x[7] = byte(s) -} - func appendUint64(b []byte, x uint64) []byte { var a [8]byte - putUint64(a[:], x) + binary.BigEndian.PutUint64(a[:], x) return append(b, a[:]...) } func appendUint32(b []byte, x uint32) []byte { var a [4]byte - putUint32(a[:], x) + binary.BigEndian.PutUint32(a[:], x) return append(b, a[:]...) } @@ -246,7 +227,7 @@ func (d *digest) checkSum() [Size]byte { // Length in bits. len <<= 3 - putUint64(tmp[:], len) + binary.BigEndian.PutUint64(tmp[:], len) d.Write(tmp[0:8]) if d.nx != 0 { @@ -255,15 +236,15 @@ func (d *digest) checkSum() [Size]byte { var digest [Size]byte - putUint32(digest[0:], d.h[0]) - putUint32(digest[4:], d.h[1]) - putUint32(digest[8:], d.h[2]) - putUint32(digest[12:], d.h[3]) - putUint32(digest[16:], d.h[4]) - putUint32(digest[20:], d.h[5]) - putUint32(digest[24:], d.h[6]) + binary.BigEndian.PutUint32(digest[0:], d.h[0]) + binary.BigEndian.PutUint32(digest[4:], d.h[1]) + binary.BigEndian.PutUint32(digest[8:], d.h[2]) + binary.BigEndian.PutUint32(digest[12:], d.h[3]) + binary.BigEndian.PutUint32(digest[16:], d.h[4]) + binary.BigEndian.PutUint32(digest[20:], d.h[5]) + binary.BigEndian.PutUint32(digest[24:], d.h[6]) if !d.is224 { - putUint32(digest[28:], d.h[7]) + binary.BigEndian.PutUint32(digest[28:], d.h[7]) } return digest |