1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ecdsa_test
6
7import (
8	"crypto/ecdsa"
9	"crypto/elliptic"
10	"crypto/rand"
11	"crypto/sha256"
12	"fmt"
13)
14
15func Example() {
16	privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
17	if err != nil {
18		panic(err)
19	}
20
21	msg := "hello, world"
22	hash := sha256.Sum256([]byte(msg))
23
24	sig, err := ecdsa.SignASN1(rand.Reader, privateKey, hash[:])
25	if err != nil {
26		panic(err)
27	}
28	fmt.Printf("signature: %x\n", sig)
29
30	valid := ecdsa.VerifyASN1(&privateKey.PublicKey, hash[:], sig)
31	fmt.Println("signature verified:", valid)
32}
33