diff options
author | Filip Navara <filip.navara@gmail.com> | 2018-06-21 21:04:35 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2018-06-25 13:09:14 +0300 |
commit | d4245e369a2edfde950c93328147adab31e48e70 (patch) | |
tree | f27f485b94dd356c362c5c3ef1c3fce7e9f8130a | |
parent | 7907326d05d0c585cebc2a009bcdb370b0941e8c (diff) |
Align X509EnhancedKeyUsageExtension.EnhancedKeyUsages behaviour with NetFX
2 files changed, 18 insertions, 1 deletions
diff --git a/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509EnhancedKeyUsageExtension.cs b/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509EnhancedKeyUsageExtension.cs index 82ab80636d..d986f50807 100644 --- a/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509EnhancedKeyUsageExtension.cs +++ b/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509EnhancedKeyUsageExtension.cs @@ -42,7 +42,10 @@ namespace System.Security.Cryptography.X509Certificates X509Pal.Instance.DecodeX509EnhancedKeyUsageExtension(RawData, out _enhancedKeyUsages); _decoded = true; } - return _enhancedKeyUsages; + OidCollection oids = new OidCollection(); + foreach (Oid oid in _enhancedKeyUsages) + oids.Add(oid); + return oids; } } diff --git a/src/System.Security.Cryptography.X509Certificates/tests/ExtensionsTests.cs b/src/System.Security.Cryptography.X509Certificates/tests/ExtensionsTests.cs index 32cba5be20..2db1267d4d 100644 --- a/src/System.Security.Cryptography.X509Certificates/tests/ExtensionsTests.cs +++ b/src/System.Security.Cryptography.X509Certificates/tests/ExtensionsTests.cs @@ -299,6 +299,20 @@ namespace System.Security.Cryptography.X509Certificates.Tests } [Fact] + public static void EnhancedKeyUsageExtension_ImmutableOids() + { + Oid oid1 = new Oid("1.3.6.1.5.5.7.3.1"); + OidCollection usages = new OidCollection(); + X509EnhancedKeyUsageExtension e = new X509EnhancedKeyUsageExtension(usages, false); + Assert.Equal(0, e.EnhancedKeyUsages.Count); + usages.Add(oid1); + Assert.Equal(0, e.EnhancedKeyUsages.Count); + e.EnhancedKeyUsages.Add(oid1); + Assert.Equal(0, e.EnhancedKeyUsages.Count); + Assert.NotSame(e.EnhancedKeyUsages, e.EnhancedKeyUsages); + } + + [Fact] public static void SubjectKeyIdentifierExtensionDefault() { X509SubjectKeyIdentifierExtension e = new X509SubjectKeyIdentifierExtension(); |