private void EncryptPassword() { try { Utils.Hash.Tiger tiger = new FlowLib.Utils.Hash.Tiger(); byte[] data = System.Text.Encoding.UTF8.GetBytes(password); System.IO.MemoryStream ms = new System.IO.MemoryStream(); ms.Write(data, 0, data.Length); data = Utils.Convert.Base32.Decode(random); ms.Write(data, 0, data.Length); data = tiger.ComputeHash(ms.ToArray()); encrypted = Utils.Convert.Base32.Encode(data); } catch { } }
private void CreateRaw() { if (info == null) return; System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (con is Transfer) { sb.Append("CINF"); sb.Append(" ID" + info.Get(UserInfo.CID)); if (info.ContainsKey("TO")) sb.Append(" TO" + info.Get("TO")); } else { sb.Append("BINF " + info.Get(UserInfo.SID)); // Do PID exist? If not. Create PID and CID FlowLib.Utils.Hash.Tiger tiger = new FlowLib.Utils.Hash.Tiger(); byte[] data = null; if (!info.ContainsKey(UserInfo.PID)) { data = tiger.ComputeHash(System.Text.Encoding.UTF8.GetBytes("FlowLib" + System.DateTime.Now.Ticks.ToString())); info.Set(UserInfo.PID, FlowLib.Utils.Convert.Base32.Encode(data)); } // Make CID from PID. This will always be done. data = tiger.ComputeHash(FlowLib.Utils.Convert.Base32.Decode(info.Get(UserInfo.PID))); info.Set(UserInfo.CID, FlowLib.Utils.Convert.Base32.Encode(data)); sb.Append(" ID" + info.Get(UserInfo.CID)); sb.Append(" PD" + info.Get(UserInfo.PID)); sb.Append(" DE" + AdcProtocol.ConvertOutgoing(info.Description)); sb.Append(" HN" + info.TagInfo.Normal.ToString()); sb.Append(" HO" + info.TagInfo.OP.ToString()); sb.Append(" HR" + info.TagInfo.Regged.ToString()); sb.Append(" NI" + AdcProtocol.ConvertOutgoing(info.DisplayName)); sb.Append(" SL" + info.TagInfo.Slots); // Upload Slots Open sb.Append(" SF" + (con.Share != null ? con.Share.HashedCount : 0)); // Shared Files sb.Append(" SS" + (con.Share != null ? con.Share.HashedSize : 0)); // Share Size in bytes if (con.Share != null) { System.Text.StringBuilder support = new System.Text.StringBuilder(); switch (info.TagInfo.Mode) { case FlowLib.Enums.ConnectionTypes.Direct: case FlowLib.Enums.ConnectionTypes.UPnP: case FlowLib.Enums.ConnectionTypes.Forward: string ip = info.Get(UserInfo.IP); if (string.IsNullOrEmpty(ip) || ip.Contains(".")) { if (string.IsNullOrEmpty(ip)) sb.Append(" I40.0.0.0"); else sb.Append(" I4" + ip); support.Append("TCP4,"); // Support support.Append("UDP4,"); // Support sb.Append(" U4" + con.Share.Port.ToString()); } else { sb.Append(" I6" + ip); support.Append("TCP6,"); // Support support.Append("UDP6,"); // Support sb.Append(" U6" + con.Share.Port.ToString()); } break; } support.Append("BZIP,"); // Support if (info.ContainsKey(UserInfo.SECURE)) support.Append("ADC0,"); // Support sb.Append(" SU" + support.ToString()); // Support } sb.Append(" VE" + AdcProtocol.ConvertOutgoing(info.TagInfo.Version)); } sb.Append("\n"); Raw = sb.ToString(); }
private void CreateRaw() { if (info == null) { return; } System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (con is Transfer) { sb.Append("CINF"); sb.Append(" ID" + info.Get(UserInfo.CID)); if (info.ContainsKey("TO")) { sb.Append(" TO" + info.Get("TO")); } } else { sb.Append("BINF " + info.Get(UserInfo.SID)); // Do PID exist? If not. Create PID and CID FlowLib.Utils.Hash.Tiger tiger = new FlowLib.Utils.Hash.Tiger(); byte[] data = null; if (!info.ContainsKey(UserInfo.PID)) { data = tiger.ComputeHash(System.Text.Encoding.UTF8.GetBytes("FlowLib" + System.DateTime.Now.Ticks.ToString())); info.Set(UserInfo.PID, FlowLib.Utils.Convert.Base32.Encode(data)); } // Make CID from PID. This will always be done. data = tiger.ComputeHash(FlowLib.Utils.Convert.Base32.Decode(info.Get(UserInfo.PID))); info.Set(UserInfo.CID, FlowLib.Utils.Convert.Base32.Encode(data)); sb.Append(" ID" + info.Get(UserInfo.CID)); sb.Append(" PD" + info.Get(UserInfo.PID)); sb.Append(" DE" + AdcProtocol.ConvertOutgoing(info.Description)); sb.Append(" HN" + info.TagInfo.Normal.ToString()); sb.Append(" HO" + info.TagInfo.OP.ToString()); sb.Append(" HR" + info.TagInfo.Regged.ToString()); sb.Append(" NI" + AdcProtocol.ConvertOutgoing(info.DisplayName)); sb.Append(" SL" + info.TagInfo.Slots); // Upload Slots Open sb.Append(" SF" + (con.Share != null ? con.Share.HashedCount : 0)); // Shared Files sb.Append(" SS" + (con.Share != null ? con.Share.HashedSize : 0)); // Share Size in bytes if (con.Share != null) { System.Text.StringBuilder support = new System.Text.StringBuilder(); switch (info.TagInfo.Mode) { case FlowLib.Enums.ConnectionTypes.Direct: case FlowLib.Enums.ConnectionTypes.UPnP: case FlowLib.Enums.ConnectionTypes.Forward: string ip = info.Get(UserInfo.IP); if (string.IsNullOrEmpty(ip) || ip.Contains(".")) { if (string.IsNullOrEmpty(ip)) { sb.Append(" I40.0.0.0"); } else { sb.Append(" I4" + ip); } support.Append("TCP4,"); // Support support.Append("UDP4,"); // Support sb.Append(" U4" + con.Share.Port.ToString()); } else { sb.Append(" I6" + ip); support.Append("TCP6,"); // Support support.Append("UDP6,"); // Support sb.Append(" U6" + con.Share.Port.ToString()); } break; } support.Append("BZIP,"); // Support if (info.ContainsKey(UserInfo.SECURE)) { support.Append("ADC0,"); // Support } sb.Append(" SU" + support.ToString()); // Support } sb.Append(" VE" + AdcProtocol.ConvertOutgoing(info.TagInfo.Version)); } sb.Append("\n"); Raw = sb.ToString(); }