Voglio utilizzare RSA per crittografare / decodificare alcuni dati utilizzando il certificato SSL di IIS, all'interno di un servizio Web (WCF). Sono riuscito finora a farlo utilizzando le classi di sicurezza .NET (RSACryptoServiceProvider / X509Certificate2): il client utilizza il certificato del server per crittografare i dati, il servizio Web può utilizzare la chiave privata (concedendo le autorizzazioni all'identità del pool di applicazioni, di conseguenza ) per decrittografarlo. Questo funziona bene per le situazioni in cui il fornitore di archiviazione certificati è CSP. Sfortunatamente, il certificato installato sul server di produzione utilizza KSP e la chiave privata può essere raggiunta solo utilizzando l'API CNG. Ho trovato una libreria su codeplex (Security.Criptography) che espone metodi per accedere alla chiave privata, ma non è in grado di far funzionare la crittografia / decrittografia. Mi aspetto che il processo di crittografia non debba cambiare: la crittografia viene eseguita utilizzando il certificato del server, indipendentemente da dove / come viene archiviata la chiave privata corrispondente. Posso usare la classe RsaCNG per ottenere la chiave privata, ma quando passo nell'array di byte ottenuto dal client, come parametro del metodo DecryptValue, ottengo l'eccezione di parametro Invalid. Qualche idea su come questo problema dovrebbe essere affrontato?