Skip to content

ureeves/lamport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lamport

A Go package implementing Lamport signatures

Build Status codecov GoDoc

Lamport signatures are a one-time signature scheme. Each key is intended to be used only once.

Usage

Generate key

k, err := lamport.GenerateKey(rand.Reader, crypto.SHA256)

Sign message

message := []byte("Hello, Lamport!")
messageHash := sha256.Sum256(message)

sig, _ := lamport.Sign(k, messageHash[:])

Verify signature

if lamport.Verify(&k.PublicKey, messageHash[:], sig); err != nil {
    // signature invalid here
}

Testing & Benchmarking

To test on your machine use:

go test

If you want to run the benchmarks:

go test -bench=.

Documentation

Documentation can be found here.

About

A Go package implementing Lamport signatures

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages