allow private algorithms

This commit is contained in:
Andreas Steffen
2012-05-05 23:25:51 +02:00
parent 4b797f464e
commit 44bd9b48c8
2 changed files with 16 additions and 4 deletions
+8 -2
View File
@@ -322,6 +322,7 @@ METHOD(task_t, process_r, status_t,
{ {
linked_list_t *list; linked_list_t *list;
sa_payload_t *sa_payload; sa_payload_t *sa_payload;
bool private;
this->ike_cfg = this->ike_sa->get_ike_cfg(this->ike_sa); this->ike_cfg = this->ike_sa->get_ike_cfg(this->ike_sa);
DBG0(DBG_IKE, "%H is initiating a Main Mode IKE_SA", DBG0(DBG_IKE, "%H is initiating a Main Mode IKE_SA",
@@ -345,8 +346,10 @@ METHOD(task_t, process_r, status_t,
} }
list = sa_payload->get_proposals(sa_payload); list = sa_payload->get_proposals(sa_payload);
private = this->ike_sa->supports_extension(this->ike_sa,
EXT_STRONGSWAN);
this->proposal = this->ike_cfg->select_proposal(this->ike_cfg, this->proposal = this->ike_cfg->select_proposal(this->ike_cfg,
list, FALSE); list, private);
list->destroy_offset(list, offsetof(proposal_t, destroy)); list->destroy_offset(list, offsetof(proposal_t, destroy));
if (!this->proposal) if (!this->proposal)
{ {
@@ -523,6 +526,7 @@ METHOD(task_t, process_i, status_t,
sa_payload_t *sa_payload; sa_payload_t *sa_payload;
auth_method_t method; auth_method_t method;
u_int32_t lifetime; u_int32_t lifetime;
bool private;
sa_payload = (sa_payload_t*)message->get_payload(message, sa_payload = (sa_payload_t*)message->get_payload(message,
SECURITY_ASSOCIATION_V1); SECURITY_ASSOCIATION_V1);
@@ -532,8 +536,10 @@ METHOD(task_t, process_i, status_t,
return send_notify(this, INVALID_PAYLOAD_TYPE); return send_notify(this, INVALID_PAYLOAD_TYPE);
} }
list = sa_payload->get_proposals(sa_payload); list = sa_payload->get_proposals(sa_payload);
private = this->ike_sa->supports_extension(this->ike_sa,
EXT_STRONGSWAN);
this->proposal = this->ike_cfg->select_proposal(this->ike_cfg, this->proposal = this->ike_cfg->select_proposal(this->ike_cfg,
list, FALSE); list, private);
list->destroy_offset(list, offsetof(proposal_t, destroy)); list->destroy_offset(list, offsetof(proposal_t, destroy));
if (!this->proposal) if (!this->proposal)
{ {
+8 -2
View File
@@ -789,6 +789,7 @@ METHOD(task_t, process_r, status_t,
peer_cfg_t *peer_cfg; peer_cfg_t *peer_cfg;
host_t *me, *other; host_t *me, *other;
u_int16_t group; u_int16_t group;
bool private;
if (!get_ts(this, message)) if (!get_ts(this, message))
{ {
@@ -833,8 +834,10 @@ METHOD(task_t, process_r, status_t,
return send_notify(this, INVALID_PAYLOAD_TYPE); return send_notify(this, INVALID_PAYLOAD_TYPE);
} }
list = sa_payload->get_proposals(sa_payload); list = sa_payload->get_proposals(sa_payload);
private = this->ike_sa->supports_extension(this->ike_sa,
EXT_STRONGSWAN);
this->proposal = this->config->select_proposal(this->config, this->proposal = this->config->select_proposal(this->config,
list, FALSE, FALSE); list, FALSE, private);
list->destroy_offset(list, offsetof(proposal_t, destroy)); list->destroy_offset(list, offsetof(proposal_t, destroy));
this->mode = sa_payload->get_encap_mode(sa_payload, &this->udp); this->mode = sa_payload->get_encap_mode(sa_payload, &this->udp);
@@ -958,6 +961,7 @@ METHOD(task_t, process_i, status_t,
{ {
sa_payload_t *sa_payload; sa_payload_t *sa_payload;
linked_list_t *list; linked_list_t *list;
bool private;
sa_payload = (sa_payload_t*)message->get_payload(message, sa_payload = (sa_payload_t*)message->get_payload(message,
SECURITY_ASSOCIATION_V1); SECURITY_ASSOCIATION_V1);
@@ -967,8 +971,10 @@ METHOD(task_t, process_i, status_t,
return send_notify(this, NO_PROPOSAL_CHOSEN); return send_notify(this, NO_PROPOSAL_CHOSEN);
} }
list = sa_payload->get_proposals(sa_payload); list = sa_payload->get_proposals(sa_payload);
private = this->ike_sa->supports_extension(this->ike_sa,
EXT_STRONGSWAN);
this->proposal = this->config->select_proposal(this->config, this->proposal = this->config->select_proposal(this->config,
list, FALSE, FALSE); list, FALSE, private);
list->destroy_offset(list, offsetof(proposal_t, destroy)); list->destroy_offset(list, offsetof(proposal_t, destroy));
if (!this->proposal) if (!this->proposal)
{ {