/
ca_certificate.pb.hash.go
123 lines (108 loc) · 2.88 KB
/
ca_certificate.pb.hash.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// Code generated by protoc-gen-ext. DO NOT EDIT.
// source: github.com/xdmybl/gate-type/proto/gate/v1/ca_certificate.proto
package v1
import (
"encoding/binary"
"errors"
"fmt"
"hash"
"hash/fnv"
safe_hasher "github.com/solo-io/protoc-gen-ext/pkg/hasher"
"github.com/solo-io/protoc-gen-ext/pkg/hasher/hashstructure"
)
// ensure the imports are used
var (
_ = errors.New("")
_ = fmt.Print
_ = binary.LittleEndian
_ = new(hash.Hash64)
_ = fnv.New64
_ = hashstructure.Hash
_ = new(safe_hasher.SafeHasher)
)
// Hash function
func (m *CaCertificateSpec) Hash(hasher hash.Hash64) (uint64, error) {
if m == nil {
return 0, nil
}
if hasher == nil {
hasher = fnv.New64()
}
var err error
if _, err = hasher.Write([]byte("gate.xdmybl.io.github.com/xdmybl/gate-type/pkg/api/gate.xdmybl.io/v1.CaCertificateSpec")); err != nil {
return 0, err
}
if h, ok := interface{}(m.GetCommonInfo()).(safe_hasher.SafeHasher); ok {
if _, err = hasher.Write([]byte("CommonInfo")); err != nil {
return 0, err
}
if _, err = h.Hash(hasher); err != nil {
return 0, err
}
} else {
if fieldValue, err := hashstructure.Hash(m.GetCommonInfo(), nil); err != nil {
return 0, err
} else {
if _, err = hasher.Write([]byte("CommonInfo")); err != nil {
return 0, err
}
if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil {
return 0, err
}
}
}
if h, ok := interface{}(m.GetCertificateInfo()).(safe_hasher.SafeHasher); ok {
if _, err = hasher.Write([]byte("CertificateInfo")); err != nil {
return 0, err
}
if _, err = h.Hash(hasher); err != nil {
return 0, err
}
} else {
if fieldValue, err := hashstructure.Hash(m.GetCertificateInfo(), nil); err != nil {
return 0, err
} else {
if _, err = hasher.Write([]byte("CertificateInfo")); err != nil {
return 0, err
}
if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil {
return 0, err
}
}
}
if _, err = hasher.Write([]byte(m.GetCa())); err != nil {
return 0, err
}
if _, err = hasher.Write([]byte(m.GetCrl())); err != nil {
return 0, err
}
err = binary.Write(hasher, binary.LittleEndian, m.GetAllowExpiredCertificate())
if err != nil {
return 0, err
}
if h, ok := interface{}(m.GetTlsParameters()).(safe_hasher.SafeHasher); ok {
if _, err = hasher.Write([]byte("TlsParameters")); err != nil {
return 0, err
}
if _, err = h.Hash(hasher); err != nil {
return 0, err
}
} else {
if fieldValue, err := hashstructure.Hash(m.GetTlsParameters(), nil); err != nil {
return 0, err
} else {
if _, err = hasher.Write([]byte("TlsParameters")); err != nil {
return 0, err
}
if err := binary.Write(hasher, binary.LittleEndian, fieldValue); err != nil {
return 0, err
}
}
}
for _, v := range m.GetAlpnProtocols() {
if _, err = hasher.Write([]byte(v)); err != nil {
return 0, err
}
}
return hasher.Sum64(), nil
}