Golang crypto/x509.MarshalECPrivateKey function example

package crypto/x509

MarshalECPrivateKey marshals an EC private key into ASN.1, DER format.

Golang crypto/x509.MarshalECPrivateKey function usage example

 package main

 import (
 "fmt"
 "crypto/rand"
 "crypto/ecdsa"
 "crypto/elliptic"
 "crypto/x509"
 "encoding/pem"
 "os"
 )

 func main() {

 privatekey := new(ecdsa.PrivateKey)

 curve := elliptic.P256()

 privatekey, err := ecdsa.GenerateKey(curve, rand.Reader)

 if err != nil {
 fmt.Println(err)
 os.Exit(1)
 }

 var marshalledprivkey []byte

 marshalledprivkey,err = x509.MarshalECPrivateKey(privatekey)

 if err != nil {
 fmt.Println(err)
 os.Exit(1)
 }

  // ASN.1 DER encoded form
  pemBlock := pem.Block{
 Type : "RSA PRIVATE KEY",
 Headers : nil,
 Bytes : marshalledPKCS1privkey,
  }

  fmt.Printf("%v\n", pemBlock)


 }

Reference :

http://golang.org/pkg/crypto/x509/#MarshalECPrivateKey

Advertisement