From a2e6a71221572578aaf329df351445edc47fd3b3 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sat, 19 Nov 2016 17:15:03 +0300 Subject: [PATCH] Preparing for 3.0 release --- NEWS | 16 ++++++++++++++++ README | 29 +++++++++++++++++++++-------- VERSION | 2 +- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/NEWS b/NEWS index b951650..2f4d345 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,19 @@ +3.0: + Many incompatible changes: + + * gost3411_94 renamed to gost341194 + * gost3411_2012 renamed and splitted to gost34112012256, gost34112012512 + * GOST34112012 splitted to GOST34112012256, GOST34112012512 + * gost3410.kek moved to separate gost3410_vko.vko_34102001 + * 34.10-2012 VKO 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 expects (pubX, pubY) tuple, instead of two separate + pubX, pubY arguments + 2.4: Fixed 34.13 mypy stub diff --git a/README b/README index 42b3c2e..95f555b 100644 --- a/README +++ b/README @@ -21,14 +21,27 @@ GOST is GOvernment STandard of Russian Federation (and Soviet Union). Known problems: low performance and non time-constant calculations. -Example X.509 compatible 34.10-2012 keypair generation, signing and -verifying its signature: - - >>> from pygost import x509 - >>> prv, pub = x509.keypair_gen(urandom(64), mode=2012) - >>> data = b'some data' - >>> signature = x509.sign(prv, data, mode=2012) - >>> x509.verify(pub, data, signature, mode=2012) +Example 34.10-2012 keypair generation, signing and verifying: + + >>> from pygost.gost3410 import CURVE_PARAMS + >>> from pygost.gost3410 import GOST3410Curve + >>> curve = GOST3410Curve(*CURVE_PARAMS["GostR3410_2012_TC26_ParamSetA"]) + >>> from os import urandom + >>> prv_raw = urandom(32) + >>> from pygost.gost3410 import prv_unmarshal + >>> prv = prv_unmarshal(prv_raw) + >>> from pygost.gost3410 import public_key + >>> pub = public_key(curve, prv) + >>> from pygost.gost3410 import pub_marshal + >>> from pygost.utils import hexenc + >>> print "Public key is:", hexenc(pub_marshal(pub)) + >>> from pygost import gost34112012256 + >>> data_for_signing = b"some data" + >>> dgst = gost34112012256.new(data_for_signing).digest() + >>> from pygost.gost3410 import sign + >>> signature = sign(curve, prv, dgst, mode=2012) + >>> from pygost.gost3410 import verify + >>> verify(curve, pub, dgst, signature, mode=2012) True Other examples can be found in docstrings. diff --git a/VERSION b/VERSION index 6b4950e..9f55b2c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.4 +3.0 -- 2.44.0