Skip to content

Commit 25e7f1b

Browse files
committed
deduplicate code
1 parent 6a23e2a commit 25e7f1b

File tree

2 files changed

+28
-28
lines changed

2 files changed

+28
-28
lines changed

hash.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,14 @@ var isMarshallableMap sync.Map
115115

116116
// isHashMarshallable returns true if the memory layout of cb
117117
// is known by this library and can therefore be marshalled.
118-
func isHashMarshallable(cb crypto.Hash) bool {
118+
func isHashMarshallable(ch crypto.Hash) bool {
119119
if vMajor == 1 {
120120
return true
121121
}
122-
if v, ok := isMarshallableMap.Load(cb); ok {
122+
if v, ok := isMarshallableMap.Load(ch); ok {
123123
return v.(bool)
124124
}
125-
md := cryptoHashToMD(cb)
125+
md := cryptoHashToMD(ch)
126126
if md == nil {
127127
return false
128128
}
@@ -138,7 +138,7 @@ func isHashMarshallable(cb crypto.Hash) bool {
138138
// We only know the memory layout of the built-in providers.
139139
// See evpHash.hashState for more details.
140140
marshallable := name == "default" || name == "fips"
141-
isMarshallableMap.Store(cb, marshallable)
141+
isMarshallableMap.Store(ch, marshallable)
142142
return marshallable
143143
}
144144

@@ -276,11 +276,11 @@ func (h *md4Hash) Sum(in []byte) []byte {
276276

277277
// NewMD5 returns a new MD5 hash.
278278
func NewMD5() hash.Hash {
279-
h := newEvpHash(crypto.MD5, 16, 64)
279+
h := md5Hash{evpHash: newEvpHash(crypto.MD5, 16, 64)}
280280
if isHashMarshallable(crypto.MD5) {
281-
return &md5Marshal{md5Hash{evpHash: h}}
281+
return &md5Marshal{h}
282282
}
283-
return &md5Hash{evpHash: h}
283+
return &h
284284
}
285285

286286
// md5State layout is taken from
@@ -354,11 +354,11 @@ func (h *md5Marshal) UnmarshalBinary(b []byte) error {
354354

355355
// NewSHA1 returns a new SHA1 hash.
356356
func NewSHA1() hash.Hash {
357-
h := newEvpHash(crypto.SHA1, 20, 64)
357+
h := sha1Hash{evpHash: newEvpHash(crypto.SHA1, 20, 64)}
358358
if isHashMarshallable(crypto.SHA1) {
359-
return &sha1Marshal{sha1Hash{evpHash: h}}
359+
return &sha1Marshal{h}
360360
}
361-
return &sha1Hash{evpHash: h}
361+
return &h
362362
}
363363

364364
type sha1Hash struct {
@@ -434,11 +434,11 @@ func (h *sha1Marshal) UnmarshalBinary(b []byte) error {
434434

435435
// NewSHA224 returns a new SHA224 hash.
436436
func NewSHA224() hash.Hash {
437-
h := newEvpHash(crypto.SHA224, 224/8, 64)
437+
h := sha224Hash{evpHash: newEvpHash(crypto.SHA224, 224/8, 64)}
438438
if isHashMarshallable(crypto.SHA224) {
439-
return &sha224Marshal{sha224Hash{evpHash: h}}
439+
return &sha224Marshal{h}
440440
}
441-
return &sha224Hash{evpHash: h}
441+
return &h
442442
}
443443

444444
type sha224Hash struct {
@@ -453,11 +453,11 @@ func (h *sha224Hash) Sum(in []byte) []byte {
453453

454454
// NewSHA256 returns a new SHA256 hash.
455455
func NewSHA256() hash.Hash {
456-
h := newEvpHash(crypto.SHA256, 256/8, 64)
456+
h := sha256Hash{evpHash: newEvpHash(crypto.SHA256, 256/8, 64)}
457457
if isHashMarshallable(crypto.SHA256) {
458-
return &sha256Marshal{sha256Hash{evpHash: h}}
458+
return &sha256Marshal{h}
459459
}
460-
return &sha256Hash{evpHash: h}
460+
return &h
461461
}
462462

463463
type sha256Hash struct {
@@ -593,11 +593,11 @@ func (h *sha256Marshal) UnmarshalBinary(b []byte) error {
593593

594594
// NewSHA384 returns a new SHA384 hash.
595595
func NewSHA384() hash.Hash {
596-
h := newEvpHash(crypto.SHA384, 384/8, 128)
596+
h := sha384Hash{evpHash: newEvpHash(crypto.SHA384, 384/8, 128)}
597597
if isHashMarshallable(crypto.SHA384) {
598-
return &sha384Marshal{sha384Hash{evpHash: h}}
598+
return &sha384Marshal{h}
599599
}
600-
return &sha384Hash{evpHash: h}
600+
return &h
601601
}
602602

603603
type sha384Hash struct {
@@ -612,11 +612,11 @@ func (h *sha384Hash) Sum(in []byte) []byte {
612612

613613
// NewSHA512 returns a new SHA512 hash.
614614
func NewSHA512() hash.Hash {
615-
h := newEvpHash(crypto.SHA512, 512/8, 128)
615+
h := sha512Hash{evpHash: newEvpHash(crypto.SHA512, 512/8, 128)}
616616
if isHashMarshallable(crypto.SHA512) {
617-
return &sha512Marshal{sha512Hash{evpHash: h}}
617+
return &sha512Marshal{h}
618618
}
619-
return &sha512Hash{evpHash: h}
619+
return &h
620620
}
621621

622622
type sha512Hash struct {

hash_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@ func TestHash(t *testing.T) {
5454
crypto.SHA3_384,
5555
crypto.SHA3_512,
5656
}
57-
for _, cb := range tests {
58-
cb := cb
59-
t.Run(cb.String(), func(t *testing.T) {
57+
for _, ch := range tests {
58+
ch := ch
59+
t.Run(ch.String(), func(t *testing.T) {
6060
t.Parallel()
61-
if !openssl.SupportsHash(cb) {
61+
if !openssl.SupportsHash(ch) {
6262
t.Skip("skipping: not supported")
6363
}
64-
h := cryptoToHash(cb)()
64+
h := cryptoToHash(ch)()
6565
initSum := h.Sum(nil)
6666
n, err := h.Write(msg)
6767
if err != nil {
@@ -82,7 +82,7 @@ func TestHash(t *testing.T) {
8282
if err != nil {
8383
t.Errorf("could not marshal: %v", err)
8484
}
85-
h2 := cryptoToHash(cb)()
85+
h2 := cryptoToHash(ch)()
8686
if err := h2.(encoding.BinaryUnmarshaler).UnmarshalBinary(state); err != nil {
8787
t.Errorf("could not unmarshal: %v", err)
8888
}

0 commit comments

Comments
 (0)