Next: , Previous: , Up: PyGOST  


News

5.13

Ability to use masked 34.10 private keys.

5.12

Fixed incorrect digest calculation when using GOST34112012*.update() method.

5.11

gost34112012’s update()/digest() methods are streaming now – they do not store the whole data in memory.

5.10

Added ISO 10126 pygost.gost3413.(un)pad_iso10126 padding support.

5.9

Fixed wrap.wrap_cryptopro, that ignored Sbox for key diversification.

5.8

Added human-readable name of the curve in GOST3410Curve.name.

5.7

Fixed MGM ignoring of the set tag size.

5.6

Fixed lint errors for previous release.

5.5

More 34.10 curve parameters aliases:

id-tc26-gost-3410-2012-256-paramSetA -> id-tc26-gost-3410-12-256-paramSetA
id-tc26-gost-3410-2012-256-paramSetB -> id-tc26-gost-3410-12-256-paramSetB
id-tc26-gost-3410-2012-256-paramSetC -> id-tc26-gost-3410-12-256-paramSetC
id-tc26-gost-3410-2012-256-paramSetD -> id-tc26-gost-3410-12-256-paramSetD
id-tc26-gost-3410-2012-512-paramSetTest -> id-tc26-gost-3410-12-512-paramSetTest
id-tc26-gost-3410-2012-512-paramSetA -> id-tc26-gost-3410-12-512-paramSetA
id-tc26-gost-3410-2012-512-paramSetB -> id-tc26-gost-3410-12-512-paramSetB
id-tc26-gost-3410-2012-512-paramSetC -> id-tc26-gost-3410-12-512-paramSetC
5.4

gost3410.prv_marshal helper can make private keys that are in curve’s Q field, for better compatibility with some implementations.

5.3
  • More than 4 times speed increase of gost34112012.
  • asn1schemas/cert-selfsigned-example.py optionally can issue CA signed child certificate.
5.2
  • GOST3410Curve has .contains(point) method for checking if point is on the curve.
  • gost3410_vko functions check if remote peer’s public key is on the curve.
  • Small typing stubs fixes.
5.1

Small typing stubs fixes.

5.0
  • Backward incompatible removing of misleading and excess mode keyword argument from all gost3410* related functions. Point/key sizes are determined by looking at curve’s parameters size.
  • asn1schemas/cert-selfsigned-example.py optionally can create CA certificate.
4.9
  • Fixed nasty bug with Edwards curves using in 34.10-VKO functions: curve’s cofactor has not been used
  • CTR-ACPKM mode of operation
  • OMAC-ACPKM-Master moder of operation
  • KExp15/KImp15 key export/import functions
  • KDF_GOSTR3411_2012_256, KDF_TREE_GOSTR3411_2012_256
  • KEG export key generation function
4.8

MGM AEAD mode for 64 and 128 bit ciphers.

4.7

Removed gost28147.addmod for simplicity.

4.6

Fix invalid gost28147.addmod’s behaviour with much bigger values than the modulo.

4.5

Fixed digest endianness and more RFC4491bis conformance in asn1schemas/cert-selfsigned-example.py certificate’s.

4.4
  • id-tc26-gost-3410-2012-512-paramSetTest curve
  • Simple FAQ
  • More test vectors for 34.10-2012
  • More X.509, PKCS #10 and corresponding ASN.1 helper structures
4.3

Dummy release with fixed pygost.__version__.

4.2
  • pygost.gost3410.sign accepts predefined random data used for k/r generation
  • More test vectors for 34.10-2012
4.1
  • PEP-396 compatible module’s __version__
  • Curve parameters aliases:
    id-GostR3410-2001-CryptoPro-XchA-ParamSet -> id-GostR3410-2001-CryptoPro-A-ParamSet
    id-GostR3410-2001-CryptoPro-XchB-ParamSet -> id-GostR3410-2001-CryptoPro-C-ParamSet
    id-tc26-gost-3410-2012-256-paramSetB      -> id-GostR3410-2001-CryptoPro-A-ParamSet
    id-tc26-gost-3410-2012-256-paramSetC      -> id-GostR3410-2001-CryptoPro-B-ParamSet
    id-tc26-gost-3410-2012-256-paramSetD      -> id-GostR3410-2001-CryptoPro-C-ParamSet
    
  • Forbid any later GNU GPL version autousage (project’s licence now is GNU GPLv3 only)
4.0
  • 34.10-2012 TC26 twisted Edwards curve related parameters
  • Coordinates conversion from twisted Edwards to Weierstrass form and vice versa
  • More test vectors
  • Backward incompatible Sbox and curves parameters renaming, to comply with OIDs identifying them:
    Gost2814789_TestParamSet       -> id-Gost28147-89-TestParamSet
    Gost28147_CryptoProParamSetA   -> id-Gost28147-89-CryptoPro-A-ParamSet
    Gost28147_CryptoProParamSetB   -> id-Gost28147-89-CryptoPro-B-ParamSet
    Gost28147_CryptoProParamSetC   -> id-Gost28147-89-CryptoPro-C-ParamSet
    Gost28147_CryptoProParamSetD   -> id-Gost28147-89-CryptoPro-D-ParamSet
    Gost28147_tc26_ParamZ          -> id-tc26-gost-28147-param-Z
    GostR3411_94_TestParamSet      -> id-GostR3411-94-TestParamSet
    GostR3411_94_CryptoProParamSet -> id-GostR3411-94-CryptoProParamSet
    
    GostR3410_2001_TestParamSet            -> id-GostR3410-2001-TestParamSet
    GostR3410_2001_CryptoPro_A_ParamSet    -> id-GostR3410-2001-CryptoPro-A-ParamSet
    GostR3410_2001_CryptoPro_B_ParamSet    -> id-GostR3410-2001-CryptoPro-B-ParamSet
    GostR3410_2001_CryptoPro_C_ParamSet    -> id-GostR3410-2001-CryptoPro-C-ParamSet
    GostR3410_2001_CryptoPro_XchA_ParamSet -> id-GostR3410-2001-CryptoPro-XchA-ParamSet
    GostR3410_2001_CryptoPro_XchB_ParamSet -> id-GostR3410-2001-CryptoPro-XchB-ParamSet
    GostR3410_2012_TC26_256_ParamSetA      -> id-tc26-gost-3410-2012-256-paramSetA
    GostR3410_2012_TC26_ParamSetA          -> id-tc26-gost-3410-12-512-paramSetA
    GostR3410_2012_TC26_ParamSetB          -> id-tc26-gost-3410-12-512-paramSetB
    GostR3410_2012_TC26_ParamSetC          -> id-tc26-gost-3410-2012-512-paramSetC
    
  • Backward incompatible GOST3410Curve initialization: all parameters are passed not as big-endian encoded binaries, but as integers
  • Backward incompatible change: gost3410.CURVE_PARAMS is disappeared. gost3410.CURVES dictionary holds already initialized GOST3410Curve. Just use CURVES["id-tc26-gost-3410-12-512-paramSetA"] instead of GOST3410Curve(*CURVE_PARAMS["id-tc26-gost-3410-12-512-paramSetA"])
3.15
  • Licence changed back to GNU GPLv3+. GNU LGPLv3+ licenced versions are not available anymore
  • More ASN.1-based test vectors (PyDERASN dependency required)
3.14

Add missing typing stubs related to previous release.

3.13
  • Ability to explicitly specify used 28147-89 Sbox in pygost.wrap.* functions
  • Ability to use key meshing in 28147-89 CBC mode
3.12
  • Added mode argument to pygost.gost3410_vko.kek_34102012256, because 256-bit private keys can be used with that algorithm too.
  • Fix incorrect degree sanitizing in pygost.gost3410.GOST3410Curve.exp preventing using of UKM=1 in pygost.gost3410_vko.kek_* functions.
3.11

Fixed PEP247 typing stub with invalid hexdigest method.

3.10

Additional missing 34.11-* typing stubs.

3.9

Add missing 34.11-2012 PBKDF2 typing stub.

3.8
  • 34.11-2012 based PBKDF2 function added
  • 34.13-2015 does not require double blocksized IVs
3.7

Fixed 34.13-2015 OFB bug with IVs longer than 2 blocks.

3.6

Fixed source files installation during setup.py install invocation.

3.5

Dummy release: added long description in package metadata.

3.4
  • Small mypy stubs related fixes
  • Licence changed from GNU GPLv3+ to GNU LGPLv3+
3.3
  • GOST3412Kuz renamed to GOST3412Kuznechik
  • GOST3412Magma implements GOST R 34.12-2015 Magma 64-bit block cipher
3.2

34.13-2015 block cipher modes of operation implementations.

3.1

Fixed mypy stubs related to PEP247-successors.

3.0
  • gost3411_94 renamed to gost341194
  • gost3411_2012 renamed and split to gost34112012256, gost34112012512
  • GOST34112012 split to GOST34112012256, GOST34112012512
  • gost3410.kek moved to separate gost3410_vko.kek_34102001
  • VKO GOST R 34.10-2012 appeared in gost3410_vko, with test vectors
  • 34.11-94 digest is reversed, to be compatible with HMAC and PBKDF2 test vectors describe in TC26 documents
  • 34.11-94 PBKDF2 test vectors added
  • gost3410.prv_unmarshal, gost3410.pub_marshal, gost3410.pub_unmarshal helpers added, removing the need of x509 module at all
  • gost3410.verify requires (pubX, pubY) tuple, instead of two separate pubX, pubY arguments
  • 34.11-94 based PBKDF2 function added
2.4

Fixed 34.13 mypy stub.

2.3

Typo and pylint fixes.

2.2

GOST R 34.13-2015 padding methods.

2.1

Documentation and supplementary files refactoring.

2.0

PEP-0247 compatible hashers and MAC.

1.0
  • Ability to specify curve in pygost.x509 module
  • Ability to use 34.10-2012 in pygost.x509 functions
  • Renamed classes and modules:
    pygost.gost3410.SIZE_34100 -> pygost.gost3410.SIZE_3410_2001
    pygost.gost3410.SIZE_34112 -> pygost.gost3410.SIZE_3410_2012
    pygost.gost3411_12.GOST341112 -> pygost.gost3411_2012.GOST34112012
    
0.16

34.10-2012 TC26 curve parameters.

0.15

PEP-0484 static typing hints.

0.14

34.10-2012 workability fix.

0.13

Python3 compatibility.

0.11

GOST R 34.12-2015 Кузнечик (Kuznechik) implementation.

0.10

CryptoPro and GOST key wrapping, CryptoPro key meshing.


Next: Download, Previous: Frequently asked questions, Up: PyGOST