/
get.go
118 lines (88 loc) · 2.29 KB
/
get.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
package sm2
import (
"crypto/elliptic"
"github.com/deatil/go-cryptobin/gm/sm2"
cryptobin_tool "github.com/deatil/go-cryptobin/tool"
)
// 获取 PrivateKey
func (this SM2) GetPrivateKey() *sm2.PrivateKey {
return this.privateKey
}
// 获取 PrivateKeyCurve
func (this SM2) GetPrivateKeyCurve() elliptic.Curve {
return this.privateKey.Curve
}
// 获取 PrivateKeyD
func (this SM2) GetPrivateKeyDHexString() string {
data := this.privateKey.D
dataHex := cryptobin_tool.HexEncode(data.Bytes())
return dataHex
}
// 获取私钥明文
func (this SM2) GetPrivateKeyString() string {
return this.GetPrivateKeyDHexString()
}
// 获取 PublicKey
func (this SM2) GetPublicKey() *sm2.PublicKey {
return this.publicKey
}
// 获取 PublicKeyCurve
func (this SM2) GetPublicKeyCurve() elliptic.Curve {
return this.publicKey.Curve
}
// 获取 PublicKeyXHex
func (this SM2) GetPublicKeyXHexString() string {
data := this.publicKey.X
dataHex := cryptobin_tool.HexEncode(data.Bytes())
return dataHex
}
// 获取 PublicKeyYHex
func (this SM2) GetPublicKeyYHexString() string {
data := this.publicKey.Y
dataHex := cryptobin_tool.HexEncode(data.Bytes())
return dataHex
}
// 获取 PublicKeyXYHex
func (this SM2) GetPublicKeyXYHexString() string {
dataHex := this.GetPublicKeyXHexString() + this.GetPublicKeyYHexString()
return dataHex
}
// 获取未压缩公钥
func (this SM2) GetPublicKeyUncompressString() string {
dataHex := "04" + this.GetPublicKeyXHexString() + this.GetPublicKeyYHexString()
return dataHex
}
// 获取压缩公钥
func (this SM2) GetPublicKeyCompressString() string {
data := sm2.Compress(this.publicKey)
dataHex := cryptobin_tool.HexEncode(data)
return dataHex
}
// 获取 keyData
func (this SM2) GetKeyData() []byte {
return this.keyData
}
// 获取 mode
func (this SM2) GetMode() sm2.Mode {
return this.mode
}
// 获取 data
func (this SM2) GetData() []byte {
return this.data
}
// 获取 parsedData
func (this SM2) GetParsedData() []byte {
return this.parsedData
}
// 获取 uid
func (this SM2) GetUID() []byte {
return this.uid
}
// 获取验证后情况
func (this SM2) GetVerify() bool {
return this.verify
}
// 获取错误
func (this SM2) GetErrors() []error {
return this.Errors
}