fix remaining libtalerutil FTBFS issues
This commit is contained in:
parent
42bdb5aa6e
commit
17cf64dfb6
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of TALER
|
This file is part of TALER
|
||||||
Copyright (C) 2020 Taler Systems SA
|
Copyright (C) 2020, 2021 Taler Systems SA
|
||||||
|
|
||||||
TALER is free software; you can redistribute it and/or modify it under the
|
TALER is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU General Public License as published by the Free Software
|
terms of the GNU General Public License as published by the Free Software
|
||||||
@ -117,7 +117,7 @@ TALER_exchange_offline_auditor_del_verify (
|
|||||||
|
|
||||||
void
|
void
|
||||||
TALER_exchange_offline_denomination_revoke_sign (
|
TALER_exchange_offline_denomination_revoke_sign (
|
||||||
const struct GNUNET_HashCode *h_denom_pub,
|
const struct TALER_DenominationHash *h_denom_pub,
|
||||||
const struct TALER_MasterPrivateKeyP *master_priv,
|
const struct TALER_MasterPrivateKeyP *master_priv,
|
||||||
struct TALER_MasterSignatureP *master_sig)
|
struct TALER_MasterSignatureP *master_sig)
|
||||||
{
|
{
|
||||||
@ -135,7 +135,7 @@ TALER_exchange_offline_denomination_revoke_sign (
|
|||||||
|
|
||||||
enum GNUNET_GenericReturnValue
|
enum GNUNET_GenericReturnValue
|
||||||
TALER_exchange_offline_denomination_revoke_verify (
|
TALER_exchange_offline_denomination_revoke_verify (
|
||||||
const struct GNUNET_HashCode *h_denom_pub,
|
const struct TALER_DenominationHash *h_denom_pub,
|
||||||
const struct TALER_MasterPublicKeyP *master_pub,
|
const struct TALER_MasterPublicKeyP *master_pub,
|
||||||
const struct TALER_MasterSignatureP *master_sig)
|
const struct TALER_MasterSignatureP *master_sig)
|
||||||
{
|
{
|
||||||
@ -249,7 +249,7 @@ TALER_exchange_offline_signkey_validity_verify (
|
|||||||
|
|
||||||
void
|
void
|
||||||
TALER_exchange_offline_denom_validity_sign (
|
TALER_exchange_offline_denom_validity_sign (
|
||||||
const struct GNUNET_HashCode *h_denom_pub,
|
const struct TALER_DenominationHash *h_denom_pub,
|
||||||
struct GNUNET_TIME_Absolute stamp_start,
|
struct GNUNET_TIME_Absolute stamp_start,
|
||||||
struct GNUNET_TIME_Absolute stamp_expire_withdraw,
|
struct GNUNET_TIME_Absolute stamp_expire_withdraw,
|
||||||
struct GNUNET_TIME_Absolute stamp_expire_deposit,
|
struct GNUNET_TIME_Absolute stamp_expire_deposit,
|
||||||
@ -294,7 +294,7 @@ TALER_exchange_offline_denom_validity_sign (
|
|||||||
|
|
||||||
enum GNUNET_GenericReturnValue
|
enum GNUNET_GenericReturnValue
|
||||||
TALER_exchange_offline_denom_validity_verify (
|
TALER_exchange_offline_denom_validity_verify (
|
||||||
const struct GNUNET_HashCode *h_denom_pub,
|
const struct TALER_DenominationHash *h_denom_pub,
|
||||||
struct GNUNET_TIME_Absolute stamp_start,
|
struct GNUNET_TIME_Absolute stamp_start,
|
||||||
struct GNUNET_TIME_Absolute stamp_expire_withdraw,
|
struct GNUNET_TIME_Absolute stamp_expire_withdraw,
|
||||||
struct GNUNET_TIME_Absolute stamp_expire_deposit,
|
struct GNUNET_TIME_Absolute stamp_expire_deposit,
|
||||||
@ -354,7 +354,7 @@ TALER_exchange_offline_wire_add_sign (
|
|||||||
GNUNET_assert (GNUNET_OK ==
|
GNUNET_assert (GNUNET_OK ==
|
||||||
GNUNET_TIME_round_abs (&now));
|
GNUNET_TIME_round_abs (&now));
|
||||||
TALER_exchange_wire_signature_hash (payto_uri,
|
TALER_exchange_wire_signature_hash (payto_uri,
|
||||||
&kv.h_wire);
|
&kv.h_payto);
|
||||||
GNUNET_CRYPTO_eddsa_sign (&master_priv->eddsa_priv,
|
GNUNET_CRYPTO_eddsa_sign (&master_priv->eddsa_priv,
|
||||||
&kv,
|
&kv,
|
||||||
&master_sig->eddsa_signature);
|
&master_sig->eddsa_signature);
|
||||||
@ -375,7 +375,7 @@ TALER_exchange_offline_wire_add_verify (
|
|||||||
};
|
};
|
||||||
|
|
||||||
TALER_exchange_wire_signature_hash (payto_uri,
|
TALER_exchange_wire_signature_hash (payto_uri,
|
||||||
&aw.h_wire);
|
&aw.h_payto);
|
||||||
return
|
return
|
||||||
GNUNET_CRYPTO_eddsa_verify (
|
GNUNET_CRYPTO_eddsa_verify (
|
||||||
TALER_SIGNATURE_MASTER_ADD_WIRE,
|
TALER_SIGNATURE_MASTER_ADD_WIRE,
|
||||||
@ -401,7 +401,7 @@ TALER_exchange_offline_wire_del_sign (
|
|||||||
GNUNET_assert (GNUNET_OK ==
|
GNUNET_assert (GNUNET_OK ==
|
||||||
GNUNET_TIME_round_abs (&now));
|
GNUNET_TIME_round_abs (&now));
|
||||||
TALER_exchange_wire_signature_hash (payto_uri,
|
TALER_exchange_wire_signature_hash (payto_uri,
|
||||||
&kv.h_wire);
|
&kv.h_payto);
|
||||||
GNUNET_CRYPTO_eddsa_sign (&master_priv->eddsa_priv,
|
GNUNET_CRYPTO_eddsa_sign (&master_priv->eddsa_priv,
|
||||||
&kv,
|
&kv,
|
||||||
&master_sig->eddsa_signature);
|
&master_sig->eddsa_signature);
|
||||||
@ -423,7 +423,7 @@ TALER_exchange_offline_wire_del_verify (
|
|||||||
};
|
};
|
||||||
|
|
||||||
TALER_exchange_wire_signature_hash (payto_uri,
|
TALER_exchange_wire_signature_hash (payto_uri,
|
||||||
&aw.h_wire);
|
&aw.h_payto);
|
||||||
return GNUNET_CRYPTO_eddsa_verify (
|
return GNUNET_CRYPTO_eddsa_verify (
|
||||||
TALER_SIGNATURE_MASTER_DEL_WIRE,
|
TALER_SIGNATURE_MASTER_DEL_WIRE,
|
||||||
&aw,
|
&aw,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of TALER
|
This file is part of TALER
|
||||||
Copyright (C) 2020 Taler Systems SA
|
Copyright (C) 2020, 2021 Taler Systems SA
|
||||||
|
|
||||||
TALER is free software; you can redistribute it and/or modify it under the
|
TALER is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU General Public License as published by the Free Software
|
terms of the GNU General Public License as published by the Free Software
|
||||||
@ -71,7 +71,7 @@ TALER_exchange_secmod_eddsa_verify (
|
|||||||
|
|
||||||
void
|
void
|
||||||
TALER_exchange_secmod_denom_sign (
|
TALER_exchange_secmod_denom_sign (
|
||||||
const struct GNUNET_HashCode *h_denom_pub,
|
const struct TALER_DenominationHash *h_denom_pub,
|
||||||
const char *section_name,
|
const char *section_name,
|
||||||
struct GNUNET_TIME_Absolute start_sign,
|
struct GNUNET_TIME_Absolute start_sign,
|
||||||
struct GNUNET_TIME_Relative duration,
|
struct GNUNET_TIME_Relative duration,
|
||||||
@ -98,7 +98,7 @@ TALER_exchange_secmod_denom_sign (
|
|||||||
|
|
||||||
enum GNUNET_GenericReturnValue
|
enum GNUNET_GenericReturnValue
|
||||||
TALER_exchange_secmod_denom_verify (
|
TALER_exchange_secmod_denom_verify (
|
||||||
const struct GNUNET_HashCode *h_denom_pub,
|
const struct TALER_DenominationHash *h_denom_pub,
|
||||||
const char *section_name,
|
const char *section_name,
|
||||||
struct GNUNET_TIME_Absolute start_sign,
|
struct GNUNET_TIME_Absolute start_sign,
|
||||||
struct GNUNET_TIME_Relative duration,
|
struct GNUNET_TIME_Relative duration,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of TALER
|
This file is part of TALER
|
||||||
Copyright (C) 2014-2020 Taler Systems SA
|
Copyright (C) 2014-2021 Taler Systems SA
|
||||||
|
|
||||||
TALER is free software; you can redistribute it and/or modify it under the
|
TALER is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU General Public License as published by the Free Software
|
terms of the GNU General Public License as published by the Free Software
|
||||||
@ -88,7 +88,7 @@ struct DenominationKey
|
|||||||
/**
|
/**
|
||||||
* Hash of this denomination's public key.
|
* Hash of this denomination's public key.
|
||||||
*/
|
*/
|
||||||
struct GNUNET_HashCode h_denom_pub;
|
struct TALER_DenominationHash h_denom_pub;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Time at which this key is supposed to become valid.
|
* Time at which this key is supposed to become valid.
|
||||||
@ -425,7 +425,8 @@ sign_worker (void *cls)
|
|||||||
work_counter--;
|
work_counter--;
|
||||||
GNUNET_assert (0 == pthread_mutex_unlock (&work_lock));
|
GNUNET_assert (0 == pthread_mutex_unlock (&work_lock));
|
||||||
wi->rsa_signature
|
wi->rsa_signature
|
||||||
= GNUNET_CRYPTO_rsa_sign_blinded (wi->dk->denom_priv.rsa_private_key,
|
= GNUNET_CRYPTO_rsa_sign_blinded (
|
||||||
|
wi->dk->denom_priv.details.rsa_private_key,
|
||||||
wi->blinded_msg,
|
wi->blinded_msg,
|
||||||
wi->blinded_msg_size);
|
wi->blinded_msg_size);
|
||||||
/* put completed work into done queue */
|
/* put completed work into done queue */
|
||||||
@ -494,8 +495,8 @@ static void
|
|||||||
free_dk (struct DenominationKey *dk)
|
free_dk (struct DenominationKey *dk)
|
||||||
{
|
{
|
||||||
GNUNET_free (dk->filename);
|
GNUNET_free (dk->filename);
|
||||||
GNUNET_CRYPTO_rsa_private_key_free (dk->denom_priv.rsa_private_key);
|
GNUNET_CRYPTO_rsa_private_key_free (dk->denom_priv.details.rsa_private_key);
|
||||||
GNUNET_CRYPTO_rsa_public_key_free (dk->denom_pub.rsa_public_key);
|
GNUNET_CRYPTO_rsa_public_key_free (dk->denom_pub.details.rsa_public_key);
|
||||||
GNUNET_free (dk);
|
GNUNET_free (dk);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -661,7 +662,7 @@ handle_sign_request (const struct sockaddr_un *addr,
|
|||||||
size_t blinded_msg_size = ntohs (sr->header.size) - sizeof (*sr);
|
size_t blinded_msg_size = ntohs (sr->header.size) - sizeof (*sr);
|
||||||
|
|
||||||
dk = GNUNET_CONTAINER_multihashmap_get (keys,
|
dk = GNUNET_CONTAINER_multihashmap_get (keys,
|
||||||
&sr->h_denom_pub);
|
&sr->h_denom_pub.hash);
|
||||||
if (NULL == dk)
|
if (NULL == dk)
|
||||||
{
|
{
|
||||||
struct TALER_CRYPTO_SignFailure sf = {
|
struct TALER_CRYPTO_SignFailure sf = {
|
||||||
@ -672,7 +673,7 @@ handle_sign_request (const struct sockaddr_un *addr,
|
|||||||
|
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Signing request failed, denomination key %s unknown\n",
|
"Signing request failed, denomination key %s unknown\n",
|
||||||
GNUNET_h2s (&sr->h_denom_pub));
|
GNUNET_h2s (&sr->h_denom_pub.hash));
|
||||||
(void) transmit (addr,
|
(void) transmit (addr,
|
||||||
addr_size,
|
addr_size,
|
||||||
&sf.header);
|
&sf.header);
|
||||||
@ -690,7 +691,7 @@ handle_sign_request (const struct sockaddr_un *addr,
|
|||||||
|
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Signing request failed, denomination key %s is not yet valid\n",
|
"Signing request failed, denomination key %s is not yet valid\n",
|
||||||
GNUNET_h2s (&sr->h_denom_pub));
|
GNUNET_h2s (&sr->h_denom_pub.hash));
|
||||||
(void) transmit (addr,
|
(void) transmit (addr,
|
||||||
addr_size,
|
addr_size,
|
||||||
&sf.header);
|
&sf.header);
|
||||||
@ -700,7 +701,7 @@ handle_sign_request (const struct sockaddr_un *addr,
|
|||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Received request to sign over %u bytes with key %s\n",
|
"Received request to sign over %u bytes with key %s\n",
|
||||||
(unsigned int) blinded_msg_size,
|
(unsigned int) blinded_msg_size,
|
||||||
GNUNET_h2s (&sr->h_denom_pub));
|
GNUNET_h2s (&sr->h_denom_pub.hash));
|
||||||
wi = GNUNET_new (struct WorkItem);
|
wi = GNUNET_new (struct WorkItem);
|
||||||
wi->addr = *addr;
|
wi->addr = *addr;
|
||||||
wi->addr_size = addr_size;
|
wi->addr_size = addr_size;
|
||||||
@ -726,7 +727,7 @@ handle_sign_request (const struct sockaddr_un *addr,
|
|||||||
* @param dk the key to notify @a client about
|
* @param dk the key to notify @a client about
|
||||||
* @return #GNUNET_OK on success
|
* @return #GNUNET_OK on success
|
||||||
*/
|
*/
|
||||||
static int
|
static enum GNUNET_GenericReturnValue
|
||||||
notify_client_dk_add (struct Client *client,
|
notify_client_dk_add (struct Client *client,
|
||||||
const struct DenominationKey *dk)
|
const struct DenominationKey *dk)
|
||||||
{
|
{
|
||||||
@ -738,7 +739,8 @@ notify_client_dk_add (struct Client *client,
|
|||||||
void *p;
|
void *p;
|
||||||
size_t tlen;
|
size_t tlen;
|
||||||
|
|
||||||
buf_len = GNUNET_CRYPTO_rsa_public_key_encode (dk->denom_pub.rsa_public_key,
|
buf_len = GNUNET_CRYPTO_rsa_public_key_encode (
|
||||||
|
dk->denom_pub.details.rsa_public_key,
|
||||||
&buf);
|
&buf);
|
||||||
GNUNET_assert (buf_len < UINT16_MAX);
|
GNUNET_assert (buf_len < UINT16_MAX);
|
||||||
GNUNET_assert (nlen < UINT16_MAX);
|
GNUNET_assert (nlen < UINT16_MAX);
|
||||||
@ -751,7 +753,7 @@ notify_client_dk_add (struct Client *client,
|
|||||||
an->section_name_len = htons ((uint16_t) nlen);
|
an->section_name_len = htons ((uint16_t) nlen);
|
||||||
an->anchor_time = GNUNET_TIME_absolute_hton (dk->anchor);
|
an->anchor_time = GNUNET_TIME_absolute_hton (dk->anchor);
|
||||||
an->duration_withdraw = GNUNET_TIME_relative_hton (denom->duration_withdraw);
|
an->duration_withdraw = GNUNET_TIME_relative_hton (denom->duration_withdraw);
|
||||||
TALER_exchange_secmod_rsa_sign (&dk->h_denom_pub,
|
TALER_exchange_secmod_denom_sign (&dk->h_denom_pub,
|
||||||
denom->section,
|
denom->section,
|
||||||
dk->anchor,
|
dk->anchor,
|
||||||
denom->duration_withdraw,
|
denom->duration_withdraw,
|
||||||
@ -767,11 +769,11 @@ notify_client_dk_add (struct Client *client,
|
|||||||
denom->section,
|
denom->section,
|
||||||
nlen);
|
nlen);
|
||||||
{
|
{
|
||||||
int ret = GNUNET_OK;
|
enum GNUNET_GenericReturnValue ret = GNUNET_OK;
|
||||||
|
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Sending RSA denomination key %s (%s)\n",
|
"Sending RSA denomination key %s (%s)\n",
|
||||||
GNUNET_h2s (&dk->h_denom_pub),
|
GNUNET_h2s (&dk->h_denom_pub.hash),
|
||||||
denom->section);
|
denom->section);
|
||||||
if (GNUNET_OK !=
|
if (GNUNET_OK !=
|
||||||
transmit (&client->addr,
|
transmit (&client->addr,
|
||||||
@ -809,7 +811,7 @@ notify_client_dk_del (struct Client *client,
|
|||||||
|
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Sending RSA denomination expiration %s\n",
|
"Sending RSA denomination expiration %s\n",
|
||||||
GNUNET_h2s (&dk->h_denom_pub));
|
GNUNET_h2s (&dk->h_denom_pub.hash));
|
||||||
if (GNUNET_OK !=
|
if (GNUNET_OK !=
|
||||||
transmit (&client->addr,
|
transmit (&client->addr,
|
||||||
client->addr_size,
|
client->addr_size,
|
||||||
@ -837,29 +839,27 @@ setup_key (struct DenominationKey *dk,
|
|||||||
struct DenominationKey *position)
|
struct DenominationKey *position)
|
||||||
{
|
{
|
||||||
struct Denomination *denom = dk->denom;
|
struct Denomination *denom = dk->denom;
|
||||||
struct GNUNET_CRYPTO_RsaPrivateKey *priv;
|
struct TALER_DenominationPrivateKey priv;
|
||||||
struct GNUNET_CRYPTO_RsaPublicKey *pub;
|
struct TALER_DenominationPublicKey pub;
|
||||||
size_t buf_size;
|
size_t buf_size;
|
||||||
void *buf;
|
void *buf;
|
||||||
|
|
||||||
priv = GNUNET_CRYPTO_rsa_private_key_create (denom->rsa_keysize);
|
priv.cipher = TALER_DENOMINATION_RSA;
|
||||||
if (NULL == priv)
|
priv.details.rsa_private_key
|
||||||
|
= GNUNET_CRYPTO_rsa_private_key_create (denom->rsa_keysize);
|
||||||
|
if (NULL == priv.details.rsa_private_key)
|
||||||
{
|
{
|
||||||
GNUNET_break (0);
|
GNUNET_break (0);
|
||||||
GNUNET_SCHEDULER_shutdown ();
|
GNUNET_SCHEDULER_shutdown ();
|
||||||
global_ret = 40;
|
global_ret = 40;
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
}
|
}
|
||||||
pub = GNUNET_CRYPTO_rsa_private_key_get_public (priv);
|
TALER_denom_priv_to_pub (&priv,
|
||||||
if (NULL == pub)
|
0 /* FIXME-Oec */,
|
||||||
{
|
&pub);
|
||||||
GNUNET_break (0);
|
buf_size = GNUNET_CRYPTO_rsa_private_key_encode (priv.details.rsa_private_key,
|
||||||
GNUNET_CRYPTO_rsa_private_key_free (priv);
|
|
||||||
return GNUNET_SYSERR;
|
|
||||||
}
|
|
||||||
buf_size = GNUNET_CRYPTO_rsa_private_key_encode (priv,
|
|
||||||
&buf);
|
&buf);
|
||||||
GNUNET_CRYPTO_rsa_public_key_hash (pub,
|
TALER_denom_pub_hash (&pub,
|
||||||
&dk->h_denom_pub);
|
&dk->h_denom_pub);
|
||||||
GNUNET_asprintf (&dk->filename,
|
GNUNET_asprintf (&dk->filename,
|
||||||
"%s/%s/%llu",
|
"%s/%s/%llu",
|
||||||
@ -877,30 +877,30 @@ setup_key (struct DenominationKey *dk,
|
|||||||
"write",
|
"write",
|
||||||
dk->filename);
|
dk->filename);
|
||||||
GNUNET_free (buf);
|
GNUNET_free (buf);
|
||||||
GNUNET_CRYPTO_rsa_private_key_free (priv);
|
GNUNET_CRYPTO_rsa_private_key_free (priv.details.rsa_private_key);
|
||||||
GNUNET_CRYPTO_rsa_public_key_free (pub);
|
GNUNET_CRYPTO_rsa_public_key_free (pub.details.rsa_public_key);
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
}
|
}
|
||||||
GNUNET_free (buf);
|
GNUNET_free (buf);
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Setup fresh private key %s at %s in `%s'\n",
|
"Setup fresh private key %s at %s in `%s'\n",
|
||||||
GNUNET_h2s (&dk->h_denom_pub),
|
GNUNET_h2s (&dk->h_denom_pub.hash),
|
||||||
GNUNET_STRINGS_absolute_time_to_string (dk->anchor),
|
GNUNET_STRINGS_absolute_time_to_string (dk->anchor),
|
||||||
dk->filename);
|
dk->filename);
|
||||||
dk->denom_priv.rsa_private_key = priv;
|
dk->denom_priv = priv;
|
||||||
dk->denom_pub.rsa_public_key = pub;
|
dk->denom_pub = pub;
|
||||||
|
|
||||||
if (GNUNET_OK !=
|
if (GNUNET_OK !=
|
||||||
GNUNET_CONTAINER_multihashmap_put (
|
GNUNET_CONTAINER_multihashmap_put (
|
||||||
keys,
|
keys,
|
||||||
&dk->h_denom_pub,
|
&dk->h_denom_pub.hash,
|
||||||
dk,
|
dk,
|
||||||
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY))
|
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY))
|
||||||
{
|
{
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
"Duplicate private key created! Terminating.\n");
|
"Duplicate private key created! Terminating.\n");
|
||||||
GNUNET_CRYPTO_rsa_private_key_free (dk->denom_priv.rsa_private_key);
|
GNUNET_CRYPTO_rsa_private_key_free (dk->denom_priv.details.rsa_private_key);
|
||||||
GNUNET_CRYPTO_rsa_public_key_free (dk->denom_pub.rsa_public_key);
|
GNUNET_CRYPTO_rsa_public_key_free (dk->denom_pub.details.rsa_public_key);
|
||||||
GNUNET_free (dk->filename);
|
GNUNET_free (dk->filename);
|
||||||
GNUNET_free (dk);
|
GNUNET_free (dk);
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
@ -951,12 +951,12 @@ handle_revoke_request (const struct sockaddr_un *addr,
|
|||||||
struct Denomination *denom;
|
struct Denomination *denom;
|
||||||
|
|
||||||
dk = GNUNET_CONTAINER_multihashmap_get (keys,
|
dk = GNUNET_CONTAINER_multihashmap_get (keys,
|
||||||
&rr->h_denom_pub);
|
&rr->h_denom_pub.hash);
|
||||||
if (NULL == dk)
|
if (NULL == dk)
|
||||||
{
|
{
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
|
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
|
||||||
"Revocation request ignored, denomination key %s unknown\n",
|
"Revocation request ignored, denomination key %s unknown\n",
|
||||||
GNUNET_h2s (&rr->h_denom_pub));
|
GNUNET_h2s (&rr->h_denom_pub.hash));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -985,14 +985,14 @@ handle_revoke_request (const struct sockaddr_un *addr,
|
|||||||
GNUNET_assert (GNUNET_OK ==
|
GNUNET_assert (GNUNET_OK ==
|
||||||
GNUNET_CONTAINER_multihashmap_remove (
|
GNUNET_CONTAINER_multihashmap_remove (
|
||||||
keys,
|
keys,
|
||||||
&dk->h_denom_pub,
|
&dk->h_denom_pub.hash,
|
||||||
dk));
|
dk));
|
||||||
GNUNET_CONTAINER_DLL_remove (denom->keys_head,
|
GNUNET_CONTAINER_DLL_remove (denom->keys_head,
|
||||||
denom->keys_tail,
|
denom->keys_tail,
|
||||||
dk);
|
dk);
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Revocation of denomination key %s complete\n",
|
"Revocation of denomination key %s complete\n",
|
||||||
GNUNET_h2s (&rr->h_denom_pub));
|
GNUNET_h2s (&rr->h_denom_pub.hash));
|
||||||
|
|
||||||
/* Tell clients this key is gone */
|
/* Tell clients this key is gone */
|
||||||
{
|
{
|
||||||
@ -1240,7 +1240,7 @@ purge_key (struct DenominationKey *dk)
|
|||||||
dk);
|
dk);
|
||||||
GNUNET_assert (GNUNET_OK ==
|
GNUNET_assert (GNUNET_OK ==
|
||||||
GNUNET_CONTAINER_multihashmap_remove (keys,
|
GNUNET_CONTAINER_multihashmap_remove (keys,
|
||||||
&dk->h_denom_pub,
|
&dk->h_denom_pub.hash,
|
||||||
dk));
|
dk));
|
||||||
if (0 != unlink (dk->filename))
|
if (0 != unlink (dk->filename))
|
||||||
{
|
{
|
||||||
@ -1261,7 +1261,7 @@ purge_key (struct DenominationKey *dk)
|
|||||||
dk->purge = true;
|
dk->purge = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
GNUNET_CRYPTO_rsa_private_key_free (dk->denom_priv.rsa_private_key);
|
GNUNET_CRYPTO_rsa_private_key_free (dk->denom_priv.details.rsa_private_key);
|
||||||
GNUNET_free (dk);
|
GNUNET_free (dk);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1372,7 +1372,7 @@ parse_key (struct Denomination *denom,
|
|||||||
const void *buf,
|
const void *buf,
|
||||||
size_t buf_size)
|
size_t buf_size)
|
||||||
{
|
{
|
||||||
struct GNUNET_CRYPTO_RsaPrivateKey *priv;
|
struct TALER_DenominationPrivateKey priv;
|
||||||
char *anchor_s;
|
char *anchor_s;
|
||||||
char dummy;
|
char dummy;
|
||||||
unsigned long long anchor_ll;
|
unsigned long long anchor_ll;
|
||||||
@ -1407,9 +1407,11 @@ parse_key (struct Denomination *denom,
|
|||||||
filename);
|
filename);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
priv = GNUNET_CRYPTO_rsa_private_key_decode (buf,
|
priv.cipher = TALER_DENOMINATION_RSA;
|
||||||
|
priv.details.rsa_private_key
|
||||||
|
= GNUNET_CRYPTO_rsa_private_key_decode (buf,
|
||||||
buf_size);
|
buf_size);
|
||||||
if (NULL == priv)
|
if (NULL == priv.details.rsa_private_key)
|
||||||
{
|
{
|
||||||
/* Parser failure. */
|
/* Parser failure. */
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
|
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
|
||||||
@ -1419,38 +1421,34 @@ parse_key (struct Denomination *denom,
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
struct GNUNET_CRYPTO_RsaPublicKey *pub;
|
struct TALER_DenominationPublicKey pub;
|
||||||
struct DenominationKey *dk;
|
struct DenominationKey *dk;
|
||||||
struct DenominationKey *before;
|
struct DenominationKey *before;
|
||||||
|
|
||||||
pub = GNUNET_CRYPTO_rsa_private_key_get_public (priv);
|
TALER_denom_priv_to_pub (&priv,
|
||||||
if (NULL == pub)
|
0 /* FIXME-Oec */,
|
||||||
{
|
&pub);
|
||||||
GNUNET_break (0);
|
|
||||||
GNUNET_CRYPTO_rsa_private_key_free (priv);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
dk = GNUNET_new (struct DenominationKey);
|
dk = GNUNET_new (struct DenominationKey);
|
||||||
dk->denom_priv.rsa_private_key = priv;
|
dk->denom_priv = priv;
|
||||||
dk->denom = denom;
|
dk->denom = denom;
|
||||||
dk->anchor = anchor;
|
dk->anchor = anchor;
|
||||||
dk->filename = GNUNET_strdup (filename);
|
dk->filename = GNUNET_strdup (filename);
|
||||||
GNUNET_CRYPTO_rsa_public_key_hash (pub,
|
TALER_denom_pub_hash (&pub,
|
||||||
&dk->h_denom_pub);
|
&dk->h_denom_pub);
|
||||||
dk->denom_pub.rsa_public_key = pub;
|
dk->denom_pub = pub;
|
||||||
if (GNUNET_OK !=
|
if (GNUNET_OK !=
|
||||||
GNUNET_CONTAINER_multihashmap_put (
|
GNUNET_CONTAINER_multihashmap_put (
|
||||||
keys,
|
keys,
|
||||||
&dk->h_denom_pub,
|
&dk->h_denom_pub.hash,
|
||||||
dk,
|
dk,
|
||||||
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY))
|
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY))
|
||||||
{
|
{
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
"Duplicate private key %s detected in file `%s'. Skipping.\n",
|
"Duplicate private key %s detected in file `%s'. Skipping.\n",
|
||||||
GNUNET_h2s (&dk->h_denom_pub),
|
GNUNET_h2s (&dk->h_denom_pub.hash),
|
||||||
filename);
|
filename);
|
||||||
GNUNET_CRYPTO_rsa_private_key_free (priv);
|
GNUNET_CRYPTO_rsa_private_key_free (priv.details.rsa_private_key);
|
||||||
GNUNET_CRYPTO_rsa_public_key_free (pub);
|
GNUNET_CRYPTO_rsa_public_key_free (pub.details.rsa_public_key);
|
||||||
GNUNET_free (dk);
|
GNUNET_free (dk);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1469,7 +1467,7 @@ parse_key (struct Denomination *denom,
|
|||||||
dk);
|
dk);
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
|
||||||
"Imported key %s from `%s'\n",
|
"Imported key %s from `%s'\n",
|
||||||
GNUNET_h2s (&dk->h_denom_pub),
|
GNUNET_h2s (&dk->h_denom_pub.hash),
|
||||||
filename);
|
filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of TALER
|
This file is part of TALER
|
||||||
Copyright (C) 2020 Taler Systems SA
|
Copyright (C) 2020, 2021 Taler Systems SA
|
||||||
|
|
||||||
TALER is free software; you can redistribute it and/or modify it under the
|
TALER is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU General Public License as published by the Free Software
|
terms of the GNU General Public License as published by the Free Software
|
||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
TALER_wallet_link_sign (const struct GNUNET_HashCode *h_denom_pub,
|
TALER_wallet_link_sign (const struct TALER_DenominationHash *h_denom_pub,
|
||||||
const struct TALER_TransferPublicKeyP *transfer_pub,
|
const struct TALER_TransferPublicKeyP *transfer_pub,
|
||||||
const void *coin_ev,
|
const void *coin_ev,
|
||||||
size_t coin_ev_size,
|
size_t coin_ev_size,
|
||||||
@ -40,7 +40,7 @@ TALER_wallet_link_sign (const struct GNUNET_HashCode *h_denom_pub,
|
|||||||
|
|
||||||
GNUNET_CRYPTO_hash (coin_ev,
|
GNUNET_CRYPTO_hash (coin_ev,
|
||||||
coin_ev_size,
|
coin_ev_size,
|
||||||
&ldp.coin_envelope_hash);
|
&ldp.coin_envelope_hash.hash);
|
||||||
GNUNET_CRYPTO_eddsa_sign (&old_coin_priv->eddsa_priv,
|
GNUNET_CRYPTO_eddsa_sign (&old_coin_priv->eddsa_priv,
|
||||||
&ldp,
|
&ldp,
|
||||||
&coin_sig->eddsa_signature);
|
&coin_sig->eddsa_signature);
|
||||||
@ -49,7 +49,7 @@ TALER_wallet_link_sign (const struct GNUNET_HashCode *h_denom_pub,
|
|||||||
|
|
||||||
enum GNUNET_GenericReturnValue
|
enum GNUNET_GenericReturnValue
|
||||||
TALER_wallet_link_verify (
|
TALER_wallet_link_verify (
|
||||||
const struct GNUNET_HashCode *h_denom_pub,
|
const struct TALER_DenominationHash *h_denom_pub,
|
||||||
const struct TALER_TransferPublicKeyP *transfer_pub,
|
const struct TALER_TransferPublicKeyP *transfer_pub,
|
||||||
const void *coin_ev,
|
const void *coin_ev,
|
||||||
size_t coin_ev_size,
|
size_t coin_ev_size,
|
||||||
@ -65,7 +65,7 @@ TALER_wallet_link_verify (
|
|||||||
|
|
||||||
GNUNET_CRYPTO_hash (coin_ev,
|
GNUNET_CRYPTO_hash (coin_ev,
|
||||||
coin_ev_size,
|
coin_ev_size,
|
||||||
&ldp.coin_envelope_hash);
|
&ldp.coin_envelope_hash.hash);
|
||||||
return
|
return
|
||||||
GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_WALLET_COIN_LINK,
|
GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_WALLET_COIN_LINK,
|
||||||
&ldp,
|
&ldp,
|
||||||
|
Loading…
Reference in New Issue
Block a user