SkillAgentSearch skills...

StrobeGo

Readable Implementation of Strobe in Go

Install / Use

/learn @mimoo/StrobeGo
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

StrobeGo

GoDoc

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

View on GitHub
GitHub Stars26
CategoryDevelopment
Updated10mo ago
Forks5

Languages

Go

Security Score

87/100

Audited on May 12, 2025

No findings