public void ConstructorsWithDefaultsReturnsInitializedInstance()
        {
            var sut = new Rfc2898EncryptedValue(this.sampleValue);

            Assert.Equal(Rfc2898EncryptedValue.DefaultHashSize, sut.Hash.Length);
            Assert.Equal(Rfc2898EncryptedValue.DefaultIterations, sut.Iterations);
            Assert.Equal(Rfc2898EncryptedValue.DefaultSaltSize, sut.Salt.Length);

            sut = new Rfc2898EncryptedValue(this.sampleValue, this.sampleSalt);

            Assert.Equal(Rfc2898EncryptedValue.DefaultHashSize, sut.Hash.Length);
            Assert.Equal(Rfc2898EncryptedValue.DefaultIterations, sut.Iterations);
            Assert.Same(this.sampleSalt, sut.Salt);
        }
        public void ConstructorsWithDefaultsReturnsInitializedInstance()
        {
            var sut = new Rfc2898EncryptedValue(this.sampleValue);

            Assert.Equal(Rfc2898EncryptedValue.DefaultHashSize, sut.Hash.Length);
            Assert.Equal(Rfc2898EncryptedValue.DefaultIterations, sut.Iterations);
            Assert.Equal(Rfc2898EncryptedValue.DefaultSaltSize, sut.Salt.Length);

            sut = new Rfc2898EncryptedValue(this.sampleValue, this.sampleSalt);

            Assert.Equal(Rfc2898EncryptedValue.DefaultHashSize, sut.Hash.Length);
            Assert.Equal(Rfc2898EncryptedValue.DefaultIterations, sut.Iterations);
            Assert.Same(this.sampleSalt, sut.Salt);
        }
        public void ConstructorsReturnsInitializedInstance()
        {
            var hashSize = 40;
            var iterations = 5000;
            var saltSize = 20;

            var sut = new Rfc2898EncryptedValue(this.sampleValue, hashSize, iterations, saltSize);

            Assert.Equal(hashSize, sut.Hash.Length);
            Assert.Equal(iterations, sut.Iterations);
            Assert.Equal(saltSize, sut.Salt.Length);

            sut = new Rfc2898EncryptedValue(this.sampleValue, this.sampleSalt, hashSize, iterations);

            Assert.Equal(hashSize, sut.Hash.Length);
            Assert.Equal(iterations, sut.Iterations);
            Assert.Same(this.sampleSalt, sut.Salt);
        }
        public void ConstructorsReturnsInitializedInstance()
        {
            var hashSize   = 40;
            var iterations = 5000;
            var saltSize   = 20;

            var sut = new Rfc2898EncryptedValue(this.sampleValue, hashSize, iterations, saltSize);

            Assert.Equal(hashSize, sut.Hash.Length);
            Assert.Equal(iterations, sut.Iterations);
            Assert.Equal(saltSize, sut.Salt.Length);

            sut = new Rfc2898EncryptedValue(this.sampleValue, this.sampleSalt, hashSize, iterations);

            Assert.Equal(hashSize, sut.Hash.Length);
            Assert.Equal(iterations, sut.Iterations);
            Assert.Same(this.sampleSalt, sut.Salt);
        }
        public void IsSerializableAndDeserializable()
        {
            var sut = new Rfc2898EncryptedValue(Encoding.UTF8.GetBytes("value"));
            Rfc2898EncryptedValue deserialized = null;

            using (var stream = new MemoryStream())
            {
                var formatter = new BinaryFormatter();

                formatter.Serialize(stream, sut);

                stream.Seek(0, SeekOrigin.Begin);

                deserialized = (Rfc2898EncryptedValue)formatter.Deserialize(stream);
            }

            Assert.Equal(sut.Hash, deserialized.Hash);
            Assert.Equal(sut.Iterations, deserialized.Iterations);
            Assert.Equal(sut.Salt, deserialized.Salt);
        }
        public void IsSerializableAndDeserializable()
        {
            var sut = new Rfc2898EncryptedValue(Encoding.UTF8.GetBytes("value"));
            Rfc2898EncryptedValue deserialized = null;

            using (var stream = new MemoryStream())
            {
                var formatter = new BinaryFormatter();

                formatter.Serialize(stream, sut);

                stream.Seek(0, SeekOrigin.Begin);

                deserialized = (Rfc2898EncryptedValue)formatter.Deserialize(stream);
            }

            Assert.Equal(sut.Hash, deserialized.Hash);
            Assert.Equal(sut.Iterations, deserialized.Iterations);
            Assert.Equal(sut.Salt, deserialized.Salt);
        }