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