func newOpenPGPPubKey(intPubKey *packet.PublicKey) *openpgpPubKey { h := sha3.New384() h.Write(v1Header) err := intPubKey.Serialize(h) if err != nil { panic("internal error: cannot compute public key sha3-384") } sha3_384, err := EncodeDigest(crypto.SHA3_384, h.Sum(nil)) if err != nil { panic("internal error: cannot compute public key sha3-384") } return &openpgpPubKey{pubKey: intPubKey, sha3_384: sha3_384} }
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 }