- /* zone hash */
- GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey), &s_zone);
- GNUNET_CRYPTO_short_hash (s_name, strlen (s_name) + 1, &s_zone_value);
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Using PKEY `%s' \n",
- GNUNET_NAMESTORE_short_h2s (&s_zone_value));
-
- struct GNUNET_GNSRECORD_Data rd;
- rd.expiration_time = GNUNET_TIME_absolute_get().abs_value_us;
- rd.record_type = GNUNET_GNSRECORD_TYPE_PKEY;
- rd.data_size = sizeof (struct GNUNET_CRYPTO_ShortHashCode);
- rd.data = GNUNET_malloc(sizeof (struct GNUNET_CRYPTO_ShortHashCode));
- rd.flags = 0;
- GNUNET_memcpy ((char *) rd.data, &s_zone_value, sizeof (struct GNUNET_CRYPTO_ShortHashCode));
- nsh = GNUNET_NAMESTORE_connect (cfg);
- GNUNET_break (NULL != nsh);
-
- expire = GNUNET_TIME_absolute_get ();
- et.abs_value_us = rd.expiration_time;
- s_signature = GNUNET_NAMESTORE_create_signature(privkey, et, s_name, &rd, 1);
- GNUNET_NAMESTORE_record_put(nsh, &pubkey, s_name, expire, 1, &rd, s_signature, put_cont, NULL);
-
- GNUNET_free ((void *) rd.data);
+ GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_WEAK,
+ &s_zone_value,
+ sizeof (s_zone_value));
+ {
+ struct GNUNET_GNSRECORD_Data rd;
+
+ rd.expiration_time = GNUNET_TIME_absolute_get().abs_value_us;
+ rd.record_type = GNUNET_GNSRECORD_TYPE_PKEY;
+ rd.data_size = sizeof (s_zone_value);
+ rd.data = &s_zone_value;
+ rd.flags = 0;
+
+ nsh = GNUNET_NAMESTORE_connect (cfg);
+ GNUNET_break (NULL != nsh);
+ GNUNET_NAMESTORE_records_store (nsh,
+ privkey,
+ s_name,
+ 1,
+ &rd,
+ &put_cont,
+ NULL);
+ }