PDA

View Full Version : [OpenSSL] problema BIGNUM


holyfather
06-05-2011, 19:04
Salve ho questo problema, ipotizziamo che sul server crei una struttura DH *a; e abbiamo quindi disponibili i vari parametri caratteristici di un oggetto di tipo DIFFIEHELMAN in particolare p e g.

Allora io voglio spedire dal server al client questi parametri per poter calcolare la chiave di sessione condivisa.

Dal server mando ad esempio p che è un BIGNUM così :

SSL_write(ssl,a->p,sizeof( BIGNUM ));

Sul client per ricevere faccio così:

char buffer[1024];
SSL_read(ssl,buffer,1024);
BIGNUM *p= (BIGNUM *) x;

Accade però che quando tento di creare sul client una struttura DH e di mettere p nella nuova struttura;

b=DH_new();
if(b == NULL)
{
printf("errore");
return 1;
}

b -> p = BN_dup(p);

Mi da segfault !! Ho appunto messo in un buffer il BIGNUM , così da poter stampare sia sul client che sul server i valori in esadecimale di p, ed effettivamente sia sul client che sul server ho la stessa stringa. Quindi il valore arriva al client corretto !

Che sbagli a inizializzare il BIGNUM ? non so proprio che fare T_T