summaryrefslogtreecommitdiff
path: root/src/util/denom.c
diff options
context:
space:
mode:
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)