Можно ли при работе с сертификатом с закрытым ключом(etoken) обойтись без установки криптопровайдера(CryptoPro CSP) на сервер?
Вероятно проблема с сертификатом, т.к. вот пример из msdn:
 // Find the certificate we’ll use to sign            
            RSACryptoServiceProvider csp = null;
            foreach (X509Certificate2 cert in my.Certificates)
            {
                if (cert.Subject.Contains(certSubject))
                {
                    // We found it. 
                    // Get its associated CSP and private key
                    csp = (RSACryptoServiceProvider)cert.PrivateKey;
                }
            }
            if (csp == null)
            {
                throw new Exception(“No valid cert was found”);
            }
И null в PrivateKey говорит только об отсутствии этого ключа, не больше ни меньше
Уже писал подобное, алгоритм ГОСТ есть у .net из коробки и внешние библиотеки использовать не обязательно, криптопро использовать тоже не обязательно, .net пользуется api windows для поиска ключей и прочей работы, то есть если нет криптопро появятся стандартные виндозные запросы. Могу поискать исходники если нужно, думаю они еще живые.
Нет. Отсутсвие криптопровайдера == отсутсвие алгоритма шифрования.