set planchet detail cipher, add cipher checks
This commit is contained in:
parent
106664ed0c
commit
36f551ff33
@ -1444,7 +1444,8 @@ TALER_planchet_setup_random (struct TALER_PlanchetSecretsP *ps,
|
|||||||
* @param ps secret planchet internals (for #TALER_planchet_to_coin)
|
* @param ps secret planchet internals (for #TALER_planchet_to_coin)
|
||||||
* @param[out] c_hash set to the hash of the public key of the coin (needed later)
|
* @param[out] c_hash set to the hash of the public key of the coin (needed later)
|
||||||
* @param[out] pd set to the planchet detail for TALER_MERCHANT_tip_pickup() and
|
* @param[out] pd set to the planchet detail for TALER_MERCHANT_tip_pickup() and
|
||||||
* other withdraw operations
|
* other withdraw operations, pd->blinded_planchet.cipher will be set
|
||||||
|
* to cipher from dk
|
||||||
* @return #GNUNET_OK on success
|
* @return #GNUNET_OK on success
|
||||||
*/
|
*/
|
||||||
enum GNUNET_GenericReturnValue
|
enum GNUNET_GenericReturnValue
|
||||||
|
@ -319,6 +319,7 @@ TALER_planchet_prepare (const struct TALER_DenominationPublicKey *dk,
|
|||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pd->blinded_planchet.cipher = dk->cipher;
|
||||||
TALER_denom_pub_hash (dk,
|
TALER_denom_pub_hash (dk,
|
||||||
&pd->denom_pub_hash);
|
&pd->denom_pub_hash);
|
||||||
return GNUNET_OK;
|
return GNUNET_OK;
|
||||||
@ -335,6 +336,12 @@ TALER_planchet_to_coin (const struct TALER_DenominationPublicKey *dk,
|
|||||||
{
|
{
|
||||||
struct TALER_DenominationSignature sig;
|
struct TALER_DenominationSignature sig;
|
||||||
|
|
||||||
|
if (dk->cipher != blind_sig->cipher)
|
||||||
|
{
|
||||||
|
GNUNET_break_op (0);
|
||||||
|
return GNUNET_SYSERR;
|
||||||
|
}
|
||||||
|
|
||||||
switch (dk->cipher)
|
switch (dk->cipher)
|
||||||
{
|
{
|
||||||
case TALER_DENOMINATION_RSA:
|
case TALER_DENOMINATION_RSA:
|
||||||
|
@ -112,6 +112,13 @@ TALER_denom_sign_blinded (struct TALER_BlindedDenominationSignature *denom_sig,
|
|||||||
memset (denom_sig,
|
memset (denom_sig,
|
||||||
0,
|
0,
|
||||||
sizeof (*denom_sig));
|
sizeof (*denom_sig));
|
||||||
|
|
||||||
|
if (blinded_planchet->cipher != denom_priv->cipher)
|
||||||
|
{
|
||||||
|
GNUNET_break (0);
|
||||||
|
return GNUNET_SYSERR;
|
||||||
|
}
|
||||||
|
|
||||||
switch (denom_priv->cipher)
|
switch (denom_priv->cipher)
|
||||||
{
|
{
|
||||||
case TALER_DENOMINATION_INVALID:
|
case TALER_DENOMINATION_INVALID:
|
||||||
@ -394,6 +401,7 @@ TALER_denom_pub_verify (const struct TALER_DenominationPublicKey *denom_pub,
|
|||||||
GNUNET_break (0);
|
GNUNET_break (0);
|
||||||
return GNUNET_SYSERR;
|
return GNUNET_SYSERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (denom_pub->cipher)
|
switch (denom_pub->cipher)
|
||||||
{
|
{
|
||||||
case TALER_DENOMINATION_INVALID:
|
case TALER_DENOMINATION_INVALID:
|
||||||
|
Loading…
Reference in New Issue
Block a user