ike: Add an additional but separate AEAD proposal to IKE config, if supported
This commit is contained in:
@@ -187,6 +187,7 @@ static peer_cfg_t* create_peer_cfg(private_cmd_connection_t *this)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
}
|
}
|
||||||
peer_cfg = peer_cfg_create("cmd", ike_cfg,
|
peer_cfg = peer_cfg_create("cmd", ike_cfg,
|
||||||
CERT_SEND_IF_ASKED, UNIQUE_REPLACE, 1, /* keyingtries */
|
CERT_SEND_IF_ASKED, UNIQUE_REPLACE, 1, /* keyingtries */
|
||||||
|
|||||||
@@ -532,6 +532,7 @@ static gboolean connect_(NMVPNPlugin *plugin, NMConnection *connection,
|
|||||||
(char*)address, IKEV2_UDP_PORT,
|
(char*)address, IKEV2_UDP_PORT,
|
||||||
FRAGMENTATION_NO, 0);
|
FRAGMENTATION_NO, 0);
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
peer_cfg = peer_cfg_create(priv->name, ike_cfg,
|
peer_cfg = peer_cfg_create(priv->name, ike_cfg,
|
||||||
CERT_SEND_IF_ASKED, UNIQUE_REPLACE, 1, /* keyingtries */
|
CERT_SEND_IF_ASKED, UNIQUE_REPLACE, 1, /* keyingtries */
|
||||||
36000, 0, /* rekey 10h, reauth none */
|
36000, 0, /* rekey 10h, reauth none */
|
||||||
|
|||||||
@@ -129,6 +129,7 @@ static ike_cfg_t *load_ike_config(private_config_t *this,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
}
|
}
|
||||||
return ike_cfg;
|
return ike_cfg;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -530,6 +530,7 @@ static job_requeue_t initiate(private_android_service_t *this)
|
|||||||
this->gateway, IKEV2_UDP_PORT,
|
this->gateway, IKEV2_UDP_PORT,
|
||||||
FRAGMENTATION_NO, 0);
|
FRAGMENTATION_NO, 0);
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
|
|
||||||
peer_cfg = peer_cfg_create("android", ike_cfg, CERT_SEND_IF_ASKED,
|
peer_cfg = peer_cfg_create("android", ike_cfg, CERT_SEND_IF_ASKED,
|
||||||
UNIQUE_REPLACE, 0, /* keyingtries */
|
UNIQUE_REPLACE, 0, /* keyingtries */
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ static peer_cfg_t* create_peer_cfg(char *name, char *host)
|
|||||||
ike_cfg = ike_cfg_create(IKEV2, FALSE, FALSE, "0.0.0.0", local_port,
|
ike_cfg = ike_cfg_create(IKEV2, FALSE, FALSE, "0.0.0.0", local_port,
|
||||||
host, remote_port, FRAGMENTATION_NO, 0);
|
host, remote_port, FRAGMENTATION_NO, 0);
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
peer_cfg = peer_cfg_create(name, ike_cfg,
|
peer_cfg = peer_cfg_create(name, ike_cfg,
|
||||||
CERT_SEND_IF_ASKED, UNIQUE_REPLACE, 1, /* keyingtries */
|
CERT_SEND_IF_ASKED, UNIQUE_REPLACE, 1, /* keyingtries */
|
||||||
36000, 0, /* rekey 10h, reauth none */
|
36000, 0, /* rekey 10h, reauth none */
|
||||||
|
|||||||
@@ -207,6 +207,7 @@ static void setup_tunnel(private_ha_tunnel_t *this,
|
|||||||
charon->socket->get_port(charon->socket, FALSE),
|
charon->socket->get_port(charon->socket, FALSE),
|
||||||
remote, IKEV2_UDP_PORT, FRAGMENTATION_NO, 0);
|
remote, IKEV2_UDP_PORT, FRAGMENTATION_NO, 0);
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
peer_cfg = peer_cfg_create("ha", ike_cfg, CERT_NEVER_SEND,
|
peer_cfg = peer_cfg_create("ha", ike_cfg, CERT_NEVER_SEND,
|
||||||
UNIQUE_KEEP, 0, 86400, 0, 7200, 3600, FALSE, FALSE,
|
UNIQUE_KEEP, 0, 86400, 0, 7200, 3600, FALSE, FALSE,
|
||||||
TRUE, 30, 0, FALSE, NULL, NULL);
|
TRUE, 30, 0, FALSE, NULL, NULL);
|
||||||
|
|||||||
@@ -327,6 +327,7 @@ static gboolean initiate_connection(private_maemo_service_t *this,
|
|||||||
charon->socket->get_port(charon->socket, FALSE),
|
charon->socket->get_port(charon->socket, FALSE),
|
||||||
hostname, IKEV2_UDP_PORT, FRAGMENTATION_NO, 0);
|
hostname, IKEV2_UDP_PORT, FRAGMENTATION_NO, 0);
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
|
|
||||||
peer_cfg = peer_cfg_create(this->current, ike_cfg,
|
peer_cfg = peer_cfg_create(this->current, ike_cfg,
|
||||||
CERT_SEND_IF_ASKED,
|
CERT_SEND_IF_ASKED,
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ METHOD(backend_t, get_peer_cfg_by_name, peer_cfg_t*,
|
|||||||
charon->socket->get_port(charon->socket, FALSE),
|
charon->socket->get_port(charon->socket, FALSE),
|
||||||
address, IKEV2_UDP_PORT, FRAGMENTATION_NO, 0);
|
address, IKEV2_UDP_PORT, FRAGMENTATION_NO, 0);
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
med_cfg = peer_cfg_create(
|
med_cfg = peer_cfg_create(
|
||||||
"mediation", ike_cfg,
|
"mediation", ike_cfg,
|
||||||
CERT_NEVER_SEND, UNIQUE_REPLACE,
|
CERT_NEVER_SEND, UNIQUE_REPLACE,
|
||||||
@@ -382,6 +383,7 @@ medcli_config_t *medcli_config_create(database_t *db)
|
|||||||
FRAGMENTATION_NO, 0),
|
FRAGMENTATION_NO, 0),
|
||||||
);
|
);
|
||||||
this->ike->add_proposal(this->ike, proposal_create_default(PROTO_IKE));
|
this->ike->add_proposal(this->ike, proposal_create_default(PROTO_IKE));
|
||||||
|
this->ike->add_proposal(this->ike, proposal_create_default_aead(PROTO_IKE));
|
||||||
|
|
||||||
schedule_autoinit(this);
|
schedule_autoinit(this);
|
||||||
|
|
||||||
|
|||||||
@@ -145,6 +145,7 @@ medsrv_config_t *medsrv_config_create(database_t *db)
|
|||||||
FRAGMENTATION_NO, 0),
|
FRAGMENTATION_NO, 0),
|
||||||
);
|
);
|
||||||
this->ike->add_proposal(this->ike, proposal_create_default(PROTO_IKE));
|
this->ike->add_proposal(this->ike, proposal_create_default(PROTO_IKE));
|
||||||
|
this->ike->add_proposal(this->ike, proposal_create_default_aead(PROTO_IKE));
|
||||||
|
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -242,6 +242,7 @@ static void add_ike_proposals(private_sql_config_t *this,
|
|||||||
if (use_default)
|
if (use_default)
|
||||||
{
|
{
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(PROTO_IKE));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(PROTO_IKE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -174,6 +174,7 @@ static void add_proposals(private_stroke_config_t *this, char *string,
|
|||||||
if (ike_cfg)
|
if (ike_cfg)
|
||||||
{
|
{
|
||||||
ike_cfg->add_proposal(ike_cfg, proposal_create_default(proto));
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default(proto));
|
||||||
|
ike_cfg->add_proposal(ike_cfg, proposal_create_default_aead(proto));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -442,17 +442,24 @@ static bool parse_proposal(linked_list_t *list, protocol_id_t proto, chunk_t v)
|
|||||||
if (strcaseeq("default", buf))
|
if (strcaseeq("default", buf))
|
||||||
{
|
{
|
||||||
proposal = proposal_create_default(proto);
|
proposal = proposal_create_default(proto);
|
||||||
|
if (proposal)
|
||||||
|
{
|
||||||
|
list->insert_last(list, proposal);
|
||||||
|
}
|
||||||
|
proposal = proposal_create_default_aead(proto);
|
||||||
|
if (proposal)
|
||||||
|
{
|
||||||
|
list->insert_last(list, proposal);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
proposal = proposal_create_from_string(proto, buf);
|
||||||
|
if (proposal)
|
||||||
{
|
{
|
||||||
proposal = proposal_create_from_string(proto, buf);
|
list->insert_last(list, proposal);
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
if (!proposal)
|
return FALSE;
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
list->insert_last(list, proposal);
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1755,8 +1762,16 @@ CALLBACK(config_sn, bool,
|
|||||||
}
|
}
|
||||||
if (peer.proposals->get_count(peer.proposals) == 0)
|
if (peer.proposals->get_count(peer.proposals) == 0)
|
||||||
{
|
{
|
||||||
peer.proposals->insert_last(peer.proposals,
|
proposal = proposal_create_default(PROTO_IKE);
|
||||||
proposal_create_default(PROTO_IKE));
|
if (proposal)
|
||||||
|
{
|
||||||
|
peer.proposals->insert_last(peer.proposals, proposal);
|
||||||
|
}
|
||||||
|
proposal = proposal_create_default_aead(PROTO_IKE);
|
||||||
|
if (proposal)
|
||||||
|
{
|
||||||
|
peer.proposals->insert_last(peer.proposals, proposal);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!peer.local_addrs)
|
if (!peer.local_addrs)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user