public void Given_RSAPublicKey_When_Mapped_Then_NoException() { // Arrange var xmlPoco = new EnvCryptKey() { Name = "My Test Key", Rsa = new[] { new EnvCryptKeyRsa() { Exponent = "Exponent", Modulus = "Modulus", } }, Aes = null, }; var strConverterMock = new Mock <IKeyDetailsPersistConverter>(MockBehavior.Strict); { var counter = 1; strConverterMock.Setup(c => c.Decode("Exponent")).Returns(new byte[counter++]); strConverterMock.Setup(c => c.Decode("Modulus")).Returns(new byte[counter++]); } // Act var mapper = new XmlToRsaKeyMapper(strConverterMock.Object); var res = mapper.Map(xmlPoco); // Assert { var counter = 1; res.Key.Exponent.Should().BeEquivalentTo(new byte[counter++]); res.Key.Modulus.Should().BeEquivalentTo(new byte[counter++]); } }
public void Given_ValidRSAKey_When_Mapped_Then_ValuesMappedCorrectly() { // Arrange const string keyName = "My Test Key"; var xmlPoco = new EnvCryptKey() { Name = keyName, Rsa = new[] { new EnvCryptKeyRsa() { D = "D", Dp = "DP", Exponent = "Exponent", Dq = "DQ", InverseQ = "InverseQ", Modulus = "Modulus", OaepPadding = true, P = "P", Q = "Q" } }, Aes = null, }; var strConverterMock = new Mock <IKeyDetailsPersistConverter>(MockBehavior.Strict); { var counter = 1; strConverterMock.Setup(c => c.Decode("D")).Returns(new byte[counter++]); strConverterMock.Setup(c => c.Decode("DP")).Returns(new byte[counter++]); strConverterMock.Setup(c => c.Decode("Exponent")).Returns(new byte[counter++]); strConverterMock.Setup(c => c.Decode("DQ")).Returns(new byte[counter++]); strConverterMock.Setup(c => c.Decode("InverseQ")).Returns(new byte[counter++]); strConverterMock.Setup(c => c.Decode("Modulus")).Returns(new byte[counter++]); strConverterMock.Setup(c => c.Decode("P")).Returns(new byte[counter++]); strConverterMock.Setup(c => c.Decode("Q")).Returns(new byte[counter++]); } // Act var mapper = new XmlToRsaKeyMapper(strConverterMock.Object); var res = mapper.Map(xmlPoco); // Assert { var counter = 1; res.UseOaepPadding.Should().BeTrue(); res.Key.D.Should().BeEquivalentTo(new byte[counter++]); res.Key.DP.Should().BeEquivalentTo(new byte[counter++]); res.Key.Exponent.Should().BeEquivalentTo(new byte[counter++]); res.Key.DQ.Should().BeEquivalentTo(new byte[counter++]); res.Key.InverseQ.Should().BeEquivalentTo(new byte[counter++]); res.Key.Modulus.Should().BeEquivalentTo(new byte[counter++]); res.Key.P.Should().BeEquivalentTo(new byte[counter++]); res.Key.Q.Should().BeEquivalentTo(new byte[counter++]); } }