13 var dearmor = flag.Bool("d", false, "dearmor binary key")
14 var publiconly = flag.Bool("p", false, "ouput public part only, even if input is a private key")
16 func serialize(w io.Writer, e *openpgp.Entity, publiconly bool) (err error) {
20 err = e.SerializePrivate(w)
25 func code(e *openpgp.Entity, arm bool) (err error) {
26 pub := e.PrivateKey == nil || *publiconly
27 header := openpgp.PublicKeyType
29 header = openpgp.PrivateKeyType
31 out := bufio.NewWriter(os.Stdout)
33 w, err1 := armor.Encode(out, header, nil)
38 err = serialize(w, e, pub)
46 _, err = out.Write([]byte{'\n'})
51 err = serialize(out, e, pub)
62 var elist openpgp.EntityList
64 in := bufio.NewReader(os.Stdin)
66 elist, err = openpgp.ReadArmoredKeyRing(in)
68 elist, err = openpgp.ReadKeyRing(in)
74 log.Fatal("expected a single key")
76 err = code(elist[0], !*dearmor)