[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34179 - gnunet/src/sensor
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34179 - gnunet/src/sensor |
Date: |
Wed, 20 Aug 2014 12:18:03 +0200 |
Author: otarabai
Date: 2014-08-20 12:18:03 +0200 (Wed, 20 Aug 2014)
New Revision: 34179
Modified:
gnunet/src/sensor/
gnunet/src/sensor/sensor_util_lib_crypto.c
gnunet/src/sensor/test_gnunet-service-sensor_reporting.c
gnunet/src/sensor/test_pow_sign.c
Log:
sensor: fixes for proof-of-work, test passes now
Index: gnunet/src/sensor
===================================================================
--- gnunet/src/sensor 2014-08-20 09:17:55 UTC (rev 34178)
+++ gnunet/src/sensor 2014-08-20 10:18:03 UTC (rev 34179)
Property changes on: gnunet/src/sensor
___________________________________________________________________
Modified: svn:ignore
## -6,3 +6,4 ##
sensor.conf
test_sensor_api
test_gnunet-service-sensor_reporting
+test_pow_sign
Modified: gnunet/src/sensor/sensor_util_lib_crypto.c
===================================================================
--- gnunet/src/sensor/sensor_util_lib_crypto.c 2014-08-20 09:17:55 UTC (rev
34178)
+++ gnunet/src/sensor/sensor_util_lib_crypto.c 2014-08-20 10:18:03 UTC (rev
34179)
@@ -167,8 +167,8 @@
htonl (GNUNET_SIGNATURE_PURPOSE_SENSOR_ANOMALY_REPORT);
result_block->purpose.size =
htonl (sizeof (struct GNUNET_CRYPTO_EccSignaturePurpose) +
- sizeof (struct GNUNET_TIME_Absolute) +
- sizeof (struct GNUNET_CRYPTO_EddsaPublicKey) + cx->msg_size);
+ sizeof (struct GNUNET_TIME_Absolute) +
+ sizeof (struct GNUNET_CRYPTO_EddsaPublicKey) + cx->msg_size);
memcpy (&result_block[1], &cx[1], cx->msg_size);
sign_result =
GNUNET_CRYPTO_eddsa_sign (&cx->private_key, &result_block->purpose,
@@ -178,6 +178,7 @@
GNUNET_SENSOR_crypto_pow_sign_cancel (cx);
if (NULL != callback)
callback (callback_cls, (GNUNET_OK == sign_result) ? result_block :
NULL);
+ return;
}
cx->pow++;
cx->calculate_pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, cx);
@@ -193,7 +194,13 @@
GNUNET_SENSOR_crypto_pow_sign_cancel (struct GNUNET_SENSOR_crypto_pow_context
*cx)
{
+ if (GNUNET_SCHEDULER_NO_TASK != cx->calculate_pow_task)
+ {
+ GNUNET_SCHEDULER_cancel (cx->calculate_pow_task);
+ cx->calculate_pow_task = GNUNET_SCHEDULER_NO_TASK;
+ }
GNUNET_free (cx);
+ cx = NULL;
}
@@ -262,23 +269,27 @@
void **payload)
{
/* Check public key */
- if (0 != memcmp (public_key, &block->public_key, sizeof (struct
GNUNET_CRYPTO_EddsaPublicKey)))
+ if (0 !=
+ memcmp (public_key, &block->public_key,
+ sizeof (struct GNUNET_CRYPTO_EddsaPublicKey)))
{
LOG (GNUNET_ERROR_TYPE_WARNING, "Public key mismatch.\n");
return 0;
}
/* Check signature */
if (GNUNET_OK !=
- GNUNET_CRYPTO_eddsa_verify (purpose, &block->purpose,
- &block->signature, public_key))
+ GNUNET_CRYPTO_eddsa_verify (purpose, &block->purpose, &block->signature,
+ public_key))
{
LOG (GNUNET_ERROR_TYPE_WARNING, "Invalid signature.\n");
return 0;
}
/* Check pow */
- if (GNUNET_NO == check_pow (&block->timestamp,
- sizeof (struct GNUNET_TIME_Absolute) +
- sizeof (struct GNUNET_CRYPTO_EddsaPublicKey) + block->msg_size,
block->pow, matching_bits))
+ if (GNUNET_NO ==
+ check_pow (&block->timestamp,
+ sizeof (struct GNUNET_TIME_Absolute) +
+ sizeof (struct GNUNET_CRYPTO_EddsaPublicKey) +
block->msg_size,
+ block->pow, matching_bits))
{
LOG (GNUNET_ERROR_TYPE_WARNING, "Invalid proof-of-work.\n");
return 0;
Modified: gnunet/src/sensor/test_gnunet-service-sensor_reporting.c
===================================================================
--- gnunet/src/sensor/test_gnunet-service-sensor_reporting.c 2014-08-20
09:17:55 UTC (rev 34178)
+++ gnunet/src/sensor/test_gnunet-service-sensor_reporting.c 2014-08-20
10:18:03 UTC (rev 34179)
@@ -356,7 +356,11 @@
{
struct TestPeer *peer = cls;
- GNUNET_assert (NULL == emsg);
+ if (NULL != emsg)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "ERROR: %s.\n", emsg);
+ GNUNET_assert (0);
+ }
peer->sensor_op =
GNUNET_TESTBED_service_connect (NULL, peer->testbed_peer, "sensor",
&sensor_connect_cb, peer,
@@ -441,7 +445,11 @@
dashboard_started (void *cls, struct GNUNET_TESTBED_Operation *op,
const char *emsg)
{
- GNUNET_assert (NULL == emsg);
+ if (NULL != emsg)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "ERROR: %s.\n", emsg);
+ GNUNET_assert (0);
+ }
GNUNET_TESTBED_operation_done (op);
/* Connect to peerstore service on first peer */
peerstore_op =
Modified: gnunet/src/sensor/test_pow_sign.c
===================================================================
--- gnunet/src/sensor/test_pow_sign.c 2014-08-20 09:17:55 UTC (rev 34178)
+++ gnunet/src/sensor/test_pow_sign.c 2014-08-20 10:18:03 UTC (rev 34179)
@@ -107,18 +107,29 @@
}
-static void pow_cb (void *cls, struct GNUNET_SENSOR_crypto_pow_block *block)
+static void
+pow_cb (void *cls, struct GNUNET_SENSOR_crypto_pow_block *block)
{
void *response;
- printf ("Received block:\n"
- "pow: %" PRIu64 ".\n", block->pow);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Received block:\n" "pow: %" PRIu64 ".\n", block->pow);
+ /* Test that the block is valid */
GNUNET_assert (MSG_SIZE ==
- GNUNET_SENSOR_crypto_verify_pow_sign (block, MATCHING_BITS,
- public_key, GNUNET_SIGNATURE_PURPOSE_SENSOR_ANOMALY_REPORT, &response));
- GNUNET_assert (0 == memcmp(msg, response, MSG_SIZE));
+ GNUNET_SENSOR_crypto_verify_pow_sign (block, MATCHING_BITS,
+ public_key,
+
GNUNET_SIGNATURE_PURPOSE_SENSOR_ANOMALY_REPORT,
+ &response));
+ GNUNET_assert (0 == memcmp (msg, response, MSG_SIZE));
+ /* Modify the payload and test that verification returns invalid */
+ block->pow++;
+ GNUNET_assert (0 ==
+ GNUNET_SENSOR_crypto_verify_pow_sign (block, MATCHING_BITS,
+ public_key,
+
GNUNET_SIGNATURE_PURPOSE_SENSOR_ANOMALY_REPORT,
+ &response));
ok = 0;
- GNUNET_SCHEDULER_cancel(shutdown_task);
+ GNUNET_SCHEDULER_cancel (shutdown_task);
GNUNET_SCHEDULER_add_now (do_shutdown, NULL);
}
@@ -140,17 +151,19 @@
struct GNUNET_TIME_Absolute timestamp;
/* generate random data block */
- GNUNET_CRYPTO_random_block(GNUNET_CRYPTO_QUALITY_WEAK, msg, MSG_SIZE);
+ GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_WEAK, msg, MSG_SIZE);
/* get private and public keys */
private_key =
GNUNET_CRYPTO_eddsa_key_create_from_configuration (pinfo->result.cfg);
GNUNET_assert (NULL != private_key);
public_key = GNUNET_new (struct GNUNET_CRYPTO_EddsaPublicKey);
+
GNUNET_CRYPTO_eddsa_key_get_public (private_key, public_key);
/* create pow and sign */
- timestamp = GNUNET_TIME_absolute_get();
- GNUNET_SENSOR_crypto_pow_sign (msg, MSG_SIZE, ×tamp,
- public_key, private_key, MATCHING_BITS, &pow_cb, NULL);
+ timestamp = GNUNET_TIME_absolute_get ();
+ GNUNET_SENSOR_crypto_pow_sign (msg, MSG_SIZE, ×tamp, public_key,
+ private_key, MATCHING_BITS, &pow_cb, NULL);
+ GNUNET_TESTBED_operation_done (op);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34179 - gnunet/src/sensor,
gnunet <=