ike: Add an additional but separate AEAD proposal to CHILD config
This currently has no effect: We don't include AEAD algorithms in the default ESP proposal, as we don't know if it is supported by the backend. But as we hopefully get an algorithm query mechanism on kernel interfaces some day, we add the appropriate functionality nonetheless.
This commit is contained in:
@@ -358,6 +358,8 @@ static child_cfg_t* create_child_cfg(private_cmd_connection_t *this,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
|
child_cfg->add_proposal(child_cfg,
|
||||||
|
proposal_create_default_aead(PROTO_ESP));
|
||||||
}
|
}
|
||||||
while (this->local_ts->remove_first(this->local_ts, (void**)&ts) == SUCCESS)
|
while (this->local_ts->remove_first(this->local_ts, (void**)&ts) == SUCCESS)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -566,6 +566,7 @@ static gboolean connect_(NMVPNPlugin *plugin, NMConnection *connection,
|
|||||||
ACTION_NONE, ACTION_NONE, ACTION_NONE, ipcomp,
|
ACTION_NONE, ACTION_NONE, ACTION_NONE, ipcomp,
|
||||||
0, 0, NULL, NULL, 0);
|
0, 0, NULL, NULL, 0);
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
|
child_cfg->add_proposal(child_cfg, proposal_create_default_aead(PROTO_ESP));
|
||||||
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
||||||
ts = traffic_selector_create_from_string(0, TS_IPV4_ADDR_RANGE,
|
ts = traffic_selector_create_from_string(0, TS_IPV4_ADDR_RANGE,
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ static child_cfg_t *load_child_config(private_config_t *this,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
|
child_cfg->add_proposal(child_cfg,
|
||||||
|
proposal_create_default_aead(PROTO_ESP));
|
||||||
}
|
}
|
||||||
|
|
||||||
token = settings->get_str(settings, "configs.%s.%s.lts", NULL, config, child);
|
token = settings->get_str(settings, "configs.%s.%s.lts", NULL, config, child);
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ static child_cfg_t* create_child_cfg(char *name)
|
|||||||
"aes128gcm8-aes128gcm12-aes128gcm16-"
|
"aes128gcm8-aes128gcm12-aes128gcm16-"
|
||||||
"aes256gcm8-aes256gcm12-aes256gcm16"));
|
"aes256gcm8-aes256gcm12-aes256gcm16"));
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
|
child_cfg->add_proposal(child_cfg, proposal_create_default_aead(PROTO_ESP));
|
||||||
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
||||||
ts = traffic_selector_create_from_string(0, TS_IPV4_ADDR_RANGE,
|
ts = traffic_selector_create_from_string(0, TS_IPV4_ADDR_RANGE,
|
||||||
|
|||||||
@@ -236,6 +236,7 @@ static void setup_tunnel(private_ha_tunnel_t *this,
|
|||||||
ts = traffic_selector_create_dynamic(IPPROTO_ICMP, 0, 65535);
|
ts = traffic_selector_create_dynamic(IPPROTO_ICMP, 0, 65535);
|
||||||
child_cfg->add_traffic_selector(child_cfg, FALSE, ts);
|
child_cfg->add_traffic_selector(child_cfg, FALSE, ts);
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
|
child_cfg->add_proposal(child_cfg, proposal_create_default_aead(PROTO_ESP));
|
||||||
peer_cfg->add_child_cfg(peer_cfg, child_cfg);
|
peer_cfg->add_child_cfg(peer_cfg, child_cfg);
|
||||||
|
|
||||||
this->backend.cfg = peer_cfg;
|
this->backend.cfg = peer_cfg;
|
||||||
|
|||||||
@@ -352,6 +352,7 @@ static gboolean initiate_connection(private_maemo_service_t *this,
|
|||||||
TRUE, MODE_TUNNEL, ACTION_NONE, ACTION_NONE,
|
TRUE, MODE_TUNNEL, ACTION_NONE, ACTION_NONE,
|
||||||
ACTION_NONE, FALSE, 0, 0, NULL, NULL, 0);
|
ACTION_NONE, FALSE, 0, 0, NULL, NULL, 0);
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
|
child_cfg->add_proposal(child_cfg, proposal_create_default_aead(PROTO_ESP));
|
||||||
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
ts = traffic_selector_create_dynamic(0, 0, 65535);
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts);
|
||||||
ts = traffic_selector_create_from_string(0, TS_IPV4_ADDR_RANGE, "0.0.0.0",
|
ts = traffic_selector_create_from_string(0, TS_IPV4_ADDR_RANGE, "0.0.0.0",
|
||||||
|
|||||||
@@ -169,6 +169,7 @@ METHOD(backend_t, get_peer_cfg_by_name, peer_cfg_t*,
|
|||||||
ACTION_NONE, ACTION_NONE, ACTION_NONE, FALSE,
|
ACTION_NONE, ACTION_NONE, ACTION_NONE, FALSE,
|
||||||
0, 0, NULL, NULL, 0);
|
0, 0, NULL, NULL, 0);
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
|
child_cfg->add_proposal(child_cfg, proposal_create_default_aead(PROTO_ESP));
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts_from_string(local_net));
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts_from_string(local_net));
|
||||||
child_cfg->add_traffic_selector(child_cfg, FALSE, ts_from_string(remote_net));
|
child_cfg->add_traffic_selector(child_cfg, FALSE, ts_from_string(remote_net));
|
||||||
peer_cfg->add_child_cfg(peer_cfg, child_cfg);
|
peer_cfg->add_child_cfg(peer_cfg, child_cfg);
|
||||||
@@ -243,6 +244,7 @@ METHOD(enumerator_t, peer_enumerator_enumerate, bool,
|
|||||||
ACTION_NONE, ACTION_NONE, ACTION_NONE, FALSE,
|
ACTION_NONE, ACTION_NONE, ACTION_NONE, FALSE,
|
||||||
0, 0, NULL, NULL, 0);
|
0, 0, NULL, NULL, 0);
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(PROTO_ESP));
|
||||||
|
child_cfg->add_proposal(child_cfg, proposal_create_default_aead(PROTO_ESP));
|
||||||
child_cfg->add_traffic_selector(child_cfg, TRUE, ts_from_string(local_net));
|
child_cfg->add_traffic_selector(child_cfg, TRUE, ts_from_string(local_net));
|
||||||
child_cfg->add_traffic_selector(child_cfg, FALSE, ts_from_string(remote_net));
|
child_cfg->add_traffic_selector(child_cfg, FALSE, ts_from_string(remote_net));
|
||||||
this->current->add_child_cfg(this->current, child_cfg);
|
this->current->add_child_cfg(this->current, child_cfg);
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ static void add_esp_proposals(private_sql_config_t *this,
|
|||||||
if (use_default)
|
if (use_default)
|
||||||
{
|
{
|
||||||
child->add_proposal(child, proposal_create_default(PROTO_ESP));
|
child->add_proposal(child, proposal_create_default(PROTO_ESP));
|
||||||
|
child->add_proposal(child, proposal_create_default_aead(PROTO_ESP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -179,6 +179,7 @@ static void add_proposals(private_stroke_config_t *this, char *string,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
child_cfg->add_proposal(child_cfg, proposal_create_default(proto));
|
child_cfg->add_proposal(child_cfg, proposal_create_default(proto));
|
||||||
|
child_cfg->add_proposal(child_cfg, proposal_create_default_aead(proto));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1350,8 +1350,16 @@ CALLBACK(children_sn, bool,
|
|||||||
}
|
}
|
||||||
if (child.proposals->get_count(child.proposals) == 0)
|
if (child.proposals->get_count(child.proposals) == 0)
|
||||||
{
|
{
|
||||||
child.proposals->insert_last(child.proposals,
|
proposal = proposal_create_default(PROTO_ESP);
|
||||||
proposal_create_default(PROTO_ESP));
|
if (proposal)
|
||||||
|
{
|
||||||
|
child.proposals->insert_last(child.proposals, proposal);
|
||||||
|
}
|
||||||
|
proposal = proposal_create_default_aead(PROTO_ESP);
|
||||||
|
if (proposal)
|
||||||
|
{
|
||||||
|
child.proposals->insert_last(child.proposals, proposal);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if no hard lifetime specified, add one at soft lifetime + 10% */
|
/* if no hard lifetime specified, add one at soft lifetime + 10% */
|
||||||
|
|||||||
Reference in New Issue
Block a user