1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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)
| }
|
|