public void Given_ValidRSAKey_When_DifferentByteArraysInPublicKey_Then_HashCodeIsTheSame() { // Arrange var key1 = new RsaKey(new RSAParameters() { Exponent = new byte[] { 1, 2 }, Modulus = new byte[] { 1, 2, 3, 4, 5 }, }, true); var key2 = new RsaKey(new RSAParameters() { Exponent = new byte[] { 1, 2 }, Modulus = new byte[] { 1, 2, 3, 4, 5 }, }, true); // Act // Assert Debug.WriteLine("key1 hash: {0}", key1.GetHashCode()); Debug.WriteLine("key2 hash: {0}", key2.GetHashCode()); key1.GetHashCode().Should().Be(key2.GetHashCode()); }
public void Given_ValidRSAKey_When_PublicKeyParametersChanged_Then_HashCodeIsDifferent() { // Arrange var key1 = new RsaKey(new RSAParameters() { Exponent = RandomByteArrayUtils.CreateRandomByteArray(5), Modulus = RandomByteArrayUtils.CreateRandomByteArray(6), }, true); var key2 = new RsaKey(new RSAParameters() { Exponent = key1.Key.Exponent, Modulus = RandomByteArrayUtils.CreateRandomByteArray(7), }, true); // Act // Assert key1.GetHashCode().Should().NotBe(key2.GetHashCode()); }
public void Given_ValidRSAKey_When_PrivateKeyParametersChanged_Then_HashCodeIsTheSame() { // Arrange var key1 = new RsaKey(new RSAParameters() { Exponent = RandomByteArrayUtils.CreateRandomByteArray(5), Modulus = RandomByteArrayUtils.CreateRandomByteArray(5), }, true); var key2 = new RsaKey(new RSAParameters() { Exponent = key1.Key.Exponent, Modulus = key1.Key.Modulus, D = RandomByteArrayUtils.CreateRandomByteArray(5), DP = RandomByteArrayUtils.CreateRandomByteArray(5), DQ = RandomByteArrayUtils.CreateRandomByteArray(5), InverseQ = RandomByteArrayUtils.CreateRandomByteArray(5), P = RandomByteArrayUtils.CreateRandomByteArray(5), Q = RandomByteArrayUtils.CreateRandomByteArray(5), }, true); // Act // Assert key1.GetHashCode().Should().Be(key2.GetHashCode(), "hash code only takes public key parameters into account"); }