...
1 package gmtls
2
3
4
5
6
7
8
9
10 func NewBasicAutoSwitchConfig(sm2SigCert, sm2EncCert, stdCert *Certificate) (*Config, error) {
11 fncGetSignCertKeypair := func(info *ClientHelloInfo) (*Certificate, error) {
12 gmFlag := false
13
14 for _, v := range info.SupportedVersions {
15 if v == VersionGMSSL {
16 gmFlag = true
17 break
18 }
19 }
20
21 if gmFlag {
22 return sm2SigCert, nil
23 } else {
24 return stdCert, nil
25 }
26 }
27
28 fncGetEncCertKeypair := func(info *ClientHelloInfo) (*Certificate, error) {
29 return sm2EncCert, nil
30 }
31 support := NewGMSupport()
32 support.EnableMixMode()
33 return &Config{
34 GMSupport: support,
35 GetCertificate: fncGetSignCertKeypair,
36 GetKECertificate: fncGetEncCertKeypair,
37 }, nil
38 }
39
View as plain text