aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2015-03-23 11:37:27 +0100
committerMartin Willi <martin@revosec.ch>2015-03-23 17:54:03 +0100
commit42431690e04a8614e759e0a3a3bcd76e30e6207e (patch)
tree4c473700dffe096c07d8117fb7a0df71fc5be56f /src/libcharon/encoding
parent8a7dbf3c2a0a4e8a4a503b630dbad0d46ae25756 (diff)
downloadstrongswan-42431690e04a8614e759e0a3a3bcd76e30e6207e.tar.bz2
strongswan-42431690e04a8614e759e0a3a3bcd76e30e6207e.tar.xz
diffie-hellman: Add a bool return value to get_my_public_value()
Diffstat (limited to 'src/libcharon/encoding')
-rw-r--r--src/libcharon/encoding/payloads/ke_payload.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libcharon/encoding/payloads/ke_payload.c b/src/libcharon/encoding/payloads/ke_payload.c
index 7f3c4e400..c2599a682 100644
--- a/src/libcharon/encoding/payloads/ke_payload.c
+++ b/src/libcharon/encoding/payloads/ke_payload.c
@@ -320,9 +320,15 @@ ke_payload_t *ke_payload_create(payload_type_t type)
ke_payload_t *ke_payload_create_from_diffie_hellman(payload_type_t type,
diffie_hellman_t *dh)
{
- private_ke_payload_t *this = (private_ke_payload_t*)ke_payload_create(type);
+ private_ke_payload_t *this;
+ chunk_t value;
- dh->get_my_public_value(dh, &this->key_exchange_data);
+ if (!dh->get_my_public_value(dh, &value))
+ {
+ return NULL;
+ }
+ this = (private_ke_payload_t*)ke_payload_create(type);
+ this->key_exchange_data = value;
this->dh_group_number = dh->get_dh_group(dh);
this->payload_length += this->key_exchange_data.len;