diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-02-07 13:14:25 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-02-07 13:14:25 +0100 |
commit | b2e6fcae1a9b96f086c61f13f4c2c98338c4e414 (patch) | |
tree | 6c5c8c264ca674dd8c0e303daf3207bbaff65315 /src/util/denom.c | |
parent | b9ea075d61dcd47951b2f7f962025476c045aa57 (diff) | |
download | exchange-b2e6fcae1a9b96f086c61f13f4c2c98338c4e414.tar.xz |
fix DB API for generic blinded planchet storage
Diffstat (limited to 'src/util/denom.c')
-rw-r--r-- | src/util/denom.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/util/denom.c b/src/util/denom.c index 00d7ec791..caaa4f4e8 100644 --- a/src/util/denom.c +++ b/src/util/denom.c @@ -639,6 +639,35 @@ TALER_denom_sig_cmp (const struct TALER_DenominationSignature *sig1, int +TALER_blinded_planchet_cmp ( + const struct TALER_BlindedPlanchet *bp1, + const struct TALER_BlindedPlanchet *bp2) +{ + if (bp1->cipher != bp2->cipher) + return (bp1->cipher > bp2->cipher) ? 1 : -1; + switch (bp1->cipher) + { + case TALER_DENOMINATION_INVALID: + return 0; + case TALER_DENOMINATION_RSA: + if (bp1->details.rsa_blinded_planchet.blinded_msg_size != + bp2->details.rsa_blinded_planchet.blinded_msg_size) + return (bp1->details.rsa_blinded_planchet.blinded_msg_size > + bp2->details.rsa_blinded_planchet.blinded_msg_size) ? 1 : -1; + return memcmp (bp1->details.rsa_blinded_planchet.blinded_msg, + bp2->details.rsa_blinded_planchet.blinded_msg, + bp1->details.rsa_blinded_planchet.blinded_msg_size); + case TALER_DENOMINATION_CS: + return GNUNET_memcmp (&bp1->details.cs_blinded_planchet, + &bp2->details.cs_blinded_planchet); + default: + GNUNET_assert (0); + } + return -2; +} + + +int TALER_blinded_denom_sig_cmp ( const struct TALER_BlindedDenominationSignature *sig1, const struct TALER_BlindedDenominationSignature *sig2) |