.NET Core では RSACryptoServiceProvider.FromXmlString メソッドで例外が発生します
.NET Core では RSACryptoServiceProvider クラスの FromXmlString / ToXmlString メソッドがサポートされていません。PlatformNotSupportedException がスローされます。
秘密鍵の読込
// using System.Security.Cryptography;
var privateKey = "<RSAKeyValue><Modulus>yT12/iqZLN....Q==</D></RSAKeyValue>";
var rsa = new RSACryptoServiceProvider();
// ここで PlatformNotSupportedException がスローされます。
// 'Operation is not supported on this platform.'
rsa.FromXmlString(privateKey);
対処法
FromXmlString / ToXmlString の代替メソッドを公開している方がいらっしゃいました。
【GithubGist】Jargon64/RSACryptoServiceProviderExtensions.cs
var privateKey = "<RSAKeyValue><Modulus>yT12/iqZLN....Q==</D></RSAKeyValue>";
var rsa = new RSACryptoServiceProvider();
// 鍵を読み込むことができます。.NET Core 2.1 で確認。
// シグネチャが同一である場合は拡張メソッドではなく本体に実装されているメソッドが優先されるため、メソッド名は変更しました。
rsa.FromXmlStringEx(privateKey);