Как подписать данные с помощью закрытого ключа сертификата в Silverlight - PullRequest
0 голосов
/ 14 января 2019

Мне нужно подписать данные перед отправкой в ​​сервис. Я сделал это в приложении Windows следующим способом:

private string SignWithPfx(string data)
    {
        var path = AppDomain.CurrentDomain.BaseDirectory + "certificate.pfx";
        var password = "1234";

        var collection = new X509Certificate2Collection();

        collection.Import(path, password, X509KeyStorageFlags.Exportable);
        var certificate = collection[0];
        var publicKey = certificate.PublicKey.Key as RSACryptoServiceProvider;

        var privateKey = certificate.PrivateKey as RSACryptoServiceProvider;


        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
        rsa.FromXmlString(certificate.PrivateKey.ToXmlString(true));

        var signature = rsa.SignData(Encoding.ASCII.GetBytes(data), CryptoConfig.MapNameToOID("SHA256"));
        return Convert.ToBase64String(signature);
    }

но когда я перенес его в проект Silverlight, я заметил, что здесь нет «X509Certificate2Collection» или даже «RSACryptoServiceProvider»! Что я должен сделать?

...