summaryrefslogtreecommitdiff
path: root/src/util/denom.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-02-07 13:14:25 +0100
committerChristian Grothoff <christian@grothoff.org>2022-02-07 13:14:25 +0100
commitb2e6fcae1a9b96f086c61f13f4c2c98338c4e414 (patch)
tree6c5c8c264ca674dd8c0e303daf3207bbaff65315 /src/util/denom.c
parentb9ea075d61dcd47951b2f7f962025476c045aa57 (diff)
downloadexchange-b2e6fcae1a9b96f086c61f13f4c2c98338c4e414.tar.gz
exchange-b2e6fcae1a9b96f086c61f13f4c2c98338c4e414.tar.bz2
exchange-b2e6fcae1a9b96f086c61f13f4c2c98338c4e414.zip
fix DB API for generic blinded planchet storage
Diffstat (limited to 'src/util/denom.c')
-rw-r--r--src/util/denom.c29
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)