package bloat import "fmt" func (b *BloatPlain[T]) WritePlain(body T, recip BloatPlain[T]) ([]byte, error) { start, err := b.marshal(body) if err != nil { fmt.Println("marshal failed") fmt.Println(err) return nil, err } signed, err := b.sign(start) // our key if err != nil { fmt.Println("sign failed") fmt.Println(err) return nil, err } return signed, err } func (b *BloatEnc[T]) WriteEnc(body T, recip BloatEnc[T]) ([]byte, error) { signed, err := b.WritePlain(body, BloatPlain[T](plainFromEnc(recip))) if err != nil { fmt.Println("plain write failed") fmt.Println(err) } final, err := recip.encrypt(signed) // their key if err != nil { fmt.Println("encrypt failed") fmt.Println(err) } return final, err }