]> Cypherpunks.ru repositories - gogost.git/blob - news.texi
Download link for 5.14.1 release
[gogost.git] / news.texi
1 @node News
2 @unnumbered News
3
4 @table @strong
5
6 @anchor{Release 5.14.1}
7 @item 5.14.1
8     @itemize
9     @item Forgotten @code{Version} raise
10     @item Streebog-512 PBKDF2 test vectors
11     @end itemize
12
13 @anchor{Release 5.14.0}
14 @item 5.14.0
15 28147-89 and CryptoPro key wrapping support
16 (@url{https://tools.ietf.org/html/rfc4357.html, RFC 4357}).
17
18 @anchor{Release 5.13.0}
19 @item 5.13.0
20     @itemize
21     @item
22         @code{gost3410.NewPublicKeyLE}, @code{gost3410.PublicKey.RawLE},
23         @code{gost3410.NewPublicKeyBE}, @code{gost3410.PublicKey.RawBE},
24         @code{gost3410.NewPrivateKeyLE}, @code{gost3410.PrivateKey.RawLE},
25         @code{gost3410.NewPrivateKeyBE}, @code{gost3410.PrivateKey.RawBE},
26         functions appeared, to simplify dealing with different endianness
27         keys serialisation
28     @item
29         @code{gost3410.PublicKeyReverseDigest} and
30         @code{gost3410.PublicKeyReverseDigestAndSignature} wrappers appeared
31     @end itemize
32
33 @anchor{Release 5.12.0}
34 @item 5.12.0
35 Updated dependencies.
36
37 @anchor{Release 5.11.0}
38 @item 5.11.0
39 You can check if public key is on curve with
40 @code{gost3410.Curve.Contains} method now.
41
42 @anchor{Release 5.10.0}
43 @item 5.10.0
44     @itemize
45     @item @code{mgm.MGM.Open} returns @code{mgm.InvalidTag} for failed authentication
46     @item Example @file{cmd/cer-dane-hash} and
47         @file{cmd/cer-selfsigned-example} utilities appeared
48     @end itemize
49
50 @anchor{Release 5.9.1}
51 @item 5.9.1
52 Updated and cleaned up @file{go.sum}.
53
54 @anchor{Release 5.9.0}
55 @item 5.9.0
56 @code{gost3410} is more thread-safe.
57
58 @anchor{Release 5.8.0}
59 @item 5.8.0
60 Faster Kuznechik and ~3x faster Kuznechik-MGM.
61
62 @anchor{Release 5.7.0}
63 @item 5.7.0
64 Go 1.17 requires @code{gost3410.PublicKey} to have @code{Equal} method.
65
66 @anchor{Release 5.6.0}
67 @item 5.6.0
68     @itemize
69     @item Add @code{gost3410.CurveIdtc26gost341012512paramSetTest} curve
70     @item More curve aliases:
71 @verbatim
72 CurveIdGostR34102001CryptoProAParamSet -> CurveIdtc26gost341012256paramSetB
73 CurveIdGostR34102001CryptoProBParamSet -> CurveIdtc26gost341012256paramSetC
74 CurveIdGostR34102001CryptoProCParamSet -> CurveIdtc26gost341012256paramSetD
75 CurveIdGostR34102001CryptoProXchAParamSet -> CurveIdGostR34102001CryptoProAParamSet
76 CurveIdGostR34102001CryptoProXchBParamSet -> CurveIdGostR34102001CryptoProCParamSet
77 CurveIdtc26gost34102012256paramSetA -> CurveIdtc26gost341012256paramSetA
78 CurveIdtc26gost34102012256paramSetB -> CurveIdtc26gost341012256paramSetB
79 CurveIdtc26gost34102012256paramSetC -> CurveIdtc26gost341012256paramSetC
80 CurveIdtc26gost34102012256paramSetD -> CurveIdtc26gost341012256paramSetD
81 CurveIdtc26gost34102012512paramSetTest -> CurveIdtc26gost341012512paramSetTest
82 CurveIdtc26gost34102012512paramSetA -> CurveIdtc26gost341012512paramSetA
83 CurveIdtc26gost34102012512paramSetB -> CurveIdtc26gost341012512paramSetB
84 CurveIdtc26gost34102012512paramSetC -> CurveIdtc26gost341012512paramSetC
85 @end verbatim
86     @end itemize
87
88 @anchor{Release 5.5.0}
89 @item 5.5.0
90     @code{gost3410.PrivateKey} is in @code{gost3410.Curve.Q} now. That
91     makes them more friendly with some implementations.
92
93 @anchor{Release 5.4.0}
94 @item 5.4.0
95     Even slightly less allocations in Streebog.
96
97 @anchor{Release 5.3.0}
98 @item 5.3.0
99     ~16x speedup of Streebog, ~15x speedup of Kuznechik.
100
101 @anchor{Release 5.2.0}
102 @item 5.2.0
103     MGM does not panic when short (tagless) message is verified.
104
105 @anchor{Release 5.1.1}
106 @item 5.1.1
107     Tarball uses vendoring, instead of @env{GOPATH} overriding.
108     As minimal Go version is 1.12 for a long time, it supports modules.
109
110 @anchor{Release 5.1.0}
111 @item 5.1.0
112     @code{gost3410/KEK*} functions do not alter @code{ukm} argument.
113     It is safe to reuse now.
114
115 @anchor{Release 5.0.0}
116 @item 5.0.0
117     Backward incompatible remove of excess misleading @code{gost3410.Mode}
118     from all related functions. Point/key sizes are determined by
119     looking at curve's parameters size.
120
121 @anchor{Release 4.3.0}
122 @item 4.3.0
123     @strong{Fixed} nasty bug with Edwards curves using in 34.10-VKO
124     functions: curve's cofactor has not been used.
125
126 @anchor{Release 4.2.4}
127 @item 4.2.4
128     @code{gost3410.PrivateKeyReverseDigest} reversed digests and
129     @code{PrivateKeyReverseDigestAndSignature} with also reversed signatures
130     signers appeared for convenience.
131
132 @anchor{Release 4.2.3}
133 @item 4.2.3
134     Panic on all possible hash @code{Write} errors.
135
136 @anchor{Release 4.2.2}
137 @item 4.2.2
138     More 34.10-2012 test vectors.
139
140 @anchor{Release 4.2.1}
141 @item 4.2.1
142     Dummy release. More nicer tarballs.
143
144 @anchor{Release 4.2.0}
145 @item 4.2.0
146     @itemize
147     @item @code{PRF_IPSEC_PRFPLUS_GOSTR3411_2012_@{256,512@}} implementation
148     @item Generic @code{prf+} function (taken from IKEv2
149         (@url{https://tools.ietf.org/html/rfc5831.html, RFC 7296}))
150     @end itemize
151
152 @anchor{Release 4.1.0}
153 @item 4.1.0
154     @itemize
155     @item @code{ESPTREE}/@code{IKETREE} implementation
156     @item @code{CurveIdtc26gost34102012256paramSetB},
157         @code{CurveIdtc26gost34102012256paramSetC},
158         @code{CurveIdtc26gost34102012256paramSetD} curve aliases
159     @item Forbid any later GNU GPL version autousage
160         (project's licence now is GNU GPLv3 only)
161     @item Project now is @command{go get}-able and uses
162         @code{go.cypherpunks.ru} namespace:
163         @command{go get go.cypherpunks.ru/gogost},
164         @command{go get go.cypherpunks.ru/gogost/cmd/streebog@{256,512@}}
165     @end itemize
166
167 @anchor{Release 4.0}
168 @item 4.0
169     @itemize
170     @item Backward incompatible change: all keys passing to encryption
171         functions are slices now, not the fixed arrays. That heavily
172         simplifies the library usage
173     @item Fix bug with overwriting IVs memory in @code{gost28147.CFB*crypter}
174     @item @code{TLSTREE}, used in TLS 1.[23], implementation
175     @item @code{gost3410.KEK2012*} can be used with any curves, not only 512-bit ones
176     @item @code{gost3410.PrivateKey} satisfies @code{crypto.Signer} interface
177     @item @code{gost34112012*} hashes satisfy @code{encoding.Binary(Un)Marshaler}
178     @item Streebog256 HKDF test vectors
179     @end itemize
180
181 @anchor{Release 3.0}
182 @item 3.0
183     @itemize
184     @item Multilinear Galois Mode (MGM) block cipher mode for
185       64 and 128 bit ciphers
186     @item @code{KDF_GOSTR3411_2012_256} KDF
187     @item 34.12-2015 64-bit block cipher Магма (Magma)
188     @item Additional EAC 28147-89 Sbox
189     @item 34.10-2012 TC26 twisted Edwards curve related parameters
190     @item Coordinates conversion from twisted Edwards to Weierstrass
191       form and vice versa
192     @item Fixed @code{gost3410.PrivateKey}'s length validation
193     @item Backward incompatible change: @code{gost3410.NewCurve} takes
194       @code{big.Int}, instead of encoded integers
195     @item Backward incompatible Sbox and curves parameters renaming, to
196       comply with OIDs identifying them:
197 @verbatim
198 Gost2814789_TestParamSet       -> SboxIdGost2814789TestParamSet
199 Gost28147_CryptoProParamSetA   -> SboxIdGost2814789CryptoProAParamSet
200 Gost28147_CryptoProParamSetB   -> SboxIdGost2814789CryptoProBParamSet
201 Gost28147_CryptoProParamSetC   -> SboxIdGost2814789CryptoProCParamSet
202 Gost28147_CryptoProParamSetD   -> SboxIdGost2814789CryptoProDParamSet
203 GostR3411_94_TestParamSet      -> SboxIdGostR341194TestParamSet
204 Gost28147_tc26_ParamZ          -> SboxIdtc26gost28147paramZ
205 GostR3411_94_CryptoProParamSet -> SboxIdGostR341194CryptoProParamSet
206 EACParamSet                    -> SboxEACParamSet
207
208 CurveParamsGostR34102001cc            -> CurveGostR34102001ParamSetcc
209 CurveParamsGostR34102001Test          -> CurveIdGostR34102001TestParamSet
210 CurveParamsGostR34102001CryptoProA    -> CurveIdGostR34102001CryptoProAParamSet
211 CurveParamsGostR34102001CryptoProB    -> CurveIdGostR34102001CryptoProBParamSet
212 CurveParamsGostR34102001CryptoProC    -> CurveIdGostR34102001CryptoProCParamSet
213 CurveParamsGostR34102001CryptoProXchA -> CurveIdGostR34102001CryptoProXchAParamSet
214 CurveParamsGostR34102001CryptoProXchB -> CurveIdGostR34102001CryptoProXchBParamSet
215 CurveParamsGostR34102012TC26ParamSetA -> CurveIdtc26gost341012512paramSetA
216 CurveParamsGostR34102012TC26ParamSetB -> CurveIdtc26gost341012512paramSetB
217 @end verbatim
218     @item Various additional test vectors
219     @item go modules friendliness
220     @end itemize
221
222 @anchor{Release 2.0}
223 @item 2.0
224     @itemize
225     @item 34.11-2012 is split on two different modules:
226         @code{gost34112012256} and @code{gost34112012512}
227     @item 34.11-94's digest is reversed. Now it is compatible with TC26's
228       HMAC and PBKDF2 test vectors
229     @item @code{gogost-streebog} is split to @code{streebog256} and
230         @code{streebog512} correspondingly by analogy with sha* utilities
231     @item added VKO 34.10-2012 support with corresponding test vectors
232     @item @code{gost3410.DigestSizeX} is renamed to
233         @code{gost3410.ModeX} because it is not related to digest size,
234         but parameters and key sizes
235     @item KEK functions take @code{big.Int} UKM value. Use @code{NewUKM}
236         to unmarshal raw binary UKM
237     @end itemize
238
239 @anchor{Release 1.1}
240 @item 1.1
241     @itemize
242     @item gogost-streebog is able to use either 256 or 512 bits digest size
243     @item 34.13-2015 padding methods
244     @item 28147-89 CBC mode of operation
245     @end itemize
246
247 @end table