package key
import (
+ "bytes"
"crypto"
"crypto/dsa"
"crypto/openpgp"
return
}
+// Parse armored or binary openpgp public or private key
+func Parse(d []byte) (e *openpgp.Entity, err error) {
+ elist, err := openpgp.ReadArmoredKeyRing(bytes.NewBuffer(d))
+ if err != nil {
+ elist1, err1 := openpgp.ReadKeyRing(bytes.NewBuffer(d))
+ if err1 != nil {
+ return
+ }
+ err = nil
+ elist = elist1
+ }
+ if len(elist) != 1 {
+ err = fmt.Errorf("Parse: expected exactly one key")
+ return
+ }
+ e = elist[0]
+ return
+}
+
// Issuer generates a key for obligation issuer clients from random seed r
func Issuer(r []byte, denomination string) (e *openpgp.Entity, err error) {
return New(DsaKey(r), 0, "Issuer", denomination, "")