package bloat import "errors" func (b *Bloat[T]) Read(packed []byte, author Bloat[T]) (T, error) { var final T decrypted, err := b.Decrypt(packed) // our own key if err != nil { return final, err } body, verified, err := author.Verify(decrypted) // author's key if err != nil { return final, err } if !verified { return final, errors.New("not verified") } final, err = b.Unmarshal(body) return final, err }