WIP
parent
f400029843
commit
834b2d9c48
136
Program.cs
136
Program.cs
|
@ -20,6 +20,11 @@ using System.Diagnostics;
|
|||
using ln.perfdb.storage;
|
||||
using ln.logging;
|
||||
using System.Security.Cryptography;
|
||||
using ln.snmp.asn1;
|
||||
using System.Linq;
|
||||
using ln.types;
|
||||
using System.Runtime.InteropServices;
|
||||
using ln.snmp.rfc1213;
|
||||
|
||||
namespace ln.skyscanner
|
||||
{
|
||||
|
@ -43,6 +48,13 @@ namespace ln.skyscanner
|
|||
public static void Main(string[] args)
|
||||
{
|
||||
|
||||
//CIDR cidr = CIDR.Parse("255.255.255.255/28");
|
||||
//Logging.Log(LogLevel.INFO, "{0} {1}",cidr,cidr.ToNetwork());
|
||||
|
||||
|
||||
//return;
|
||||
|
||||
|
||||
//PerfFile perfFile = new PerfFile("test.lnpv");
|
||||
//perfFile.Open();
|
||||
|
||||
|
@ -78,40 +90,53 @@ namespace ln.skyscanner
|
|||
SNMPEngine.DEBUG = true;
|
||||
|
||||
SNMPEngine engine = new SNMPEngine();
|
||||
engine.Timeout = 4000;
|
||||
engine.Timeout = 2000;
|
||||
|
||||
SnmpV1Endpoint v1endpoint = new SnmpV1Endpoint(engine, new IPEndPoint(IPAddress.Parse("10.113.254.4"), 161), "ghE7wUmFPoPpkRno");
|
||||
SnmpV1Endpoint v1endpoint = new SnmpV1Endpoint(engine, new IPEndPoint(IPAddress.Parse("10.75.1.10"), 161), "ByFR4oW98hap");
|
||||
SnmpV2Endpoint v2endpoint = new SnmpV2Endpoint(engine, new IPEndPoint(IPAddress.Parse("10.113.254.4"), 161), "ghE7wUmFPoPpkRno");
|
||||
|
||||
USMEndpoint v3endpoint = new USMEndpoint(engine, new IPEndPoint(IPAddress.Parse("10.255.3.41"), 161));
|
||||
USMEndpoint v3endpoint = new USMEndpoint(engine, new IPEndPoint(IPAddress.Parse("10.10.10.1"), 161));
|
||||
v3endpoint.AuthMethod = SnmpV3AuthMethod.SHA;
|
||||
v3endpoint.AuthKeyPhrase = "qVy3hnZJ2fov";
|
||||
//v3endpoint.AuthKeyPhrase = "maplesyrup";
|
||||
v3endpoint.Username = "skytron";
|
||||
|
||||
|
||||
|
||||
SnmpEndpoint intf = v3endpoint;
|
||||
|
||||
Stopwatch stopWatch = Stopwatch.StartNew();
|
||||
Sequence[][] ifTable = intf.snmpWalk(new String[] {
|
||||
"1.3.6.1.2.1.2.2.1.2",
|
||||
"1.3.6.1.2.1.2.2.1.10",
|
||||
"1.3.6.1.2.1.2.2.1.16",
|
||||
"1.3.6.1.2.1.2.2.1.14",
|
||||
"1.3.6.1.2.1.2.2.1.20"
|
||||
});
|
||||
stopWatch.Stop();
|
||||
|
||||
Console.WriteLine("Time for table walk: {0}ms", stopWatch.ElapsedMilliseconds);
|
||||
RFC1213.Interface[] interfaces = RFC1213.GetInterfaces(v3endpoint);
|
||||
|
||||
foreach (Sequence[] sequences in ifTable)
|
||||
foreach (RFC1213.Interface netIf in interfaces)
|
||||
{
|
||||
foreach (Sequence sequence in sequences)
|
||||
{
|
||||
Console.Write("{0}\t", sequence?.Items[1].Value);
|
||||
}
|
||||
Console.WriteLine("");
|
||||
Logging.Log(LogLevel.INFO, "Interface: {0}",netIf);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Stopwatch stopWatch = Stopwatch.StartNew();
|
||||
//Sequence[][] ifTable = intf.snmpWalk(new String[] {
|
||||
// "1.3.6.1.2.1.2.2.1.2",
|
||||
// "1.3.6.1.2.1.2.2.1.10",
|
||||
// "1.3.6.1.2.1.2.2.1.16",
|
||||
// "1.3.6.1.2.1.2.2.1.14",
|
||||
// "1.3.6.1.2.1.2.2.1.20"
|
||||
// });
|
||||
//stopWatch.Stop();
|
||||
|
||||
//Console.WriteLine("Time for table walk: {0}ms", stopWatch.ElapsedMilliseconds);
|
||||
|
||||
//foreach (Sequence[] sequences in ifTable)
|
||||
//{
|
||||
// Console.Write("{0,24} ", sequences);
|
||||
// foreach (Sequence sequence in sequences)
|
||||
// {
|
||||
// Console.Write("{0}\t", sequence?.Items?[1].Value);
|
||||
// }
|
||||
// Console.WriteLine("");
|
||||
//}
|
||||
|
||||
engine.Close();
|
||||
|
||||
//NodeIdentifier identifier = new NodeIdentifier(IPAddress.Parse("10.10.10.1"));
|
||||
|
@ -123,5 +148,78 @@ namespace ln.skyscanner
|
|||
//}
|
||||
|
||||
}
|
||||
|
||||
public static void TestAuthKey(String filename,USMEndpoint v3endpoint)
|
||||
{
|
||||
FileStream fileStream = new FileStream(filename, FileMode.Open);
|
||||
byte[] source = new byte[fileStream.Length];
|
||||
|
||||
int nread = fileStream.Read(source, 0, source.Length);
|
||||
|
||||
fileStream.Close();
|
||||
fileStream.Dispose();
|
||||
|
||||
ASN1Value asn = new ASN1Value(source);
|
||||
USMMessage usm = new USMMessage(asn);
|
||||
|
||||
byte[] repro1 = asn.AsByteArray;
|
||||
byte[] repro2 = ((ASN1Value)usm).AsByteArray;
|
||||
|
||||
Logging.Log(LogLevel.DEBUG, "Source: {0}", BitConverter.ToString(source));
|
||||
Logging.Log(LogLevel.DEBUG, "Repro1: {0}", BitConverter.ToString(repro1));
|
||||
Logging.Log(LogLevel.DEBUG, "Repro2: {0}", BitConverter.ToString(repro2));
|
||||
|
||||
if (!source.SequenceEqual(repro1))
|
||||
Logging.Log(LogLevel.ERROR, "Repro1 does not match!");
|
||||
else
|
||||
Logging.Log(LogLevel.ERROR, "Repro1 matches!");
|
||||
|
||||
if (!source.SequenceEqual(repro2))
|
||||
Logging.Log(LogLevel.ERROR, "Repro2 does not match!");
|
||||
else
|
||||
Logging.Log(LogLevel.ERROR, "Repro2 matches!");
|
||||
|
||||
if (!repro1.SequenceEqual(repro2))
|
||||
Logging.Log(LogLevel.ERROR, "Repro1 != Repro2!");
|
||||
else
|
||||
Logging.Log(LogLevel.ERROR, "Repro1/2 match!");
|
||||
|
||||
|
||||
|
||||
usm.Dump();
|
||||
usm.SecurityParameters.Dump();
|
||||
|
||||
byte[] auth1 = usm.SecurityParameters.msgAuthenticationParameters.Bytes;
|
||||
|
||||
usm.SecurityParameters.msgAuthenticationParameters.Bytes = new byte[12];
|
||||
|
||||
Logging.Log(LogLevel.DEBUG, "Source: {0}", BitConverter.ToString(source));
|
||||
|
||||
v3endpoint.RemoteEngineID = usm.SecurityParameters.msgAuthoritativeEngineID;
|
||||
v3endpoint.CacheAuthoritativeEngineTime = usm.SecurityParameters.msgAuthoritativeEngineTime;
|
||||
v3endpoint.CacheAuthoritativeEngineBoots = usm.SecurityParameters.msgAuthoritativeEngineBoots;
|
||||
|
||||
v3endpoint.LocalizeKeys();
|
||||
|
||||
v3endpoint.AuthenticateMessage(usm);
|
||||
|
||||
byte[] auth2 = usm.SecurityParameters.msgAuthenticationParameters.Bytes;
|
||||
|
||||
Logging.Log(LogLevel.DEBUG, "Authenticated: {0}", BitConverter.ToString(((ASN1Value)usm).AsByteArray));
|
||||
|
||||
Logging.Log(LogLevel.DEBUG, "Original Auth Token: {0}", BitConverter.ToString(auth1));
|
||||
Logging.Log(LogLevel.DEBUG, "Calculated Auth Token: {0}", BitConverter.ToString(auth2));
|
||||
|
||||
if (auth1.SequenceEqual(auth2))
|
||||
{
|
||||
Logging.Log(LogLevel.DEBUG, "MATCH");
|
||||
}
|
||||
else
|
||||
{
|
||||
Logging.Log(LogLevel.DEBUG, "NO MATCH");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,6 +63,10 @@
|
|||
<Project>{D471A566-9FB6-41B2-A777-3C32874ECD0E}</Project>
|
||||
<Name>ln.logging</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\ln.types\ln.types.csproj">
|
||||
<Project>{8D9AB9A5-E513-4BA7-A450-534F6456BF28}</Project>
|
||||
<Name>ln.types</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
Loading…
Reference in New Issue