-fix FTBFS and other bugs

This commit is contained in:
Christian Grothoff 2023-03-04 18:19:18 +01:00
parent 4eb2c3e78c
commit 2ad12de668
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC

View File

@ -21,7 +21,7 @@
*/
#include "platform.h"
#include "taler_util.h"
#include <taler/taler_mhd_lib.h>
#include "taler_mhd_lib.h"
#include <gnunet/gnunet_db_lib.h>
#include <gcrypt.h>
@ -29,7 +29,7 @@
* How long is a TOTP code valid?
*/
#define TOTP_VALIDITY_PERIOD GNUNET_TIME_relative_multiply ( \
GNUNET_TIME_UNIT_SECONDS, 30)
GNUNET_TIME_UNIT_SECONDS, 30)
/**
* Range of time we allow (plus-minus).
@ -37,7 +37,6 @@
#define TIME_INTERVAL_RANGE 2
/**
* Compute TOTP code at current time with offset
* @a time_off for the @a key.
@ -131,26 +130,22 @@ base32decode (const char *val,
* 32 characters for decoding, using RFC 3548.
*/
static const char *decTable__ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
unsigned int wpos;
unsigned int rpos;
unsigned int bits;
unsigned int vbit;
unsigned char *udata;
unsigned char *udata = key;
unsigned int wpos = 0;
unsigned int rpos = 0;
unsigned int bits = 0;
unsigned int vbit = 0;
udata = val;
vbit = 0;
wpos = 0;
rpos = 0;
bits = 0;
while ((rpos < val_size) || (vbit >= 8))
{
if ((rpos < val_size) && (vbit < 8))
{
char c = val[rpos++];
if (c == '=') { // padding character
if (c == '=') // padding character
{
break;
}
const char *p = strchr(decTable__, toupper(c));
const char *p = strchr (decTable__, toupper (c));
if (! p)
{ // invalid character
return -1;
@ -178,29 +173,29 @@ executive_totp (void *h_key,
ret = NULL;
for (int i = -TIME_INTERVAL_RANGE; i<= TIME_INTERVAL_RANGE; i++)
{
code = compute_totp (ts,
i,
h_key,
h_key_len);
if (NULL == ret)
{
code = compute_totp (ts,
i,
h_key,
h_key_len);
if (NULL == ret)
{
GNUNET_asprintf (&ret,
"%llu",
(unsigned long long) code);
}
else
{
char *tmp;
GNUNET_asprintf (&tmp,
"%s\n%llu",
ret,
(unsigned long long) code);
GNUNET_free (ret);
ret = tmp;
}
GNUNET_asprintf (&ret,
"%llu",
(unsigned long long) code);
}
else
{
char *tmp;
GNUNET_asprintf (&tmp,
"%s\n%llu",
ret,
(unsigned long long) code);
GNUNET_free (ret);
ret = tmp;
}
}
return ret;
}
@ -263,13 +258,13 @@ TALER_build_pos_confirmation (const char *pos_key,
return ret;
case TALER_MCA_WITH_PRICE:
{
struct GNUNET_HashCode *hkey;
struct GNUNET_HashCode hkey;
struct TALER_AmountNBO ntotal;
TALER_amount_hton (&ntotal,
total);
GNUNET_assert (GNUNET_YES ==
GNUNET_CRYPTO_kdf (hkey,
GNUNET_CRYPTO_kdf (&hkey,
sizeof (hkey),
&ntotal,
sizeof (ntotal),
@ -278,7 +273,7 @@ TALER_build_pos_confirmation (const char *pos_key,
NULL,
0));
GNUNET_free (key);
ret = executive_totp (hkey,
ret = executive_totp (&hkey,
sizeof(hkey),
ts);
GNUNET_free (key);