Exemplo n.º 1
0
        public void CanGetSalt()
        {
            var logon = new SecureLogon {
                UserService = new SimpleHashLogonStorage()
            };
            var salt = logon.GetSalt("user");

            Console.WriteLine(salt);
            Assert.Less(100, salt.Length);
        }
Exemplo n.º 2
0
        public void CanDealWithLogon()
        {
            var logon = new SecureLogon {
                UserService = new SimpleHashLogonStorage()
            };
            var salt         = logon.GetSalt("user");
            var encryptor    = new Encryptor();
            var cert         = typeof(HashSecureLogonTest).Assembly.ReadManifestResourceBytes("private.pfx");
            var saltbytes    = Convert.FromBase64String(salt);
            var decrypted    = encryptor.Decrypt(saltbytes, cert);
            var decryptedstr = Encoding.UTF8.GetString(decrypted);
            var hash         = encryptor.SignData(decrypted, cert);
            var hashstr      = Convert.ToBase64String(hash);
            var result       = logon.Logon("user", new SecureLogonInfo {
                Salt = decryptedstr, Sign = hashstr
            });

            Assert.True(result.IsAuthenticated);
        }