Adding minio-hash with streaming crypto hashes

This commit is contained in:
Frederick F. Kautz IV
2014-12-21 13:01:27 +13:00
parent aa6cd015fa
commit 2278df9910
11 changed files with 333 additions and 2 deletions

View File

@@ -7,3 +7,23 @@ package sha512
// void sha512_transform_ssse3(const void* M, void* D, uint64_t L);
// void sha512_transform_rorx(const void* M, void* D, uint64_t L);
import "C"
import (
gosha512 "crypto/sha512"
"io"
)
func Sum(reader io.Reader) ([]byte, error) {
hash := gosha512.New()
var err error
for err == nil {
length := 0
byteBuffer := make([]byte, 1024*1024)
length, err = reader.Read(byteBuffer)
byteBuffer = byteBuffer[0:length]
hash.Write(byteBuffer)
}
if err != io.EOF {
return nil, err
}
return hash.Sum(nil), nil
}