Socket ssl con DH
Publicado: Dom Abr 10, 2011 7:38 am
Hola a todos,
Estoy implementando un cliente-servidor y tan solo puedo modificar el cliente, nunca el servidor.
Se me exige utilizar DH como key-exchange.
Lo he conseguido pero solo forzando al servidor para que utilize ADH.
El codigo que pego es comun para cliente y servidor. Necesito conseguir esto sin tocar el servidor. Cuando elimino la parte de DH del servidor me da error "No cipher shared".
Gracias por su ayuda.
CLIENTE Y SERVIDOR:
DH* dh = DH_new();
if (!DH_generate_parameters_ex(dh, 2, DH_GENERATOR_2, 0))
printf("DH_generate_parameters_ex failed");
int codes = 0;
if (!DH_check(dh, &codes))
printf("DH_check failed");
if (!DH_generate_key(dh))
printf("DH_generate_key failed");
SSL_CTX* ctx2;
ctx2 = SSL_CTX_new(SSLv3_client_method());
if (!ctx2)
printf("SSL_CTX_new failed");
//DH* dh = setup_dh();
SSL_CTX_set_tmp_dh(ctx2, dh);
if (SSL_CTX_set_cipher_list(ctx2, "ADH-AES256-SHA") != 1)
printf("Error setting cipher list (no valid ciphers)");
else
printf(" Cipher OK\n");
Estoy implementando un cliente-servidor y tan solo puedo modificar el cliente, nunca el servidor.
Se me exige utilizar DH como key-exchange.
Lo he conseguido pero solo forzando al servidor para que utilize ADH.
El codigo que pego es comun para cliente y servidor. Necesito conseguir esto sin tocar el servidor. Cuando elimino la parte de DH del servidor me da error "No cipher shared".
Gracias por su ayuda.
CLIENTE Y SERVIDOR:
DH* dh = DH_new();
if (!DH_generate_parameters_ex(dh, 2, DH_GENERATOR_2, 0))
printf("DH_generate_parameters_ex failed");
int codes = 0;
if (!DH_check(dh, &codes))
printf("DH_check failed");
if (!DH_generate_key(dh))
printf("DH_generate_key failed");
SSL_CTX* ctx2;
ctx2 = SSL_CTX_new(SSLv3_client_method());
if (!ctx2)
printf("SSL_CTX_new failed");
//DH* dh = setup_dh();
SSL_CTX_set_tmp_dh(ctx2, dh);
if (SSL_CTX_set_cipher_list(ctx2, "ADH-AES256-SHA") != 1)
printf("Error setting cipher list (no valid ciphers)");
else
printf(" Cipher OK\n");