- GNUNET_CRYPTO_rsa_key_get_public(privkey, &pubkey);
-
- /* zone hash */
- GNUNET_CRYPTO_short_hash (&pubkey, sizeof (struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded), &s_zone);
- GNUNET_CRYPTO_short_hash (s_name, strlen (s_name) + 1, &s_zone_value);
-
- struct GNUNET_NAMESTORE_RecordData rd;
- rd.expiration = GNUNET_TIME_absolute_get();
- rd.record_type = GNUNET_NAMESTORE_TYPE_PKEY;
- rd.data_size = sizeof (struct GNUNET_CRYPTO_ShortHashCode);
- rd.data = GNUNET_malloc(sizeof (struct GNUNET_CRYPTO_ShortHashCode));
- memcpy ((char *) rd.data, &s_zone_value, sizeof (struct GNUNET_CRYPTO_ShortHashCode));
-
- start_arm (cfgfile);
- GNUNET_assert (arm != NULL);
-
- nsh = GNUNET_NAMESTORE_connect (cfg);
- GNUNET_break (NULL != nsh);
-
- expire = GNUNET_TIME_absolute_get ();
- s_signature = GNUNET_NAMESTORE_create_signature(privkey, rd.expiration, s_name, &rd, 1);
- GNUNET_NAMESTORE_record_put(nsh, &pubkey, s_name, expire, 1, &rd, s_signature, put_cont, NULL);