@settitle GoGOST
@copying
-Copyright @copyright{} 2015-2016 @email{stargrave@@stargrave.org, Sergey Matveev}
+Copyright @copyright{} 2015-2018 @email{stargrave@@stargrave.org, Sergey Matveev}
@end copying
@node Top
@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://www.cypherpunks.ru/gost/, more}.
+You can read about GOST algorithms @url{http://gost.cypherpunks.ru/, more}.
Currently supported algorithms are:
(@url{https://tools.ietf.org/html/rfc7091.html, RFC 7091})
public key signature function
@item various 34.10 curve parameters included
+@item VKO GOST R 34.10-2001 key agreement function
+ (@url{https://tools.ietf.org/html/rfc4357.html, RFC 4357})
+@item VKO GOST R 34.10-2012 key agreement function
+ (@url{https://tools.ietf.org/html/rfc7836.html, RFC 7836})
@item GOST R 34.12-2015 128-bit block cipher Кузнечик (Kuznechik)
(@url{https://tools.ietf.org/html/rfc7801.html, RFC 7801})
@item GOST R 34.13-2015 padding methods
@insertcopying
+@node News
+@unnumbered News
+
+@table @strong
+
+@item 2.0
+ @itemize
+ @item 34.11-2012 is split on two different modules:
+ @code{gost34112012256} and @code{gost34112012512}
+ @item 34.11-94's digest is reversed. Now it is compatible with TC26's
+ HMAC and PBKDF2 test vectors
+ @item @code{gogost-streebog} is split to @code{streebog256} and
+ @code{streebog512} correspondingly by analogy with sha* utilities
+ @item added VKO 34.10-2012 support with corresponding test vectors
+ @item @code{gost3410.DigestSizeX} is renamed to
+ @code{gost3410.ModeX} because it is not related to digest size,
+ but parameters and key sizes
+ @item KEK functions take @code{big.Int} UKM value. Use @code{NewUKM}
+ to unmarshal raw binary UKM
+ @end itemize
+
+@item 1.1
+ @itemize
+ @item gogost-streebog is able to use either 256 or 512 bits digest size
+ @item 34.13-2015 padding methods
+ @item 28147-89 CBC mode of operation
+ @end itemize
+
+@end table
+
@node Download
@unnumbered Download
website and, for example, run tests with benchmarks:
@verbatim
-% wget http://www.cypherpunks.ru/gogost/gogost-1.1.tar.xz
-% wget http://www.cypherpunks.ru/gogost/gogost-1.1.tar.xz.sig
+% wget http://gogost.cypherpunks.ru/gogost-1.1.tar.xz
+% wget http://gogost.cypherpunks.ru/gogost-1.1.tar.xz.sig
% gpg --verify gogost-1.1.tar.xz.sig gogost-1.1.tar.xz
-% xz -d < gogost-1.1.tar.gz | tar xf -
-% make -C gogost-1.1 bench
+% xz -d < gogost-1.1.tar.xz | tar xf -
+% make -C gogost-1.1 all bench
+% echo hello world | ./gogost-1.1/streebog256
+f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
+@end verbatim
+
+And then you can include its source code in your project for example
+like this:
+
+@verbatim
+% mkdir -p myproj/src
+% export GOPATH=$PWD/myproj
+% cd myproj/src
+% cat > main.go <<EOF
+package main
+
+import (
+ "encoding/hex"
+ "fmt"
+
+ "cypherpunks.ru/gogost/gost34112012256"
+)
+
+func main() {
+ h := gost34112012256.New()
+ h.Write([]byte("hello world"))
+ fmt.Println(hex.EncodeToString(h.Sum(nil)))
+}
+EOF
+% cp -r ../../gogost-1.1/src/cypherpunks.ru .
+% go run main.go
+c600fd9dd049cf8abd2f5b32e840d2cb0e41ea44de1c155dcd88dc84fe58a855
@end verbatim
@multitable {XXXXX} {XXXX KiB} {link sign} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
@headitem Version @tab Size @tab Tarball @tab SHA256 checksum @tab Streebog-256 checksum
+@item 2.0 @tab 39 KiB
+@tab @url{gogost-2.0.tar.xz, link} @url{gogost-2.0.tar.xz.sig, sign}
+@tab @code{28E8C15C 0EC5CC2A 47A8CCDA DF9EADB5 E46970AA FB7FAAF3 AA250FFC 79CE57F7}
+@tab @code{e2858b9c1e7834663838c44b9b9ebbd1f37e5b85ceba5698b6fb5d180e071710}
+
+@item 1.2 @tab 34 KiB
+@tab @url{gogost-1.2.tar.xz, link} @url{gogost-1.2.tar.xz.sig, sign}
+@tab @code{B894D0E4 923F0361 8A33A360 65AE860F FCFAF8F5 42A82D71 EA0A0BA7 7BC99093}
+@tab @code{fc6d3533e28d356398877674b6ee18954581c7f46832a5cf994ae243ab00ddf5}
+
@item 1.1 @tab 33 KiB
@tab @url{gogost-1.1.tar.xz, link} @url{gogost-1.1.tar.xz.sig, sign}
@tab @code{26D37912 6FE220C1 C0381835 DEFFDC4B BDCDC394 15D6E9C1 F8A5A302 04F9452B}
software. @url{https://www.gnupg.org/, The GNU Privacy Guard} is used
for that purpose.
-For the very first time it it necessary to get signing public key and
+For the very first time it is necessary to get signing public key and
import it. It is provided below, but you should check alternative
resources.
You can obtain development source code by cloning
@url{http://git-scm.com/, Git}
-@url{https://git.cypherpunks.ru/cgit.cgi/gogost.git/, repository}.
+@url{https://git.cypherpunks.ru/cgit.cgi/gogost.git/}.
@bye