ike-init: Notify initiator if childless IKE_SAs are accepted
This commit is contained in:
@@ -161,6 +161,11 @@ enum ike_extension_t {
|
|||||||
* Postquantum Preshared Keys, draft-ietf-ipsecme-qr-ikev2
|
* Postquantum Preshared Keys, draft-ietf-ipsecme-qr-ikev2
|
||||||
*/
|
*/
|
||||||
EXT_PPK = (1<<15),
|
EXT_PPK = (1<<15),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Responder accepts childless IKE_SAs, RFC 6023
|
||||||
|
*/
|
||||||
|
EXT_IKE_CHILDLESS = (1<<16),
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2008-2018 Tobias Brunner
|
* Copyright (C) 2008-2019 Tobias Brunner
|
||||||
* Copyright (C) 2005-2008 Martin Willi
|
* Copyright (C) 2005-2008 Martin Willi
|
||||||
* Copyright (C) 2005 Jan Hutter
|
* Copyright (C) 2005 Jan Hutter
|
||||||
* HSR Hochschule fuer Technik Rapperswil
|
* HSR Hochschule fuer Technik Rapperswil
|
||||||
@@ -433,6 +433,13 @@ static bool build_payloads(private_ike_init_t *this, message_t *message)
|
|||||||
{
|
{
|
||||||
message->add_notify(message, FALSE, USE_PPK, chunk_empty);
|
message->add_notify(message, FALSE, USE_PPK, chunk_empty);
|
||||||
}
|
}
|
||||||
|
/* notify the peer if we accept childless IKE_SAs */
|
||||||
|
if (!this->old_sa && !this->initiator &&
|
||||||
|
ike_cfg->childless(ike_cfg) != CHILDLESS_NEVER)
|
||||||
|
{
|
||||||
|
message->add_notify(message, FALSE, CHILDLESS_IKEV2_SUPPORTED,
|
||||||
|
chunk_empty);
|
||||||
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -578,6 +585,13 @@ static void process_payloads(private_ike_init_t *this, message_t *message)
|
|||||||
EXT_IKE_REDIRECTION);
|
EXT_IKE_REDIRECTION);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case CHILDLESS_IKEV2_SUPPORTED:
|
||||||
|
if (this->initiator && !this->old_sa)
|
||||||
|
{
|
||||||
|
this->ike_sa->enable_extension(this->ike_sa,
|
||||||
|
EXT_IKE_CHILDLESS);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
/* other notifies are handled elsewhere */
|
/* other notifies are handled elsewhere */
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user