title: Getting PrivateKey null X509Certificate2 c#
body: <blockquote>
    <p>It is a console application and I'm using .net framework 4. 
    When I try to get the private key from the certificate I get it as null any idea why is this happening?</p>
  </blockquote>
  
  <pre><code>string text = "some text"
  SHA1 sha1 = SHA1CryptoServiceProvider.Create();
  Byte[] textToBytes =  //ASCIIEncoding.Default.GetBytes(texto);
  UTF8Encoding.UTF8.GetBytes(text);
  Byte[] hash = sha1.ComputeHash(textToBytes);
  //Path to the certificate file.
  string sFile = @"C:\myCer.cer";
  //Get the bytes array.
  byte[] byteCer = File.ReadAllBytes(sFile);
  //Create the certificate with bytes and the password.    
  X509Certificate2 myCert2 = new X509Certificate2(byteCer, "Password", X509KeyStorageFlags.MachineKeySet);
  
  byte[] Encrypted = rsa1.Encrypt(hash, true);
  string cypherText = Convert.ToBase64String(Encrypted);
  RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)myCert2.PrivateKey;//I get the privateKey as null.
  RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
  RSAFormatter.SetHashAlgorithm("SHA1");
  byte[] SignedHashValue = RSAFormatter.CreateSignature(hash);
  </code></pre>