]> Cypherpunks.ru repositories - pygost.git/blob - news.texi
Fix MGM tag_size usage
[pygost.git] / news.texi
1 @node News
2 @unnumbered News
3
4 @table @strong
5
6 @anchor{Release 5.7}
7 @item 5.7
8 Fixed MGM ignoring of the set tag size.
9
10 @anchor{Release 5.6}
11 @item 5.6
12 Fixed lint errors for previous release.
13
14 @anchor{Release 5.5}
15 @item 5.5
16 More 34.10 curve parameters aliases:
17 @verbatim
18 id-tc26-gost-3410-2012-256-paramSetA -> id-tc26-gost-3410-12-256-paramSetA
19 id-tc26-gost-3410-2012-256-paramSetB -> id-tc26-gost-3410-12-256-paramSetB
20 id-tc26-gost-3410-2012-256-paramSetC -> id-tc26-gost-3410-12-256-paramSetC
21 id-tc26-gost-3410-2012-256-paramSetD -> id-tc26-gost-3410-12-256-paramSetD
22 id-tc26-gost-3410-2012-512-paramSetTest -> id-tc26-gost-3410-12-512-paramSetTest
23 id-tc26-gost-3410-2012-512-paramSetA -> id-tc26-gost-3410-12-512-paramSetA
24 id-tc26-gost-3410-2012-512-paramSetB -> id-tc26-gost-3410-12-512-paramSetB
25 id-tc26-gost-3410-2012-512-paramSetC -> id-tc26-gost-3410-12-512-paramSetC
26 @end verbatim
27
28 @anchor{Release 5.4}
29 @item 5.4
30 @code{gost3410.prv_marshal} helper can make private keys that are
31 in curve's Q field, for better compatibility with some implementations.
32
33 @anchor{Release 5.3}
34 @item 5.3
35     @itemize
36     @item More than 4 times speed increase of @code{gost34112012}.
37     @item @command{asn1schemas/cert-selfsigned-example.py} optionally
38         can issue CA signed child certificate.
39     @end itemize
40
41 @anchor{Release 5.2}
42 @item 5.2
43     @itemize
44     @item @code{GOST3410Curve} has @code{.contains(point)} method for
45         checking if point is on the curve.
46     @item @code{gost3410_vko} functions check if remote peer's public
47         key is on the curve.
48     @item Small typing stubs fixes.
49     @end itemize
50
51 @anchor{Release 5.1}
52 @item 5.1
53 Small typing stubs fixes.
54
55 @anchor{Release 5.0}
56 @item 5.0
57     @itemize
58     @item Backward incompatible removing of misleading and excess
59         @option{mode} keyword argument from all @code{gost3410*} related
60         functions. Point/key sizes are determined by looking at curve's
61         parameters size.
62     @item @command{asn1schemas/cert-selfsigned-example.py} optionally
63         can create CA certificate.
64     @end itemize
65
66 @anchor{Release 4.9}
67 @item 4.9
68     @itemize
69     @item @strong{Fixed} nasty bug with Edwards curves using in
70         34.10-VKO functions: curve's cofactor has not been used
71     @item CTR-ACPKM mode of operation
72     @item OMAC-ACPKM-Master moder of operation
73     @item KExp15/KImp15 key export/import functions
74     @item KDF_GOSTR3411_2012_256, KDF_TREE_GOSTR3411_2012_256
75     @item KEG export key generation function
76     @end itemize
77
78 @anchor{Release 4.8}
79 @item 4.8
80 MGM AEAD mode for 64 and 128 bit ciphers.
81
82 @anchor{Release 4.7}
83 @item 4.7
84 Removed @code{gost28147.addmod} for simplicity.
85
86 @anchor{Release 4.6}
87 @item 4.6
88 Fix invalid @code{gost28147.addmod}'s behaviour with much bigger values
89 than the modulo.
90
91 @anchor{Release 4.5}
92 @item 4.5
93 Fixed digest endianness and more RFC4491bis conformance in
94 @command{asn1schemas/cert-selfsigned-example.py} certificate's.
95
96 @anchor{Release 4.4}
97 @item 4.4
98     @itemize
99     @item @code{id-tc26-gost-3410-2012-512-paramSetTest} curve
100     @item Simple FAQ
101     @item More test vectors for 34.10-2012
102     @item More X.509, PKCS #10 and corresponding ASN.1 helper structures
103     @end itemize
104
105 @anchor{Release 4.3}
106 @item 4.3
107 Dummy release with fixed @code{pygost.__version__}.
108
109 @anchor{Release 4.2}
110 @item 4.2
111     @itemize
112     @item @code{pygost.gost3410.sign} accepts predefined random
113         data used for k/r generation
114     @item More test vectors for 34.10-2012
115     @end itemize
116
117 @anchor{Release 4.1}
118 @item 4.1
119     @itemize
120     @item PEP-396 compatible module's @code{__version__}
121     @item Curve parameters aliases:
122 @verbatim
123 id-GostR3410-2001-CryptoPro-XchA-ParamSet -> id-GostR3410-2001-CryptoPro-A-ParamSet
124 id-GostR3410-2001-CryptoPro-XchB-ParamSet -> id-GostR3410-2001-CryptoPro-C-ParamSet
125 id-tc26-gost-3410-2012-256-paramSetB      -> id-GostR3410-2001-CryptoPro-A-ParamSet
126 id-tc26-gost-3410-2012-256-paramSetC      -> id-GostR3410-2001-CryptoPro-B-ParamSet
127 id-tc26-gost-3410-2012-256-paramSetD      -> id-GostR3410-2001-CryptoPro-C-ParamSet
128 @end verbatim
129     @item Forbid any later GNU GPL version autousage (project's licence
130         now is GNU GPLv3 only)
131     @end itemize
132
133 @anchor{Release 4.0}
134 @item 4.0
135     @itemize
136     @item 34.10-2012 TC26 twisted Edwards curve related parameters
137     @item Coordinates conversion from twisted Edwards to Weierstrass
138         form and vice versa
139     @item More test vectors
140     @item Backward incompatible Sbox and curves parameters renaming,
141         to comply with OIDs identifying them:
142 @verbatim
143 Gost2814789_TestParamSet       -> id-Gost28147-89-TestParamSet
144 Gost28147_CryptoProParamSetA   -> id-Gost28147-89-CryptoPro-A-ParamSet
145 Gost28147_CryptoProParamSetB   -> id-Gost28147-89-CryptoPro-B-ParamSet
146 Gost28147_CryptoProParamSetC   -> id-Gost28147-89-CryptoPro-C-ParamSet
147 Gost28147_CryptoProParamSetD   -> id-Gost28147-89-CryptoPro-D-ParamSet
148 Gost28147_tc26_ParamZ          -> id-tc26-gost-28147-param-Z
149 GostR3411_94_TestParamSet      -> id-GostR3411-94-TestParamSet
150 GostR3411_94_CryptoProParamSet -> id-GostR3411-94-CryptoProParamSet
151
152 GostR3410_2001_TestParamSet            -> id-GostR3410-2001-TestParamSet
153 GostR3410_2001_CryptoPro_A_ParamSet    -> id-GostR3410-2001-CryptoPro-A-ParamSet
154 GostR3410_2001_CryptoPro_B_ParamSet    -> id-GostR3410-2001-CryptoPro-B-ParamSet
155 GostR3410_2001_CryptoPro_C_ParamSet    -> id-GostR3410-2001-CryptoPro-C-ParamSet
156 GostR3410_2001_CryptoPro_XchA_ParamSet -> id-GostR3410-2001-CryptoPro-XchA-ParamSet
157 GostR3410_2001_CryptoPro_XchB_ParamSet -> id-GostR3410-2001-CryptoPro-XchB-ParamSet
158 GostR3410_2012_TC26_256_ParamSetA      -> id-tc26-gost-3410-2012-256-paramSetA
159 GostR3410_2012_TC26_ParamSetA          -> id-tc26-gost-3410-12-512-paramSetA
160 GostR3410_2012_TC26_ParamSetB          -> id-tc26-gost-3410-12-512-paramSetB
161 GostR3410_2012_TC26_ParamSetC          -> id-tc26-gost-3410-2012-512-paramSetC
162 @end verbatim
163     @item Backward incompatible @code{GOST3410Curve} initialization: all
164         parameters are passed not as big-endian encoded binaries, but as
165         integers
166     @item Backward incompatible change: @code{gost3410.CURVE_PARAMS} is
167       disappeared. @code{gost3410.CURVES} dictionary holds already
168       initialized @code{GOST3410Curve}. Just use
169       @code{CURVES["id-tc26-gost-3410-12-512-paramSetA"]} instead of
170       @code{GOST3410Curve(*CURVE_PARAMS["id-tc26-gost-3410-12-512-paramSetA"])}
171     @end itemize
172
173 @anchor{Release 3.15}
174 @item 3.15
175     @itemize
176     @item Licence changed back to GNU GPLv3+. GNU LGPLv3+ licenced
177         versions are not available anymore
178     @item More ASN.1-based test vectors
179         (@url{http://www.pyderasn.cypherpunks.ru/, PyDERASN} dependency required)
180     @end itemize
181
182 @anchor{Release 3.14}
183 @item 3.14
184 Add missing typing stubs related to previous release.
185
186 @anchor{Release 3.13}
187 @item 3.13
188     @itemize
189     @item Ability to explicitly specify used 28147-89 Sbox in
190         @code{pygost.wrap.*} functions
191     @item Ability to use key meshing in 28147-89 CBC mode
192     @end itemize
193
194 @anchor{Release 3.12}
195 @item 3.12
196     @itemize
197     @item Added mode argument to @code{pygost.gost3410_vko.kek_34102012256},
198         because 256-bit private keys can be used with that algorithm too.
199     @item Fix incorrect degree sanitizing in
200         @code{pygost.gost3410.GOST3410Curve.exp} preventing using of
201         @code{UKM=1} in @code{pygost.gost3410_vko.kek_*} functions.
202     @end itemize
203
204 @anchor{Release 3.11}
205 @item 3.11
206 Fixed PEP247 typing stub with invalid hexdigest method.
207
208 @anchor{Release 3.10}
209 @item 3.10
210 Additional missing 34.11-* typing stubs.
211
212 @anchor{Release 3.9}
213 @item 3.9
214 Add missing 34.11-2012 PBKDF2 typing stub.
215
216 @anchor{Release 3.8}
217 @item 3.8
218     @itemize
219     @item 34.11-2012 based PBKDF2 function added
220     @item 34.13-2015 does not require double blocksized IVs
221     @end itemize
222
223 @anchor{Release 3.7}
224 @item 3.7
225 Fixed 34.13-2015 OFB bug with IVs longer than 2 blocks.
226
227 @anchor{Release 3.6}
228 @item 3.6
229 Fixed source files installation during @command{setup.py install} invocation.
230
231 @anchor{Release 3.5}
232 @item 3.5
233 Dummy release: added long description in package metadata.
234
235 @anchor{Release 3.4}
236 @item 3.4
237     @itemize
238     @item Small mypy stubs related fixes
239     @item Licence changed from GNU GPLv3+ to GNU LGPLv3+
240     @end itemize
241
242 @anchor{Release 3.3}
243 @item 3.3
244     @itemize
245     @item @code{GOST3412Kuz} renamed to @code{GOST3412Kuznechik}
246     @item @code{GOST3412Magma} implements GOST R 34.12-2015 Magma 64-bit
247         block cipher
248     @end itemize
249
250 @anchor{Release 3.2}
251 @item 3.2
252 34.13-2015 block cipher modes of operation implementations.
253
254 @anchor{Release 3.1}
255 @item 3.1
256 Fixed mypy stubs related to PEP247-successors.
257
258 @anchor{Release 3.0}
259 @item 3.0
260     @itemize
261     @item @code{gost3411_94} renamed to @code{gost341194}
262     @item @code{gost3411_2012} renamed and split to
263         @code{gost34112012256}, @code{gost34112012512}
264     @item @code{GOST34112012} split to
265         @code{GOST34112012256}, @code{GOST34112012512}
266     @item @code{gost3410.kek} moved to separate
267         @code{gost3410_vko.kek_34102001}
268     @item VKO GOST R 34.10-2012 appeared in @code{gost3410_vko},
269         with test vectors
270     @item 34.11-94 digest is reversed, to be compatible with HMAC and
271         PBKDF2 test vectors describe in TC26 documents
272     @item 34.11-94 PBKDF2 test vectors added
273     @item @code{gost3410.prv_unmarshal},
274         @code{gost3410.pub_marshal},
275         @code{gost3410.pub_unmarshal}
276         helpers added, removing the need of @code{x509} module at all
277     @item @code{gost3410.verify} requires @code{(pubX, pubY)} tuple,
278         instead of two separate @code{pubX}, @code{pubY} arguments
279     @item 34.11-94 based PBKDF2 function added
280     @end itemize
281
282 @anchor{Release 2.4}
283 @item 2.4
284 Fixed 34.13 mypy stub.
285
286 @anchor{Release 2.3}
287 @item 2.3
288 Typo and pylint fixes.
289
290 @item 2.2
291 GOST R 34.13-2015 padding methods.
292
293 @item 2.1
294 Documentation and supplementary files refactoring.
295
296 @item 2.0
297 PEP-0247 compatible hashers and MAC.
298
299 @item 1.0
300     @itemize
301     @item Ability to specify curve in pygost.x509 module
302     @item Ability to use 34.10-2012 in pygost.x509 functions
303     @item Renamed classes and modules:
304 @verbatim
305 pygost.gost3410.SIZE_34100 -> pygost.gost3410.SIZE_3410_2001
306 pygost.gost3410.SIZE_34112 -> pygost.gost3410.SIZE_3410_2012
307 pygost.gost3411_12.GOST341112 -> pygost.gost3411_2012.GOST34112012
308 @end verbatim
309     @end itemize
310
311 @item 0.16
312 34.10-2012 TC26 curve parameters.
313
314 @item 0.15
315 PEP-0484 static typing hints.
316
317 @item 0.14
318 34.10-2012 workability fix.
319
320 @item 0.13
321 Python3 compatibility.
322
323 @item 0.11
324 GOST R 34.12-2015 Кузнечик (Kuznechik) implementation.
325
326 @item 0.10
327 CryptoPro and GOST key wrapping, CryptoPro key meshing.
328
329 @end table