123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package md5simd
- import (
- "crypto/md5"
- "hash"
- "sync"
- )
- const (
-
- BlockSize = 64
-
- Size = 16
-
- internalBlockSize = 32 << 10
- )
- type Server interface {
- NewHash() Hasher
- Close()
- }
- type Hasher interface {
- hash.Hash
- Close()
- }
- type md5Wrapper struct {
- hash.Hash
- }
- var md5Pool = sync.Pool{New: func() interface{} {
- return md5.New()
- }}
- type fallbackServer struct {
- }
- 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
- }
- }
|