public void ImportCspBlob (byte[] keyBlob)
{
if (keyBlob == null)
throw new ArgumentNullException ("keyBlob");
DSA dsa = CryptoConvert.FromCapiKeyBlobDSA (keyBlob);
if (dsa is DSACryptoServiceProvider) {
DSAParameters dsap = dsa.ExportParameters (!(dsa as DSACryptoServiceProvider).PublicOnly);
ImportParameters (dsap);
} else {
// we can't know from DSA if the private key is available
try {
// so we try it...
DSAParameters dsap = dsa.ExportParameters (true);
ImportParameters (dsap);
}
catch {
// and fall back
DSAParameters dsap = dsa.ExportParameters (false);
ImportParameters (dsap);
}
}
}
#endif