public SpanBuffer <byte> ToPacketBinary() { WpcItemList list = new WpcItemList(); var packData = this.Pack.WriteToBuf().ByteData; list.Add("PACK", packData); var hashData = Secure.HashSHA1(packData); list.Add("HASH", hashData); if (this.HostKey._IsFilled() && this.HostSecret2._IsFilled()) { var hostKeyData = this.HostKey._GetHexBytes(); var hostSecret2Data = this.HostSecret2._GetHexBytes(); if (hostKeyData.Length != 20) { throw new CoresLibException("hostKeyData.Length != 20"); } if (hostSecret2Data.Length != 20) { throw new CoresLibException("hostSecret2Data.Length != 20"); } list.Add("HOST", hostKeyData); list.Add("HOST", hostSecret2Data); } return(list.ToPacketBinary()); }