build | 4 ++++ cmd/goshake128/main.go | 24 ++++++++++++++++++++++++ cmd/goshake256/main.go | 24 ++++++++++++++++++++++++ go.mod | 7 +++++++ go.sum | 4 ++++ diff --git a/build b/build new file mode 100755 index 0000000000000000000000000000000000000000..2655e6bd56dc8cce28789c0186dd7a9650cb122a2682ca50ee2d6a152e2126ed --- /dev/null +++ b/build @@ -0,0 +1,4 @@ +#!/bin/sh -e + +go build -ldflags=-s ./cmd/goshake128 +go build -ldflags=-s ./cmd/goshake256 diff --git a/cmd/goshake128/main.go b/cmd/goshake128/main.go new file mode 100644 index 0000000000000000000000000000000000000000..c39c6b14356bc9185e621eb7f3071106bd9383c8b3443c8c887a0a3a4272bee3 --- /dev/null +++ b/cmd/goshake128/main.go @@ -0,0 +1,24 @@ +package main + +import ( + "bufio" + "encoding/hex" + "fmt" + "io" + "os" + + "golang.org/x/crypto/sha3" +) + +func main() { + h := sha3.NewShake128() + dgst := make([]byte, 32) + var err error + if _, err = io.Copy(h, bufio.NewReaderSize(os.Stdin, 1<<20)); err != nil { + panic(err) + } + if _, err = io.ReadFull(h, dgst); err != nil { + panic(err) + } + fmt.Println(hex.EncodeToString(dgst)) +} diff --git a/cmd/goshake256/main.go b/cmd/goshake256/main.go new file mode 100644 index 0000000000000000000000000000000000000000..ce9559cdca3c35a6aef2562fe9ea89637291eed8d1f8e3ef5e40e10f82fd51c8 --- /dev/null +++ b/cmd/goshake256/main.go @@ -0,0 +1,24 @@ +package main + +import ( + "bufio" + "encoding/hex" + "fmt" + "io" + "os" + + "golang.org/x/crypto/sha3" +) + +func main() { + h := sha3.NewShake256() + dgst := make([]byte, 64) + var err error + if _, err = io.Copy(h, bufio.NewReaderSize(os.Stdin, 1<<20)); err != nil { + panic(err) + } + if _, err = io.ReadFull(h, dgst); err != nil { + panic(err) + } + fmt.Println(hex.EncodeToString(dgst)) +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000000000000000000000000000000000000..86cabc627849b2979b47d8b2e645530fa7a12e699a8db4fb874b0b5f5b7dcb2c --- /dev/null +++ b/go.mod @@ -0,0 +1,7 @@ +module go.stargrave.org/gosha3 + +go 1.20 + +require golang.org/x/crypto v0.8.0 + +require golang.org/x/sys v0.7.0 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000000000000000000000000000000000000..0f47e80effdbf345d36ccf7291563a8ca9769599ce886d06b2d457326b711f50 --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=