/**
* Signature.
*/
- struct GNUNET_CRYPTO_EccSignature signature;
+ struct GNUNET_CRYPTO_EddsaSignature signature;
/**
* GNUNET_SIGNATURE_PURPOSE_TRANSPORT_PONG_OWN to confirm that this is a
/**
* Public key of the peer.
*/
- struct GNUNET_CRYPTO_EccPublicSignKey public_key;
+ struct GNUNET_CRYPTO_EddsaPublicKey public_key;
/**
* The identity of the peer. FIXME: duplicated (also in 'address')
/**
* Cached PONG signature
*/
- struct GNUNET_CRYPTO_EccSignature pong_sig_cache;
+ struct GNUNET_CRYPTO_EddsaSignature pong_sig_cache;
/**
* ID of task that will clean up this entry if nothing happens.
* of the given peer that we are currently validating, have validated
* or are blocked from re-validation for a while).
*/
-static struct GNUNET_CONTAINER_MultiHashMap *validation_map;
+static struct GNUNET_CONTAINER_MultiPeerMap *validation_map;
/**
* Context for peerinfo iteration.
* GNUNET_NO if the entry does match
*/
static int
-validation_entry_match (void *cls, const struct GNUNET_HashCode * key, void *value)
+validation_entry_match (void *cls, const struct GNUNET_PeerIdentity * key, void *value)
{
struct ValidationEntryMatchContext *vemc = cls;
struct ValidationEntry *ve = value;
* @return GNUNET_YES (continue to iterate)
*/
static int
-cleanup_validation_entry (void *cls, const struct GNUNET_HashCode * key, void *value)
+cleanup_validation_entry (void *cls, const struct GNUNET_PeerIdentity * key, void *value)
{
struct ValidationEntry *ve = value;
ve->bc = NULL;
}
GNUNET_break (GNUNET_OK ==
- GNUNET_CONTAINER_multihashmap_remove (validation_map,
- &ve->pid.hashPubKey, ve));
+ GNUNET_CONTAINER_multipeermap_remove (validation_map,
+ &ve->pid, ve));
GNUNET_HELLO_address_free (ve->address);
if (GNUNET_SCHEDULER_NO_TASK != ve->timeout_task)
{
GNUNET_STATISTICS_update (GST_stats,
gettext_noop ("# address records discarded"), 1,
GNUNET_NO);
- cleanup_validation_entry (NULL, &ve->pid.hashPubKey, ve);
+ cleanup_validation_entry (NULL, &ve->pid, ve);
}
* if we don't have an existing entry and no public key was given
*/
static struct ValidationEntry *
-find_validation_entry (const struct GNUNET_CRYPTO_EccPublicSignKey *public_key,
+find_validation_entry (const struct GNUNET_CRYPTO_EddsaPublicKey *public_key,
const struct GNUNET_HELLO_Address *address)
{
struct ValidationEntryMatchContext vemc;
vemc.ve = NULL;
vemc.address = address;
- GNUNET_CONTAINER_multihashmap_get_multiple (validation_map,
- &address->peer.hashPubKey,
+ GNUNET_CONTAINER_multipeermap_get_multiple (validation_map,
+ &address->peer,
&validation_entry_match, &vemc);
if (NULL != (ve = vemc.ve))
return ve;
ve->public_key = *public_key;
ve->pid = address->peer;
ve->pong_sig_valid_until = GNUNET_TIME_absolute_get_zero_();
- memset (&ve->pong_sig_cache, '\0', sizeof (struct GNUNET_CRYPTO_EccSignature));
+ memset (&ve->pong_sig_cache, '\0', sizeof (struct GNUNET_CRYPTO_EddsaSignature));
ve->latency = GNUNET_TIME_UNIT_FOREVER_REL;
ve->challenge =
GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, UINT32_MAX);
ve->timeout_task =
GNUNET_SCHEDULER_add_delayed (UNVALIDATED_PING_KEEPALIVE,
&timeout_hello_validation, ve);
- GNUNET_CONTAINER_multihashmap_put (validation_map, &address->peer.hashPubKey,
+ GNUNET_CONTAINER_multipeermap_put (validation_map, &address->peer,
ve,
GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
ve->expecting_pong = GNUNET_NO;
struct ValidationEntry *ve;
struct GNUNET_PeerIdentity pid;
struct GNUNET_ATS_Information ats;
- struct GNUNET_CRYPTO_EccPublicSignKey public_key;
+ struct GNUNET_CRYPTO_EddsaPublicKey public_key;
if (0 == GNUNET_TIME_absolute_get_remaining (expiration).rel_value_us)
return GNUNET_OK; /* expired */
validations_fast_start_threshold = (max_fds / 2);
validations_running = 0;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Validation uses a fast start threshold of %u connections and a delay between of %s\n ",
- validations_fast_start_threshold,
+ validations_fast_start_threshold,
GNUNET_STRINGS_relative_time_to_string (validation_delay,
GNUNET_YES));
- validation_map = GNUNET_CONTAINER_multihashmap_create (VALIDATION_MAP_SIZE,
+ validation_map = GNUNET_CONTAINER_multipeermap_create (VALIDATION_MAP_SIZE,
GNUNET_NO);
pnc = GNUNET_PEERINFO_notify (GST_cfg, GNUNET_YES, &process_peerinfo_hello, NULL);
}
{
struct CheckHelloValidatedContext *chvc;
- GNUNET_CONTAINER_multihashmap_iterate (validation_map,
+ GNUNET_CONTAINER_multipeermap_iterate (validation_map,
&cleanup_validation_entry, NULL);
- GNUNET_CONTAINER_multihashmap_destroy (validation_map);
+ GNUNET_CONTAINER_multipeermap_destroy (validation_map);
validation_map = NULL;
while (NULL != (chvc = chvc_head))
{
*/
static void
multicast_pong (void *cls,
- const struct GNUNET_CRYPTO_EccPublicSignKey *public_key,
+ const struct GNUNET_CRYPTO_EddsaPublicKey *public_key,
struct GNUNET_TIME_Absolute valid_until,
struct GNUNET_TIME_Absolute validation_block,
const struct GNUNET_HELLO_Address *address)
const struct TransportPingMessage *ping;
struct TransportPongMessage *pong;
struct GNUNET_TRANSPORT_PluginFunctions *papi;
- struct GNUNET_CRYPTO_EccSignature *sig_cache;
+ struct GNUNET_CRYPTO_EddsaSignature *sig_cache;
struct GNUNET_TIME_Absolute *sig_cache_exp;
const char *addr;
const char *addrend;
{
addrend = NULL; /* make gcc happy */
slen = 0;
- static struct GNUNET_CRYPTO_EccSignature no_address_signature;
+ static struct GNUNET_CRYPTO_EddsaSignature no_address_signature;
static struct GNUNET_TIME_Absolute no_address_signature_expiration;
sig_cache = &no_address_signature;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"I am `%s', sending PONG to peer `%s'\n",
- GNUNET_h2s (&GST_my_identity.hashPubKey),
+ GNUNET_i2s_full (&GST_my_identity),
GNUNET_i2s (sender));
/* message with structure:
*sig_cache_exp = GNUNET_TIME_relative_to_absolute (PONG_SIGNATURE_LIFETIME);
pong->expiration = GNUNET_TIME_absolute_hton (*sig_cache_exp);
if (GNUNET_OK !=
- GNUNET_CRYPTO_ecc_sign (GST_my_private_key, &pong->purpose,
+ GNUNET_CRYPTO_eddsa_sign (GST_my_private_key, &pong->purpose,
sig_cache))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
pong->expiration = GNUNET_TIME_absolute_hton (*sig_cache_exp);
}
pong->signature = *sig_cache;
-
+
GNUNET_assert (sender_address != NULL);
/* first see if the session we got this PING from can be used to transmit
/**
* Public key of the peer whose address is being validated.
*/
- struct GNUNET_CRYPTO_EccPublicSignKey public_key;
+ struct GNUNET_CRYPTO_EddsaPublicKey public_key;
};
{
/* We have a cached and valid signature for this peer,
* try to compare instead of verify */
- if (0 == memcmp (&ve->pong_sig_cache, &pong->signature, sizeof (struct GNUNET_CRYPTO_EccSignature)))
+ if (0 == memcmp (&ve->pong_sig_cache, &pong->signature, sizeof (struct GNUNET_CRYPTO_EddsaSignature)))
{
/* signatures are identical, we can skip verification */
sig_res = GNUNET_OK;
if (GNUNET_YES == do_verify)
{
/* Do expensive verification */
- sig_res = GNUNET_CRYPTO_ecc_verify (GNUNET_SIGNATURE_PURPOSE_TRANSPORT_PONG_OWN,
+ sig_res = GNUNET_CRYPTO_eddsa_verify (GNUNET_SIGNATURE_PURPOSE_TRANSPORT_PONG_OWN,
&pong->purpose, &pong->signature,
&ve->public_key);
if (sig_res == GNUNET_SYSERR)
* @param cls the 'struct GST_ValidationIteratorContext'
* @param key the peer's identity
* @param value the 'struct ValidationEntry'
- * @return GNUNET_OK (continue to iterate)
+ * @return #GNUNET_OK (continue to iterate)
*/
static int
-iterate_addresses (void *cls, const struct GNUNET_HashCode * key, void *value)
+iterate_addresses (void *cls, const struct GNUNET_PeerIdentity *key, void *value)
{
struct IteratorContext *ic = cls;
struct ValidationEntry *ve = value;
ic.cb = cb;
ic.cb_cls = cb_cls;
- GNUNET_CONTAINER_multihashmap_get_multiple (validation_map,
- &target->hashPubKey,
+ GNUNET_CONTAINER_multipeermap_get_multiple (validation_map,
+ target,
&iterate_addresses, &ic);
}