--- /dev/null
+@node Download
+@unnumbered Download
+
+Preferable way is to download tarball with the signature from
+website and, for example, run tests with benchmarks:
+
+@verbatim
+% 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.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-XX-XX} {XXXX KiB} {link sign} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
+@headitem Version @tab Date @tab Size @tab Tarball @tab SHA256 checksum @tab Streebog-256 checksum
+
+@item @ref{Release 2.0, 2.0} @tab 2016-11-26 @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 2016-11-13 @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 @ref{Release 1.1, 1.1} @tab 2016-10-04 @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}
+@tab @code{313fa58c2c030dd5acd20b524842bd2d4ec7403fcfca2a4a238ddc187c3ef0df}
+
+@end multitable
+
+You @strong{have to} verify downloaded tarballs integrity and
+authenticity to be sure that you retrieved trusted and untampered
+software. @url{https://www.gnupg.org/, The GNU Privacy Guard} is used
+for that purpose.
+
+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.
+
+@verbatim
+pub rsa2048/0x82343436696FC85A 2016-09-13 [SC]
+ CEBD 1282 2C46 9C02 A81A 0467 8234 3436 696F C85A
+uid GoGOST releases <gogost at cypherpunks dot ru>
+@end verbatim
+
+@itemize
+
+@item @url{https://lists.cypherpunks.ru/mailman/listinfo/gost, gost} maillist
+
+@item
+@verbatim
+% gpg --keyserver hkp://keys.gnupg.net/ --recv-keys 0x82343436696FC85A
+% gpg --auto-key-locate dane --locate-keys gogost at cypherpunks dot ru
+% gpg --auto-key-locate wkd --locate-keys gogost at cypherpunks dot ru
+@end verbatim
+
+@item
+@verbatiminclude PUBKEY.asc
+
+@end itemize
+
+You can obtain development source code by cloning
+@url{http://git-scm.com/, Git}
+@url{https://git.cypherpunks.ru/cgit.cgi/gogost.git/}.
size=$(( $(wc -c < $tarball) / 1024 ))
hash=$(gpg --print-md SHA256 < $tarball)
hashsb=$($HOME/work/gogost/streebog256 < $tarball)
+release_date=$(date "+%Y-%m-%d")
cat <<EOF
An entry for documentation:
-@item $release @tab $size KiB
+@item @ref{Release $release, $release} @tab $release_date @tab $size KiB
@tab @url{gogost-${release}.tar.xz, link} @url{gogost-${release}.tar.xz.sig, sign}
@tab @code{$hash}
@tab @code{$hashsb}
--- /dev/null
+@node News
+@unnumbered News
+
+@table @strong
+
+@anchor{Release 2.0}
+@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
+
+@anchor{Release 1.1}
+@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
MAKEINFO ?= makeinfo
-gogost.html: www.texi
+gogost.html: *.texi
rm -f gogost.html/*.html
$(MAKEINFO) --html \
--set-customization-variable NO_CSS=1 \
@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
-
-Preferable way is to download tarball with the signature from
-website and, for example, run tests with benchmarks:
-
-@verbatim
-% 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.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}
-@tab @code{313fa58c2c030dd5acd20b524842bd2d4ec7403fcfca2a4a238ddc187c3ef0df}
-
-@end multitable
-
-You @strong{have to} verify downloaded tarballs integrity and
-authenticity to be sure that you retrieved trusted and untampered
-software. @url{https://www.gnupg.org/, The GNU Privacy Guard} is used
-for that purpose.
-
-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.
-
-@verbatim
-pub rsa2048/0x82343436696FC85A 2016-09-13 [SC]
- CEBD 1282 2C46 9C02 A81A 0467 8234 3436 696F C85A
-uid GoGOST releases <gogost at cypherpunks dot ru>
-@end verbatim
-
-@itemize
-
-@item @url{https://lists.cypherpunks.ru/mailman/listinfo/gost, gost} maillist
-
-@item
-@verbatim
-% gpg --keyserver hkp://keys.gnupg.net/ --recv-keys 0x82343436696FC85A
-% gpg --auto-key-locate dane --locate-keys gogost at cypherpunks dot ru
-% gpg --auto-key-locate wkd --locate-keys gogost at cypherpunks dot ru
-@end verbatim
-
-@item
-@verbatiminclude PUBKEY.asc
-
-@end itemize
-
-You can obtain development source code by cloning
-@url{http://git-scm.com/, Git}
-@url{https://git.cypherpunks.ru/cgit.cgi/gogost.git/}.
+@include news.texi
+@include download.texi
@bye