public void Given_ValidAESPublicKey_When_MapToXMLPOCO_Then_NameMappedCorrectly() { // Arrange var key = new RsaKey(new RSAParameters() { Exponent = new byte[1], Modulus = new byte[2], }, true); const string keyName = "My Rsa Key"; key.Name = keyName; var converter = new Mock <IKeyDetailsPersistConverter>(MockBehavior.Strict); converter.Setup(c => c.Encode(key.Key.Exponent)).Returns("exponent"); converter.Setup(c => c.Encode(key.Key.Modulus)).Returns("modulus"); // Act var aesKeyToXmlMapper = new RsaKeyToXmlMapper(converter.Object); var xmlPoco = new EnvCryptKey(); aesKeyToXmlMapper.Map(key, xmlPoco); // Assert xmlPoco.Rsa.Should().NotBeNull().And.HaveCount(1); xmlPoco.Name.Should().Be(keyName); xmlPoco.Encryption.Should().Be(EnvCryptAlgoEnum.Rsa.ToString()); xmlPoco.Type.Should().Be(KeyTypeEnum.Public.ToString()); xmlPoco.Rsa[0].Exponent.Should().Be("exponent"); xmlPoco.Rsa[0].Modulus.Should().Be("modulus"); }
public void Given_ValidRSAKey_When_MapToXMLPOCO_Then_EncodingHelperClassMustBeused() { // Arrange var key = new RsaKey(new RSAParameters() { D = RandomByteArrayUtils.CreateRandomByteArray(10), DP = RandomByteArrayUtils.CreateRandomByteArray(11), DQ = RandomByteArrayUtils.CreateRandomByteArray(12), Exponent = RandomByteArrayUtils.CreateRandomByteArray(13), Modulus = RandomByteArrayUtils.CreateRandomByteArray(14), InverseQ = RandomByteArrayUtils.CreateRandomByteArray(15), P = RandomByteArrayUtils.CreateRandomByteArray(16), Q = RandomByteArrayUtils.CreateRandomByteArray(17), }, true); var converter = new Mock <IKeyDetailsPersistConverter>(MockBehavior.Strict); converter.Setup(c => c.Encode(key.Key.D)).Returns("d"); converter.Setup(c => c.Encode(key.Key.DP)).Returns("dp"); converter.Setup(c => c.Encode(key.Key.DQ)).Returns("dq"); converter.Setup(c => c.Encode(key.Key.Exponent)).Returns("exponent"); converter.Setup(c => c.Encode(key.Key.Modulus)).Returns("modulus"); converter.Setup(c => c.Encode(key.Key.InverseQ)).Returns("inverseQ"); converter.Setup(c => c.Encode(key.Key.P)).Returns("p"); converter.Setup(c => c.Encode(key.Key.Q)).Returns("q"); // Act var aesKeyToXmlMapper = new RsaKeyToXmlMapper(converter.Object); var xmlPoco = new EnvCryptKey(); aesKeyToXmlMapper.Map(key, xmlPoco); // Assert xmlPoco.Rsa.Should().NotBeNull().And.HaveCount(1); xmlPoco.Rsa[0].D.Should().Be("d"); xmlPoco.Rsa[0].Dp.Should().Be("dp"); xmlPoco.Rsa[0].Dq.Should().Be("dq"); xmlPoco.Rsa[0].Exponent.Should().Be("exponent"); xmlPoco.Rsa[0].Modulus.Should().Be("modulus"); xmlPoco.Rsa[0].InverseQ.Should().Be("inverseQ"); xmlPoco.Rsa[0].P.Should().Be("p"); xmlPoco.Rsa[0].Q.Should().Be("q"); converter.Verify(c => c.Encode(key.Key.D), Times.Once); converter.Verify(c => c.Encode(key.Key.DP), Times.Once); converter.Verify(c => c.Encode(key.Key.DQ), Times.Once); converter.Verify(c => c.Encode(key.Key.Exponent), Times.Once); converter.Verify(c => c.Encode(key.Key.Modulus), Times.Once); converter.Verify(c => c.Encode(key.Key.InverseQ), Times.Once); converter.Verify(c => c.Encode(key.Key.P), Times.Once); converter.Verify(c => c.Encode(key.Key.Q), Times.Once); }