From: EgorBo Date: Tue, 19 Sep 2017 14:29:34 +0000 (+0300) Subject: fix for DSA X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=d0c98fab566869e53f008af3db49cac11d92db4c;hp=d0cf2c890aa17bbfc7ceab9167de5cd86f68276a;p=mono.git fix for DSA --- 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)); + } } }