-
Notifications
You must be signed in to change notification settings - Fork 21
/
helper.go
60 lines (50 loc) · 1.25 KB
/
helper.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
package pbes1
// PEMCipher 列表
var PEMCipherMap = map[string]Cipher{
// pkcs12
"SHA1AndRC4_128": SHA1AndRC4_128,
"SHA1AndRC4_40": SHA1AndRC4_40,
"SHA1And3DES": SHA1And3DES,
"SHA1And2DES": SHA1And2DES,
"SHA1AndRC2_128": SHA1AndRC2_128,
"SHA1AndRC2_40": SHA1AndRC2_40,
// PBES1
"MD2AndDES": MD2AndDES,
"MD2AndRC2_64": MD2AndRC2_64,
"MD5AndDES": MD5AndDES,
"MD5AndRC2_64": MD5AndRC2_64,
"SHA1AndDES": SHA1AndDES,
"SHA1AndRC2_64": SHA1AndRC2_64,
}
// 获取 Cipher 类型
func GetCipherFromName(name string) Cipher {
if data, ok := PEMCipherMap[name]; ok {
return data
}
return PEMCipherMap["MD5AndDES"]
}
// 检测 Cipher 类型
func CheckCipherFromName(name string) bool {
if _, ok := PEMCipherMap[name]; ok {
return true
}
return false
}
// 获取 Cipher 类型名称
func GetCipherName(c Cipher) string {
for name, cipher := range PEMCipherMap {
if cipher.OID().Equal(c.OID()) {
return name
}
}
return ""
}
// 检测 Cipher
func CheckCipher(c Cipher) bool {
for _, cipher := range PEMCipherMap {
if cipher.OID().Equal(c.OID()) {
return true
}
}
return false
}