From d0c98fab566869e53f008af3db49cac11d92db4c Mon Sep 17 00:00:00 2001 From: EgorBo Date: Tue, 19 Sep 2017 17:29:34 +0300 Subject: [PATCH] fix for DSA --- .../DSACryptoServiceProvider.cs | 1 + .../DSACryptoServiceProviderTest.cs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/mcs/class/corlib/System.Security.Cryptography/DSACryptoServiceProvider.cs b/mcs/class/corlib/System.Security.Cryptography/DSACryptoServiceProvider.cs index ceef9625fe5..07200f28b4e 100644 --- a/mcs/class/corlib/System.Security.Cryptography/DSACryptoServiceProvider.cs +++ b/mcs/class/corlib/System.Security.Cryptography/DSACryptoServiceProvider.cs @@ -114,6 +114,7 @@ namespace System.Security.Cryptography { persisted = true; this.FromXmlString (store.KeyValue); } + privateKeyExportable = (parameters.Flags & CspProviderFlags.UseNonExportableKey) == 0; } ~DSACryptoServiceProvider () diff --git a/mcs/class/corlib/Test/System.Security.Cryptography/DSACryptoServiceProviderTest.cs b/mcs/class/corlib/Test/System.Security.Cryptography/DSACryptoServiceProviderTest.cs index e56a20c75cd..ac005e2711a 100644 --- a/mcs/class/corlib/Test/System.Security.Cryptography/DSACryptoServiceProviderTest.cs +++ b/mcs/class/corlib/Test/System.Security.Cryptography/DSACryptoServiceProviderTest.cs @@ -1046,6 +1046,16 @@ public class DSACryptoServiceProviderTest { dsa = new DSACryptoServiceProvider (minKeySize); dsa.ImportCspBlob (blob); } + + [Test] //bug 38054 + public void NonExportableKeysAreNonExportable () + { + var cspParams = new CspParameters (13, null, "Mono1024"); + cspParams.KeyContainerName = "TestDSAKey"; + cspParams.Flags = CspProviderFlags.UseNonExportableKey; + var rsa = new DSACryptoServiceProvider(cspParams); + Assert.Throws(() => rsa.ExportParameters(true)); + } } } -- 2.25.1