Originariamente inviato da rizz1
OK... pero' il mio problema era quando, come e dove generare le chiavi (che dovrebbero essere 4: pubblica e privata mittente, pubblica e privata destinatario) avendo un file Server e un file Client che comunicano tramite socket...

Ricordo che le chiavi private non devono essere a conoscenza di nessuno(eccezzion fatta per i proprietari ovviamente).... e quindi suppongo debbano essere presenti solo nel file Client per quanto riguarda la chiave privata del destinatario e nel file server la chiave privata del mittente....
(Il mio programma e' una prova quindi faccio fare a un programma server il mittente e al client il destinatario)
Non riesco ancora a capire quale esattamente sia il tuo problema.

Se vuoi usare un algoritmo di crittografia asimmetrica, le due parti dovranno avere le loro chiavi private e dovranno potersi scambiare quelle pubbliche, o in alternativa dovranno saperle a priori.

Non ha importanza dove sono le due parti, se le chiami client o server, e se communicatno tramite socket o tramite piccioni - dovranno comunque avere accessibile la propria chiave privata, pubblica, e quella pubblica dell'altra parte. Nel tuo caso, salvi dei file sul disco, e li leggi al momento opportuno, tutto qui.

E vale anche per le crittografie simmetriche, tipo quella che ti suggeriamo io e daniele_dll - l'unica differenza e' che non puo' esserci nessun scambio di chiavi, le 2 parti dovranno essere gia' a conoscenza. Con altre parole - puoi anche impostare una variabile uguale nei tuoi 2 script.