GNUnet  0.11.x
Macros | Functions
gnsrecord_misc.c File Reference

MISC functions related to GNS records. More...

#include "platform.h"
#include "gnunet_util_lib.h"
#include "gnunet_constants.h"
#include "gnunet_signatures.h"
#include "gnunet_arm_service.h"
#include "gnunet_gnsrecord_lib.h"
#include "gnunet_dnsparser_lib.h"
#include "gnunet_tun_lib.h"
Include dependency graph for gnsrecord_misc.c:

Go to the source code of this file.

Macros

#define LOG(kind, ...)   GNUNET_log_from (kind, "gnsrecord", __VA_ARGS__)
 

Functions

char * GNUNET_GNSRECORD_string_to_lowercase (const char *src)
 Convert a UTF-8 string to UTF-8 lowercase. More...
 
const char * GNUNET_GNSRECORD_z2s (const struct GNUNET_IDENTITY_PublicKey *z)
 Convert a zone key to a string (for printing debug messages). More...
 
int GNUNET_GNSRECORD_records_cmp (const struct GNUNET_GNSRECORD_Data *a, const struct GNUNET_GNSRECORD_Data *b)
 Compares if two records are equal (ignoring flags such as authority, private and pending, but not relative vs. More...
 
struct GNUNET_TIME_Absolute GNUNET_GNSRECORD_record_get_expiration_time (unsigned int rd_count, const struct GNUNET_GNSRECORD_Data *rd)
 Returns the expiration time of the given block of records. More...
 
int GNUNET_GNSRECORD_is_expired (const struct GNUNET_GNSRECORD_Data *rd)
 Test if a given record is expired. More...
 
const char * GNUNET_GNSRECORD_pkey_to_zkey (const struct GNUNET_IDENTITY_PublicKey *pkey)
 Convert public key to the respective absolute domain name in the ".zkey" pTLD. More...
 
int GNUNET_GNSRECORD_zkey_to_pkey (const char *zkey, struct GNUNET_IDENTITY_PublicKey *pkey)
 Convert an absolute domain name to the respective public key. More...
 
enum GNUNET_GenericReturnValue GNUNET_GNSRECORD_identity_from_data (const char *data, size_t data_size, uint32_t type, struct GNUNET_IDENTITY_PublicKey *key)
 Build a #GNUNET_GNSRECORD_PublicKey from zone delegation resource record data. More...
 
enum GNUNET_GenericReturnValue GNUNET_GNSRECORD_data_from_identity (const struct GNUNET_IDENTITY_PublicKey *key, char **data, size_t *data_size, uint32_t *type)
 Create record data and size from an identity key. More...
 
enum GNUNET_GenericReturnValue GNUNET_GNSRECORD_is_zonekey_type (uint32_t type)
 Check if this type is one of the supported GNS zone types. More...
 
size_t GNUNET_GNSRECORD_block_get_size (const struct GNUNET_GNSRECORD_Block *block)
 Returns the length of this block in bytes. More...
 
struct GNUNET_TIME_Absolute GNUNET_GNSRECORD_block_get_expiration (const struct GNUNET_GNSRECORD_Block *block)
 Returns the expiration of a block. More...
 
enum GNUNET_GenericReturnValue GNUNET_GNSRECORD_query_from_block (const struct GNUNET_GNSRECORD_Block *block, struct GNUNET_HashCode *query)
 Builds the query hash from a block. More...
 
enum GNUNET_GenericReturnValue GNUNET_GNSRECORD_record_to_identity_key (const struct GNUNET_GNSRECORD_Data *rd, struct GNUNET_IDENTITY_PublicKey *key)
 

Detailed Description

MISC functions related to GNS records.

Author
Martin Schanzenbach
Matthias Wachs
Christian Grothoff

Definition in file gnsrecord_misc.c.

Macro Definition Documentation

◆ LOG

#define LOG (   kind,
  ... 
)    GNUNET_log_from (kind, "gnsrecord", __VA_ARGS__)

Function Documentation

◆ GNUNET_GNSRECORD_record_to_identity_key()

enum GNUNET_GenericReturnValue GNUNET_GNSRECORD_record_to_identity_key ( const struct GNUNET_GNSRECORD_Data rd,
struct GNUNET_IDENTITY_PublicKey key 
)

Definition at line 398 of file gnsrecord_misc.c.

References GNUNET_GNSRECORD_Data::data, GNUNET_IDENTITY_PublicKey::ecdsa_key, GNUNET_IDENTITY_PublicKey::eddsa_key, GNUNET_ERROR_TYPE_DEBUG, GNUNET_GNSRECORD_TYPE_EDKEY, GNUNET_GNSRECORD_TYPE_PKEY, GNUNET_log, GNUNET_OK, GNUNET_SYSERR, GNUNET_GNSRECORD_Data::record_type, and GNUNET_IDENTITY_PublicKey::type.

400 {
402  "Got record of type %u\n",
403  rd->record_type);
404  switch (rd->record_type)
405  {
407  key->type = htonl (rd->record_type);
408  memcpy (&key->ecdsa_key, rd->data, sizeof (key->ecdsa_key));
409  return GNUNET_OK;
411  key->type = htonl (rd->record_type);
412  memcpy (&key->eddsa_key, rd->data, sizeof (key->eddsa_key));
413  return GNUNET_OK;
414  default:
415  return GNUNET_SYSERR;
416  }
417  return GNUNET_SYSERR;
418 
419 
420 }
#define GNUNET_GNSRECORD_TYPE_PKEY
WARNING: This header is generated! In order to add GNS record types, you must register them in GANA...
uint32_t type
Type of public key.
struct GNUNET_CRYPTO_EddsaPublicKey eddsa_key
AN EdDSA identtiy key.
const void * data
Binary value stored in the DNS record.
struct GNUNET_CRYPTO_EcdsaPublicKey ecdsa_key
An ECDSA identity key.
uint32_t record_type
Type of the GNS/DNS record.
#define GNUNET_log(kind,...)
#define GNUNET_GNSRECORD_TYPE_EDKEY
Record type for EDKEY zone delegations.