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());
    }