Beispiel #1
0
        public void Asn1BigVarBindEncodingTest()
        {
            var varBinds = new VarBind[] {
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0")),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 1, new Asn1TagInfo(Asn1Tag.Integer)),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 13, new Asn1TagInfo(Asn1Tag.Integer)),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 143, new Asn1TagInfo(Asn1Tag.Integer)),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 122, new Asn1TagInfo(Asn1Tag.Integer)),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 13456, new Asn1TagInfo(Asn1Tag.Integer)),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 1334, new Asn1TagInfo(Asn1Tag.Integer)),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 1444, new Asn1TagInfo(Asn1Tag.Integer)),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 13, new Asn1TagInfo(Asn1Tag.Integer)),
                new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"), 10, new Asn1TagInfo(Asn1Tag.Integer)),
            };

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                509000,
                SnmpErrorStatus.TooBig,
                10000,
                varBinds);

            var encoded  = packet.ToSnmpEncodedByteArray();
            var snmpPack = encoded.ToSnmpDatagram();

            Assert.IsNull(snmpPack.PduV2c.VarBinds[0].Value);
            Assert.AreEqual(1, (long)snmpPack.PduV2c.VarBinds[1].Value);
        }
Beispiel #2
0
        public void SnmpTrapV2CInitilizationTest()
        {
            var testObject = new SnmpTrapV2C(testSnmpDatagram.ToSnmpEncodedByteArray());

            Assert.IsNotNull(testObject);
            Assert.AreEqual(testObject.SysUpTime, 2314u);
            Assert.AreEqual(testObject.TrapOid.ToString(), "1.3.6.1.2.1.1.3.0.23");
            Assert.AreEqual(testObject.Header.Community, "test");
            Assert.AreEqual(testObject.Header.Version, SnmpVersion.V2C);
            Assert.AreEqual(testObject.PduV2c.RequestId, 1);
            Assert.AreEqual(testObject.PduV2c.ErrorIndex, 1);
            Assert.AreEqual(testObject.PduV2c.ErrorStatus, SnmpErrorStatus.NoError);
            Assert.AreEqual(testObject.PduV2c.VarBinds.Count, 2);
            Assert.AreEqual(testObject.PduV2c.VarBinds[0], new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"), 2314u, new Asn1TagInfo(Asn1SnmpTag.TimeTicks)));
            Assert.AreEqual(testObject.PduV2c.VarBinds[1], new VarBind(new ObjectIdentifier("1.3.6.1.6.3.1.1.4.1.0"), new ObjectIdentifier("1.3.6.1.2.1.1.3.0.23"), new Asn1TagInfo(Asn1Tag.ObjectIdentifier)));
        }
Beispiel #3
0
        public void SnmpSimpleDatagramInitilizationTest()
        {
            var testObject = new SnmpSimpleDatagram(testSnmpDatagram.ToSnmpEncodedByteArray());

            Assert.IsNotNull(testObject);
            Assert.AreEqual(testObject.Community, "test");
            Assert.AreEqual(testObject.Version, SnmpVersion.V2C);
            Assert.AreEqual(testObject.RequestId, 1);
            Assert.AreEqual(testObject.ErrorIndex, 1);
            Assert.AreEqual(testObject.ErrorStatus, SnmpErrorStatus.NoError);
            Assert.AreEqual(testObject.VarBinds.Count, 4);
            Assert.AreEqual(testObject.VarBinds[0], new KeyValuePair <string, object>("1.2.4.6.22.3.5.6.7.0.1", (uint)2314));
            Assert.AreEqual(testObject.VarBinds[1], new KeyValuePair <string, object>("1.2.4.6.22.3.5.6.7.0.2", (uint)234));
            Assert.AreEqual(testObject.VarBinds[2], new KeyValuePair <string, object>("1.2.4.6.22.3.5.6.7.0.3", (ulong)2114));
            Assert.AreEqual(testObject.VarBinds[3], new KeyValuePair <string, object>("1.2.4.6.22.3.5.6.7.0.4", (uint)2310));
        }
Beispiel #4
0
        public void TestInitialize()
        {
            var integerVarBind = new VarBind(
                new ObjectIdentifier("1.3.6.1.4.1.1.1.1"),
                5L,
                new Asn1TagInfo(Asn1Tag.Integer, ConstructType.Primitive, Asn1Class.Universal));

            var sysUpTime = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"),
                                        506009u,
                                        new Asn1TagInfo(Asn1SnmpTag.TimeTicks));

            var trapVb = new VarBind(new ObjectIdentifier("1.3.6.1.6.3.1.1.4.1.0"),
                                     new ObjectIdentifier("1.3.6.1.4.1.500.12"),
                                     new Asn1TagInfo(Asn1Tag.ObjectIdentifier, ConstructType.Primitive, Asn1Class.Universal));

            var extraneousVb = new VarBind(new ObjectIdentifier("1.3.6.1.6.3.1.1.42.42.42.0"),
                                           8938ul,
                                           new Asn1TagInfo(Asn1SnmpTag.Counter64));

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                50000,
                SnmpErrorStatus.NoError,
                0,
                new[] { sysUpTime, trapVb, integerVarBind, extraneousVb });

            var encoded = packet.ToSnmpEncodedByteArray();

            var ipPacket = new IpPacket(
                NetworkInterfaceComponent.IPv4,
                Byte.MaxValue,
                Byte.MaxValue,
                Byte.MaxValue,
                UInt16.MaxValue,
                UInt16.MaxValue,
                Byte.MaxValue,
                UInt16.MaxValue,
                Byte.MaxValue,
                ProtocolType.Udp,
                IPAddress.Parse("1.1.1.1"),
                IPAddress.Parse("2.2.2.2"),
                new byte[0],
                new byte[0]);

            this.fakeTrapUdp = new UdpDatagram(ipPacket, 10, 10, (ushort)(encoded.Length + 8), encoded);
        }
Beispiel #5
0
        public void SnmpSimpleTrapV2CInitilizationTest()
        {
            var testObject = new SnmpSimpleTrapV2C(testSnmpDatagram.ToSnmpEncodedByteArray());

            Assert.IsNotNull(testObject);
            Assert.AreEqual(testObject.SysUpTime, 2314u);
            Assert.AreEqual(testObject.TrapOid, "1.3.6.1.2.1.1.3.0.23");
            Assert.AreEqual(testObject.Community, "test");
            Assert.AreEqual(testObject.Version, SnmpVersion.V2C);
            Assert.AreEqual(testObject.RequestId, 1);
            Assert.AreEqual(testObject.ErrorIndex, 1);
            Assert.AreEqual(testObject.ErrorStatus, SnmpErrorStatus.NoError);
            Assert.AreEqual(testObject.VarBinds.Count, 2);
            Assert.AreEqual(testObject.VarBinds[0], new KeyValuePair <string, object>("1.3.6.1.2.1.1.3.0", 2314u));
            Assert.AreEqual(testObject.VarBinds[1], new KeyValuePair <string, object>("1.3.6.1.6.3.1.1.4.1.0", new ObjectIdentifier("1.3.6.1.2.1.1.3.0.23")));
        }
Beispiel #6
0
        public void SnmpEncodeDecodedDataWithoutError()
        {
            try
            {
                foreach (var device in testDeviceResponseCollection)
                {
                    SnmpDatagram snmpPacket  = device.ToSnmpDatagram();
                    byte[]       encodedData = snmpPacket.ToSnmpEncodedByteArray();

                    //Check if encoding is correct by decoding that back
                    encodedData.ToSnmpDatagram();
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("Encoding/Decoding Failed " + ex);
            }
        }
Beispiel #7
0
        public void Asn1NullEncodingTest()
        {
            var sysUpTime = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"));

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                50000,
                SnmpErrorStatus.NoError,
                0,
                new[] { sysUpTime, });

            var encoded  = packet.ToSnmpEncodedByteArray();
            var snmpPack = encoded.ToSnmpDatagram();

            Assert.IsNull(snmpPack.PduV2c.VarBinds[0].Value);
        }
Beispiel #8
0
        public void Asn1Counter64EncodingTest()
        {
            var sysUpTime = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"),
                                        (ulong)50600900, new Asn1TagInfo(Asn1SnmpTag.Counter64));

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                50000,
                SnmpErrorStatus.NoError,
                0,
                new[] { sysUpTime, });

            var encoded  = packet.ToSnmpEncodedByteArray();
            var snmpPack = encoded.ToSnmpDatagram();

            Assert.AreEqual((ulong)50600900, (ulong)snmpPack.PduV2c.VarBinds[0].Value);
        }
Beispiel #9
0
        public void Asn1StringEncodingTest()
        {
            var sysUpTime = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"),
                                        "TestString", new Asn1TagInfo(Asn1Tag.OctetString));

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                50000,
                SnmpErrorStatus.NoError,
                0,
                new[] { sysUpTime, });

            var encoded  = packet.ToSnmpEncodedByteArray();
            var snmpPack = encoded.ToSnmpDatagram();

            Assert.AreEqual("TestString", snmpPack.PduV2c.VarBinds[0].Value.ToString());
        }
Beispiel #10
0
        public void TestTimeTicksTest()
        {
            var sysUpTime = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"),
                                        506009u, new Asn1TagInfo(Asn1SnmpTag.TimeTicks));

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                50000,
                SnmpErrorStatus.NoError,
                0,
                new[] { sysUpTime, });

            var encoded  = packet.ToSnmpEncodedByteArray();
            var snmpPack = encoded.ToSnmpDatagram();

            Assert.AreEqual(506009u, (uint)snmpPack.PDU.VarBinds[0].Value);
        }
Beispiel #11
0
        public void Asn1IpAdressEncodingTest()
        {
            var sysUpTime = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"),
                                        new System.Net.IPAddress(123453), new Asn1TagInfo(Asn1SnmpTag.IpAddress));

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                50000,
                SnmpErrorStatus.NoError,
                0,
                new[] { sysUpTime, });

            var encoded  = packet.ToSnmpEncodedByteArray();
            var snmpPack = encoded.ToSnmpDatagram();

            Assert.AreEqual("61.226.1.0", snmpPack.PDU.VarBinds[0].Value.ToString());
        }
Beispiel #12
0
        public void Asn1NegativeIntegerEncodingTest()
        {
            var sysUpTime = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"),
                                        -506009979999L, new Asn1TagInfo(Asn1Tag.Integer));

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                50000,
                SnmpErrorStatus.NoError,
                0,
                new[] { sysUpTime, });

            var encoded  = packet.ToSnmpEncodedByteArray();
            var snmpPack = encoded.ToSnmpDatagram();

            Assert.AreEqual(-506009979999L, (long)snmpPack.PDU.VarBinds[0].Value);
        }
Beispiel #13
0
        public void Asn1NullAndNotNullEncodingTest()
        {
            var oidWithNull    = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"));
            var oidWithoutNull = new VarBind(new ObjectIdentifier("1.3.6.1.2.1.1.3.1"),
                                             1, new Asn1TagInfo(Asn1Tag.Integer));

            var packet = new SnmpDatagram(
                PduType.SNMPv2Trap,
                SnmpVersion.V2C,
                "Community",
                50000,
                SnmpErrorStatus.NoError,
                0,
                new[] { oidWithNull, oidWithoutNull });

            var encoded  = packet.ToSnmpEncodedByteArray();
            var snmpPack = encoded.ToSnmpDatagram();

            Assert.IsNull(snmpPack.PduV2c.VarBinds[0].Value);
            Assert.AreEqual(1, (long)snmpPack.PduV2c.VarBinds[1].Value);
        }