2017-04-12 12 views
0

私はネットのコアには、.NET 4.5のプロジェクトを移植するんだ、と私は機能に吸い込まを取得...あり移植のX509CertificateとCryptoConfigの.Net 4.5から.NETにコア

public bool IsMessageSignatureValid(byte[] bytes, string signature) { 
    X509Certificate2 certificate = GetX509Certificate(); 
    RSACryptoServiceProvider rsa = certificate.PublicKey.Key as RSACryptoServiceProvider; 
    return rsa.VerifyData(bytes, CryptoConfig.MapNameToOID("SHA1"), Convert.FromBase64String(signature)); 
} 
  • 」ネットコア上System.Security.Cryptography.X509Certificates.PublicKeyで無Keyプロパティ再
  • ネットコアのSystem.Security.CryptographyでませCryptoConfigクラスん

誰がどのようにFiに私にいくつかのアイデアを与えることができますそれは?ありがとうございました

答えて

2

.NET 4.6で証明書とRSAに加えられた機能拡張が不足しています。 .NET Core 1.0および1.1では、Windows以外のシステムではよりうまく動作するため、新しいやり方が可能です。

public bool IsMessageSignatureValid(byte[] bytes, string signature) { 
    // New instance each call? If so, dispose this. 
    X509Certificate2 certificate = GetX509Certificate(); 

    // GetRSAPublicKey returns a new object each time, 
    // you should definitely using/Dispose it. 
    using (RSA rsa = certificate.GetRSAPublicKey()) 
    { 
     return rsa.VerityData(
      bytes, 
      Convert.FromBase64String(signature), 
      HashAlgorithmName.SHA1, 
      RSASignaturePadding.Pkcs1); 
    } 
} 
+0

私はちょっと前に分かった、とにかくありがとう! – user163695

+0

あなたは私の一日を救った。ありがとうございました。 –

関連する問題