Exemple #1
0
        private string GetChalangeDnsText(Account account, string token)
        {
            var key    = GetChalangeKey(account, token);
            var hashed = Sha256HashProvider.ComputeHash(Encoding.UTF8.GetBytes(key));

            return(JwsConvert.ToBase64String(hashed));
        }
Exemple #2
0
        public void HashTest()
        {
            var hashProvider = new Sha256HashProvider();

            var dataList = new List <byte>()
            {
            };
            var hashList = new List <byte>()
            {
            };

            var data = new ListData(dataList);
            var hash = new ListData(hashList);

            hashProvider.Hash(data, hash);

            const int desiredOutputSize = 256 / 8;

            Assert.IsTrue(hashList.Count == desiredOutputSize);

            dataList.Add(0x01);

            var oldHashList = new List <byte>(hashList);

            hashList.Clear();

            hashProvider.Hash(data, hash);
            Assert.IsTrue(hashList.Count == desiredOutputSize);
            Assert.IsTrue(!hashList.SequenceEqual(oldHashList));
        }
Exemple #3
0
        //

        //private async Task<Authorization> DeactivateChallengeAsync(Uri location)
        //{
        //    var auth = new Authorization { Status = AuthorizationStatus.Deactivated };
        //    var signedData = _jws.Sign(auth, location, location, Nonce);
        //    return await PostAsync<Authorization>(location, signedData);
        //}

        private string GetChalangeKey(Account account, string token)
        {
            var jwkJson              = JsonConvert.SerializeObject(account.Key.Jwk, Formatting.None, _jsonSettings);
            var jwkBytes             = Encoding.UTF8.GetBytes(jwkJson);
            var jwkThumbprint        = Sha256HashProvider.ComputeHash(jwkBytes);
            var jwkThumbprintEncoded = JwsConvert.ToBase64String(jwkThumbprint);

            return($"{token}.{jwkThumbprintEncoded}");
        }
        public void Generate_Hash()
        {
            //arrange
            var text   = "iiaasdsadnnvasd";
            var stream = new StringStream();

            stream.Write(text.Substring(0, 5));
            stream.Write(text.Substring(5));

            var provider = new Sha256HashProvider();

            //act
            var hash = provider.GetHashOfStream(stream);

            //assert
            HashValue expected = "06BFF1A1";

            hash.Should().Be(expected);
        }