StrobeGo
Readable Implementation of Strobe in Go
Install / Use
/learn @mimoo/StrobeGoREADME
StrobeGo
This repository contains an implementation of the Strobe protocol framework. See this blogpost for an explanation of what is the framework.
The implementation of Strobe has not been thoroughly tested. Do not use this in production.
The Strobe implementation is heavily based on golang.org/x/crypto/sha3, which is why some of the files have been copied in the /strobe directory. You do not need to have Go's SHA-3 package to make it work.
Install
To use it, first get Go's experimental sha3's implementation:
go get github.com/mimoo/StrobeGo/strobe
Usage
See godoc for thorough documentation. Here is an example usage:
package main
import (
"encoding/hex"
"fmt"
"github.com/mimoo/StrobeGo/strobe"
)
func main() {
s := strobe.InitStrobe("myHash", 128) // 128-bit security
message := []byte("hello, how are you good sir?")
s.AD(false, message) // meta=false
fmt.Println(hex.EncodeToString(s.PRF(16))) // output length = 16
}
Roadmap
- Implement test vectors of SHAKE
- Generate proper test vectors and test them with the reference implementation in python of Strobe
Related Skills
node-connect
340.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
340.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.2kCommit, push, and open a PR
