Пример #1
0
        private bool StartEncrypt()
        {
            CryptoHandler crypto = new CryptoHandler();

            List <byte> encryptionRequest = new List <byte>();
            string      serverID          = "";

            if (protocol.protocolVersion < MCVersion.MC172Version)
            {
                serverID = "lilium-pre";
            }
            encryptionRequest.AddRange(getString(serverID));
            encryptionRequest.AddRange(getArray(crypto.getPublic()));
            byte[] token = new byte[4];
            var    rng   = new System.Security.Cryptography.RNGCryptoServiceProvider(); rng.GetBytes(token);

            encryptionRequest.AddRange(getArray(token));
            SendPacket(0x01, encryptionRequest);

            List <byte> encryptResponse = new List <byte>(readDataRAW(readNextVarIntRAW()));

            if (readNextVarInt(encryptResponse) == 0x01)
            {
                List <byte> dec = new List <byte>();
                dec.AddRange(crypto.Decrypt(readNextByteArray(encryptResponse)));
                dec.RemoveRange(0, dec.Count - 16);
                byte[] key_dec   = dec.ToArray();
                byte[] token_dec = token;

                EncStream      = CryptoHandler.getAesStream(Client.GetStream(), key_dec);
                this.encrypted = true;
                return(true);
            }
            return(false);
        }
        private static string DesypherFile()
        {
            string result = null;

            byte[] bytes = File.ReadAllBytes(@"../../Files/classified_file.txt");
            result = _crypto.Decrypt(bytes);
            return(result);
        }
Пример #3
0
        public static void DisplayValues(byte[] input)                  // Get values from node config and display them
        {
            byte[] Key = hexToByte("2b7e151628aed2a6abf7158809cf4f3c"); //Convert the hex string to a byte array
            byte[] IV  = hexToByte("000102030405060708090a0b0c0d0e0f"); //Convert the hex string to a byte array

            CryptoHandler cryptoHandler = new CryptoHandler();

            byte[] data = cryptoHandler.Decrypt(input, Key, IV);

            int lastIndex = Array.FindLastIndex(data, b => b != 0);

            Array.Resize(ref data, lastIndex + 1);

            RLConfigPayload payload = RLConfigPayload.Parser.ParseFrom(data);

            string NodeID         = "Node ID (SN): " + payload.NodeID.ToString();
            string NetworkID      = "Network ID: " + payload.NetworkID.ToString();
            string NetworkChannel = "Network Channel: " + payload.NetworkChannel.ToString();
            string AppAreaID      = "Application Area ID: " + payload.ApplicationAreaID.ToString("X");
            string HardVer        = "Hardware Version: " + payload.HardwareVersion.ToString();
            string Softver        = "Software Version: " + payload.SoftwareVersion.Major.ToString() + "." + payload.SoftwareVersion.Devel.ToString() + "." + payload.SoftwareVersion.Maint.ToString() + "." + payload.SoftwareVersion.Minor.ToString();
            string MeshVer        = "Wirepas Version: " + payload.WirepasVersion.Major.ToString() + "." + payload.WirepasVersion.Devel.ToString() + "." + payload.WirepasVersion.Maint.ToString() + "." + payload.WirepasVersion.Minor.ToString();
            string NodeConfig     = payload.NodeConfiguration.ToString();

            string OperatingMode = "Operating Mode: ";

            switch (payload.OperatingMode)
            {
            case NodeOperatingMode.Run:
                OperatingMode = "Operating Mode: Run";
                break;

            case NodeOperatingMode.Inventory:
                OperatingMode = "Operating Mode: Inventory";
                break;
            }
            string HeadNodeRSSI = "Normalized Head Node RSSI: " + (Convert.ToDouble((payload.HeadNodeRSSI) / 254.0f) * 100.0f).ToString() + "%";
            string BatVoltage   = "Battery Voltage: " + (Convert.ToDouble(payload.BatteryVoltage) / 1000.0f).ToString() + " V";
            string GateConnect  = "Gateway Connected: " + (payload.GatewayConnected ? "Yes" : "No").ToString();
            string UplinkRate   = "Uplink Rate: " + payload.UplinkRate.ToString() + " Seconds";

            string DeviceRole = "Device Role: ";

            switch (payload.NodeRole)
            {
            case NodeRole.HeadnodeAnchor:
                DeviceRole = "Device Role: Router";
                break;

            case NodeRole.SubnodeTracked:
                DeviceRole = "Device Role: Leaf";
                break;
            }

            string AssetTrack = "Asset Tracking: " + (payload.AssetTrackingEnabled ? "Enabled" : "Disabled").ToString();

            string[] valueList = new string[] { NodeID, NetworkID, NetworkChannel, AppAreaID, HardVer, Softver, MeshVer, NodeConfig, OperatingMode, HeadNodeRSSI, BatVoltage, GateConnect, UplinkRate, DeviceRole, AssetTrack };

            ReadFromNode readValues = new ReadFromNode();

            readValues.DisplayValues(valueList); //Display the values
        }