aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/crypto_confirmation.c71
1 files changed, 33 insertions, 38 deletions
diff --git a/src/util/crypto_confirmation.c b/src/util/crypto_confirmation.c
index 6c6b7fb41..6e5881e18 100644
--- a/src/util/crypto_confirmation.c
+++ b/src/util/crypto_confirmation.c
@@ -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 (&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 (&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);