summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/minio/md5-simd/md5.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2021-10-16 23:11:32 +0200
committerWim <wim@42.be>2021-10-16 23:23:24 +0200
commit20f6c05ec50739d31f4dbe9fde0d223f2c43f6e8 (patch)
tree230edca06449a8d1755f08aabf45a03e07e6f17c /vendor/github.com/minio/md5-simd/md5.go
parent57fce93af7f64f025cec6f3ed6088163086bc9fe (diff)
downloadmatterbridge-msglm-20f6c05ec50739d31f4dbe9fde0d223f2c43f6e8.tar.gz
matterbridge-msglm-20f6c05ec50739d31f4dbe9fde0d223f2c43f6e8.tar.bz2
matterbridge-msglm-20f6c05ec50739d31f4dbe9fde0d223f2c43f6e8.zip
Update vendor
Diffstat (limited to 'vendor/github.com/minio/md5-simd/md5.go')
-rw-r--r--vendor/github.com/minio/md5-simd/md5.go63
1 files changed, 63 insertions, 0 deletions
diff --git a/vendor/github.com/minio/md5-simd/md5.go b/vendor/github.com/minio/md5-simd/md5.go
new file mode 100644
index 00000000..11b0cb96
--- /dev/null
+++ b/vendor/github.com/minio/md5-simd/md5.go
@@ -0,0 +1,63 @@
+package md5simd
+
+import (
+ "crypto/md5"
+ "hash"
+ "sync"
+)
+
+const (
+ // The blocksize of MD5 in bytes.
+ BlockSize = 64
+
+ // The size of an MD5 checksum in bytes.
+ Size = 16
+
+ // internalBlockSize is the internal block size.
+ internalBlockSize = 32 << 10
+)
+
+type Server interface {
+ NewHash() Hasher
+ Close()
+}
+
+type Hasher interface {
+ hash.Hash
+ Close()
+}
+
+// StdlibHasher returns a Hasher that uses the stdlib for hashing.
+// Used hashers are stored in a pool for fast reuse.
+func StdlibHasher() Hasher {
+ return &md5Wrapper{Hash: md5Pool.New().(hash.Hash)}
+}
+
+// md5Wrapper is a wrapper around the builtin hasher.
+type md5Wrapper struct {
+ hash.Hash
+}
+
+var md5Pool = sync.Pool{New: func() interface{} {
+ return md5.New()
+}}
+
+// fallbackServer - Fallback when no assembly is available.
+type fallbackServer struct {
+}
+
+// NewHash -- return regular Golang md5 hashing from crypto
+func (s *fallbackServer) NewHash() Hasher {
+ return &md5Wrapper{Hash: md5Pool.New().(hash.Hash)}
+}
+
+func (s *fallbackServer) Close() {
+}
+
+func (m *md5Wrapper) Close() {
+ if m.Hash != nil {
+ m.Reset()
+ md5Pool.Put(m.Hash)
+ m.Hash = nil
+ }
+}