From 6fe9120bd4e31ec026e89ab20f0f63c232ea4f52 Mon Sep 17 00:00:00 2001 From: Andrew Au Date: Mon, 25 Nov 2019 16:13:40 -0800 Subject: [PATCH] Improve test coverage for RSAEncryptionPadding comparsion (#230) * Improve test coverage for RSAEncryptionPadding comparsion * Simplify RSASignaturePadding comparison logic --- .../Cryptography/RSASignaturePadding.cs | 2 +- .../tests/RSATests.cs | 36 +++++++++++++++++-- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/RSASignaturePadding.cs b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/RSASignaturePadding.cs index 3cc3ddfdc5c..60059b19808 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/RSASignaturePadding.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/RSASignaturePadding.cs @@ -59,7 +59,7 @@ public override bool Equals(object obj) public bool Equals(RSASignaturePadding other) { - return other != null && _mode == other._mode; + return !object.ReferenceEquals(other, null) && _mode == other._mode; } public static bool operator ==(RSASignaturePadding left, RSASignaturePadding right) diff --git a/src/libraries/System.Security.Cryptography.Algorithms/tests/RSATests.cs b/src/libraries/System.Security.Cryptography.Algorithms/tests/RSATests.cs index 782415addc8..86f0cf912a0 100644 --- a/src/libraries/System.Security.Cryptography.Algorithms/tests/RSATests.cs +++ b/src/libraries/System.Security.Cryptography.Algorithms/tests/RSATests.cs @@ -193,9 +193,41 @@ public void VerifyDataStream_UsesHashDataAndVerifyHash() } [Fact] - public void RSAEncryptionPadding_Equals() + public void RSAEncryptionPadding_Equality() { - Assert.Equal(RSAEncryptionPadding.Pkcs1, RSAEncryptionPadding.Pkcs1); + Assert.True(RSAEncryptionPadding.Pkcs1.Equals(RSAEncryptionPadding.Pkcs1)); + Assert.True(RSAEncryptionPadding.Pkcs1.Equals((object)RSAEncryptionPadding.Pkcs1)); + Assert.True(RSAEncryptionPadding.Pkcs1 == RSAEncryptionPadding.Pkcs1); + Assert.False(RSAEncryptionPadding.Pkcs1 != RSAEncryptionPadding.Pkcs1); + + Assert.False(RSAEncryptionPadding.Pkcs1.Equals(RSAEncryptionPadding.OaepSHA1)); + Assert.False(RSAEncryptionPadding.Pkcs1.Equals((object)RSAEncryptionPadding.OaepSHA1)); + Assert.False(RSAEncryptionPadding.Pkcs1 == RSAEncryptionPadding.OaepSHA1); + Assert.True(RSAEncryptionPadding.Pkcs1 != RSAEncryptionPadding.OaepSHA1); + + Assert.False(RSAEncryptionPadding.Pkcs1.Equals(null)); + Assert.False(RSAEncryptionPadding.Pkcs1.Equals((object)null)); + Assert.False(RSAEncryptionPadding.Pkcs1 == null); + Assert.True(RSAEncryptionPadding.Pkcs1 != null); + } + + [Fact] + public void RSASignaturePadding_Equality() + { + Assert.True(RSASignaturePadding.Pkcs1.Equals(RSASignaturePadding.Pkcs1)); + Assert.True(RSASignaturePadding.Pkcs1.Equals((object)RSASignaturePadding.Pkcs1)); + Assert.True(RSASignaturePadding.Pkcs1 == RSASignaturePadding.Pkcs1); + Assert.False(RSASignaturePadding.Pkcs1 != RSASignaturePadding.Pkcs1); + + Assert.False(RSASignaturePadding.Pkcs1.Equals(RSASignaturePadding.Pss)); + Assert.False(RSASignaturePadding.Pkcs1.Equals((object)RSASignaturePadding.Pss)); + Assert.False(RSASignaturePadding.Pkcs1 == RSASignaturePadding.Pss); + Assert.True(RSASignaturePadding.Pkcs1 != RSASignaturePadding.Pss); + + Assert.False(RSASignaturePadding.Pkcs1.Equals(null)); + Assert.False(RSASignaturePadding.Pkcs1.Equals((object)null)); + Assert.False(RSASignaturePadding.Pkcs1 == null); + Assert.True(RSASignaturePadding.Pkcs1 != null); } private sealed class EmptyRSA : RSA -- GitLab