diff options
Diffstat (limited to 'src/core/gnunet-service-core_kx.c')
-rw-r--r-- | src/core/gnunet-service-core_kx.c | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/src/core/gnunet-service-core_kx.c b/src/core/gnunet-service-core_kx.c index 19b692ab9..4b9a9498b 100644 --- a/src/core/gnunet-service-core_kx.c +++ b/src/core/gnunet-service-core_kx.c | |||
@@ -654,6 +654,11 @@ GSC_KX_start (const struct GNUNET_PeerIdentity *pid) | |||
654 | { | 654 | { |
655 | struct GSC_KeyExchangeInfo *kx; | 655 | struct GSC_KeyExchangeInfo *kx; |
656 | 656 | ||
657 | #if DEBUG_CORE | ||
658 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
659 | "Initiating key exchange with `%s'\n", | ||
660 | GNUNET_i2s (pid)); | ||
661 | #endif | ||
657 | kx = GNUNET_malloc (sizeof (struct GSC_KeyExchangeInfo)); | 662 | kx = GNUNET_malloc (sizeof (struct GSC_KeyExchangeInfo)); |
658 | kx->peer = *pid; | 663 | kx->peer = *pid; |
659 | kx->set_key_retry_frequency = INITIAL_SET_KEY_RETRY_FREQUENCY; | 664 | kx->set_key_retry_frequency = INITIAL_SET_KEY_RETRY_FREQUENCY; |
@@ -782,6 +787,11 @@ GSC_KX_handle_set_key (struct GSC_KeyExchangeInfo *kx, | |||
782 | GNUNET_STATISTICS_update (GSC_stats, | 787 | GNUNET_STATISTICS_update (GSC_stats, |
783 | gettext_noop ("# SET_KEY messages decrypted"), 1, | 788 | gettext_noop ("# SET_KEY messages decrypted"), 1, |
784 | GNUNET_NO); | 789 | GNUNET_NO); |
790 | #if DEBUG_CORE | ||
791 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
792 | "Received SET_KEY from `%s'\n", | ||
793 | GNUNET_i2s (&kx->peer)); | ||
794 | #endif | ||
785 | kx->decrypt_key = k; | 795 | kx->decrypt_key = k; |
786 | if (kx->decrypt_key_created.abs_value != t.abs_value) | 796 | if (kx->decrypt_key_created.abs_value != t.abs_value) |
787 | { | 797 | { |
@@ -895,6 +905,11 @@ GSC_KX_handle_ping (struct GSC_KeyExchangeInfo *kx, | |||
895 | GNUNET_break_op (0); | 905 | GNUNET_break_op (0); |
896 | return; | 906 | return; |
897 | } | 907 | } |
908 | #if DEBUG_CORE | ||
909 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
910 | "Received PING from `%s'\n", | ||
911 | GNUNET_i2s (&kx->peer)); | ||
912 | #endif | ||
898 | /* construct PONG */ | 913 | /* construct PONG */ |
899 | tx.reserved = GNUNET_BANDWIDTH_VALUE_MAX; | 914 | tx.reserved = GNUNET_BANDWIDTH_VALUE_MAX; |
900 | tx.challenge = t.challenge; | 915 | tx.challenge = t.challenge; |
@@ -999,6 +1014,11 @@ send_keep_alive (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
999 | kx->status = KX_STATE_DOWN; | 1014 | kx->status = KX_STATE_DOWN; |
1000 | return; | 1015 | return; |
1001 | } | 1016 | } |
1017 | #if DEBUG_CORE | ||
1018 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1019 | "Sending KEEPALIVE to `%s'\n", | ||
1020 | GNUNET_i2s (&kx->peer)); | ||
1021 | #endif | ||
1002 | setup_fresh_ping (kx); | 1022 | setup_fresh_ping (kx); |
1003 | GSC_NEIGHBOURS_transmit (&kx->peer, | 1023 | GSC_NEIGHBOURS_transmit (&kx->peer, |
1004 | &kx->ping.header, | 1024 | &kx->ping.header, |
@@ -1053,7 +1073,6 @@ GSC_KX_handle_pong (struct GSC_KeyExchangeInfo *kx, const struct GNUNET_MessageH | |||
1053 | } | 1073 | } |
1054 | GNUNET_STATISTICS_update (GSC_stats, gettext_noop ("# PONG messages received"), | 1074 | GNUNET_STATISTICS_update (GSC_stats, gettext_noop ("# PONG messages received"), |
1055 | 1, GNUNET_NO); | 1075 | 1, GNUNET_NO); |
1056 | |||
1057 | if ( (kx->status != KX_STATE_KEY_RECEIVED) && | 1076 | if ( (kx->status != KX_STATE_KEY_RECEIVED) && |
1058 | (kx->status != KX_STATE_UP) ) | 1077 | (kx->status != KX_STATE_UP) ) |
1059 | { | 1078 | { |
@@ -1099,6 +1118,11 @@ GSC_KX_handle_pong (struct GSC_KeyExchangeInfo *kx, const struct GNUNET_MessageH | |||
1099 | #endif | 1118 | #endif |
1100 | return; | 1119 | return; |
1101 | } | 1120 | } |
1121 | #if DEBUG_CORE | ||
1122 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1123 | "Received PONG from `%s'\n", | ||
1124 | GNUNET_i2s (&kx->peer)); | ||
1125 | #endif | ||
1102 | switch (kx->status) | 1126 | switch (kx->status) |
1103 | { | 1127 | { |
1104 | case KX_STATE_DOWN: | 1128 | case KX_STATE_DOWN: |
@@ -1144,6 +1168,11 @@ send_key (struct GSC_KeyExchangeInfo *kx) | |||
1144 | if (kx->public_key == NULL) | 1168 | if (kx->public_key == NULL) |
1145 | { | 1169 | { |
1146 | /* lookup public key, then try again */ | 1170 | /* lookup public key, then try again */ |
1171 | #if DEBUG_CORE | ||
1172 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1173 | "Trying to obtain public key for `%s'\n", | ||
1174 | GNUNET_i2s (&kx->peer)); | ||
1175 | #endif | ||
1147 | kx->pitr = | 1176 | kx->pitr = |
1148 | GNUNET_PEERINFO_iterate (peerinfo, &kx->peer, | 1177 | GNUNET_PEERINFO_iterate (peerinfo, &kx->peer, |
1149 | GNUNET_TIME_UNIT_FOREVER_REL /* timeout? */, | 1178 | GNUNET_TIME_UNIT_FOREVER_REL /* timeout? */, |
@@ -1178,7 +1207,11 @@ send_key (struct GSC_KeyExchangeInfo *kx) | |||
1178 | 1207 | ||
1179 | /* always update sender status in SET KEY message */ | 1208 | /* always update sender status in SET KEY message */ |
1180 | kx->skm.sender_status = htonl ((int32_t) kx->status); | 1209 | kx->skm.sender_status = htonl ((int32_t) kx->status); |
1181 | 1210 | #if DEBUG_CORE | |
1211 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1212 | "Sending SET_KEY and PING to `%s'\n", | ||
1213 | GNUNET_i2s (&kx->peer)); | ||
1214 | #endif | ||
1182 | GSC_NEIGHBOURS_transmit (&kx->peer, | 1215 | GSC_NEIGHBOURS_transmit (&kx->peer, |
1183 | &kx->skm.header, | 1216 | &kx->skm.header, |
1184 | kx->set_key_retry_frequency); | 1217 | kx->set_key_retry_frequency); |
@@ -1228,6 +1261,12 @@ GSC_KX_encrypt_and_transmit (struct GSC_KeyExchangeInfo *kx, | |||
1228 | GNUNET_assert (GNUNET_OK == | 1261 | GNUNET_assert (GNUNET_OK == |
1229 | do_encrypt (kx, &iv, &ph->sequence_number, &em->sequence_number, | 1262 | do_encrypt (kx, &iv, &ph->sequence_number, &em->sequence_number, |
1230 | used - ENCRYPTED_HEADER_SIZE)); | 1263 | used - ENCRYPTED_HEADER_SIZE)); |
1264 | #if DEBUG_CORE | ||
1265 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1266 | "Encrypted %u bytes for %s\n", | ||
1267 | used - ENCRYPTED_HEADER_SIZE, | ||
1268 | GNUNET_i2s (&kx->peer)); | ||
1269 | #endif | ||
1231 | derive_auth_key (&auth_key, &kx->encrypt_key, ph->iv_seed, | 1270 | derive_auth_key (&auth_key, &kx->encrypt_key, ph->iv_seed, |
1232 | kx->encrypt_key_created); | 1271 | kx->encrypt_key_created); |
1233 | GNUNET_CRYPTO_hmac (&auth_key, &em->sequence_number, | 1272 | GNUNET_CRYPTO_hmac (&auth_key, &em->sequence_number, |
@@ -1320,6 +1359,12 @@ GSC_KX_handle_encrypted_message (struct GSC_KeyExchangeInfo *kx, | |||
1320 | do_decrypt (kx, &iv, &m->sequence_number, &buf[ENCRYPTED_HEADER_SIZE], | 1359 | do_decrypt (kx, &iv, &m->sequence_number, &buf[ENCRYPTED_HEADER_SIZE], |
1321 | size - ENCRYPTED_HEADER_SIZE)) | 1360 | size - ENCRYPTED_HEADER_SIZE)) |
1322 | return; | 1361 | return; |
1362 | #if DEBUG_CORE | ||
1363 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1364 | "Decrypted %u bytes from %s\n", | ||
1365 | size - ENCRYPTED_HEADER_SIZE, | ||
1366 | GNUNET_i2s (&kx->peer)); | ||
1367 | #endif | ||
1323 | pt = (struct EncryptedMessage *) buf; | 1368 | pt = (struct EncryptedMessage *) buf; |
1324 | 1369 | ||
1325 | /* validate sequence number */ | 1370 | /* validate sequence number */ |