7

I am creating RSA key pair using AsymmetricKeyAlgorithmProvider (Windows.Security.Cryptography.Core) and exporting the keys as shown below:

  AsymmetricKeyAlgorithmProvider rsaGenKeys = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1);

  CryptographicKey keyPair = rsaGenKeys.CreateKeyPair(2048);
  byte[] privateKeyBlob = keyPair.Export(CryptographicPrivateKeyBlobType.Pkcs1RsaPrivateKey).ToArray();

  string privateKeyBlobStr = Convert.ToBase64String(privateKeyBlob);

  byte[] publicKeyBlob = keyPair.ExportPublicKey().ToArray();

  string pubilcKeyBlobStr = Convert.ToBase64String(publicKeyBlob);

Now, the receiver of this data happens to be a Silverlight app and is using RSACryptoServiceProvider (System.Security.Cryptography) to load this public key:

RSACryptoServiceProvider rsaPublic = new RSACryptoServiceProvider();
byte[] keyBlobBytes = Convert.FromBase64String(keyBlob);
rsaPublic.ImportCspBlob(keyBlobBytes);

Where keyBlob is the byte array having the public key. The issue is when ImportCspBlob is called it throws exception saying "Bad Version of provider."

Artjom B.
  • 61,146
  • 24
  • 125
  • 222
tavier
  • 1,744
  • 4
  • 24
  • 53

1 Answers1

1

I had the same error. For some reason FxSSH did not like a public RSA key I generated. I had to use the RSA key in the https://github.com/Aimeast/FxSsh readme.

humbe
  • 11
  • 2