aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Pearl <philip.j.r.pearl@gmail.com>2018-06-20 20:40:33 +0100
committerFilippo Valsorda <filippo@golang.org>2018-08-02 22:14:25 +0000
commitdb810b6e394c38a0bd0eb52c3475d0fbc08469f8 (patch)
treed32323dc5cf44fdf74229be272d70239644dadc6
parent25aaeaa935484e3c341ef8a411069d7dd58afcfa (diff)
downloadgo-db810b6e394c38a0bd0eb52c3475d0fbc08469f8.tar.gz
go-db810b6e394c38a0bd0eb52c3475d0fbc08469f8.zip
crypto/ecdsa: add a package level example
Change-Id: I4063d5ec4ac45561b94472b528583be564981912 Reviewed-on: https://go-review.googlesource.com/120144 Run-TryBot: Filippo Valsorda <filippo@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Filippo Valsorda <filippo@golang.org>
-rw-r--r--src/crypto/ecdsa/example_test.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/crypto/ecdsa/example_test.go b/src/crypto/ecdsa/example_test.go
new file mode 100644
index 0000000000..bddeab8955
--- /dev/null
+++ b/src/crypto/ecdsa/example_test.go
@@ -0,0 +1,32 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ecdsa_test
+
+import (
+ "crypto/ecdsa"
+ "crypto/elliptic"
+ "crypto/rand"
+ "crypto/sha256"
+ "fmt"
+)
+
+func Example() {
+ privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
+ if err != nil {
+ panic(err)
+ }
+
+ msg := "hello, world"
+ hash := sha256.Sum256([]byte(msg))
+
+ r, s, err := ecdsa.Sign(rand.Reader, privateKey, hash[:])
+ if err != nil {
+ panic(err)
+ }
+ fmt.Printf("signature: (0x%x, 0x%x)\n", r, s)
+
+ valid := ecdsa.Verify(&privateKey.PublicKey, hash[:], r, s)
+ fmt.Println("signature verified:", valid)
+}