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