From ddfad8b67e9b673941558a4709c93379eafc7313 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 12 Dec 2012 18:18:37 +0100 Subject: [PATCH] Reset the encrypted flag when handling IKE messages that contain a fragment Racoon sets the encrypted bit for messages containing a fragment, but these messages are not really encrypted (the fragmented message is though). --- src/libcharon/encoding/message.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libcharon/encoding/message.c b/src/libcharon/encoding/message.c index 55e9f33fc..c0f468663 100644 --- a/src/libcharon/encoding/message.c +++ b/src/libcharon/encoding/message.c @@ -1693,6 +1693,12 @@ METHOD(message_t, parse_header, status_t, } this->first_payload = ike_header->payload_interface.get_next_type( &ike_header->payload_interface); + if (this->first_payload == FRAGMENT_V1 && this->is_encrypted) + { /* racoon sets the encryted bit when sending a fragment, but these + * messages are really not encrypted */ + this->is_encrypted = FALSE; + } + for (i = 0; i < countof(this->reserved); i++) { reserved = payload_get_field(&ike_header->payload_interface,