]> Cypherpunks.ru repositories - gogost.git/blob - download.texi
Direct link to Git repository
[gogost.git] / download.texi
1 @node Download
2 @unnumbered Download
3
4 Preferable way is to download tarball with the signature from
5 website and, for example, run tests with benchmarks:
6
7 @verbatim
8 $ wget http://gogost.cypherpunks.ru/gogost-4.1.0.tar.xz
9 $ wget http://gogost.cypherpunks.ru/gogost-4.1.0.tar.xz.sig
10 $ gpg --verify gogost-4.1.0.tar.xz.sig gogost-4.1.0.tar.xz
11 $ xz -d < gogost-4.1.0.tar.xz | tar xf -
12 $ make -C gogost-4.1.0 all bench
13 $ echo hello world | ./gogost-4.1.0/streebog256
14 f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
15 @end verbatim
16
17 And then you can include its source code in your project for example
18 like this:
19
20 @verbatim
21 $ mkdir -p myproj/src
22 $ cp -r gogost-4.1.0/src/go.cypherpunks.ru myproj/src
23 $ export GOPATH=$PWD/myproj
24 $ cd myproj/src
25 $ cat > main.go <<EOF
26 package main
27
28 import (
29     "encoding/hex"
30     "fmt"
31
32     "go.cypherpunks.ru/gogost/v4/gost34112012256"
33 )
34
35 func main() {
36     h := gost34112012256.New()
37     h.Write([]byte("hello world\n"))
38     fmt.Println(hex.EncodeToString(h.Sum(nil)))
39 }
40 EOF
41 $ go run main.go
42 f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
43 @end verbatim
44
45 @multitable {XXXXX} {XXXX-XX-XX} {XXXX KiB} {link sign} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
46 @headitem Version @tab Date @tab Size @tab Tarball @tab SHA256 checksum @tab Streebog-256 checksum
47
48 @item @ref{Release 4.1.0, 4.1.0} @tab 2019-10-03 @tab 55 KiB
49 @tab @url{gogost-4.1.0.tar.xz, link} @url{gogost-4.1.0.tar.xz.sig, sign}
50 @tab @code{F2FEF2E0 ADEB5742 FA2B3338 64E8B91B 3CCAA97D 5BA62177 21E08A11 F1FA8133}
51 @tab @code{72e0d52aa25158ab1bb45e5498ce703b516c616b71101b74d5ee259f516c4e91}
52
53 @item @ref{Release 4.0, 4.0} @tab 2019-08-12 @tab 56 KiB
54 @tab @url{gogost-4.0.tar.xz, link} @url{gogost-4.0.tar.xz.sig, sign}
55 @tab @code{4899B930 2110C9A9 592821D6 B206146F 2A66FC5A 3DEE9D6E 11F5EA51 72FEE6E6}
56 @tab @code{ad8b58d42c3829e66dd1994265478eab921393cf0f7a8b520d900e38092a2cd6}
57
58 @item @ref{Release 3.0, 3.0} @tab 2019-07-19 @tab 47 KiB
59 @tab @url{gogost-3.0.tar.xz, link} @url{gogost-3.0.tar.xz.sig, sign}
60 @tab @code{0BC2F39C DDB66493 BDF02DA7 C0A04633 E2A33462 4E3C0C7C 567712A6 6078FC82}
61 @tab @code{40de433a7e37fdca1ac2a9ef6093c85314937d59fa72e8e4dc91d5bf4eb064d7}
62
63 @item @ref{Release 2.0, 2.0} @tab 2016-11-26 @tab 39 KiB
64 @tab @url{gogost-2.0.tar.xz, link} @url{gogost-2.0.tar.xz.sig, sign}
65 @tab @code{28E8C15C 0EC5CC2A 47A8CCDA DF9EADB5 E46970AA FB7FAAF3 AA250FFC 79CE57F7}
66 @tab @code{e2858b9c1e7834663838c44b9b9ebbd1f37e5b85ceba5698b6fb5d180e071710}
67
68 @item 1.2 @tab 2016-11-13 @tab 34 KiB
69 @tab @url{gogost-1.2.tar.xz, link} @url{gogost-1.2.tar.xz.sig, sign}
70 @tab @code{B894D0E4 923F0361 8A33A360 65AE860F FCFAF8F5 42A82D71 EA0A0BA7 7BC99093}
71 @tab @code{fc6d3533e28d356398877674b6ee18954581c7f46832a5cf994ae243ab00ddf5}
72
73 @item @ref{Release 1.1, 1.1} @tab 2016-10-04 @tab 33 KiB
74 @tab @url{gogost-1.1.tar.xz, link} @url{gogost-1.1.tar.xz.sig, sign}
75 @tab @code{26D37912 6FE220C1 C0381835 DEFFDC4B BDCDC394 15D6E9C1 F8A5A302 04F9452B}
76 @tab @code{313fa58c2c030dd5acd20b524842bd2d4ec7403fcfca2a4a238ddc187c3ef0df}
77
78 @end multitable
79
80 You @strong{have to} verify downloaded tarballs integrity and
81 authenticity to be sure that you retrieved trusted and untampered
82 software. @url{https://www.gnupg.org/, The GNU Privacy Guard} is used
83 for that purpose.
84
85 For the very first time it is necessary to get signing public key and
86 import it. It is provided below, but you should check alternative
87 resources.
88
89 @verbatim
90 pub   rsa2048/0x82343436696FC85A 2016-09-13 [SC]
91       CEBD 1282 2C46 9C02 A81A  0467 8234 3436 696F C85A
92 uid   GoGOST releases <gogost at cypherpunks dot ru>
93 @end verbatim
94
95 @itemize
96
97 @item @url{https://lists.cypherpunks.ru/mailman/listinfo/gost, gost} maillist
98
99 @item
100 @verbatim
101 $ gpg --auto-key-locate dane --locate-keys gogost at cypherpunks dot ru
102 $ gpg --auto-key-locate wkd --locate-keys gogost at cypherpunks dot ru
103 @end verbatim
104
105 @item
106 @verbatiminclude PUBKEY.asc
107
108 @end itemize
109
110 GoGOST is also @command{go get}-able. For example to use
111 @command{streebog256} utility:
112 @verbatim
113 $ go get go.cypherpunks.ru/gogost/cmd/streebog256
114 @end verbatim
115
116 @code{go.cypherpunks.ru} uses @url{https://www.cacert.org/, CACert.org}
117 certificate authority, that is not included by default in some operating
118 system distributions and probably you have to install it in your system,
119 because @command{go get} uses HTTPS connections. If you have issues
120 using either @code{sum.golang.org} or @code{proxy.golang.org}, then you
121 can disable their usage with @env{GOPRIVATE=go.cypherpunks.ru/gogost}
122 environment variable.
123
124 Also you can use @code{replace} feature inside your @file{go.mod}, like:
125 @verbatim
126 require go.cypherpunks.ru/gogost/v4 v4.1.0
127 replace go.cypherpunks.ru/gogost/v4 => /home/stargrave/gogost-4.1.0/src/go.cypherpunks.ru/gogost/v4
128 @end verbatim
129
130 You can obtain development source code with
131 @command{git clone git://git.cypherpunks.ru/gogost.git}.