Update comments across the codebase

This commit is contained in:
Harshavardhana
2015-03-03 02:36:12 -08:00
parent 137584d658
commit 3a3c8645fc
24 changed files with 198 additions and 346 deletions

View File

@@ -21,6 +21,7 @@ import (
"io"
)
// Low memory footprint io.Reader based md5sum helper
func Sum(reader io.Reader) ([]byte, error) {
hash := md5.New()
var err error

View File

@@ -40,6 +40,7 @@ type digest struct {
len uint64
}
// Reset digest
func (d *digest) Reset() {
d.h[0] = init0
d.h[1] = init1
@@ -68,10 +69,13 @@ func block(dig *digest, p []byte) {
}
}
// Return output size
func (d *digest) Size() int { return Size }
// Return checksum blocksize
func (d *digest) BlockSize() int { return BlockSize }
// Write to digest
func (d *digest) Write(p []byte) (nn int, err error) {
nn = len(p)
d.len += uint64(nn)
@@ -95,6 +99,7 @@ func (d *digest) Write(p []byte) (nn int, err error) {
return
}
// Return checksum bytes
func (d0 *digest) Sum(in []byte) []byte {
// Make a copy of d0 so that caller can keep writing and summing.
d := *d0
@@ -102,6 +107,7 @@ func (d0 *digest) Sum(in []byte) []byte {
return append(in, hash[:]...)
}
// Intermediate checksum function
func (d *digest) checkSum() [Size]byte {
len := d.len
// Padding. Add a 1 bit and 0 bits until 56 bytes mod 64.
@@ -135,8 +141,9 @@ func (d *digest) checkSum() [Size]byte {
return digest
}
// Convenience functions
/// Convenience functions
// Single caller sha1 helper
func Sum1(data []byte) [Size]byte {
var d digest
d.Reset()
@@ -144,6 +151,7 @@ func Sum1(data []byte) [Size]byte {
return d.checkSum()
}
// io.Reader based streaming sha1 helper
func Sum(reader io.Reader) ([]byte, error) {
h := New()
var err error

View File

@@ -1,65 +0,0 @@
// +build ignore
//
// Mini Object Storage, (C) 2015 Minio, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package main
import (
"crypto/sha1"
"encoding/hex"
"fmt"
"io"
"os"
"time"
sha1intel "github.com/minio-io/minio/pkg/utils/crypto/sha1"
)
func Sum(reader io.Reader) ([]byte, error) {
k := sha1.New()
var err error
for err == nil {
length := 0
byteBuffer := make([]byte, 1024*1024)
length, err = reader.Read(byteBuffer)
byteBuffer = byteBuffer[0:length]
k.Write(byteBuffer)
}
if err != io.EOF {
return nil, err
}
return k.Sum(nil), nil
}
func main() {
fmt.Println("-- start")
file1, _ := os.Open("filename1")
defer file1.Close()
stark := time.Now()
sum, _ := Sum(file1)
endk := time.Since(stark)
file2, _ := os.Open("filename2")
defer file2.Close()
starth := time.Now()
sumAVX2, _ := sha1intel.Sum(file2)
endh := time.Since(starth)
fmt.Println("std(", endk, ")", "avx2(", endh, ")")
fmt.Println(hex.EncodeToString(sum), hex.EncodeToString(sumAVX2))
}

View File

@@ -43,6 +43,7 @@ type digest struct {
len uint64
}
// Reset digest back to default
func (d *digest) Reset() {
d.h[0] = init0
d.h[1] = init1
@@ -74,12 +75,13 @@ func New() hash.Hash {
return d
}
func (d *digest) Size() int {
return Size
}
// Return size of checksum
func (d *digest) Size() int { return Size }
// Return blocksize of checksum
func (d *digest) BlockSize() int { return BlockSize }
// Write to digest
func (d *digest) Write(p []byte) (nn int, err error) {
nn = len(p)
d.len += uint64(nn)
@@ -103,6 +105,7 @@ func (d *digest) Write(p []byte) (nn int, err error) {
return
}
// Return sha256 sum in bytes
func (d0 *digest) Sum(in []byte) []byte {
// Make a copy of d0 so that caller can keep writing and summing.
d := *d0
@@ -110,6 +113,7 @@ func (d0 *digest) Sum(in []byte) []byte {
return append(in, hash[:]...)
}
// Intermediate checksum function
func (d *digest) checkSum() [Size]byte {
len := d.len
// Padding. Add a 1 bit and 0 bits until 56 bytes mod 64.
@@ -145,8 +149,9 @@ func (d *digest) checkSum() [Size]byte {
return digest
}
// Convenience functions
/// Convenience functions
// Single caller sha256 helper
func Sum256(data []byte) [Size]byte {
var d digest
d.Reset()
@@ -154,6 +159,7 @@ func Sum256(data []byte) [Size]byte {
return d.checkSum()
}
// io.Reader based streaming sha256 helper
func Sum(reader io.Reader) ([]byte, error) {
h := New()
var err error

View File

@@ -1,81 +0,0 @@
// +build ignore
//
// Mini Object Storage, (C) 2015 Minio, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package main
import (
"crypto/sha256"
"encoding/hex"
"fmt"
"io"
"os"
"time"
sha256intel "github.com/minio-io/minio/pkg/utils/crypto/sha256"
)
func SumIntel(reader io.Reader) ([]byte, error) {
h := sha256intel.New()
var err error
for err == nil {
length := 0
byteBuffer := make([]byte, 1024*1024)
length, err = reader.Read(byteBuffer)
byteBuffer = byteBuffer[0:length]
h.Write(byteBuffer)
}
if err != io.EOF {
return nil, err
}
return h.Sum(nil), nil
}
func Sum(reader io.Reader) ([]byte, error) {
k := sha256.New()
var err error
for err == nil {
length := 0
byteBuffer := make([]byte, 1024*1024)
length, err = reader.Read(byteBuffer)
byteBuffer = byteBuffer[0:length]
k.Write(byteBuffer)
}
if err != io.EOF {
return nil, err
}
return k.Sum(nil), nil
}
func main() {
fmt.Println("-- start")
file1, _ := os.Open("filename1")
defer file1.Close()
stark := time.Now()
sum, _ := Sum(file1)
endk := time.Since(stark)
file2, _ := os.Open("filename2")
defer file2.Close()
starth := time.Now()
sumSSE, _ := SumIntel(file2)
endh := time.Since(starth)
fmt.Println("std(", endk, ")", "ssse3(", endh, ")")
fmt.Println(hex.EncodeToString(sum), hex.EncodeToString(sumSSE))
}

View File

@@ -155,9 +155,9 @@ func (d *digest) checkSum() [Size]byte {
return digest
}
// Convenience functions
/// Convenience functions
// Single caller function returns [Size]byte
// Single caller sha512 helper
func Sum512(data []byte) [Size]byte {
var d digest
d.Reset()
@@ -165,7 +165,7 @@ func Sum512(data []byte) [Size]byte {
return d.checkSum()
}
// Takes in io.Reader, low memory footprint checksum
// io.Reader based streaming sha512 helper
func Sum(reader io.Reader) ([]byte, error) {
h := New()
var err error

View File

@@ -1,83 +0,0 @@
// +build ignore
//
// Mini Object Storage, (C) 2015 Minio, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package main
import (
"crypto/sha512"
"encoding/hex"
"fmt"
"io"
"os"
"time"
sha512intel "github.com/minio-io/minio/pkg/utils/crypto/sha512"
)
// Intels processor accelerated sha512 implementation
func SumIntel(reader io.Reader) ([]byte, error) {
h := sha512intel.New()
var err error
for err == nil {
length := 0
byteBuffer := make([]byte, 1024*1024)
length, err = reader.Read(byteBuffer)
byteBuffer = byteBuffer[0:length]
h.Write(byteBuffer)
}
if err != io.EOF {
return nil, err
}
return h.Sum(nil), nil
}
// Golang default implementation
func Sum(reader io.Reader) ([]byte, error) {
k := sha512.New()
var err error
for err == nil {
length := 0
byteBuffer := make([]byte, 1024*1024)
length, err = reader.Read(byteBuffer)
byteBuffer = byteBuffer[0:length]
k.Write(byteBuffer)
}
if err != io.EOF {
return nil, err
}
return k.Sum(nil), nil
}
func main() {
fmt.Println("-- start")
file1, _ := os.Open("filename1")
defer file1.Close()
stark := time.Now()
sum, _ := Sum(file1)
endk := time.Since(stark)
file2, _ := os.Open("filename2")
defer file2.Close()
starth := time.Now()
sumSSE, _ := SumIntel(file2)
endh := time.Since(starth)
fmt.Println("std(", endk, ")", "ssse3(", endh, ")")
fmt.Println(hex.EncodeToString(sum), hex.EncodeToString(sumSSE))
}