@node Download
@unnumbered Download
-@set VERSION 5.0.0
-
Preferable way is to download tarball with the signature from
website and, for example, run tests with benchmarks:
@example
-$ [fetch|wget] http://www.gogost.cypherpunks.ru/gogost-@value{VERSION}.tar.xz
-$ [fetch|wget] http://www.gogost.cypherpunks.ru/gogost-@value{VERSION}.tar.xz.sig
-$ gpg --verify gogost-@value{VERSION}.tar.xz.sig gogost-@value{VERSION}.tar.xz
-$ xz --decompress --stdout gogost-@value{VERSION}.tar.xz | tar xf -
+$ [fetch|wget] http://www.gogost.cypherpunks.ru/gogost-@value{VERSION}.tar.zst
+$ [fetch|wget] http://www.gogost.cypherpunks.ru/gogost-@value{VERSION}.tar.zst.@{asc,sig@}
+[verify signature]
+$ tar xf gogost-@value{VERSION}.tar.zst
$ cd gogost-@value{VERSION}
-$ redo bench all
+$ go build -mod=vendor -o streebog256 ./cmd/streebog256
$ echo hello world | ./streebog256
f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
@end example
-It uses @url{http://cr.yp.to/redo.html, redo} build system for that
-examples. You can use either dozen of various implementations, or at
-least minimalistic POSIX shell @command{contrib/do} (just replace
-@command{redo} with @command{contrib/do} in the example above) included
-in tarball.
-
@include download.texi
And then you can include its source code in your project for example
like this:
@example
-$ mkdir -p myproj/src
-$ cp -r gogost-@value{VERSION}/src/go.cypherpunks.ru myproj/src
-$ export GOPATH=$PWD/myproj
-$ cd myproj/src
-$ cat > main.go <<EOF
+$ mkdir -p myproj/vendor/go.cypherpunks.ru/gogost
+$ mv gogost-@value{VERSION} myproj/vendor/go.cypherpunks.ru/gogost/v5
+$ cd myproj
+$ cat >main.go <<EOF
package main
import (
"encoding/hex"
"fmt"
- "go.cypherpunks.ru/gogost/v4/gost34112012256"
+ "go.cypherpunks.ru/gogost/v5/gost34112012256"
)
func main() @{
f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
@end example
-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/, 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
+@include integrity.texi
-@itemize
-
-@item @url{https://lists.cypherpunks.ru/mailman/listinfo/gost, gost} maillist
+GoGOST is also @command{go get}-able. For example to install
+@command{streebog256} utility:
-@item
@example
-$ gpg --auto-key-locate dane --locate-keys gogost at cypherpunks dot ru
-$ gpg --auto-key-locate wkd --locate-keys gogost at cypherpunks dot ru
+$ go install go.cypherpunks.ru/gogost/v5/cmd/streebog256@@latest
@end example
-@item
-@verbatiminclude PUBKEY.asc
+Aware that @code{go.cypherpunks.ru} uses
+@url{//www.ca.cypherpunks.ru, ca.cypherpunks.ru} X.509 certificate authority.
-@end itemize
+@itemize
-GoGOST is also @command{go get}-able. For example to use
-@command{streebog256} utility:
+@item Go's default @code{proxy.golang.org} and @code{sum.golang.org}
+services won't be able to verify @code{go.cypherpunks.ru}'s TLS
+authenticity, because there are no common trust anchors. You can skip
+their usage by setting @env{$GOPRIVATE=go.cypherpunks.ru}.
-@example
-$ go get go.cypherpunks.ru/gogost/cmd/streebog256
-@end example
+@item You can (temporarily) override CA bundle during installation with
+@env{$SSL_CERT_FILE} environment variable.
-@code{go.cypherpunks.ru} uses @url{http://www.ca.cypherpunks.ru/, ca.cypherpunks.ru}
-certificate authority. If you have issues using either
-@code{sum.golang.org} or @code{proxy.golang.org}, then you can disable
-their usage with @env{GOPRIVATE=go.cypherpunks.ru/gogost} environment
-variable.
-
-Also you can use @code{replace} feature inside your @file{go.mod}, like:
+@item You can unpack tarball somewhere and use @code{replace} command in
+your local @file{go.mod}:
@example
-require go.cypherpunks.ru/gogost/v4 v@value{VERSION}
-replace go.cypherpunks.ru/gogost/v4 => /home/stargrave/gogost-@value{VERSION}/src/go.cypherpunks.ru/gogost/v4
+require go.cypherpunks.ru/gogost/v5 v@value{VERSION}
+replace go.cypherpunks.ru/gogost/v5 => /path/to/gogost-@value{VERSION}
@end example
+@end itemize
+
You can obtain development source code with
-@command{git clone git://git.cypherpunks.ru/gogost.git}.
+@command{git clone git://git.cypherpunks.ru/gogost.git}
+(also you can use @url{https://git.cypherpunks.ru/gogost.git}).