96  *((
void **) 
dst) = NULL;
 
  111  len = PQgetlength (
result,
 
  120  *((
void **) 
dst) = idst;
 
 
  136    .dst = (
void *) (
dst),
 
 
  177                "Result does not have field %s\n",
 
  187  len = PQgetlength (
result,
 
  193                "Expected %u bytes for field `%s', got %u\n",
 
 
  269  len = PQgetlength (
result,
 
 
  364  len = PQgetlength (
result,
 
 
  459  len = PQgetlength (
result,
 
 
  553  len = PQgetlength (
result,
 
  556  if (
sizeof (uint8_t) != len)
 
  561  res = (
const uint8_t *) PQgetvalue (
result,
 
 
  626  if (
sizeof(int64_t) !=
 
 
  703  if (
sizeof(int64_t) !=
 
 
  743                                          &at->abs_value_us__);
 
 
  793  if (
sizeof(int64_t) !=
 
 
  912  uint16_t *udst = 
dst;
 
  934  if (
sizeof(uint16_t) !=
 
  945  *udst = ntohs (*
res);
 
 
  986  uint32_t *udst = 
dst;
 
 1008  if (
sizeof(uint32_t) !=
 
 1019  *udst = ntohl (*
res);
 
 
 1030    .dst = (
void *) u32,
 
 
 1060  uint64_t *udst = 
dst;
 
 1061  const uint64_t *
res;
 
 1065  fnum = PQfnumber (
result,
 
 1070                "Field %s missing in result\n",
 
 1086  if (
sizeof(uint64_t) !=
 
 1093                "Got length %u for field `%s'\n",
 
 
 1114    .dst = (
void *) u64,
 
 
 1144  int64_t *udst = 
dst;
 
 1149  fnum = PQfnumber (
result,
 
 1154                "Field %s missing in result\n",
 
 1170  if (
sizeof(int64_t) !=
 
 1177                "Got length %u for field `%s'\n",
 
 
 1198    .dst = (
void *) i64,
 
 
 1271  *((
void **) dst) = NULL;
 
 1273#define FAIL_IF(cond) \ 
 1277            GNUNET_break (! (cond)); \ 
 1282  col_num = PQfnumber (
result, fname);
 
 1285  data_sz = PQgetlength (
result, row, col_num);
 
 1288  if (
sizeof(header) > (
size_t) data_sz)
 
 1294    FAIL_IF (
sizeof(uint32_t) > (
size_t) data_sz);
 
 1302  FAIL_IF (
sizeof(header) > (
size_t) data_sz);
 
 1309    header.
ndim = ntohl (
h->ndim);
 
 1311    header.
oid = ntohl (
h->oid);
 
 1312    header.
dim = ntohl (
h->dim);
 
 1313    header.
lbound = ntohl (
h->lbound);
 
 1322  if (NULL != 
info->num)
 
 1326  if (
info->allow_nulls)
 
 1330    char *in = 
data + 
sizeof(header);
 
 1332#define HANDLE_ELEMENT(typ, conv, access) \ 
 1334          int32_t sz =  ntohl (*(int32_t *) in); \ 
 1336          in += sizeof(uint32_t); \ 
 1339            FAIL_IF (sz != sizeof(typ)); \ 
 1340            access (typ, conv); \ 
 1345            FAIL_IF (! info->allow_nulls); \ 
 1346            (*info->is_nulls)[i] = true; \ 
 1349          out += sizeof(typ); \ 
 1352#define HANDLE_ARRAY(typ, conv, access) \ 
 1354          if (NULL != dst_size) \ 
 1355          *dst_size = sizeof(typ) *(header.dim); \ 
 1356          out = GNUNET_new_array (header.dim, typ); \ 
 1357          *((void **) dst) = out; \ 
 1358          for (uint32_t i = 0; i < header.dim; i++) \ 
 1360            HANDLE_ELEMENT (typ, conv, access); \ 
 1364#define DEREF(typ, conv) \ 
 1365        *(typ *) out = conv (*(typ *) in) 
 1367#define ACCESS_ABS(typ, conv) \ 
 1368        ((typ *) out)->abs_value_us = conv (*(uint64_t *) in) 
 1370#define ACCESS_REL(typ, conv) \ 
 1371        ((typ *) out)->rel_value_us = conv (*(uint64_t *) in) 
 1373#define ACCESS_TSTMP(typ, conv) \ 
 1374        ((typ *) out)->abs_time.abs_value_us = conv (*(uint64_t *) in) 
 1406      if (0 == 
info->same_size)
 
 1411        size_t total_sz = 0;
 
 1419        uint32_t elem_sz[header.
dim];
 
 1426        uint32_t in_adv[header.
dim];
 
 1427        bool is_null[header.
dim];
 
 1429        memset (elem_sz, 0, 
sizeof(elem_sz));
 
 1430        memset (in_adv, 0, 
sizeof(in_adv));
 
 1431        memset (is_null, 0, 
sizeof(is_null));
 
 1434        for (uint32_t i = 0; i < header.
dim; i++)
 
 1436          int32_t sz = ntohl (*(int32_t *) in);
 
 1442            elem_sz[i] =   
info->same_size ? 
info->same_size : 0;
 
 1452                   (elem_sz[i] != 
info->same_size));
 
 1454          if (
info->allow_nulls)
 
 1455            (*
info->is_nulls)[i] = is_null[i];
 
 1457          if ((! is_string) &&
 
 1458              (! 
info->same_size))
 
 1459            (*
info->sizes)[i] = elem_sz[i];
 
 1461          total_sz += elem_sz[i];
 
 1463          total_sz += (is_string && ! is_null[i]) ? 1 : 0;
 
 1464          in += 
sizeof(int32_t);
 
 1467          FAIL_IF (total_sz < elem_sz[i]);
 
 1470        FAIL_IF ((! 
info->allow_nulls) && (0 == total_sz));
 
 1471        if (NULL != dst_size)
 
 1472          *dst_size = total_sz;
 
 1475        *((
void **) dst) = out;
 
 1476        in = 
data + 
sizeof(header); 
 
 1479        for (uint32_t i = 0; i < header.
dim; i++)
 
 1481          in += 
sizeof(uint32_t); 
 
 1487          out += (is_string && ! is_null[i]) ? 1 : 0;
 
 1507#undef HANDLE_ELEMENT 
 
 1521  info->allow_nulls = 
true;
 
 
 1541      (0 == 
info->same_size) &&
 
 1542      (NULL != 
info->sizes))
 
 1545  if (
info->allow_nulls)
 
 
 1575      .dst = (
void *) 
dst,
 
 
 1605      .dst = (
void *) 
dst,
 
 
 1635      .dst = (
void *) 
dst,
 
 
 1664     .dst = (
void *) 
dst,
 
 
 1692     .dst = (
void *) 
dst,
 
 
 1721      .dst = (
void *) 
dst,
 
 
 1751      .dst = (
void *) 
dst,
 
 
 1783      .dst = (
void *) 
dst,
 
 
 1815      .dst = (
void *) 
dst,
 
 
 1845      .dst = (
void *) 
dst,
 
 
 1884  fnum = PQfnumber (
result,
 
 1898  len = PQgetlength (
result,
 
 1904  if (len < 
sizeof (be))
 
 1915  tmp->
cipher = ntohl (be);
 
 
 1988    .dst = (
void *) 
pub,
 
 
 2026  fnum = PQfnumber (
result,
 
 2040  len = PQgetlength (
result,
 
 2046  if (len < 
sizeof (be))
 
 2057  tmp->
cipher = ntohl (be);
 
 
 2124    .dst = (
void *) priv,
 
 
 2162  fnum = PQfnumber (
result,
 
 2176  len = PQgetlength (
result,
 
 2182  if (len < 
sizeof (be))
 
 2190  if (0x01 != ntohl (be[1])) 
 
 2199  bs->
cipher = ntohl (be[0]);
 
 
 2261    .dst = (
void *) b_sig,
 
 
 2299  fnum = PQfnumber (
result,
 
 2313  len = PQgetlength (
result,
 
 2319  if (len < 
sizeof (be))
 
 2327  if (0x00 != ntohl (be[1])) 
 
 2336  ubs->
cipher = ntohl (be[0]);
 
 
 2398    .dst = (
void *) ub_sig,
 
 
static struct GNUNET_ARM_Handle * h
Connection with ARM.
 
static char * data
The data to insert into the dht.
 
struct GNUNET_CRYPTO_BlindablePrivateKey pk
Private key from command line option, or NULL.
 
static char * name
Name (label) of the records to list.
 
static struct GNUNET_SCHEDULER_Task * t
Main task.
 
static char * res
Currently read line or NULL on EOF.
 
static struct GNUNET_GNSRECORD_Data rd[50]
The record data under a single label.
 
static int result
Global testing status.
 
static struct GNUNET_CRYPTO_EddsaPublicKey pub
 
static struct GNUNET_FS_DirectoryBuilder * db
 
commonly used definitions; globals in this file are exempt from the rule that the module name ("commo...
 
helper functions for Postgres DB interactions
 
#define GNUNET_PQ_result_spec_auto_from_type(name, dst)
We expect a fixed-size result, with size determined by the type of * dst
 
enum GNUNET_GenericReturnValue GNUNET_PQ_get_oid_by_name(struct GNUNET_PQ_Context *db, const char *name, Oid *oid)
Returns the oid for a given datatype by name.
 
Functions related to time.
 
void GNUNET_CRYPTO_hash(const void *block, size_t size, struct GNUNET_HashCode *ret)
Compute hash of a given block.
 
#define GNUNET_log(kind,...)
 
void GNUNET_CRYPTO_rsa_signature_free(struct GNUNET_CRYPTO_RsaSignature *sig)
Free memory occupied by signature.
 
struct GNUNET_CRYPTO_RsaSignature * GNUNET_CRYPTO_rsa_signature_decode(const void *buf, size_t buf_size)
Decode the signature from the data-format back to the "normal", internal format.
 
struct GNUNET_CRYPTO_RsaPublicKey * GNUNET_CRYPTO_rsa_public_key_decode(const char *buf, size_t len)
Decode the public key from the data-format back to the "normal", internal format.
 
uint64_t GNUNET_ntohll(uint64_t n)
Convert unsigned 64-bit integer to host byte order.
 
struct GNUNET_CRYPTO_RsaPrivateKey * GNUNET_CRYPTO_rsa_private_key_decode(const void *buf, size_t buf_size)
Decode the private key from the data-format back to the "normal", internal format.
 
void GNUNET_CRYPTO_rsa_public_key_free(struct GNUNET_CRYPTO_RsaPublicKey *key)
Free memory occupied by the public key.
 
void GNUNET_CRYPTO_unblinded_sig_decref(struct GNUNET_CRYPTO_UnblindedSignature *ub_sig)
Decrement reference counter of a ub_sig, and free it if it reaches zero.
 
#define GNUNET_memcpy(dst, src, n)
Call memcpy() but check for n being 0 first.
 
void GNUNET_CRYPTO_blinded_sig_decref(struct GNUNET_CRYPTO_BlindedSignature *blind_sig)
Decrement reference counter of a blind_sig, and free it if it reaches zero.
 
GNUNET_GenericReturnValue
Named constants for return values.
 
void GNUNET_CRYPTO_blind_sign_pub_decref(struct GNUNET_CRYPTO_BlindSignPublicKey *bsign_pub)
Decrement reference counter of a bsign_pub, and free it if it reaches zero.
 
void GNUNET_CRYPTO_blind_sign_priv_decref(struct GNUNET_CRYPTO_BlindSignPrivateKey *bsign_priv)
Decrement reference counter of a bsign_priv, and free it if it reaches zero.
 
@ GNUNET_CRYPTO_BSA_INVALID
Invalid type of signature.
 
@ GNUNET_CRYPTO_BSA_CS
Clause Blind Schnorr signature.
 
@ GNUNET_CRYPTO_BSA_RSA
RSA blind signature.
 
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.
 
#define GNUNET_break(cond)
Use this for internal assertion violations that are not fatal (can be handled) but should not occur.
 
@ GNUNET_ERROR_TYPE_ERROR
 
#define GNUNET_strndup(a, length)
Wrapper around GNUNET_xstrndup_.
 
#define GNUNET_new(type)
Allocate a struct or union of the given type.
 
#define GNUNET_malloc(size)
Wrapper around malloc.
 
#define GNUNET_new_array(n, type)
Allocate a size n array with structs or unions of the given type.
 
#define GNUNET_free(ptr)
Wrapper around free.
 
#define GNUNET_TIME_UNIT_FOREVER_REL
Constant used to specify "forever".
 
#define GNUNET_TIME_UNIT_SECONDS
One second.
 
struct GNUNET_TIME_TimestampNBO GNUNET_TIME_timestamp_hton(struct GNUNET_TIME_Timestamp t)
Convert timestamp to network byte order.
 
#define GNUNET_TIME_UNIT_FOREVER_ABS
Constant used to specify "forever".
 
static unsigned int size
Size of the "table".
 
shared internal data structures of libgnunetpq
 
array_types
Internal types that are supported as array types.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_bool(struct GNUNET_PQ_Context *db, const char *name, size_t *num, bool **dst)
array of bool expected.
 
static void clean_blinded_sig(void *cls, void *rd)
Function called to clean up memory allocated by a GNUNET_PQ_ResultConverter.
 
static enum GNUNET_GenericReturnValue extract_string(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
static enum GNUNET_GenericReturnValue extract_varsize_blob(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
static enum GNUNET_GenericReturnValue extract_fixed_blob(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_uint32(const char *name, uint32_t *u32)
uint32_t expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_variable_size(struct GNUNET_PQ_Context *db, const char *name, size_t *num, size_t **sizes, void **dst)
Array of variable-size result expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_timestamp_nbo(const char *name, struct GNUNET_TIME_TimestampNBO *at)
Timestamp expected.
 
static enum GNUNET_GenericReturnValue extract_uint16(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_fixed_size(struct GNUNET_PQ_Context *db, const char *name, size_t size, size_t *num, void **dst)
Array of fixed-size result expected.
 
static enum GNUNET_GenericReturnValue extract_int64(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_blinded_sig(const char *name, struct GNUNET_CRYPTO_BlindedSignature **b_sig)
Blinded signature expected.
 
static enum GNUNET_GenericReturnValue extract_blind_sign_priv(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
static enum GNUNET_GenericReturnValue extract_timestamp_nbo(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
static enum GNUNET_GenericReturnValue extract_unblinded_sig(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_timestamp(struct GNUNET_PQ_Context *db, const char *name, size_t *num, struct GNUNET_TIME_Timestamp **dst)
array of relative time expected.
 
static enum GNUNET_GenericReturnValue extract_abs_time(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
static void clean_rsa_public_key(void *cls, void *rd)
Function called to clean up memory allocated by a GNUNET_PQ_ResultConverter.
 
static void clean_varsize_blob(void *cls, void *rd)
Function called to clean up memory allocated by a GNUNET_PQ_ResultConverter.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_fixed_size(const char *name, void *dst, size_t dst_size)
Fixed-size result expected.
 
static enum GNUNET_GenericReturnValue extract_bool(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_bool(const char *name, bool *dst)
boolean expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_absolute_time_nbo(const char *name, struct GNUNET_TIME_AbsoluteNBO *at)
Absolute time expected.
 
static enum GNUNET_GenericReturnValue extract_uint32(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_uint64(const char *name, uint64_t *u64)
uint64_t expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_string(const char *name, char **dst)
0-terminated string expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_blind_sign_priv(const char *name, struct GNUNET_CRYPTO_BlindSignPrivateKey **priv)
Blind sign private key expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_blind_sign_pub(const char *name, struct GNUNET_CRYPTO_BlindSignPublicKey **pub)
Blind sign public key expected.
 
#define ACCESS_ABS(typ, conv)
 
#define ACCESS_REL(typ, conv)
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_allow_nulls(struct GNUNET_PQ_ResultSpec rs, bool **is_nulls)
Allow NULL values in an array to be found in the database for the given value.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_allow_null(struct GNUNET_PQ_ResultSpec rs, bool *is_null)
Allow NULL value to be found in the database for the given value.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_uint16(struct GNUNET_PQ_Context *db, const char *name, size_t *num, uint16_t **dst)
array of uint16_t expected.
 
#define HANDLE_ARRAY(typ, conv, access)
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_absolute_time(const char *name, struct GNUNET_TIME_Absolute *at)
Absolute time expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_int64(const char *name, int64_t *i64)
int64_t expected.
 
static void clean_string(void *cls, void *rd)
Function called to clean up memory allocated by a GNUNET_PQ_ResultConverter.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_uint16(const char *name, uint16_t *u16)
uint16_t expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_string(struct GNUNET_PQ_Context *db, const char *name, size_t *num, char **dst)
Array of 0-terminated strings expected.
 
static enum GNUNET_GenericReturnValue extract_uint64(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
static enum GNUNET_GenericReturnValue extract_rel_time(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_relative_time(const char *name, struct GNUNET_TIME_Relative *rt)
Relative time expected.
 
static enum GNUNET_GenericReturnValue extract_rsa_public_key(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_timestamp(const char *name, struct GNUNET_TIME_Timestamp *at)
Timestamp expected.
 
static enum GNUNET_GenericReturnValue extract_blinded_sig(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_variable_size(const char *name, void **dst, size_t *sptr)
Variable-size result expected.
 
static enum GNUNET_GenericReturnValue extract_array_generic(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result as array of a specific type from row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_rsa_public_key(const char *name, struct GNUNET_CRYPTO_RsaPublicKey **rsa)
RSA public key expected.
 
static void clean_blind_sign_pub(void *cls, void *rd)
Function called to clean up memory allocated by a GNUNET_PQ_ResultConverter.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_uint64(struct GNUNET_PQ_Context *db, const char *name, size_t *num, uint64_t **dst)
array of uint64_t expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_abs_time(struct GNUNET_PQ_Context *db, const char *name, size_t *num, struct GNUNET_TIME_Absolute **dst)
array of absolute time expected.
 
static void clean_unblinded_sig(void *cls, void *rd)
Function called to clean up memory allocated by a GNUNET_PQ_ResultConverter.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_rel_time(struct GNUNET_PQ_Context *db, const char *name, size_t *num, struct GNUNET_TIME_Relative **dst)
array of relative time expected.
 
static enum GNUNET_GenericReturnValue extract_rsa_signature(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_rsa_signature(const char *name, struct GNUNET_CRYPTO_RsaSignature **sig)
RSA signature expected.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_array_uint32(struct GNUNET_PQ_Context *db, const char *name, size_t *num, uint32_t **dst)
array of uint32_t expected.
 
#define ACCESS_TSTMP(typ, conv)
 
static enum GNUNET_GenericReturnValue extract_blind_sign_pub(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
struct GNUNET_PQ_ResultSpec GNUNET_PQ_result_spec_unblinded_sig(const char *name, struct GNUNET_CRYPTO_UnblindedSignature **ub_sig)
Unblinded signature expected.
 
static void clean_blind_sign_priv(void *cls, void *rd)
Function called to clean up memory allocated by a GNUNET_PQ_ResultConverter.
 
static enum GNUNET_GenericReturnValue extract_timestamp(void *cls, PGresult *result, int row, const char *fname, size_t *dst_size, void *dst)
Extract data from a Postgres database result at row row.
 
static void array_cleanup(void *cls, void *rd)
Cleanup of the data and closure of an array spec.
 
static void clean_rsa_signature(void *cls, void *rd)
Function called to clean up memory allocated by a GNUNET_PQ_ResultConverter.
 
Type of private signing keys for blind signing.
 
struct GNUNET_CRYPTO_CsPrivateKey cs_private_key
If we use GNUNET_CRYPTO_BSA_CS in cipher.
 
unsigned int rc
Reference counter.
 
struct GNUNET_CRYPTO_RsaPrivateKey * rsa_private_key
If we use GNUNET_CRYPTO_BSA_RSA in cipher.
 
enum GNUNET_CRYPTO_BlindSignatureAlgorithm cipher
Type of the public key.
 
union GNUNET_CRYPTO_BlindSignPrivateKey::@21 details
Details, depending on cipher.
 
Type of public signing keys for blind signatures.
 
union GNUNET_CRYPTO_BlindSignPublicKey::@20 details
Details, depending on cipher.
 
unsigned int rc
Reference counter.
 
struct GNUNET_HashCode pub_key_hash
Hash of the public key.
 
struct GNUNET_CRYPTO_CsPublicKey cs_public_key
If we use GNUNET_CRYPTO_BSA_CS in cipher.
 
enum GNUNET_CRYPTO_BlindSignatureAlgorithm cipher
Type of the public key.
 
struct GNUNET_CRYPTO_RsaPublicKey * rsa_public_key
If we use GNUNET_CRYPTO_BSA_RSA in cipher.
 
Type for blinded signatures.
 
unsigned int rc
Reference counter.
 
struct GNUNET_CRYPTO_CsBlindSignature blinded_cs_answer
If we use GNUNET_CRYPTO_BSA_CS in cipher.
 
enum GNUNET_CRYPTO_BlindSignatureAlgorithm cipher
Type of the signature.
 
struct GNUNET_CRYPTO_RsaSignature * blinded_rsa_signature
If we use GNUNET_CRYPTO_BSA_RSA in cipher.
 
union GNUNET_CRYPTO_BlindedSignature::@19 details
Details, depending on cipher.
 
The public information of an RSA key pair.
 
Type of (unblinded) signatures.
 
union GNUNET_CRYPTO_UnblindedSignature::@18 details
Details, depending on cipher.
 
struct GNUNET_CRYPTO_RsaSignature * rsa_signature
If we use GNUNET_CRYPTO_BSA_RSA in cipher.
 
unsigned int rc
Reference counter.
 
struct GNUNET_CRYPTO_CsSignature cs_signature
If we use GNUNET_CRYPTO_BSA_CS in cipher.
 
enum GNUNET_CRYPTO_BlindSignatureAlgorithm cipher
Type of the signature.
 
Handle to Postgres database.
 
Description of a DB result cell.
 
const char * fname
Field name of the desired result.
 
bool * is_null
Points to a location where we should store "true" if the result found is NULL, and otherwise "false".
 
void * dst
Destination for the data.
 
bool is_nullable
True if NULL is allowed for a value in the database.
 
void * cls
Closure for conv and cleaner.
 
GNUNET_PQ_ResultConverter conv
What is the format of the result?
 
size_t dst_size
Allowed size for the data, 0 for variable-size (in this case, the type of dst is a void ** and we nee...
 
Time for absolute time used by GNUnet, in microseconds and in network byte order.
 
Time for absolute times used by GNUnet, in microseconds.
 
uint64_t abs_value_us
The actual value.
 
Time for relative time used by GNUnet, in microseconds.
 
uint64_t rel_value_us
The actual value.
 
Time for timestamps used by GNUnet, in seconds and in network byte order.
 
Time for timestamps used by GNUnet, in microseconds rounded to seconds.
 
struct GNUNET_TIME_Absolute abs_time
The actual value.
 
Closure for the array result specifications.