mirror of
https://github.com/the-tcpdump-group/tcpdump.git
synced 2024-11-27 12:03:44 +08:00
Update print-esp.c
This commit is contained in:
parent
b19c83b54e
commit
2d861fb1a7
24
print-esp.c
24
print-esp.c
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user