func (pkp *PublicKey) setPublicKey(pk *packet.PublicKey) error { buf := bytes.NewBuffer(nil) err := pk.Serialize(buf) if err != nil { return errgo.Mask(err) } fingerprint := hex.EncodeToString(pk.Fingerprint[:]) bitLen, err := pk.BitLength() if err != nil { return errgo.Mask(err) } pkp.RFingerprint = Reverse(fingerprint) pkp.UUID = pkp.RFingerprint err = pkp.setV4IDs(pkp.UUID) if err != nil { return err } pkp.Creation = pk.CreationTime pkp.Algorithm = int(pk.PubKeyAlgo) pkp.BitLen = int(bitLen) pkp.Parsed = true return nil }