Exemple #1
0
        public object applyOn(SpotterMultipart spotter)
        {
            spotter.Reset();
            while (spotter.HasNextPart())
            {
                var s    = spotter.GetNextPart();
                var o    = s.Accept(this);
                var part = o as MailMsg;
                if (part != null && !part.IsEmpty)
                {
                    return(part);
                }
                spotter.UnloadPart(s);
            }

            return(new MailMsg());
        }
        public object applyOn(SpotterMultipart spotter)
        {
            var list = new List <MailMsg>();

            spotter.Reset();
            while (spotter.HasNextPart())
            {
                var s        = spotter.GetNextPart();
                var o        = s.Accept(this);
                var partList = o as List <MailMsg>;
                if (partList != null)
                {
                    list.AddRange(partList);
                }
                spotter.UnloadPart(s);
            }

            return(list);
        }
        public void TestSpotterMultipart()
        {
            this.FrameworkController.ProcessCapture(this.PrepareCaptureForProcessing(SnoopersPcaps.Default.webmail_webmail_yahoo_rc4_pcapng));

            var conversations = this.L7Conversations.ToArray();
            var pk            = File.ReadAllText(PrivateKeys.Default.pk_pem);

            foreach (var conversation in conversations)
            {
                conversation.Key = new CypherKey();
                conversation.Key.ServerPrivateKey = pk;
            }

            this.FrameworkController.ExportData(this.AvailableSnoopers.Where(x => x is SnooperHTTP.SnooperHTTP), conversations, this.CurrentTestBaseDirectory, true);

            var msgObject = this.SnooperExports.ToArray()[0].ExportObjects[9] as SnooperExportedDataObjectHTTP;

            Assert.AreNotEqual(null, msgObject);
            var msg     = msgObject.Message;
            var spotter = new SpotterMultipart(new SpotterPool());

            spotter.Init(msg);

            /* verify true states */
            Assert.AreEqual(true, spotter.IsSpottable());

            Assert.AreEqual(true, spotter.ContainsOneOf(new[] { "nieco", "Inbox" }, SpotterBase.SpotterContext.ContentValue));

            Assert.AreEqual(true, spotter.Contains("successRequests", SpotterBase.SpotterContext.AllKey));

            Assert.AreEqual(true, spotter.ContainsKeyValuePair("name", "msgid", SpotterBase.SpotterContext.ContentPair));

            /* verify false states */
            Assert.AreEqual(false, spotter.ContainsOneOf(new[] { "nieco", "ine" }, SpotterBase.SpotterContext.ContentKey));

            Assert.AreEqual(false, spotter.Contains("hocico", SpotterBase.SpotterContext.AllKey));

            Assert.AreEqual(false, spotter.ContainsKeyValuePair("subject", "Confidentioal", SpotterBase.SpotterContext.AllPair));
        }
 public object applyOn(SpotterMultipart spotter)
 {
     throw new NotImplementedException();
 }