(@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 Diffie-Hellman function
+@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
% wget http://www.cypherpunks.ru/gogost/gogost-1.1.tar.xz
% wget http://www.cypherpunks.ru/gogost/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 -
+% xz -d < gogost-1.1.tar.xz | tar xf -
% make -C gogost-1.1 bench
@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