示例#1
0
        public void EnsureMainMethodWorks()
        {
            string originalEncoded = @"0812561ae6bd42cfb7bee1311a29893508e71c340912e4614f3d9e6c61dccdd5af228051eb4373170A058394b17ac301086ef72ac5367180eb051040d4241e426bbde12bca805f665227e8060234ec07042859ffbc0202b4ed0304bdadb4e00402de60";

            string[] requestedTags = { "0x01", "0x03", "0x04", "0x05", "0x06", "0x0a" };
            string   hash          = BerTlvLogic.GetBase64UrlHashFromEncodedStringForGivenTags(requestedTags, originalEncoded);

            Assert.AreEqual(@"EQ9q1Hjyr_pfSBj1_M2vqAMFH-MYhP2zwhgYfC8u8-g", hash);
        }
示例#2
0
        public void AllTagsAreMissing()
        {
            string originalEncoded = @"0812561ae6bd42cfb7bee1311a29893508e71c340912e4614f3d9e6c61dccdd5af228051eb4373170A058394b17ac301086ef72ac5367180eb051040d4241e426bbde12bca805f665227e8060234ec07042859ffbc0202b4ed0304bdadb4e00402de60";

            string[]      requestedTags   = { "0xaa", "0xba" };
            List <string> extractedValues = BerTlvLogic.ExtractSortedRequestedTagsFromString(requestedTags, originalEncoded);

            Assert.AreEqual(0, extractedValues.Count);
        }
示例#3
0
        public void HashStreamWithEmptyString()
        {
            string startString = "";

            using (Stream temp = new MemoryStream(Encoding.UTF8.GetBytes(startString)))
            {
                Assert.AreEqual(@"DldRwCblQ7Loqy6wYJnaodHl30d3j3eH-qtFzfEv46g", BerTlvLogic.ComputeBase64Blake2bHashInBuffers(temp));
            }
        }
示例#4
0
        public void ExtractTagsFromCorruptedString()
        {
            string originalEncoded = @"ThisIsClearlyNotBerTlvEncoded";

            string[]      requestedTags   = { "0x01", "0x03", "0x04", "0x05", "0x06", "0x0a", "0xaa" };
            List <string> extractedValues = BerTlvLogic.ExtractSortedRequestedTagsFromString(requestedTags, originalEncoded);

            Assert.AreEqual(0, extractedValues.Count);
        }
示例#5
0
        public void HashStreamWithSmallBuffer()
        {
            string startString = "6EF72AC5367180EB.BDADB4E0.DE60.40D4241E426BBDE12BCA805F665227E8.34EC.8394B17AC3";

            using (Stream temp = new MemoryStream(Encoding.UTF8.GetBytes(startString)))
            {
                Assert.AreEqual(@"EQ9q1Hjyr_pfSBj1_M2vqAMFH-MYhP2zwhgYfC8u8-g", BerTlvLogic.ComputeBase64Blake2bHashInBuffers(temp, 32, 1));
            }
        }
示例#6
0
 public void ConcatenatePopulatedListToUpper()
 {
     Assert.AreEqual("A.B.C.D.E.F",
                     BerTlvLogic.CreateFullstopSeparatedString(new List <string>
     {
         "a",
         "b",
         "c",
         "D",
         "e",
         "F"
     }));
 }
示例#7
0
 public void ConcatenatePopulatedList()
 {
     Assert.AreEqual("6EF72AC5367180EB.BDADB4E0.DE60.40D4241E426BBDE12BCA805F665227E8.34EC.8394B17AC3",
                     BerTlvLogic.CreateFullstopSeparatedString(new List <string>
     {
         "6EF72AC5367180EB",
         "BDADB4E0",
         "DE60",
         "40D4241E426BBDE12BCA805F665227E8",
         "34EC",
         "8394B17AC3"
     }));
 }
示例#8
0
        static void Main(string[] args)
        {
            #region Read Data from Config File

            string encodedString = ConfigurationManager.AppSettings[ConfigKeys.EncodedStringKey];
            if (String.IsNullOrWhiteSpace(encodedString))
            {
                Console.WriteLine($"Missing {ConfigKeys.EncodedStringKey} value in ConfigFile. Current Value is: {encodedString}. Press any Key to Exit.");
                Console.ReadKey();
                return;
            }

            string tagIds = ConfigurationManager.AppSettings[ConfigKeys.TagsIdKey];
            if (String.IsNullOrWhiteSpace(tagIds))
            {
                Console.WriteLine($"Missing {ConfigKeys.TagsIdKey} value in ConfigFile. Current Value is: {tagIds}. Press any Key to Exit.");
                Console.ReadKey();
                return;
            }

            string[] requestedTags = tagIds.Split(new char[] { ',' });
            if (requestedTags == null || requestedTags.Length < 1)
            {
                Console.WriteLine($"No tags to extract. TagIds obtained from Config file are: {tagIds}. Press any Key to Exit.");
                Console.ReadKey();
                return;
            }

            #endregion


            #region Get hash from values extracted

            try
            {
                string hash = BerTlvLogic.GetBase64UrlHashFromEncodedStringForGivenTags(requestedTags, encodedString);
                Console.WriteLine($"Extracted hash: {hash} from Encoded String: {encodedString} for tags: {String.Join(",", requestedTags)}. Press any Key to Exit.");
                Console.ReadKey();
                return;
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Exception thrown when trying to Convert String: {encodedString} for tags: {String.Join(",", requestedTags)}. Exception is: {ex.Message}. Press any Key to Exit.");
                Console.ReadKey();
                return;
            }

            #endregion
        }
示例#9
0
 public void ConvertNotAHex()
 {
     Assert.AreEqual(10, BerTlvLogic.HexadecimalToInteger("NotAHex"));
 }
示例#10
0
 public void ConvertEmpty()
 {
     Assert.AreEqual(10, BerTlvLogic.HexadecimalToInteger(""));
 }
示例#11
0
 public void Convert10()
 {
     Assert.AreEqual(10, BerTlvLogic.HexadecimalToInteger("0x0a"));
 }
示例#12
0
 public void Convert6()
 {
     Assert.AreEqual(6, BerTlvLogic.HexadecimalToInteger("0x06"));
 }
示例#13
0
 public void Convert5()
 {
     Assert.AreEqual(5, BerTlvLogic.HexadecimalToInteger("0x05"));
 }
示例#14
0
 public void Convert4()
 {
     Assert.AreEqual(4, BerTlvLogic.HexadecimalToInteger("0x04"));
 }
示例#15
0
 public void Convert3Trimmed()
 {
     Assert.AreEqual(3, BerTlvLogic.HexadecimalToInteger(" 0x03 "));
 }
示例#16
0
 public void ConcatenateEmptyList()
 {
     Assert.AreEqual(String.Empty, BerTlvLogic.CreateFullstopSeparatedString(new List <string>()));
 }
示例#17
0
 public void ConcatenateNullList()
 {
     Assert.AreEqual(String.Empty, BerTlvLogic.CreateFullstopSeparatedString(null));
 }