X-Git-Url: http://www.git.cypherpunks.ru/?p=pygost.git;a=blobdiff_plain;f=www.texi;h=1f87bc3e6a6437e495dafb1ced9c9962bd56cba1;hp=7f3c0f20d6820ddadc0d6cdfa3d7efb80deca809;hb=ac4d91064eb6bf5b2f5b17400565bcb93aea57a1;hpb=312c6b813adbf8a04253e3b1da28e02780c61d07 diff --git a/www.texi b/www.texi index 7f3c0f2..1f87bc3 100644 --- a/www.texi +++ b/www.texi @@ -3,7 +3,7 @@ @settitle PyGOST @copying -Copyright @copyright{} 2015-2019 @email{stargrave@@stargrave.org, Sergey Matveev} +Copyright @copyright{} 2015-2021 @email{stargrave@@stargrave.org, Sergey Matveev} @end copying @node Top @@ -14,8 +14,8 @@ GOST is GOvernment STandard of Russian Federation (and Soviet Union). It is @url{https://www.gnu.org/philosophy/pragmatic.html, copylefted} @url{https://www.gnu.org/philosophy/free-sw.html, free software}: -licenced under @url{https://www.gnu.org/licenses/gpl-3.0.html, GPLv3+}. -You can read about GOST algorithms @url{http://gost.cypherpunks.ru/, more}. +licenced under @url{https://www.gnu.org/licenses/gpl-3.0.html, GPLv3}. +You can read about GOST algorithms @url{http://www.gost.cypherpunks.ru/, more}. Currently supported algorithms are: @@ -55,16 +55,22 @@ Currently supported algorithms are: @item GOST R 34.12-2015 64-bit block cipher Магма (Magma) @item GOST R 34.13-2015 padding methods and block cipher modes of operation (ECB, CTR, OFB, CBC, CFB, MAC) +@item MGM AEAD mode for 64 and 128 bit ciphers + (@url{https://tools.ietf.org/html/rfc9058.html, RFC 9058}) +@item CTR-ACPKM, OMAC-ACPKM-Master modes of operation (Р 1323565.1.017-2018) +@item KExp15/KImp15 key export/import functions (Р 1323565.1.017-2018) +@item KDF_GOSTR3411_2012_256, KDF_TREE_GOSTR3411_2012_256 (Р 50.1.113-2016) +@item KEG export key generation function (Р 1323565.1.020-2018) @item PEP247-compatible hash/MAC functions @end itemize Example 34.10-2012 keypair generation, signing and verifying: -@verbatim +@example >>> from pygost.gost3410 import CURVES >>> curve = CURVES["id-tc26-gost-3410-12-512-paramSetA"] >>> from os import urandom ->>> prv_raw = urandom(32) +>>> prv_raw = urandom(64) >>> from pygost.gost3410 import prv_unmarshal >>> prv = prv_unmarshal(prv_raw) >>> from pygost.gost3410 import public_key @@ -72,23 +78,24 @@ Example 34.10-2012 keypair generation, signing and verifying: >>> from pygost.gost3410 import pub_marshal >>> from pygost.utils import hexenc >>> print "Public key is:", hexenc(pub_marshal(pub)) ->>> from pygost import gost34112012256 +>>> from pygost import gost34112012512 >>> data_for_signing = b"some data" ->>> dgst = gost34112012256.new(data_for_signing).digest() +>>> dgst = gost34112012512.new(data_for_signing).digest()[::-1] >>> from pygost.gost3410 import sign ->>> signature = sign(curve, prv, dgst, mode=2012) +>>> signature = sign(curve, prv, dgst) >>> from pygost.gost3410 import verify ->>> verify(curve, pub, dgst, signature, mode=2012) +>>> verify(curve, pub, dgst, signature) True -@end verbatim +@end example Please send questions, bug reports and patches to -@url{https://lists.cypherpunks.ru/mailman/listinfo/gost, gost} +@url{http://lists.cypherpunks.ru/gost.html, gost} mailing list. Announcements also go to this mailing list. @insertcopying +@include faq.texi @include news.texi -@include download.texi +@include install.texi @bye