Jen přidám drobnost z vlastní zkušenosti:
Při generování testovacího certifikátu pro právnické osoby (jde o certifikát s platností od 19.5.2016) byl jako základní použit modul Microsoft Enhanced Cryptographic Provider v1.0 (tedy ProviderType 1), který ovšem nepodporuje podepisování s využitím hash algoritmů rodiny SHA-2 (tedy ani požadovaný SHA256withRSA). Sice by bylo vhodnější již při generování použít Microsoft Enhanced RSA and AES Cryptographic Provider (tj. ProviderType24), nicméně GFŘ na to neslyší (odpověď podobného charakteru jako výše, jen trochu zmatenější). Problém lze samozřejmě vyřešit změnou certifikátu před samotným podpisem, ale je to zase pár řádků kódu navíc.
Nemusí, zkuste třeba toto:
RSACryptoServiceProvider csp = null;
csp = (RSACryptoServiceProvider)cert.PrivateKey;
var cspEnh = new RSACryptoServiceProvider().CspKeyContainerInfo;
var cspparams = new CspParameters(cspEnh.ProviderType, cspEnh.ProviderName, csp.CspKeyContainerInfo.KeyContainerName);
csp = new RSACryptoServiceProvider(cspparams);