예제 #1
0
    // The decoding Algorithm
    public string DecodeMessage(string EncodedIMMessage, string MacString)
    {
        string DecodedMessage = "";

        char[]   arraySplit     = { ' ' };
        string[] IMMessageWords = EncodedIMMessage.Split(arraySplit);
        int      i = 0;

        foreach (string encodedword in IMMessageWords)
        {
            if (encodedword.Length == 0)
            {
                continue;
            }

            if (String.Equals(encodedword, ""))
            {
                continue;
            }

            string MacSplit;
            MacSplit = MacString.Substring(i * (int)AlgoParameters.MACSIZE, (int)AlgoParameters.MACSIZE);
            if (ChaffMACCodeGenerator.VerifyMAC(encodedword, MacSplit, sessionkey) == true)
            {
                DecodedMessage = DecodedMessage + " " + encodedword;
            }
            i++;
        }
        return(DecodedMessage);
    }
예제 #2
0
    String GenerateMACString(string[] queryResult, String word)
    {
        Boolean encodedword = false;
        String  MacString   = "";

        foreach (string mesgword in queryResult)
        {
            if (mesgword.Length == 0)
            {
                continue;
            }

            if (String.Equals(mesgword, ""))
            {
                continue;
            }

            if (String.Equals(word, mesgword) && encodedword == false)
            {
                //Console.WriteLine("\n Word:" + mesgword + " MacString: " + ChaffMACCodeGenerator.ComputeMAC(mesgword, sessionkey));
                MacString   = MacString + ChaffMACCodeGenerator.ComputeMAC(mesgword, sessionkey);
                encodedword = true;
            }
            else
            {
                string randomMac;
                randomMac = ChaffMACCodeGenerator.RandomMAC(randomMacGenerator);
                //Console.WriteLine("\n Word:" + mesgword + " MacString: " + randomMac);
                MacString = MacString + randomMac;
            }
        }
        return(MacString);
    }