2011-02-04 13 views
10

Sto cercando di inviare dati crittografati tra un client Silverlight e un server di codice nativo (C++) usando WCF. Stavo cercando di utilizzare la classe AesManaged per crittografare i dati che il client invia al server, ma mi chiedevo sulla decrittografia. Si presume che se la classe AesManaged è implementata rispetto alla specifica AES, dovrebbe essere cross-compatibile con qualsiasi libreria C++ AES, ma data l'esperienza con le "interpretazioni" di Microsoft (e di altri venditori) delle specifiche in precedenza ho sentito che dovevo confermarlo se possibile.I dati crittografati in Silverlight sono decrittografabili con C++?

Ho in programma di costruire un prototipo ma speravo in una risposta da qualcuno che ha già esperienza in questo settore. L'utilizzo di C++/CLI o C# per accedere alla classe AesManaged non è un'opzione, visto che sto trattando il codice legacy a cui sto aggiungendo la funzionalità.

risposta

1

Tutto quello che posso dire è che è stato bello chiedere; Non posso parlare di questo specifico interop, ma stavo cercando di comunicare con un pezzo di software legacy che utilizzava un'implementazione nativa vecchia chiamata AesLib e stavo cercando di usare AesCryptoServiceProvider. Non si parlerebbero, apparentemente perché AesLib usa una modalità senza IV o ha una IV statica o deterministica che non ho potuto scoprire.

Se è possibile ottenere e fare riferimento all'implementazione AES utilizzata dal server nativo e implementare un wrapper compatibile con ICryptoServiceProvider che lo circonda, probabilmente sarebbe la migliore garanzia che il messaggio arrivi intatto (sebbene ciò potrebbe causare i propri problemi). Altrimenti, mi sarei assicurato di avere tutte le informazioni rilevabili su questa implementazione in modo da poter configurare AesManaged allo stesso modo. Avrai bisogno, come minimo, della chiave, IV, dimensione e modalità del blocco.

0

Avevo usato C# AesManaged con successo con l'implementazione AES di PHP molto tempo fa (in Silverlight 2 Beta), quindi è certamente possibile.

Tuttavia, è possibile studiare attentamente cose come IV, paddings, dimensioni dei blocchi e modalità per assicurarsi che le impostazioni per la corrispondenza AES.

Problemi correlati