ToBytes return data with tea encryption if key is set GC 安全, 返回的数据在 Builder 被销毁之后仍能被正确读取, 但是只能调用一次, 调用后 Builder 即失效
()
| 34 | // GC 安全, 返回的数据在 Builder 被销毁之后仍能被正确读取, |
| 35 | // 但是只能调用一次, 调用后 Builder 即失效 |
| 36 | func (b *Builder) ToBytes() (data []byte) { |
| 37 | b.p(func(ub *pbuf.UserBuffer[teacfg]) { |
| 38 | if ub.DAT.usetea { |
| 39 | data = ub.DAT.key.Encrypt(ub.Bytes()) |
| 40 | return |
| 41 | } |
| 42 | data = make([]byte, ub.Len()) |
| 43 | copy(data, ub.Bytes()) |
| 44 | }) |
| 45 | return |
| 46 | } |
| 47 | |
| 48 | // Pack TLV with tea encryption if key is set |
| 49 | // |