public void CrockfordBase32Encoding_SplitInto5BitChunks_ShouldChunkANumberThatFitsIn13Bits()
        {
            const int input    = 4546;
            var       expected = new byte[] { 4, 14, 2 };
            var       actual   = CrockfordBase32Encoding.SplitInto5BitChunks(input);

            Assert.Equal(expected, actual);
        }
        public void CrockfordBase32Encoding_SplitInto5BitChunks_ShouldReturnASingleChunkFor0()
        {
            const int input    = 0;
            var       expected = new byte[] { 0 };
            var       actual   = CrockfordBase32Encoding.SplitInto5BitChunks(input);

            Assert.Equal(expected, actual);
        }
Exemple #3
0
        public void CrockfordBase32Encoding_Decode_ShouldReturnNullForIncorrectCheckDigit(ulong number, string encodedString, string checkDigit)
        {
            checkDigit = checkDigit.Equals("a", StringComparison.OrdinalIgnoreCase) ? "b" : "a";

            var actual = new CrockfordBase32Encoding().Decode(encodedString + checkDigit, true);

            Assert.Null(actual);
        }
Exemple #4
0
        public void CrockfordBase32Encoding_SplitInto5BitChunks_ShouldChunkANumberThatFitsIn6Bits()
        {
            const int input    = 32;
            var       expected = new byte[] { 1, 0 };
            var       actual   = CrockfordBase32Encoding.SplitInto5BitChunks(input);

            Assert.Equal(expected, actual.ToArray());
        }
Exemple #5
0
        public void CrockfordBase32Encoding_Decode_ShouldReturnNullForInvalidCheckDigit(TestDatum datum)
        {
            var encodedString = datum.EncodedString;

            var actual = new CrockfordBase32Encoding().Decode(encodedString + '#', true);

            Assert.Null(actual);
        }
Exemple #6
0
        public void CrockfordBase32Encoding_Encode_ShouldReturnExpectedResult(TestDatum datum)
        {
            var number   = ulong.Parse(datum.Number);
            var expected = datum.EncodedString;

            var actual = new CrockfordBase32Encoding().Encode(number, false);

            Assert.Equal(expected, actual);
        }
Exemple #7
0
        public void CrockfordBase32Encoding_Encode_ShouldReturnExpectedResultWithCheckDigit(TestDatum datum)
        {
            var number     = ulong.Parse(datum.Number);
            var expected   = datum.EncodedString;
            var checkDigit = datum.CheckDigit;

            var actual = new CrockfordBase32Encoding().Encode(number, true);

            Assert.Equal(expected + checkDigit, actual);
        }
Exemple #8
0
        public void CrockfordBase32Encoding_Decode_ShouldReturnNullForIncorrectCheckDigit(TestDatum datum)
        {
            var encodedString = datum.EncodedString;
            var checkDigit    = datum.CheckDigit;

            checkDigit = checkDigit.Equals("a", StringComparison.OrdinalIgnoreCase) ? "b" : "a";

            var actual = new CrockfordBase32Encoding().Decode(encodedString + checkDigit, true);

            Assert.Null(actual);
        }
        /// <summary>
        /// Generates the activation code.
        /// </summary>
        /// <returns></returns>
        private async Task <string> GenerateActivationCode()
        {
            List <string> profanityList = appSettings.ProfanityList;

            string result;
            ushort deploymentNumber = appSettings.DeploymentNumber;
            var    rand             = new RngCspRandom();

            do
            {
                ulong token = deploymentNumber;
                token <<= 8 * sizeof(uint);
                uint nonce = rand.Next(100000000, 999999999);
                token |= nonce;

                var encoder = new CrockfordBase32Encoding();
                result = encoder.Encode(token, false);
            }while (result.ContainsAny(profanityList.ToArray()) || !(await IsActivationCodeUnique(result)));

            return(result);
        }
Exemple #10
0
        public void CrockfordBase32Encoding_Decode_ShouldReturnExpectedResult(ulong number, string encodedString, string checkDigit)
        {
            var actual = new CrockfordBase32Encoding().Decode(encodedString, false);

            Assert.Equal(number, actual);
        }
Exemple #11
0
        public void CrockfordBase32Encoding_Encode_ShouldReturnExpectedResultWithCheckDigit(ulong number, string encodedString, string checkDigit)
        {
            var actual = new CrockfordBase32Encoding().Encode(number, true);

            Assert.Equal(encodedString + checkDigit, actual);
        }
Exemple #12
0
        public void CrockfordBase32Encoding_Decode_ShouldReturnNullForInvalidCheckDigit(ulong number, string encodedString, string checkDigit)
        {
            var actual = new CrockfordBase32Encoding().Decode(encodedString + '#', true);

            Assert.Null(actual);
        }
 public DirectoryRepresentation(uint seed, int folderDepth) : base(new Uri("MetaFolder.System.IO.FolderRepresentation"))
 {
     _HashAlgorithm = MurmurHash.Create128(seed);
     _Encoding      = new CrockfordBase32Encoding();
     _FolderDepth   = folderDepth;
 }