@@ -8,13 +8,14 @@ import (
8
8
9
9
//Version - information version
10
10
type Version struct {
11
- ver byte //version number
12
- cur byte //current version in RFC4880
11
+ ver byte //version number
12
+ cur byte //current version in RFC4880
13
+ draft byte //draft version in RFC4880bis
13
14
}
14
15
15
16
//NewVersion returns new Version instance
16
- func NewVersion (ver , cur byte ) * Version {
17
- return & Version {ver : ver , cur : cur }
17
+ func NewVersion (ver , cur , draft byte ) * Version {
18
+ return & Version {ver : ver , cur : cur , draft : draft }
18
19
}
19
20
20
21
//Number returns number of version
@@ -41,9 +42,20 @@ func (v *Version) IsCurrent() bool {
41
42
return v .ver == v .cur
42
43
}
43
44
45
+ //IsDraft return true if draft version
46
+ func (v * Version ) IsDraft () bool {
47
+ if v == nil {
48
+ return false
49
+ }
50
+ if v .draft == 0 {
51
+ return false
52
+ }
53
+ return v .ver == v .draft
54
+ }
55
+
44
56
//IsUnknown return true if unknown version
45
57
func (v * Version ) IsUnknown () bool {
46
- return ! v .IsOld () && ! v .IsCurrent ()
58
+ return ! v .IsOld () && ! v .IsCurrent () && ! v . IsDraft ()
47
59
}
48
60
49
61
//ToItem returns Item instance
@@ -57,6 +69,8 @@ func (v *Version) ToItem(dumpFlag bool) *info.Item {
57
69
note = "old"
58
70
case v .IsCurrent ():
59
71
note = "current"
72
+ case v .IsDraft ():
73
+ note = "draft"
60
74
default :
61
75
note = "unknown"
62
76
}
@@ -74,27 +88,27 @@ func (v *Version) String() string {
74
88
75
89
// PubVer is Public-Key Packet Version
76
90
func PubVer (ver byte ) * Version {
77
- return NewVersion (ver , 4 )
91
+ return NewVersion (ver , 4. , 5 )
78
92
}
79
93
80
94
// SigVer is Signiture Packet Version
81
95
func SigVer (ver byte ) * Version {
82
- return NewVersion (ver , 4 )
96
+ return NewVersion (ver , 4 , 0 )
83
97
}
84
98
85
99
// OneSigVer is One-Pass Signature Packet Version
86
100
func OneSigVer (ver byte ) * Version {
87
- return NewVersion (ver , 3 )
101
+ return NewVersion (ver , 3 , 0 )
88
102
}
89
103
90
104
// PubSessKeyVer is Public-Key Encrypted Session Key Packet Version
91
105
func PubSessKeyVer (ver byte ) * Version {
92
- return NewVersion (ver , 3 )
106
+ return NewVersion (ver , 3 , 0 )
93
107
}
94
108
95
109
// SymSessKeyVer is Symmetric-Key Encrypted Session Key Packet Version
96
110
func SymSessKeyVer (ver byte ) * Version {
97
- return NewVersion (ver , 4 )
111
+ return NewVersion (ver , 4 , 0 )
98
112
}
99
113
100
114
/* Copyright 2016,2017 Spiegel
0 commit comments