34#define LOG(kind, ...) GNUNET_log_from (kind, "util-crypto-kdf", __VA_ARGS__)
40 const void *xts,
size_t xts_len,
41 const void *skm,
size_t skm_len,
49 nbits = gcry_mpi_get_nbits (n);
55 size_t bsize = (nbits - 1) / 8 + 1;
57 uint16_t ctr_nbo = htons (ctr);
67 rc = gcry_mpi_scan (r,
69 (
const unsigned char *) buf,
74 gcry_mpi_clear_highbit (*r,
77 gcry_mpi_test_bit (*r,
81 if (0 > gcry_mpi_cmp (*r, n))
83 gcry_mpi_release (*r);
static struct GNUNET_FS_Handle * ctx
static unsigned int bsize
#define GNUNET_CRYPTO_hkdf_gnunet(result, out_len, xts, xts_len, skm, skm_len,...)
A peculiar HKDF instantiation that tried to mimic Truncated NMAC.
void GNUNET_CRYPTO_kdf_mod_mpi(gcry_mpi_t *r, gcry_mpi_t n, const void *xts, size_t xts_len, const void *skm, size_t skm_len, const char *ctx)
Deterministically generate a pseudo-random number uniformly from the integers modulo a libgcrypt mpi.
#define GNUNET_CRYPTO_kdf_arg_string(d)
#define GNUNET_CRYPTO_kdf_arg_auto(d)
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.