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