Update print-esp.c

This commit is contained in:
Guy Harris 2017-08-29 11:31:20 -07:00 committed by GitHub
parent b19c83b54e
commit 2d861fb1a7

View File

@ -191,23 +191,23 @@ int esp_print_decrypt_buffer_by_ikev2(netdissect_options *ndo,
return 0;
if (EVP_CipherInit(ctx, sa->evp, sa->secret, NULL, 0) < 0)
(*ndo->ndo_warning)(ndo, "espkey init failed");
EVP_CipherInit(ctx, NULL, NULL, iv, 0);
EVP_CipherInit(ctx, NULL, NULL, iv, 0);
/* We need a block size */
block_size = EVP_CIPHER_CTX_block_size(ctx);
/* We need the buffer size to be multiple of a block size */
output_buffer_size = len + (block_size - len % block_size);
output_buffer = (u_char *)calloc(output_buffer_size, sizeof(u_char));
/* We need a block size */
block_size = EVP_CIPHER_CTX_block_size(ctx);
/* We need the buffer size to be multiple of a block size */
output_buffer_size = len + (block_size - len % block_size);
output_buffer = (u_char *)calloc(output_buffer_size, sizeof(u_char));
/* EVP_Cipher output buffer should be different from the input one.
* Also it should be of size that is multiple of cipher block size. */
* Also it should be of size that is multiple of cipher block size. */
EVP_Cipher(ctx, output_buffer, buf, len);
EVP_CIPHER_CTX_free(ctx);
buf_mut = (u_char*) buf;
/* Of course this is wrong, because buf is a const buffer, but changing this
* would require more complicated fix. */
memcpy(buf_mut, output_buffer, len);
free(output_buffer);
buf_mut = (u_char*) buf;
/* Of course this is wrong, because buf is a const buffer, but changing this
* would require more complicated fix. */
memcpy(buf_mut, output_buffer, len);
free(output_buffer);
ndo->ndo_packetp = buf;
ndo->ndo_snapend = end;