diff options
Diffstat (limited to 'src/identity-provider/gnunet-service-identity-provider.c')
-rw-r--r-- | src/identity-provider/gnunet-service-identity-provider.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/identity-provider/gnunet-service-identity-provider.c b/src/identity-provider/gnunet-service-identity-provider.c index 0aaee93e5..1a6619227 100644 --- a/src/identity-provider/gnunet-service-identity-provider.c +++ b/src/identity-provider/gnunet-service-identity-provider.c | |||
@@ -527,7 +527,7 @@ serialize_abe_keyinfo (const struct IssueHandle *handle, | |||
527 | char *enc_keyinfo; | 527 | char *enc_keyinfo; |
528 | char *serialized_key; | 528 | char *serialized_key; |
529 | char *buf; | 529 | char *buf; |
530 | struct GNUNET_CRYPTO_EcdhePublicKey *ecdh_pubkey; | 530 | struct GNUNET_CRYPTO_EcdhePublicKey ecdh_pubkey; |
531 | ssize_t size; | 531 | ssize_t size; |
532 | 532 | ||
533 | struct GNUNET_CRYPTO_SymmetricSessionKey skey; | 533 | struct GNUNET_CRYPTO_SymmetricSessionKey skey; |
@@ -545,11 +545,10 @@ serialize_abe_keyinfo (const struct IssueHandle *handle, | |||
545 | serialized_key, | 545 | serialized_key, |
546 | size); | 546 | size); |
547 | // ECDH keypair E = eG | 547 | // ECDH keypair E = eG |
548 | ecdh_pubkey = NULL; | ||
549 | *ecdh_privkey = GNUNET_CRYPTO_ecdhe_key_create(); | 548 | *ecdh_privkey = GNUNET_CRYPTO_ecdhe_key_create(); |
550 | GNUNET_CRYPTO_ecdhe_key_get_public (*ecdh_privkey, | 549 | GNUNET_CRYPTO_ecdhe_key_get_public (*ecdh_privkey, |
551 | ecdh_pubkey); | 550 | &ecdh_pubkey); |
552 | enc_keyinfo = GNUNET_malloc (size); | 551 | enc_keyinfo = GNUNET_malloc (size + strlen (handle->scopes) + 1); |
553 | // Derived key K = H(eB) | 552 | // Derived key K = H(eB) |
554 | GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecdh_ecdsa (*ecdh_privkey, | 553 | GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecdh_ecdsa (*ecdh_privkey, |
555 | &handle->aud_key, | 554 | &handle->aud_key, |
@@ -562,7 +561,7 @@ serialize_abe_keyinfo (const struct IssueHandle *handle, | |||
562 | *result = GNUNET_malloc (sizeof (struct GNUNET_CRYPTO_EcdhePublicKey)+ | 561 | *result = GNUNET_malloc (sizeof (struct GNUNET_CRYPTO_EcdhePublicKey)+ |
563 | enc_size); | 562 | enc_size); |
564 | GNUNET_memcpy (*result, | 563 | GNUNET_memcpy (*result, |
565 | ecdh_pubkey, | 564 | &ecdh_pubkey, |
566 | sizeof (struct GNUNET_CRYPTO_EcdhePublicKey)); | 565 | sizeof (struct GNUNET_CRYPTO_EcdhePublicKey)); |
567 | GNUNET_memcpy (*result + sizeof (struct GNUNET_CRYPTO_EcdhePublicKey), | 566 | GNUNET_memcpy (*result + sizeof (struct GNUNET_CRYPTO_EcdhePublicKey), |
568 | enc_keyinfo, | 567 | enc_keyinfo, |
@@ -1276,7 +1275,7 @@ handle_issue_message (void *cls, | |||
1276 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_REPLACE); | 1275 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_REPLACE); |
1277 | } | 1276 | } |
1278 | GNUNET_free (scopes_tmp); | 1277 | GNUNET_free (scopes_tmp); |
1279 | scopes_tmp = GNUNET_strdup (v_attrs); | 1278 | /*scopes_tmp = GNUNET_strdup (v_attrs); |
1280 | 1279 | ||
1281 | for (scope = strtok (scopes_tmp, ","); NULL != scope; scope = strtok (NULL, ",")) | 1280 | for (scope = strtok (scopes_tmp, ","); NULL != scope; scope = strtok (NULL, ",")) |
1282 | { | 1281 | { |
@@ -1286,7 +1285,7 @@ handle_issue_message (void *cls, | |||
1286 | issue_handle->v_attr_tail, | 1285 | issue_handle->v_attr_tail, |
1287 | vattr_entry); | 1286 | vattr_entry); |
1288 | } | 1287 | } |
1289 | GNUNET_free (scopes_tmp); | 1288 | GNUNET_free (scopes_tmp);*/ |
1290 | 1289 | ||
1291 | 1290 | ||
1292 | 1291 | ||