From 85d0048c22271fac371729ba7b14417a28bb6b48 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 25 Feb 2014 11:15:15 +0000 Subject: - support mesh's new NACK message - remove - python test skeleton for voting - encrypted votes - establish threshold key during ballot registration - ballot tool can request threshold public keys from authorities --- .../gnunet/secretsharing/ThresholdPublicKey.java | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/main/java/org/gnunet/secretsharing/ThresholdPublicKey.java') diff --git a/src/main/java/org/gnunet/secretsharing/ThresholdPublicKey.java b/src/main/java/org/gnunet/secretsharing/ThresholdPublicKey.java index b7075be..4560788 100644 --- a/src/main/java/org/gnunet/secretsharing/ThresholdPublicKey.java +++ b/src/main/java/org/gnunet/secretsharing/ThresholdPublicKey.java @@ -22,11 +22,40 @@ package org.gnunet.secretsharing; import org.gnunet.construct.FixedSizeIntegerArray; import org.gnunet.construct.Message; +import org.gnunet.util.Strings; + +import java.util.Arrays; /** * Threshold public key. */ public class ThresholdPublicKey implements Message { + @FixedSizeIntegerArray(signed = true, bitSize = 8, length = Parameters.elgamalBits / 8) public byte[] bits; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ThresholdPublicKey that = (ThresholdPublicKey) o; + return Arrays.equals(bits, that.bits); + } + + @Override + public int hashCode() { + return bits != null ? Arrays.hashCode(bits) : 0; + } + + public static ThresholdPublicKey fromString(String value) { + ThresholdPublicKey pk = new ThresholdPublicKey(); + pk.bits = new byte[Parameters.elgamalBits / 8]; + Strings.stringToData(value, pk.bits); + return pk; + } + + @Override + public String toString() { + return Strings.dataToString(bits); + } } -- cgit v1.2.3