summaryrefslogtreecommitdiffstats
path: root/src/crypto/ecdsa/example_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/ecdsa/example_test.go')
-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 0000000..652c165
--- /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))
+
+ sig, err := ecdsa.SignASN1(rand.Reader, privateKey, hash[:])
+ if err != nil {
+ panic(err)
+ }
+ fmt.Printf("signature: %x\n", sig)
+
+ valid := ecdsa.VerifyASN1(&privateKey.PublicKey, hash[:], sig)
+ fmt.Println("signature verified:", valid)
+}