Preferable way is to download tarball with the signature from official
website and, for example, run tests with benchmarks:
- % 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
+ $ [fetch|wget] http://gogost.cypherpunks.ru/gogost-4.2.0.tar.xz
+ $ [fetch|wget] http://gogost.cypherpunks.ru/gogost-4.2.0.tar.xz.sig
+ $ gpg --verify gogost-4.2.0.tar.xz.sig gogost-4.2.0.tar.xz
+ $ xz -d < gogost-4.2.0.tar.xz | tar xf -
+ $ make -C gogost-4.2.0 all bench
+ $ echo hello world | ./gogost-4.2.0/streebog256
f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
And then you can include its source code in your project for example
like this:
- % mkdir -p myproj/src
- % export GOPATH=$PWD/myproj
- % cd myproj/src
- % cat > main.go <<EOF
+ $ mkdir -p myproj/src
+ $ cp -r gogost-4.2.0/src/go.cypherpunks.ru myproj/src
+ $ export GOPATH=$PWD/myproj
+ $ cd myproj/src
+ $ cat > main.go <<EOF
package main
import (
"encoding/hex"
"fmt"
- "cypherpunks.ru/gogost/gost34112012256"
+ "go.cypherpunks.ru/gogost/v4/gost34112012256"
)
func main() {
h := gost34112012256.New()
- h.Write([]byte("hello world"))
+ h.Write([]byte("hello world\n"))
fmt.Println(hex.EncodeToString(h.Sum(nil)))
}
EOF
- % cp -r ../../gogost-1.1/src/cypherpunks.ru .
- % go run main.go
- c600fd9dd049cf8abd2f5b32e840d2cb0e41ea44de1c155dcd88dc84fe58a855
+ $ go run main.go
+ f72018189a5cfb803dbe1f2149cf554c40093d8e7f81c21e08ac5bcd09d9934d
You have to verify downloaded tarballs integrity and authenticity to be
sure that you retrieved trusted and untampered software. GNU Privacy
uid GoGOST releases <gogost at cypherpunks dot ru>
Look in PUBKEY.asc file.
- % 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
+ $ gpg --auto-key-locate dane --locate-keys gogost at cypherpunks dot ru
+ $ gpg --auto-key-locate wkd --locate-keys gogost at cypherpunks dot ru
+
+GoGOST is also go-get-able. For example to use streebog256 utility:
+
+ $ go get go.cypherpunks.ru/gogost/cmd/streebog256
+
+go.cypherpunks.ru uses CACert.org certificate authority, that is not
+included by default in some operating system distributions and probably
+you have to install it in your system, because "go get" uses HTTPS
+connections. If you have issues using either sum.golang.org or
+proxy.golang.org, then you can disable their usage with
+GOPRIVATE=go.cypherpunks.ru/gogost environment variable.
+
+Also you can use "replace" feature inside your go.mod, like:
+
+ require go.cypherpunks.ru/gogost/v4 v4.2.0
+ replace go.cypherpunks.ru/gogost/v4 => /home/stargrave/gogost-4.2.0/src/go.cypherpunks.ru/gogost/v4