1
2
3
4
5
6
7 package sha256
8
9 import (
10 "crypto"
11 "crypto/internal/boring"
12 "crypto/internal/fips140/sha256"
13 "hash"
14 )
15
16 func init() {
17 crypto.RegisterHash(crypto.SHA224, New224)
18 crypto.RegisterHash(crypto.SHA256, New)
19 }
20
21
22 const Size = 32
23
24
25 const Size224 = 28
26
27
28 const BlockSize = 64
29
30
31
32
33
34 func New() hash.Hash {
35 if boring.Enabled {
36 return boring.NewSHA256()
37 }
38 return sha256.New()
39 }
40
41
42
43
44
45 func New224() hash.Hash {
46 if boring.Enabled {
47 return boring.NewSHA224()
48 }
49 return sha256.New224()
50 }
51
52
53 func Sum256(data []byte) [Size]byte {
54 if boring.Enabled {
55 return boring.SHA256(data)
56 }
57 h := New()
58 h.Write(data)
59 var sum [Size]byte
60 h.Sum(sum[:0])
61 return sum
62 }
63
64
65 func Sum224(data []byte) [Size224]byte {
66 if boring.Enabled {
67 return boring.SHA224(data)
68 }
69 h := New224()
70 h.Write(data)
71 var sum [Size224]byte
72 h.Sum(sum[:0])
73 return sum
74 }
75
View as plain text