Esempio n. 1
0
 public static List<string> GetSignatureList(string PluginName, string Host, FindingType Type)
 {
     List<string> SignatureList = new List<string>();
     lock (Signatures)
     {
         if (Signatures.ContainsKey(PluginName))
         {
             if (Signatures[PluginName].ContainsKey(Host))
             {
                 if (Signatures[PluginName][Host].ContainsKey(Type.ToString()))
                 {
                     SignatureList.AddRange(Signatures[PluginName][Host][Type.ToString()]);
                 }
             }
         }
     }
     return SignatureList;
 }
Esempio n. 2
0
        public static List <string> GetSignatureList(string PluginName, string Host, FindingType Type)
        {
            List <string> SignatureList = new List <string>();

            lock (Signatures)
            {
                if (Signatures.ContainsKey(PluginName))
                {
                    if (Signatures[PluginName].ContainsKey(Host))
                    {
                        if (Signatures[PluginName][Host].ContainsKey(Type.ToString()))
                        {
                            SignatureList.AddRange(Signatures[PluginName][Host][Type.ToString()]);
                        }
                    }
                }
            }
            return(SignatureList);
        }
Esempio n. 3
0
        internal static bool IsSignatureUnique(string PluginName, string Host, FindingType Type, string Signature, bool AddIfUnique)
        {
            bool IsUnique = false;
            if (PluginName.Length == 0) return false;
            lock (Signatures)
            {
                if (!Signatures.ContainsKey(PluginName))
                {
                    IsUnique = true;
                    if (AddIfUnique)
                        Signatures.Add(PluginName, new Dictionary<string, Dictionary<string, List<string>>>());
                    else
                        return true;
                }

                if (Signature.Length == 0)
                {
                    IsUnique = true;
                    if (!AddIfUnique) return true;
                }

                if (!Signatures[PluginName].ContainsKey(Host))
                {
                    IsUnique = true;
                    if (AddIfUnique)
                        Signatures[PluginName].Add(Host, new Dictionary<string, List<string>>());
                    else
                        return true;
                }

                if (!Signatures[PluginName][Host].ContainsKey(Type.ToString()))
                {
                    IsUnique = true;
                    if (AddIfUnique)
                        Signatures[PluginName][Host].Add(Type.ToString(), new List<string>());
                    else
                        return true;
                }

                if (IsUnique && AddIfUnique)
                {
                    Signatures[PluginName][Host][Type.ToString()].Add(Signature);
                    return true;
                }
                else if (Signatures[PluginName][Host][Type.ToString()].Contains(Signature))
                {
                    return false;
                }
                else
                {
                    if (AddIfUnique)
                    {
                        Signatures[PluginName][Host][Type.ToString()].Add(Signature);
                    }
                    return true;
                }
            }
        }
Esempio n. 4
0
        internal static bool IsSignatureUnique(string PluginName, string Host, FindingType Type, string Signature, bool AddIfUnique)
        {
            bool IsUnique = false;

            if (PluginName.Length == 0)
            {
                return(false);
            }
            lock (Signatures)
            {
                if (!Signatures.ContainsKey(PluginName))
                {
                    IsUnique = true;
                    if (AddIfUnique)
                    {
                        Signatures.Add(PluginName, new Dictionary <string, Dictionary <string, List <string> > >());
                    }
                    else
                    {
                        return(true);
                    }
                }

                if (Signature.Length == 0)
                {
                    IsUnique = true;
                    if (!AddIfUnique)
                    {
                        return(true);
                    }
                }


                if (!Signatures[PluginName].ContainsKey(Host))
                {
                    IsUnique = true;
                    if (AddIfUnique)
                    {
                        Signatures[PluginName].Add(Host, new Dictionary <string, List <string> >());
                    }
                    else
                    {
                        return(true);
                    }
                }


                if (!Signatures[PluginName][Host].ContainsKey(Type.ToString()))
                {
                    IsUnique = true;
                    if (AddIfUnique)
                    {
                        Signatures[PluginName][Host].Add(Type.ToString(), new List <string>());
                    }
                    else
                    {
                        return(true);
                    }
                }

                if (IsUnique && AddIfUnique)
                {
                    Signatures[PluginName][Host][Type.ToString()].Add(Signature);
                    return(true);
                }
                else if (Signatures[PluginName][Host][Type.ToString()].Contains(Signature))
                {
                    return(false);
                }
                else
                {
                    if (AddIfUnique)
                    {
                        Signatures[PluginName][Host][Type.ToString()].Add(Signature);
                    }
                    return(true);
                }
            }
        }