| // 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) |
| } |