4 Preferable way is to download tarball with the signature from
5 website and, for example, run tests with benchmarks:
8 $ [fetch|wget] http://www.gogost.cypherpunks.ru/gogost-@value{VERSION}.tar.xz
9 $ [fetch|wget] http://www.gogost.cypherpunks.ru/gogost-@value{VERSION}.tar.xz.sig
10 $ gpg --verify gogost-@value{VERSION}.tar.xz.sig gogost-@value{VERSION}.tar.xz
11 $ xz --decompress --stdout gogost-@value{VERSION}.tar.xz | tar xf -
12 $ cd gogost-@value{VERSION}
14 $ echo hello world | ./streebog256
15 f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
18 It uses @url{http://cr.yp.to/redo.html, redo} build system for that
19 examples. You can use either dozen of various implementations, or at
20 least minimalistic POSIX shell @command{contrib/do} (just replace
21 @command{redo} with @command{contrib/do} in the example above) included
24 @include download.texi
26 And then you can include its source code in your project for example
30 $ mkdir -p myproj/vendor/go.cypherpunks.ru/gogost
31 $ mv gogost-@value{VERSION} myproj/vendor/go.cypherpunks.ru/gogost/v5
40 "go.cypherpunks.ru/gogost/v5/gost34112012256"
44 h := gost34112012256.New()
45 h.Write([]byte("hello world\n"))
46 fmt.Println(hex.EncodeToString(h.Sum(nil)))
50 f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
53 You @strong{have to} verify downloaded tarballs integrity and
54 authenticity to be sure that you retrieved trusted and untampered
55 software. @url{https://www.gnupg.org/, GNU Privacy Guard} is used
58 For the very first time it is necessary to get signing public key and
59 import it. It is provided below, but you should check alternative
63 pub rsa2048/0x82343436696FC85A 2016-09-13 [SC]
64 CEBD 1282 2C46 9C02 A81A 0467 8234 3436 696F C85A
65 uid GoGOST releases <gogost at cypherpunks dot ru>
70 @item @url{https://lists.cypherpunks.ru/mailman/listinfo/gost, gost} maillist
74 $ gpg --auto-key-locate dane --locate-keys gogost at cypherpunks dot ru
75 $ gpg --auto-key-locate wkd --locate-keys gogost at cypherpunks dot ru
79 @verbatiminclude PUBKEY.asc
83 GoGOST is also @command{go get}-able. For example to use
84 @command{streebog256} utility:
87 $ go get go.cypherpunks.ru/gogost/cmd/streebog256
90 If you have problems with @code{*.golang.org}'s inability to verify
91 authenticity of @code{go.cypherpunks.ru} TLS connection, then you can
92 disable their usage by setting @env{GOPRIVATE=go.cypherpunks.ru}. You
93 can override CA certificate file path with @env{SSL_CERT_FILE} and
94 @env{GIT_SSL_CAINFO} environment variables.
96 Also you can use @code{replace} feature inside your @file{go.mod}, like:
99 require go.cypherpunks.ru/gogost/v5 v@value{VERSION}
100 replace go.cypherpunks.ru/gogost/v5 => /path/to/gogost-@value{VERSION}
103 You can obtain development source code with
104 @command{git clone git://git.cypherpunks.ru/gogost.git}
105 (also you can use @url{https://git.cypherpunks.ru/gogost.git}).