diff --git a/README.md b/README.md index 2e6ecda..cb3e0ba 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,31 @@ rfc6979 ======= A Go implementation of RFC 6979's deterministic DSA/ECDSA signature scheme. + +``` go +package main + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/sha512" + "fmt" + "github.com/codahale/rfc6979" +) + +func main() { + // Generate a key pair. + // You need a high-quality PRNG for this. + k, _ := ecdsa.GenerateKey(elliptic.P521(), rand.Reader) + + // Hash a message. + alg := sha512.New() + alg.Write([]byte("I am a potato.")) + hash := alg.Sum(nil) + + r, s, _ := rfc6979.SignECDSA(k, hash, sha512.New) + fmt.Printf("Signature: %X%X", r, s) +} + +```