From 42c3b44e3f44c129bb2177276726932155aeece1 Mon Sep 17 00:00:00 2001 From: Linus Gasser Date: Mon, 26 Jun 2023 08:44:24 +0200 Subject: [PATCH] Additional votes in the structures --- evoting/lib/proto.go | 23 + .../java/ch/epfl/dedis/lib/proto/Evoting.java | 1968 ++++++++++++++++- .../js/cothority/src/protobuf/models.json | 2 +- external/proto/evoting.proto | 17 + 4 files changed, 1943 insertions(+), 67 deletions(-) diff --git a/evoting/lib/proto.go b/evoting/lib/proto.go index cb9112d84..f8e6732fa 100644 --- a/evoting/lib/proto.go +++ b/evoting/lib/proto.go @@ -13,6 +13,7 @@ import ( // type :map\[string\]string:map // type :network.ServerIdentityID:bytes // type :ElectionState:uint32 +// type :kyber.Point:bytes // import "onet.proto"; // // option java_package = "ch.epfl.dedis.lib.proto"; @@ -123,6 +124,12 @@ type Ballot struct { // ElGamal ciphertext pair. Alpha kyber.Point Beta kyber.Point + + // Additional ciphertext pairs in case there are more than 9 candidates. + // As these are slices, the resulting protobuf is backward compatible with + // the old ones. + AdditionalAlphas []kyber.Point + AdditionalBetas []kyber.Point } // Mix contains the shuffled ballots. @@ -136,6 +143,11 @@ type Mix struct { NodeID network.ServerIdentityID // Signature of the public key Signature []byte + + // Additional proofs for eventual additional ciphertexts in the Ballots. + // To keep backward-compatibility in the resulting protobuf, + // these proofs are added at the end of the structure. + AdditionalProofs [][]byte } // Partial contains the partially decrypted ballots. @@ -147,4 +159,15 @@ type Partial struct { NodeID network.ServerIdentityID // Signature of the public key Signature []byte + + // Additional points from decrypted plaintexts. + // To keep backward-compatibility in the resulting protobuf, + // these points are added at the end of the structure. + AdditionalPoints []PartialAdditional +} + +// PartialAdditional is used because protobuf cannot handle array of array of bytes. +type PartialAdditional struct { + // All additional points from a single voter. + AdditionalPoints []kyber.Point } diff --git a/external/java/src/main/java/ch/epfl/dedis/lib/proto/Evoting.java b/external/java/src/main/java/ch/epfl/dedis/lib/proto/Evoting.java index 1d4c63805..c5f1c4c81 100644 --- a/external/java/src/main/java/ch/epfl/dedis/lib/proto/Evoting.java +++ b/external/java/src/main/java/ch/epfl/dedis/lib/proto/Evoting.java @@ -9650,6 +9650,58 @@ public interface BallotOrBuilder extends * @return The beta. */ com.google.protobuf.ByteString getBeta(); + + /** + *
+     * Additional ciphertext pairs in case there are more than 9 candidates.
+     * As these are slices, the resulting protobuf is backward compatible with
+     * the old ones.
+     * 
+ * + * repeated bytes additionalalphas = 4; + * @return A list containing the additionalalphas. + */ + java.util.List getAdditionalalphasList(); + /** + *
+     * Additional ciphertext pairs in case there are more than 9 candidates.
+     * As these are slices, the resulting protobuf is backward compatible with
+     * the old ones.
+     * 
+ * + * repeated bytes additionalalphas = 4; + * @return The count of additionalalphas. + */ + int getAdditionalalphasCount(); + /** + *
+     * Additional ciphertext pairs in case there are more than 9 candidates.
+     * As these are slices, the resulting protobuf is backward compatible with
+     * the old ones.
+     * 
+ * + * repeated bytes additionalalphas = 4; + * @param index The index of the element to return. + * @return The additionalalphas at the given index. + */ + com.google.protobuf.ByteString getAdditionalalphas(int index); + + /** + * repeated bytes additionalbetas = 5; + * @return A list containing the additionalbetas. + */ + java.util.List getAdditionalbetasList(); + /** + * repeated bytes additionalbetas = 5; + * @return The count of additionalbetas. + */ + int getAdditionalbetasCount(); + /** + * repeated bytes additionalbetas = 5; + * @param index The index of the element to return. + * @return The additionalbetas at the given index. + */ + com.google.protobuf.ByteString getAdditionalbetas(int index); } /** *
@@ -9670,6 +9722,8 @@ private Ballot(com.google.protobuf.GeneratedMessageV3.Builder builder) {
     private Ballot() {
       alpha_ = com.google.protobuf.ByteString.EMPTY;
       beta_ = com.google.protobuf.ByteString.EMPTY;
+      additionalalphas_ = java.util.Collections.emptyList();
+      additionalbetas_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -9718,6 +9772,22 @@ private Ballot(
               beta_ = input.readBytes();
               break;
             }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
+                additionalalphas_ = new java.util.ArrayList();
+                mutable_bitField0_ |= 0x00000008;
+              }
+              additionalalphas_.add(input.readBytes());
+              break;
+            }
+            case 42: {
+              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
+                additionalbetas_ = new java.util.ArrayList();
+                mutable_bitField0_ |= 0x00000010;
+              }
+              additionalbetas_.add(input.readBytes());
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -9733,6 +9803,12 @@ private Ballot(
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e).setUnfinishedMessage(this);
       } finally {
+        if (((mutable_bitField0_ & 0x00000008) != 0)) {
+          additionalalphas_ = java.util.Collections.unmodifiableList(additionalalphas_); // C
+        }
+        if (((mutable_bitField0_ & 0x00000010) != 0)) {
+          additionalbetas_ = java.util.Collections.unmodifiableList(additionalbetas_); // C
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -9824,6 +9900,78 @@ public com.google.protobuf.ByteString getBeta() {
       return beta_;
     }
 
+    public static final int ADDITIONALALPHAS_FIELD_NUMBER = 4;
+    private java.util.List additionalalphas_;
+    /**
+     * 
+     * Additional ciphertext pairs in case there are more than 9 candidates.
+     * As these are slices, the resulting protobuf is backward compatible with
+     * the old ones.
+     * 
+ * + * repeated bytes additionalalphas = 4; + * @return A list containing the additionalalphas. + */ + @java.lang.Override + public java.util.List + getAdditionalalphasList() { + return additionalalphas_; + } + /** + *
+     * Additional ciphertext pairs in case there are more than 9 candidates.
+     * As these are slices, the resulting protobuf is backward compatible with
+     * the old ones.
+     * 
+ * + * repeated bytes additionalalphas = 4; + * @return The count of additionalalphas. + */ + public int getAdditionalalphasCount() { + return additionalalphas_.size(); + } + /** + *
+     * Additional ciphertext pairs in case there are more than 9 candidates.
+     * As these are slices, the resulting protobuf is backward compatible with
+     * the old ones.
+     * 
+ * + * repeated bytes additionalalphas = 4; + * @param index The index of the element to return. + * @return The additionalalphas at the given index. + */ + public com.google.protobuf.ByteString getAdditionalalphas(int index) { + return additionalalphas_.get(index); + } + + public static final int ADDITIONALBETAS_FIELD_NUMBER = 5; + private java.util.List additionalbetas_; + /** + * repeated bytes additionalbetas = 5; + * @return A list containing the additionalbetas. + */ + @java.lang.Override + public java.util.List + getAdditionalbetasList() { + return additionalbetas_; + } + /** + * repeated bytes additionalbetas = 5; + * @return The count of additionalbetas. + */ + public int getAdditionalbetasCount() { + return additionalbetas_.size(); + } + /** + * repeated bytes additionalbetas = 5; + * @param index The index of the element to return. + * @return The additionalbetas at the given index. + */ + public com.google.protobuf.ByteString getAdditionalbetas(int index) { + return additionalbetas_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -9859,6 +10007,12 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000004) != 0)) { output.writeBytes(3, beta_); } + for (int i = 0; i < additionalalphas_.size(); i++) { + output.writeBytes(4, additionalalphas_.get(i)); + } + for (int i = 0; i < additionalbetas_.size(); i++) { + output.writeBytes(5, additionalbetas_.get(i)); + } unknownFields.writeTo(output); } @@ -9880,6 +10034,24 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(3, beta_); } + { + int dataSize = 0; + for (int i = 0; i < additionalalphas_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(additionalalphas_.get(i)); + } + size += dataSize; + size += 1 * getAdditionalalphasList().size(); + } + { + int dataSize = 0; + for (int i = 0; i < additionalbetas_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(additionalbetas_.get(i)); + } + size += dataSize; + size += 1 * getAdditionalbetasList().size(); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -9910,6 +10082,10 @@ public boolean equals(final java.lang.Object obj) { if (!getBeta() .equals(other.getBeta())) return false; } + if (!getAdditionalalphasList() + .equals(other.getAdditionalalphasList())) return false; + if (!getAdditionalbetasList() + .equals(other.getAdditionalbetasList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -9933,6 +10109,14 @@ public int hashCode() { hash = (37 * hash) + BETA_FIELD_NUMBER; hash = (53 * hash) + getBeta().hashCode(); } + if (getAdditionalalphasCount() > 0) { + hash = (37 * hash) + ADDITIONALALPHAS_FIELD_NUMBER; + hash = (53 * hash) + getAdditionalalphasList().hashCode(); + } + if (getAdditionalbetasCount() > 0) { + hash = (37 * hash) + ADDITIONALBETAS_FIELD_NUMBER; + hash = (53 * hash) + getAdditionalbetasList().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -10076,6 +10260,10 @@ public Builder clear() { bitField0_ = (bitField0_ & ~0x00000002); beta_ = com.google.protobuf.ByteString.EMPTY; bitField0_ = (bitField0_ & ~0x00000004); + additionalalphas_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + additionalbetas_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -10116,6 +10304,16 @@ public ch.epfl.dedis.lib.proto.Evoting.Ballot buildPartial() { to_bitField0_ |= 0x00000004; } result.beta_ = beta_; + if (((bitField0_ & 0x00000008) != 0)) { + additionalalphas_ = java.util.Collections.unmodifiableList(additionalalphas_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.additionalalphas_ = additionalalphas_; + if (((bitField0_ & 0x00000010) != 0)) { + additionalbetas_ = java.util.Collections.unmodifiableList(additionalbetas_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.additionalbetas_ = additionalbetas_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -10174,6 +10372,26 @@ public Builder mergeFrom(ch.epfl.dedis.lib.proto.Evoting.Ballot other) { if (other.hasBeta()) { setBeta(other.getBeta()); } + if (!other.additionalalphas_.isEmpty()) { + if (additionalalphas_.isEmpty()) { + additionalalphas_ = other.additionalalphas_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureAdditionalalphasIsMutable(); + additionalalphas_.addAll(other.additionalalphas_); + } + onChanged(); + } + if (!other.additionalbetas_.isEmpty()) { + if (additionalbetas_.isEmpty()) { + additionalbetas_ = other.additionalbetas_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureAdditionalbetasIsMutable(); + additionalbetas_.addAll(other.additionalbetas_); + } + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -10367,6 +10585,218 @@ public Builder clearBeta() { onChanged(); return this; } + + private java.util.List additionalalphas_ = java.util.Collections.emptyList(); + private void ensureAdditionalalphasIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + additionalalphas_ = new java.util.ArrayList(additionalalphas_); + bitField0_ |= 0x00000008; + } + } + /** + *
+       * Additional ciphertext pairs in case there are more than 9 candidates.
+       * As these are slices, the resulting protobuf is backward compatible with
+       * the old ones.
+       * 
+ * + * repeated bytes additionalalphas = 4; + * @return A list containing the additionalalphas. + */ + public java.util.List + getAdditionalalphasList() { + return ((bitField0_ & 0x00000008) != 0) ? + java.util.Collections.unmodifiableList(additionalalphas_) : additionalalphas_; + } + /** + *
+       * Additional ciphertext pairs in case there are more than 9 candidates.
+       * As these are slices, the resulting protobuf is backward compatible with
+       * the old ones.
+       * 
+ * + * repeated bytes additionalalphas = 4; + * @return The count of additionalalphas. + */ + public int getAdditionalalphasCount() { + return additionalalphas_.size(); + } + /** + *
+       * Additional ciphertext pairs in case there are more than 9 candidates.
+       * As these are slices, the resulting protobuf is backward compatible with
+       * the old ones.
+       * 
+ * + * repeated bytes additionalalphas = 4; + * @param index The index of the element to return. + * @return The additionalalphas at the given index. + */ + public com.google.protobuf.ByteString getAdditionalalphas(int index) { + return additionalalphas_.get(index); + } + /** + *
+       * Additional ciphertext pairs in case there are more than 9 candidates.
+       * As these are slices, the resulting protobuf is backward compatible with
+       * the old ones.
+       * 
+ * + * repeated bytes additionalalphas = 4; + * @param index The index to set the value at. + * @param value The additionalalphas to set. + * @return This builder for chaining. + */ + public Builder setAdditionalalphas( + int index, com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalalphasIsMutable(); + additionalalphas_.set(index, value); + onChanged(); + return this; + } + /** + *
+       * Additional ciphertext pairs in case there are more than 9 candidates.
+       * As these are slices, the resulting protobuf is backward compatible with
+       * the old ones.
+       * 
+ * + * repeated bytes additionalalphas = 4; + * @param value The additionalalphas to add. + * @return This builder for chaining. + */ + public Builder addAdditionalalphas(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalalphasIsMutable(); + additionalalphas_.add(value); + onChanged(); + return this; + } + /** + *
+       * Additional ciphertext pairs in case there are more than 9 candidates.
+       * As these are slices, the resulting protobuf is backward compatible with
+       * the old ones.
+       * 
+ * + * repeated bytes additionalalphas = 4; + * @param values The additionalalphas to add. + * @return This builder for chaining. + */ + public Builder addAllAdditionalalphas( + java.lang.Iterable values) { + ensureAdditionalalphasIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, additionalalphas_); + onChanged(); + return this; + } + /** + *
+       * Additional ciphertext pairs in case there are more than 9 candidates.
+       * As these are slices, the resulting protobuf is backward compatible with
+       * the old ones.
+       * 
+ * + * repeated bytes additionalalphas = 4; + * @return This builder for chaining. + */ + public Builder clearAdditionalalphas() { + additionalalphas_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + + private java.util.List additionalbetas_ = java.util.Collections.emptyList(); + private void ensureAdditionalbetasIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + additionalbetas_ = new java.util.ArrayList(additionalbetas_); + bitField0_ |= 0x00000010; + } + } + /** + * repeated bytes additionalbetas = 5; + * @return A list containing the additionalbetas. + */ + public java.util.List + getAdditionalbetasList() { + return ((bitField0_ & 0x00000010) != 0) ? + java.util.Collections.unmodifiableList(additionalbetas_) : additionalbetas_; + } + /** + * repeated bytes additionalbetas = 5; + * @return The count of additionalbetas. + */ + public int getAdditionalbetasCount() { + return additionalbetas_.size(); + } + /** + * repeated bytes additionalbetas = 5; + * @param index The index of the element to return. + * @return The additionalbetas at the given index. + */ + public com.google.protobuf.ByteString getAdditionalbetas(int index) { + return additionalbetas_.get(index); + } + /** + * repeated bytes additionalbetas = 5; + * @param index The index to set the value at. + * @param value The additionalbetas to set. + * @return This builder for chaining. + */ + public Builder setAdditionalbetas( + int index, com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalbetasIsMutable(); + additionalbetas_.set(index, value); + onChanged(); + return this; + } + /** + * repeated bytes additionalbetas = 5; + * @param value The additionalbetas to add. + * @return This builder for chaining. + */ + public Builder addAdditionalbetas(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalbetasIsMutable(); + additionalbetas_.add(value); + onChanged(); + return this; + } + /** + * repeated bytes additionalbetas = 5; + * @param values The additionalbetas to add. + * @return This builder for chaining. + */ + public Builder addAllAdditionalbetas( + java.lang.Iterable values) { + ensureAdditionalbetasIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, additionalbetas_); + onChanged(); + return this; + } + /** + * repeated bytes additionalbetas = 5; + * @return This builder for chaining. + */ + public Builder clearAdditionalbetas() { + additionalbetas_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -10524,6 +10954,41 @@ ch.epfl.dedis.lib.proto.Evoting.BallotOrBuilder getBallotsOrBuilder( * @return The signature. */ com.google.protobuf.ByteString getSignature(); + + /** + *
+     * Additional proofs for eventual additional ciphertexts in the Ballots.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these proofs are added at the end of the structure.
+     * 
+ * + * repeated bytes additionalproofs = 5; + * @return A list containing the additionalproofs. + */ + java.util.List getAdditionalproofsList(); + /** + *
+     * Additional proofs for eventual additional ciphertexts in the Ballots.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these proofs are added at the end of the structure.
+     * 
+ * + * repeated bytes additionalproofs = 5; + * @return The count of additionalproofs. + */ + int getAdditionalproofsCount(); + /** + *
+     * Additional proofs for eventual additional ciphertexts in the Ballots.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these proofs are added at the end of the structure.
+     * 
+ * + * repeated bytes additionalproofs = 5; + * @param index The index of the element to return. + * @return The additionalproofs at the given index. + */ + com.google.protobuf.ByteString getAdditionalproofs(int index); } /** *
@@ -10546,6 +11011,7 @@ private Mix() {
       proof_ = com.google.protobuf.ByteString.EMPTY;
       nodeid_ = com.google.protobuf.ByteString.EMPTY;
       signature_ = com.google.protobuf.ByteString.EMPTY;
+      additionalproofs_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -10603,6 +11069,14 @@ private Mix(
               signature_ = input.readBytes();
               break;
             }
+            case 42: {
+              if (!((mutable_bitField0_ & 0x00000010) != 0)) {
+                additionalproofs_ = new java.util.ArrayList();
+                mutable_bitField0_ |= 0x00000010;
+              }
+              additionalproofs_.add(input.readBytes());
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -10621,6 +11095,9 @@ private Mix(
         if (((mutable_bitField0_ & 0x00000001) != 0)) {
           ballots_ = java.util.Collections.unmodifiableList(ballots_);
         }
+        if (((mutable_bitField0_ & 0x00000010) != 0)) {
+          additionalproofs_ = java.util.Collections.unmodifiableList(additionalproofs_); // C
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -10780,18 +11257,63 @@ public com.google.protobuf.ByteString getSignature() {
       return signature_;
     }
 
-    private byte memoizedIsInitialized = -1;
+    public static final int ADDITIONALPROOFS_FIELD_NUMBER = 5;
+    private java.util.List additionalproofs_;
+    /**
+     * 
+     * Additional proofs for eventual additional ciphertexts in the Ballots.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these proofs are added at the end of the structure.
+     * 
+ * + * repeated bytes additionalproofs = 5; + * @return A list containing the additionalproofs. + */ @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - if (!hasProof()) { - memoizedIsInitialized = 0; - return false; - } - if (!hasNodeid()) { + public java.util.List + getAdditionalproofsList() { + return additionalproofs_; + } + /** + *
+     * Additional proofs for eventual additional ciphertexts in the Ballots.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these proofs are added at the end of the structure.
+     * 
+ * + * repeated bytes additionalproofs = 5; + * @return The count of additionalproofs. + */ + public int getAdditionalproofsCount() { + return additionalproofs_.size(); + } + /** + *
+     * Additional proofs for eventual additional ciphertexts in the Ballots.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these proofs are added at the end of the structure.
+     * 
+ * + * repeated bytes additionalproofs = 5; + * @param index The index of the element to return. + * @return The additionalproofs at the given index. + */ + public com.google.protobuf.ByteString getAdditionalproofs(int index) { + return additionalproofs_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + if (!hasProof()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasNodeid()) { memoizedIsInitialized = 0; return false; } @@ -10824,6 +11346,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000004) != 0)) { output.writeBytes(4, signature_); } + for (int i = 0; i < additionalproofs_.size(); i++) { + output.writeBytes(5, additionalproofs_.get(i)); + } unknownFields.writeTo(output); } @@ -10849,6 +11374,15 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(4, signature_); } + { + int dataSize = 0; + for (int i = 0; i < additionalproofs_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(additionalproofs_.get(i)); + } + size += dataSize; + size += 1 * getAdditionalproofsList().size(); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -10881,6 +11415,8 @@ public boolean equals(final java.lang.Object obj) { if (!getSignature() .equals(other.getSignature())) return false; } + if (!getAdditionalproofsList() + .equals(other.getAdditionalproofsList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -10908,6 +11444,10 @@ public int hashCode() { hash = (37 * hash) + SIGNATURE_FIELD_NUMBER; hash = (53 * hash) + getSignature().hashCode(); } + if (getAdditionalproofsCount() > 0) { + hash = (37 * hash) + ADDITIONALPROOFS_FIELD_NUMBER; + hash = (53 * hash) + getAdditionalproofsList().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -11058,6 +11598,8 @@ public Builder clear() { bitField0_ = (bitField0_ & ~0x00000004); signature_ = com.google.protobuf.ByteString.EMPTY; bitField0_ = (bitField0_ & ~0x00000008); + additionalproofs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -11107,6 +11649,11 @@ public ch.epfl.dedis.lib.proto.Evoting.Mix buildPartial() { to_bitField0_ |= 0x00000004; } result.signature_ = signature_; + if (((bitField0_ & 0x00000010) != 0)) { + additionalproofs_ = java.util.Collections.unmodifiableList(additionalproofs_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.additionalproofs_ = additionalproofs_; result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -11191,6 +11738,16 @@ public Builder mergeFrom(ch.epfl.dedis.lib.proto.Evoting.Mix other) { if (other.hasSignature()) { setSignature(other.getSignature()); } + if (!other.additionalproofs_.isEmpty()) { + if (additionalproofs_.isEmpty()) { + additionalproofs_ = other.additionalproofs_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureAdditionalproofsIsMutable(); + additionalproofs_.addAll(other.additionalproofs_); + } + onChanged(); + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -11720,6 +12277,133 @@ public Builder clearSignature() { onChanged(); return this; } + + private java.util.List additionalproofs_ = java.util.Collections.emptyList(); + private void ensureAdditionalproofsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + additionalproofs_ = new java.util.ArrayList(additionalproofs_); + bitField0_ |= 0x00000010; + } + } + /** + *
+       * Additional proofs for eventual additional ciphertexts in the Ballots.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these proofs are added at the end of the structure.
+       * 
+ * + * repeated bytes additionalproofs = 5; + * @return A list containing the additionalproofs. + */ + public java.util.List + getAdditionalproofsList() { + return ((bitField0_ & 0x00000010) != 0) ? + java.util.Collections.unmodifiableList(additionalproofs_) : additionalproofs_; + } + /** + *
+       * Additional proofs for eventual additional ciphertexts in the Ballots.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these proofs are added at the end of the structure.
+       * 
+ * + * repeated bytes additionalproofs = 5; + * @return The count of additionalproofs. + */ + public int getAdditionalproofsCount() { + return additionalproofs_.size(); + } + /** + *
+       * Additional proofs for eventual additional ciphertexts in the Ballots.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these proofs are added at the end of the structure.
+       * 
+ * + * repeated bytes additionalproofs = 5; + * @param index The index of the element to return. + * @return The additionalproofs at the given index. + */ + public com.google.protobuf.ByteString getAdditionalproofs(int index) { + return additionalproofs_.get(index); + } + /** + *
+       * Additional proofs for eventual additional ciphertexts in the Ballots.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these proofs are added at the end of the structure.
+       * 
+ * + * repeated bytes additionalproofs = 5; + * @param index The index to set the value at. + * @param value The additionalproofs to set. + * @return This builder for chaining. + */ + public Builder setAdditionalproofs( + int index, com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalproofsIsMutable(); + additionalproofs_.set(index, value); + onChanged(); + return this; + } + /** + *
+       * Additional proofs for eventual additional ciphertexts in the Ballots.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these proofs are added at the end of the structure.
+       * 
+ * + * repeated bytes additionalproofs = 5; + * @param value The additionalproofs to add. + * @return This builder for chaining. + */ + public Builder addAdditionalproofs(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalproofsIsMutable(); + additionalproofs_.add(value); + onChanged(); + return this; + } + /** + *
+       * Additional proofs for eventual additional ciphertexts in the Ballots.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these proofs are added at the end of the structure.
+       * 
+ * + * repeated bytes additionalproofs = 5; + * @param values The additionalproofs to add. + * @return This builder for chaining. + */ + public Builder addAllAdditionalproofs( + java.lang.Iterable values) { + ensureAdditionalproofsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, additionalproofs_); + onChanged(); + return this; + } + /** + *
+       * Additional proofs for eventual additional ciphertexts in the Ballots.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these proofs are added at the end of the structure.
+       * 
+ * + * repeated bytes additionalproofs = 5; + * @return This builder for chaining. + */ + public Builder clearAdditionalproofs() { + additionalproofs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { @@ -11843,6 +12527,60 @@ public interface PartialOrBuilder extends * @return The signature. */ com.google.protobuf.ByteString getSignature(); + + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + java.util.List + getAdditionalpointsList(); + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional getAdditionalpoints(int index); + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + int getAdditionalpointsCount(); + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + java.util.List + getAdditionalpointsOrBuilderList(); + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + ch.epfl.dedis.lib.proto.Evoting.PartialAdditionalOrBuilder getAdditionalpointsOrBuilder( + int index); } /** *
@@ -11864,6 +12602,7 @@ private Partial() {
       points_ = java.util.Collections.emptyList();
       nodeid_ = com.google.protobuf.ByteString.EMPTY;
       signature_ = com.google.protobuf.ByteString.EMPTY;
+      additionalpoints_ = java.util.Collections.emptyList();
     }
 
     @java.lang.Override
@@ -11915,6 +12654,15 @@ private Partial(
               signature_ = input.readBytes();
               break;
             }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000008) != 0)) {
+                additionalpoints_ = new java.util.ArrayList();
+                mutable_bitField0_ |= 0x00000008;
+              }
+              additionalpoints_.add(
+                  input.readMessage(ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.parser(), extensionRegistry));
+              break;
+            }
             default: {
               if (!parseUnknownField(
                   input, unknownFields, extensionRegistry, tag)) {
@@ -11933,6 +12681,9 @@ private Partial(
         if (((mutable_bitField0_ & 0x00000001) != 0)) {
           points_ = java.util.Collections.unmodifiableList(points_); // C
         }
+        if (((mutable_bitField0_ & 0x00000008) != 0)) {
+          additionalpoints_ = java.util.Collections.unmodifiableList(additionalpoints_);
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -12044,6 +12795,76 @@ public com.google.protobuf.ByteString getSignature() {
       return signature_;
     }
 
+    public static final int ADDITIONALPOINTS_FIELD_NUMBER = 4;
+    private java.util.List additionalpoints_;
+    /**
+     * 
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + @java.lang.Override + public java.util.List getAdditionalpointsList() { + return additionalpoints_; + } + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + @java.lang.Override + public java.util.List + getAdditionalpointsOrBuilderList() { + return additionalpoints_; + } + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + @java.lang.Override + public int getAdditionalpointsCount() { + return additionalpoints_.size(); + } + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + @java.lang.Override + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional getAdditionalpoints(int index) { + return additionalpoints_.get(index); + } + /** + *
+     * Additional points from decrypted plaintexts.
+     * To keep backward-compatibility in the resulting protobuf,
+     * these points are added at the end of the structure.
+     * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + @java.lang.Override + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditionalOrBuilder getAdditionalpointsOrBuilder( + int index) { + return additionalpoints_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -12075,6 +12896,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000002) != 0)) { output.writeBytes(3, signature_); } + for (int i = 0; i < additionalpoints_.size(); i++) { + output.writeMessage(4, additionalpoints_.get(i)); + } unknownFields.writeTo(output); } @@ -12101,6 +12925,10 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeBytesSize(3, signature_); } + for (int i = 0; i < additionalpoints_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, additionalpoints_.get(i)); + } size += unknownFields.getSerializedSize(); memoizedSize = size; return size; @@ -12128,6 +12956,8 @@ public boolean equals(final java.lang.Object obj) { if (!getSignature() .equals(other.getSignature())) return false; } + if (!getAdditionalpointsList() + .equals(other.getAdditionalpointsList())) return false; if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -12151,6 +12981,10 @@ public int hashCode() { hash = (37 * hash) + SIGNATURE_FIELD_NUMBER; hash = (53 * hash) + getSignature().hashCode(); } + if (getAdditionalpointsCount() > 0) { + hash = (37 * hash) + ADDITIONALPOINTS_FIELD_NUMBER; + hash = (53 * hash) + getAdditionalpointsList().hashCode(); + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -12283,6 +13117,7 @@ private Builder( private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { + getAdditionalpointsFieldBuilder(); } } @java.lang.Override @@ -12294,6 +13129,12 @@ public Builder clear() { bitField0_ = (bitField0_ & ~0x00000002); signature_ = com.google.protobuf.ByteString.EMPTY; bitField0_ = (bitField0_ & ~0x00000004); + if (additionalpointsBuilder_ == null) { + additionalpoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + } else { + additionalpointsBuilder_.clear(); + } return this; } @@ -12335,6 +13176,15 @@ public ch.epfl.dedis.lib.proto.Evoting.Partial buildPartial() { to_bitField0_ |= 0x00000002; } result.signature_ = signature_; + if (additionalpointsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + additionalpoints_ = java.util.Collections.unmodifiableList(additionalpoints_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.additionalpoints_ = additionalpoints_; + } else { + result.additionalpoints_ = additionalpointsBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -12400,6 +13250,32 @@ public Builder mergeFrom(ch.epfl.dedis.lib.proto.Evoting.Partial other) { if (other.hasSignature()) { setSignature(other.getSignature()); } + if (additionalpointsBuilder_ == null) { + if (!other.additionalpoints_.isEmpty()) { + if (additionalpoints_.isEmpty()) { + additionalpoints_ = other.additionalpoints_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureAdditionalpointsIsMutable(); + additionalpoints_.addAll(other.additionalpoints_); + } + onChanged(); + } + } else { + if (!other.additionalpoints_.isEmpty()) { + if (additionalpointsBuilder_.isEmpty()) { + additionalpointsBuilder_.dispose(); + additionalpointsBuilder_ = null; + additionalpoints_ = other.additionalpoints_; + bitField0_ = (bitField0_ & ~0x00000008); + additionalpointsBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getAdditionalpointsFieldBuilder() : null; + } else { + additionalpointsBuilder_.addAllMessages(other.additionalpoints_); + } + } + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -12664,56 +13540,1001 @@ public Builder clearSignature() { onChanged(); return this; } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); + private java.util.List additionalpoints_ = + java.util.Collections.emptyList(); + private void ensureAdditionalpointsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + additionalpoints_ = new java.util.ArrayList(additionalpoints_); + bitField0_ |= 0x00000008; + } } + private com.google.protobuf.RepeatedFieldBuilderV3< + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder, ch.epfl.dedis.lib.proto.Evoting.PartialAdditionalOrBuilder> additionalpointsBuilder_; - // @@protoc_insertion_point(builder_scope:evoting.Partial) - } - - // @@protoc_insertion_point(class_scope:evoting.Partial) - private static final ch.epfl.dedis.lib.proto.Evoting.Partial DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new ch.epfl.dedis.lib.proto.Evoting.Partial(); - } - - public static ch.epfl.dedis.lib.proto.Evoting.Partial getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - @java.lang.Deprecated public static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public Partial parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return new Partial(input, extensionRegistry); + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public java.util.List getAdditionalpointsList() { + if (additionalpointsBuilder_ == null) { + return java.util.Collections.unmodifiableList(additionalpoints_); + } else { + return additionalpointsBuilder_.getMessageList(); + } } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public ch.epfl.dedis.lib.proto.Evoting.Partial getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public int getAdditionalpointsCount() { + if (additionalpointsBuilder_ == null) { + return additionalpoints_.size(); + } else { + return additionalpointsBuilder_.getCount(); + } + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional getAdditionalpoints(int index) { + if (additionalpointsBuilder_ == null) { + return additionalpoints_.get(index); + } else { + return additionalpointsBuilder_.getMessage(index); + } + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder setAdditionalpoints( + int index, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional value) { + if (additionalpointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalpointsIsMutable(); + additionalpoints_.set(index, value); + onChanged(); + } else { + additionalpointsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder setAdditionalpoints( + int index, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder builderForValue) { + if (additionalpointsBuilder_ == null) { + ensureAdditionalpointsIsMutable(); + additionalpoints_.set(index, builderForValue.build()); + onChanged(); + } else { + additionalpointsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder addAdditionalpoints(ch.epfl.dedis.lib.proto.Evoting.PartialAdditional value) { + if (additionalpointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalpointsIsMutable(); + additionalpoints_.add(value); + onChanged(); + } else { + additionalpointsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder addAdditionalpoints( + int index, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional value) { + if (additionalpointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalpointsIsMutable(); + additionalpoints_.add(index, value); + onChanged(); + } else { + additionalpointsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder addAdditionalpoints( + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder builderForValue) { + if (additionalpointsBuilder_ == null) { + ensureAdditionalpointsIsMutable(); + additionalpoints_.add(builderForValue.build()); + onChanged(); + } else { + additionalpointsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder addAdditionalpoints( + int index, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder builderForValue) { + if (additionalpointsBuilder_ == null) { + ensureAdditionalpointsIsMutable(); + additionalpoints_.add(index, builderForValue.build()); + onChanged(); + } else { + additionalpointsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder addAllAdditionalpoints( + java.lang.Iterable values) { + if (additionalpointsBuilder_ == null) { + ensureAdditionalpointsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, additionalpoints_); + onChanged(); + } else { + additionalpointsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder clearAdditionalpoints() { + if (additionalpointsBuilder_ == null) { + additionalpoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + additionalpointsBuilder_.clear(); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public Builder removeAdditionalpoints(int index) { + if (additionalpointsBuilder_ == null) { + ensureAdditionalpointsIsMutable(); + additionalpoints_.remove(index); + onChanged(); + } else { + additionalpointsBuilder_.remove(index); + } + return this; + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder getAdditionalpointsBuilder( + int index) { + return getAdditionalpointsFieldBuilder().getBuilder(index); + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditionalOrBuilder getAdditionalpointsOrBuilder( + int index) { + if (additionalpointsBuilder_ == null) { + return additionalpoints_.get(index); } else { + return additionalpointsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public java.util.List + getAdditionalpointsOrBuilderList() { + if (additionalpointsBuilder_ != null) { + return additionalpointsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(additionalpoints_); + } + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder addAdditionalpointsBuilder() { + return getAdditionalpointsFieldBuilder().addBuilder( + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.getDefaultInstance()); + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder addAdditionalpointsBuilder( + int index) { + return getAdditionalpointsFieldBuilder().addBuilder( + index, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.getDefaultInstance()); + } + /** + *
+       * Additional points from decrypted plaintexts.
+       * To keep backward-compatibility in the resulting protobuf,
+       * these points are added at the end of the structure.
+       * 
+ * + * repeated .evoting.PartialAdditional additionalpoints = 4; + */ + public java.util.List + getAdditionalpointsBuilderList() { + return getAdditionalpointsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder, ch.epfl.dedis.lib.proto.Evoting.PartialAdditionalOrBuilder> + getAdditionalpointsFieldBuilder() { + if (additionalpointsBuilder_ == null) { + additionalpointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder, ch.epfl.dedis.lib.proto.Evoting.PartialAdditionalOrBuilder>( + additionalpoints_, + ((bitField0_ & 0x00000008) != 0), + getParentForChildren(), + isClean()); + additionalpoints_ = null; + } + return additionalpointsBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:evoting.Partial) + } + + // @@protoc_insertion_point(class_scope:evoting.Partial) + private static final ch.epfl.dedis.lib.proto.Evoting.Partial DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new ch.epfl.dedis.lib.proto.Evoting.Partial(); + } + + public static ch.epfl.dedis.lib.proto.Evoting.Partial getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated public static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Partial parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new Partial(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public ch.epfl.dedis.lib.proto.Evoting.Partial getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PartialAdditionalOrBuilder extends + // @@protoc_insertion_point(interface_extends:evoting.PartialAdditional) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated bytes additionalpoints = 1; + * @return A list containing the additionalpoints. + */ + java.util.List getAdditionalpointsList(); + /** + * repeated bytes additionalpoints = 1; + * @return The count of additionalpoints. + */ + int getAdditionalpointsCount(); + /** + * repeated bytes additionalpoints = 1; + * @param index The index of the element to return. + * @return The additionalpoints at the given index. + */ + com.google.protobuf.ByteString getAdditionalpoints(int index); + } + /** + * Protobuf type {@code evoting.PartialAdditional} + */ + public static final class PartialAdditional extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:evoting.PartialAdditional) + PartialAdditionalOrBuilder { + private static final long serialVersionUID = 0L; + // Use PartialAdditional.newBuilder() to construct. + private PartialAdditional(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PartialAdditional() { + additionalpoints_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new PartialAdditional(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private PartialAdditional( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + if (!((mutable_bitField0_ & 0x00000001) != 0)) { + additionalpoints_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + additionalpoints_.add(input.readBytes()); + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) != 0)) { + additionalpoints_ = java.util.Collections.unmodifiableList(additionalpoints_); // C + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return ch.epfl.dedis.lib.proto.Evoting.internal_static_evoting_PartialAdditional_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return ch.epfl.dedis.lib.proto.Evoting.internal_static_evoting_PartialAdditional_fieldAccessorTable + .ensureFieldAccessorsInitialized( + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.class, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder.class); + } + + public static final int ADDITIONALPOINTS_FIELD_NUMBER = 1; + private java.util.List additionalpoints_; + /** + * repeated bytes additionalpoints = 1; + * @return A list containing the additionalpoints. + */ + @java.lang.Override + public java.util.List + getAdditionalpointsList() { + return additionalpoints_; + } + /** + * repeated bytes additionalpoints = 1; + * @return The count of additionalpoints. + */ + public int getAdditionalpointsCount() { + return additionalpoints_.size(); + } + /** + * repeated bytes additionalpoints = 1; + * @param index The index of the element to return. + * @return The additionalpoints at the given index. + */ + public com.google.protobuf.ByteString getAdditionalpoints(int index) { + return additionalpoints_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < additionalpoints_.size(); i++) { + output.writeBytes(1, additionalpoints_.get(i)); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < additionalpoints_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeBytesSizeNoTag(additionalpoints_.get(i)); + } + size += dataSize; + size += 1 * getAdditionalpointsList().size(); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof ch.epfl.dedis.lib.proto.Evoting.PartialAdditional)) { + return super.equals(obj); + } + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional other = (ch.epfl.dedis.lib.proto.Evoting.PartialAdditional) obj; + + if (!getAdditionalpointsList() + .equals(other.getAdditionalpointsList())) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getAdditionalpointsCount() > 0) { + hash = (37 * hash) + ADDITIONALPOINTS_FIELD_NUMBER; + hash = (53 * hash) + getAdditionalpointsList().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(ch.epfl.dedis.lib.proto.Evoting.PartialAdditional prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code evoting.PartialAdditional} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:evoting.PartialAdditional) + ch.epfl.dedis.lib.proto.Evoting.PartialAdditionalOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return ch.epfl.dedis.lib.proto.Evoting.internal_static_evoting_PartialAdditional_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return ch.epfl.dedis.lib.proto.Evoting.internal_static_evoting_PartialAdditional_fieldAccessorTable + .ensureFieldAccessorsInitialized( + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.class, ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.Builder.class); + } + + // Construct using ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + additionalpoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return ch.epfl.dedis.lib.proto.Evoting.internal_static_evoting_PartialAdditional_descriptor; + } + + @java.lang.Override + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional getDefaultInstanceForType() { + return ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.getDefaultInstance(); + } + + @java.lang.Override + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional build() { + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional buildPartial() { + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional result = new ch.epfl.dedis.lib.proto.Evoting.PartialAdditional(this); + int from_bitField0_ = bitField0_; + if (((bitField0_ & 0x00000001) != 0)) { + additionalpoints_ = java.util.Collections.unmodifiableList(additionalpoints_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.additionalpoints_ = additionalpoints_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof ch.epfl.dedis.lib.proto.Evoting.PartialAdditional) { + return mergeFrom((ch.epfl.dedis.lib.proto.Evoting.PartialAdditional)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(ch.epfl.dedis.lib.proto.Evoting.PartialAdditional other) { + if (other == ch.epfl.dedis.lib.proto.Evoting.PartialAdditional.getDefaultInstance()) return this; + if (!other.additionalpoints_.isEmpty()) { + if (additionalpoints_.isEmpty()) { + additionalpoints_ = other.additionalpoints_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureAdditionalpointsIsMutable(); + additionalpoints_.addAll(other.additionalpoints_); + } + onChanged(); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + ch.epfl.dedis.lib.proto.Evoting.PartialAdditional parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (ch.epfl.dedis.lib.proto.Evoting.PartialAdditional) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + private java.util.List additionalpoints_ = java.util.Collections.emptyList(); + private void ensureAdditionalpointsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + additionalpoints_ = new java.util.ArrayList(additionalpoints_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated bytes additionalpoints = 1; + * @return A list containing the additionalpoints. + */ + public java.util.List + getAdditionalpointsList() { + return ((bitField0_ & 0x00000001) != 0) ? + java.util.Collections.unmodifiableList(additionalpoints_) : additionalpoints_; + } + /** + * repeated bytes additionalpoints = 1; + * @return The count of additionalpoints. + */ + public int getAdditionalpointsCount() { + return additionalpoints_.size(); + } + /** + * repeated bytes additionalpoints = 1; + * @param index The index of the element to return. + * @return The additionalpoints at the given index. + */ + public com.google.protobuf.ByteString getAdditionalpoints(int index) { + return additionalpoints_.get(index); + } + /** + * repeated bytes additionalpoints = 1; + * @param index The index to set the value at. + * @param value The additionalpoints to set. + * @return This builder for chaining. + */ + public Builder setAdditionalpoints( + int index, com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalpointsIsMutable(); + additionalpoints_.set(index, value); + onChanged(); + return this; + } + /** + * repeated bytes additionalpoints = 1; + * @param value The additionalpoints to add. + * @return This builder for chaining. + */ + public Builder addAdditionalpoints(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + ensureAdditionalpointsIsMutable(); + additionalpoints_.add(value); + onChanged(); + return this; + } + /** + * repeated bytes additionalpoints = 1; + * @param values The additionalpoints to add. + * @return This builder for chaining. + */ + public Builder addAllAdditionalpoints( + java.lang.Iterable values) { + ensureAdditionalpointsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, additionalpoints_); + onChanged(); + return this; + } + /** + * repeated bytes additionalpoints = 1; + * @return This builder for chaining. + */ + public Builder clearAdditionalpoints() { + additionalpoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:evoting.PartialAdditional) + } + + // @@protoc_insertion_point(class_scope:evoting.PartialAdditional) + private static final ch.epfl.dedis.lib.proto.Evoting.PartialAdditional DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new ch.epfl.dedis.lib.proto.Evoting.PartialAdditional(); + } + + public static ch.epfl.dedis.lib.proto.Evoting.PartialAdditional getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + @java.lang.Deprecated public static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PartialAdditional parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new PartialAdditional(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public ch.epfl.dedis.lib.proto.Evoting.PartialAdditional getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } } @@ -12772,6 +14593,11 @@ public ch.epfl.dedis.lib.proto.Evoting.Partial getDefaultInstanceForType() { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_evoting_Partial_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_evoting_PartialAdditional_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_evoting_PartialAdditional_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -12808,13 +14634,17 @@ public ch.epfl.dedis.lib.proto.Evoting.Partial getDefaultInstanceForType() { "\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"X\n\006Foote" + "r\022\014\n\004text\030\001 \002(\t\022\024\n\014contacttitle\030\002 \002(\t\022\024\n" + "\014contactphone\030\003 \002(\t\022\024\n\014contactemail\030\004 \002(" + - "\t\"3\n\006Ballot\022\014\n\004user\030\001 \002(\r\022\r\n\005alpha\030\002 \002(\014" + - "\022\014\n\004beta\030\003 \002(\014\"Y\n\003Mix\022 \n\007ballots\030\001 \003(\0132\017" + - ".evoting.Ballot\022\r\n\005proof\030\002 \002(\014\022\016\n\006nodeid" + - "\030\003 \002(\014\022\021\n\tsignature\030\004 \002(\014\"<\n\007Partial\022\016\n\006" + - "points\030\001 \003(\014\022\016\n\006nodeid\030\002 \002(\014\022\021\n\tsignatur" + - "e\030\003 \002(\014B\"\n\027ch.epfl.dedis.lib.protoB\007Evot" + - "ing" + "\t\"f\n\006Ballot\022\014\n\004user\030\001 \002(\r\022\r\n\005alpha\030\002 \002(\014" + + "\022\014\n\004beta\030\003 \002(\014\022\030\n\020additionalalphas\030\004 \003(\014" + + "\022\027\n\017additionalbetas\030\005 \003(\014\"s\n\003Mix\022 \n\007ball" + + "ots\030\001 \003(\0132\017.evoting.Ballot\022\r\n\005proof\030\002 \002(" + + "\014\022\016\n\006nodeid\030\003 \002(\014\022\021\n\tsignature\030\004 \002(\014\022\030\n\020" + + "additionalproofs\030\005 \003(\014\"r\n\007Partial\022\016\n\006poi" + + "nts\030\001 \003(\014\022\016\n\006nodeid\030\002 \002(\014\022\021\n\tsignature\030\003" + + " \002(\014\0224\n\020additionalpoints\030\004 \003(\0132\032.evoting" + + ".PartialAdditional\"-\n\021PartialAdditional\022" + + "\030\n\020additionalpoints\030\001 \003(\014B\"\n\027ch.epfl.ded" + + "is.lib.protoB\007Evoting" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -12874,19 +14704,25 @@ public ch.epfl.dedis.lib.proto.Evoting.Partial getDefaultInstanceForType() { internal_static_evoting_Ballot_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_evoting_Ballot_descriptor, - new java.lang.String[] { "User", "Alpha", "Beta", }); + new java.lang.String[] { "User", "Alpha", "Beta", "Additionalalphas", "Additionalbetas", }); internal_static_evoting_Mix_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_evoting_Mix_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_evoting_Mix_descriptor, - new java.lang.String[] { "Ballots", "Proof", "Nodeid", "Signature", }); + new java.lang.String[] { "Ballots", "Proof", "Nodeid", "Signature", "Additionalproofs", }); internal_static_evoting_Partial_descriptor = getDescriptor().getMessageTypes().get(7); internal_static_evoting_Partial_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_evoting_Partial_descriptor, - new java.lang.String[] { "Points", "Nodeid", "Signature", }); + new java.lang.String[] { "Points", "Nodeid", "Signature", "Additionalpoints", }); + internal_static_evoting_PartialAdditional_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_evoting_PartialAdditional_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_evoting_PartialAdditional_descriptor, + new java.lang.String[] { "Additionalpoints", }); ch.epfl.dedis.lib.proto.OnetProto.getDescriptor(); } diff --git a/external/js/cothority/src/protobuf/models.json b/external/js/cothority/src/protobuf/models.json index f5c031f23..3724e57de 100644 --- a/external/js/cothority/src/protobuf/models.json +++ b/external/js/cothority/src/protobuf/models.json @@ -1 +1 @@ -{"nested":{"cothority":{},"authprox":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"AuthProxProto"},"nested":{"EnrollRequest":{"fields":{"type":{"rule":"required","type":"string","id":1},"issuer":{"rule":"required","type":"string","id":2},"participants":{"rule":"repeated","type":"bytes","id":3},"longpri":{"rule":"required","type":"PriShare","id":4},"longpubs":{"rule":"repeated","type":"bytes","id":5}}},"EnrollResponse":{"fields":{}},"SignatureRequest":{"fields":{"type":{"rule":"required","type":"string","id":1},"issuer":{"rule":"required","type":"string","id":2},"authinfo":{"rule":"required","type":"bytes","id":3},"randpri":{"rule":"required","type":"PriShare","id":4},"randpubs":{"rule":"repeated","type":"bytes","id":5},"message":{"rule":"required","type":"bytes","id":6}}},"PriShare":{"fields":{}},"PartialSig":{"fields":{"partial":{"rule":"required","type":"PriShare","id":1},"sessionid":{"rule":"required","type":"bytes","id":2},"signature":{"rule":"required","type":"bytes","id":3}}},"SignatureResponse":{"fields":{"partialsignature":{"rule":"required","type":"PartialSig","id":1}}},"EnrollmentsRequest":{"fields":{"types":{"rule":"repeated","type":"string","id":1},"issuers":{"rule":"repeated","type":"string","id":2}}},"EnrollmentsResponse":{"fields":{"enrollments":{"rule":"repeated","type":"EnrollmentInfo","id":1,"options":{"packed":false}}}},"EnrollmentInfo":{"fields":{"type":{"rule":"required","type":"string","id":1},"issuer":{"rule":"required","type":"string","id":2},"public":{"rule":"required","type":"bytes","id":3}}}}},"bevm":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"BEvmProto"},"nested":{"ViewCallRequest":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"bevminstanceid":{"rule":"required","type":"bytes","id":2},"accountaddress":{"rule":"required","type":"bytes","id":3},"contractaddress":{"rule":"required","type":"bytes","id":4},"calldata":{"rule":"required","type":"bytes","id":5},"minblockindex":{"rule":"required","type":"sint32","id":6}}},"ViewCallResponse":{"fields":{"result":{"rule":"required","type":"bytes","id":1}}}}},"byzcoin":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"ByzCoinProto"},"nested":{"GetAllByzCoinIDsRequest":{"fields":{}},"GetAllByzCoinIDsResponse":{"fields":{"ids":{"rule":"repeated","type":"bytes","id":1}}},"DataHeader":{"fields":{"trieroot":{"rule":"required","type":"bytes","id":1},"clienttransactionhash":{"rule":"required","type":"bytes","id":2},"statechangeshash":{"rule":"required","type":"bytes","id":3},"timestamp":{"rule":"required","type":"sint64","id":4},"version":{"type":"sint32","id":5}}},"DataBody":{"fields":{"txresults":{"rule":"repeated","type":"TxResult","id":1,"options":{"packed":false}}}},"CreateGenesisBlock":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"roster":{"rule":"required","type":"onet.Roster","id":2},"genesisdarc":{"rule":"required","type":"darc.Darc","id":3},"blockinterval":{"rule":"required","type":"sint64","id":4},"maxblocksize":{"type":"sint32","id":5},"darccontractids":{"rule":"repeated","type":"string","id":6}}},"CreateGenesisBlockResponse":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"skipblock":{"type":"skipchain.SkipBlock","id":2}}},"AddTxRequest":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"skipchainid":{"rule":"required","type":"bytes","id":2},"transaction":{"rule":"required","type":"ClientTransaction","id":3},"inclusionwait":{"type":"sint32","id":4},"prooffrom":{"type":"bytes","id":5},"flags":{"type":"sint32","id":6}}},"AddTxResponse":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"error":{"type":"string","id":2},"proof":{"type":"Proof","id":3}}},"GetProof":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"key":{"rule":"required","type":"bytes","id":2},"id":{"rule":"required","type":"bytes","id":3},"mustcontainblock":{"type":"bytes","id":4}}},"GetProofResponse":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"proof":{"rule":"required","type":"Proof","id":2}}},"CheckAuthorization":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"byzcoinid":{"rule":"required","type":"bytes","id":2},"darcid":{"rule":"required","type":"bytes","id":3},"identities":{"rule":"repeated","type":"darc.Identity","id":4,"options":{"packed":false}}}},"CheckAuthorizationResponse":{"fields":{"actions":{"rule":"repeated","type":"string","id":1}}},"ChainConfig":{"fields":{"blockinterval":{"rule":"required","type":"sint64","id":1},"roster":{"rule":"required","type":"onet.Roster","id":2},"maxblocksize":{"rule":"required","type":"sint32","id":3},"darccontractids":{"rule":"repeated","type":"string","id":4}}},"Proof":{"fields":{"inclusionproof":{"rule":"required","type":"trie.Proof","id":1},"latest":{"rule":"required","type":"skipchain.SkipBlock","id":2},"links":{"rule":"repeated","type":"skipchain.ForwardLink","id":3,"options":{"packed":false}}}},"Instruction":{"fields":{"instanceid":{"rule":"required","type":"bytes","id":1},"spawn":{"type":"Spawn","id":2},"invoke":{"type":"Invoke","id":3},"delete":{"type":"Delete","id":4},"signercounter":{"rule":"repeated","type":"uint64","id":5,"options":{"packed":true}},"signeridentities":{"rule":"repeated","type":"darc.Identity","id":6,"options":{"packed":false}},"signatures":{"rule":"repeated","type":"bytes","id":7}}},"Spawn":{"fields":{"contractid":{"rule":"required","type":"string","id":1},"args":{"rule":"repeated","type":"Argument","id":2,"options":{"packed":false}}}},"Invoke":{"fields":{"contractid":{"rule":"required","type":"string","id":1},"command":{"rule":"required","type":"string","id":2},"args":{"rule":"repeated","type":"Argument","id":3,"options":{"packed":false}}}},"Delete":{"fields":{"contractid":{"rule":"required","type":"string","id":1},"args":{"rule":"repeated","type":"Argument","id":2,"options":{"packed":false}}}},"Argument":{"fields":{"name":{"rule":"required","type":"string","id":1},"value":{"rule":"required","type":"bytes","id":2}}},"ClientTransaction":{"fields":{"instructions":{"rule":"repeated","type":"Instruction","id":1,"options":{"packed":false}}}},"TxResult":{"fields":{"clienttransaction":{"rule":"required","type":"ClientTransaction","id":1},"accepted":{"rule":"required","type":"bool","id":2}}},"StateChange":{"fields":{"stateaction":{"rule":"required","type":"sint32","id":1},"instanceid":{"rule":"required","type":"bytes","id":2},"contractid":{"rule":"required","type":"string","id":3},"value":{"rule":"required","type":"bytes","id":4},"darcid":{"rule":"required","type":"bytes","id":5},"version":{"rule":"required","type":"uint64","id":6}}},"Coin":{"fields":{"name":{"rule":"required","type":"bytes","id":1},"value":{"rule":"required","type":"uint64","id":2}}},"StreamingRequest":{"fields":{"id":{"rule":"required","type":"bytes","id":1}}},"StreamingResponse":{"fields":{"block":{"type":"skipchain.SkipBlock","id":1}}},"PaginateRequest":{"fields":{"startid":{"rule":"required","type":"bytes","id":1},"pagesize":{"rule":"required","type":"uint64","id":2},"numpages":{"rule":"required","type":"uint64","id":3},"backward":{"rule":"required","type":"bool","id":4}}},"PaginateResponse":{"fields":{"blocks":{"rule":"repeated","type":"skipchain.SkipBlock","id":1,"options":{"packed":false}},"pagenumber":{"rule":"required","type":"uint64","id":2},"backward":{"rule":"required","type":"bool","id":3},"errorcode":{"rule":"required","type":"uint64","id":4},"errortext":{"rule":"repeated","type":"string","id":5}}},"DownloadState":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"nonce":{"rule":"required","type":"uint64","id":2},"length":{"rule":"required","type":"sint32","id":3}}},"DownloadStateResponse":{"fields":{"keyvalues":{"rule":"repeated","type":"DBKeyValue","id":1,"options":{"packed":false}},"nonce":{"rule":"required","type":"uint64","id":2},"total":{"type":"sint32","id":3}}},"DBKeyValue":{"fields":{"key":{"rule":"required","type":"bytes","id":1},"value":{"rule":"required","type":"bytes","id":2}}},"StateChangeBody":{"fields":{"stateaction":{"rule":"required","type":"sint32","id":1},"contractid":{"rule":"required","type":"string","id":2},"value":{"rule":"required","type":"bytes","id":3},"version":{"rule":"required","type":"uint64","id":4},"darcid":{"rule":"required","type":"bytes","id":5}}},"GetSignerCounters":{"fields":{"signerids":{"rule":"repeated","type":"string","id":1},"skipchainid":{"rule":"required","type":"bytes","id":2}}},"GetSignerCountersResponse":{"fields":{"counters":{"rule":"repeated","type":"uint64","id":1,"options":{"packed":true}},"index":{"type":"uint64","id":2}}},"GetInstanceVersion":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2},"version":{"rule":"required","type":"uint64","id":3}}},"GetLastInstanceVersion":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2}}},"GetInstanceVersionResponse":{"fields":{"statechange":{"rule":"required","type":"StateChange","id":1},"blockindex":{"rule":"required","type":"sint32","id":2}}},"GetAllInstanceVersion":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2}}},"GetAllInstanceVersionResponse":{"fields":{"statechanges":{"rule":"repeated","type":"GetInstanceVersionResponse","id":1,"options":{"packed":false}}}},"CheckStateChangeValidity":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2},"version":{"rule":"required","type":"uint64","id":3}}},"CheckStateChangeValidityResponse":{"fields":{"statechanges":{"rule":"repeated","type":"StateChange","id":1,"options":{"packed":false}},"blockid":{"rule":"required","type":"bytes","id":2}}},"ResolveInstanceID":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"darcid":{"rule":"required","type":"bytes","id":2},"name":{"rule":"required","type":"string","id":3}}},"ResolvedInstanceID":{"fields":{"instanceid":{"rule":"required","type":"bytes","id":1}}},"DebugRequest":{"fields":{"byzcoinid":{"type":"bytes","id":1}}},"DebugResponse":{"fields":{"byzcoins":{"rule":"repeated","type":"DebugResponseByzcoin","id":1,"options":{"packed":false}},"dump":{"rule":"repeated","type":"DebugResponseState","id":2,"options":{"packed":false}}}},"DebugResponseByzcoin":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"genesis":{"type":"skipchain.SkipBlock","id":2},"latest":{"type":"skipchain.SkipBlock","id":3}}},"DebugResponseState":{"fields":{"key":{"rule":"required","type":"bytes","id":1},"state":{"rule":"required","type":"StateChangeBody","id":2}}},"DebugRemoveRequest":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"signature":{"rule":"required","type":"bytes","id":2}}},"IDVersion":{"fields":{"id":{"rule":"required","type":"bytes","id":1},"version":{"rule":"required","type":"uint64","id":2}}},"GetUpdatesRequest":{"fields":{"instances":{"rule":"repeated","type":"IDVersion","id":1,"options":{"packed":false}},"flags":{"rule":"required","type":"uint64","id":2},"latestblockid":{"type":"bytes","id":3},"skipchainid":{"type":"bytes","id":4}}},"GetUpdatesReply":{"fields":{"proofs":{"rule":"repeated","type":"trie.Proof","id":1,"options":{"packed":false}},"links":{"rule":"repeated","type":"skipchain.ForwardLink","id":2,"options":{"packed":false}},"latest":{"type":"skipchain.SkipBlock","id":3}}}}},"skipchain":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"SkipchainProto"},"nested":{"StoreSkipBlock":{"fields":{"targetSkipChainID":{"rule":"required","type":"bytes","id":1},"newBlock":{"rule":"required","type":"SkipBlock","id":2},"signature":{"type":"bytes","id":3}}},"StoreSkipBlockReply":{"fields":{"previous":{"type":"SkipBlock","id":1},"latest":{"rule":"required","type":"SkipBlock","id":2}}},"GetAllSkipChainIDs":{"fields":{}},"GetAllSkipChainIDsReply":{"fields":{"skipChainIDs":{"rule":"repeated","type":"bytes","id":1}}},"GetSingleBlock":{"fields":{"id":{"rule":"required","type":"bytes","id":1}}},"GetSingleBlockByIndex":{"fields":{"genesis":{"rule":"required","type":"bytes","id":1},"index":{"rule":"required","type":"sint32","id":2}}},"GetSingleBlockByIndexReply":{"fields":{"skipblock":{"rule":"required","type":"SkipBlock","id":1},"links":{"rule":"repeated","type":"ForwardLink","id":2,"options":{"packed":false}}}},"GetUpdateChain":{"fields":{"latestID":{"rule":"required","type":"bytes","id":1},"maxHeight":{"type":"sint32","id":2},"maxBlocks":{"type":"sint32","id":3}}},"GetUpdateChainReply":{"fields":{"update":{"rule":"repeated","type":"SkipBlock","id":1,"options":{"packed":false}}}},"SkipBlock":{"fields":{"index":{"rule":"required","type":"sint32","id":1},"height":{"rule":"required","type":"sint32","id":2},"maxHeight":{"rule":"required","type":"sint32","id":3},"baseHeight":{"rule":"required","type":"sint32","id":4},"backlinks":{"rule":"repeated","type":"bytes","id":5},"verifiers":{"rule":"repeated","type":"bytes","id":6},"genesis":{"rule":"required","type":"bytes","id":7},"data":{"rule":"required","type":"bytes","id":8},"roster":{"rule":"required","type":"onet.Roster","id":9},"hash":{"rule":"required","type":"bytes","id":10},"forward":{"rule":"repeated","type":"ForwardLink","id":11,"options":{"packed":false}},"payload":{"type":"bytes","id":12},"signatureScheme":{"type":"uint32","id":13}}},"ForwardLink":{"fields":{"from":{"rule":"required","type":"bytes","id":1},"to":{"rule":"required","type":"bytes","id":2},"newRoster":{"type":"onet.Roster","id":3},"signature":{"rule":"required","type":"ByzcoinSig","id":4}}},"ByzcoinSig":{"fields":{"msg":{"rule":"required","type":"bytes","id":1},"sig":{"rule":"required","type":"bytes","id":2}}},"SchnorrSig":{"fields":{"challenge":{"rule":"required","type":"bytes","id":1},"response":{"rule":"required","type":"bytes","id":2}}},"Exception":{"fields":{"index":{"rule":"required","type":"sint32","id":1},"commitment":{"rule":"required","type":"bytes","id":2}}}}},"onet":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"OnetProto"},"nested":{"Roster":{"fields":{"id":{"type":"bytes","id":1},"list":{"rule":"repeated","type":"network.ServerIdentity","id":2,"options":{"packed":false}},"aggregate":{"rule":"required","type":"bytes","id":3}}},"Status":{"fields":{"field":{"keyType":"string","type":"string","id":1}}}}},"network":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"NetworkProto"},"nested":{"ServerIdentity":{"fields":{"public":{"rule":"required","type":"bytes","id":1},"serviceIdentities":{"rule":"repeated","type":"ServiceIdentity","id":2,"options":{"packed":false}},"id":{"rule":"required","type":"bytes","id":3},"address":{"rule":"required","type":"string","id":4},"description":{"rule":"required","type":"string","id":5},"url":{"type":"string","id":7}}},"ServiceIdentity":{"fields":{"name":{"rule":"required","type":"string","id":1},"suite":{"rule":"required","type":"string","id":2},"public":{"rule":"required","type":"bytes","id":3}}}}},"darc":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"DarcProto"},"nested":{"Darc":{"fields":{"version":{"rule":"required","type":"uint64","id":1},"description":{"rule":"required","type":"bytes","id":2},"baseid":{"type":"bytes","id":3},"previd":{"rule":"required","type":"bytes","id":4},"rules":{"rule":"required","type":"Rules","id":5},"signatures":{"rule":"repeated","type":"Signature","id":6,"options":{"packed":false}},"verificationdarcs":{"rule":"repeated","type":"Darc","id":7,"options":{"packed":false}}}},"Identity":{"fields":{"darc":{"type":"IdentityDarc","id":1},"ed25519":{"type":"IdentityEd25519","id":2},"x509ec":{"type":"IdentityX509EC","id":3},"proxy":{"type":"IdentityProxy","id":4},"evmcontract":{"type":"IdentityEvmContract","id":5},"did":{"type":"IdentityDID","id":6},"tsm":{"type":"IdentityTSM","id":7}}},"IdentityEd25519":{"fields":{"point":{"rule":"required","type":"bytes","id":1}}},"IdentityTSM":{"fields":{"publickey":{"rule":"required","type":"bytes","id":1}}},"IdentityX509EC":{"fields":{"public":{"rule":"required","type":"bytes","id":1}}},"IdentityProxy":{"fields":{"data":{"rule":"required","type":"string","id":1},"public":{"rule":"required","type":"bytes","id":2}}},"IdentityDarc":{"fields":{"id":{"rule":"required","type":"bytes","id":1}}},"IdentityEvmContract":{"fields":{"address":{"rule":"required","type":"bytes","id":1}}},"IdentityDID":{"fields":{"did":{"rule":"required","type":"string","id":1},"diddoc":{"type":"DIDDoc","id":2},"method":{"rule":"required","type":"string","id":3}}},"DIDDoc":{"fields":{"context":{"rule":"repeated","type":"string","id":1},"id":{"rule":"required","type":"string","id":2},"publickey":{"rule":"repeated","type":"PublicKey","id":3,"options":{"packed":false}},"service":{"rule":"repeated","type":"DIDService","id":4,"options":{"packed":false}},"authentication":{"rule":"repeated","type":"VerificationMethod","id":5,"options":{"packed":false}}}},"PublicKey":{"fields":{"id":{"rule":"required","type":"string","id":1},"type":{"rule":"required","type":"string","id":2},"controller":{"rule":"required","type":"string","id":3},"value":{"rule":"required","type":"bytes","id":4}}},"DIDService":{"fields":{"id":{"rule":"required","type":"string","id":1},"type":{"rule":"required","type":"string","id":2},"priority":{"rule":"required","type":"sint32","id":3},"recipientkeys":{"rule":"repeated","type":"string","id":4},"routingkeys":{"rule":"repeated","type":"string","id":5},"serviceendpoint":{"rule":"required","type":"string","id":6}}},"VerificationMethod":{"fields":{"publickey":{"rule":"required","type":"PublicKey","id":1}}},"Signature":{"fields":{"signature":{"rule":"required","type":"bytes","id":1},"signer":{"rule":"required","type":"Identity","id":2}}},"Signer":{"fields":{"ed25519":{"type":"SignerEd25519","id":1},"x509ec":{"type":"SignerX509EC","id":2},"proxy":{"type":"SignerProxy","id":3},"evmcontract":{"type":"SignerEvmContract","id":4},"did":{"type":"SignerDID","id":5}}},"SignerEd25519":{"fields":{"point":{"rule":"required","type":"bytes","id":1},"secret":{"rule":"required","type":"bytes","id":2}}},"SignerX509EC":{"fields":{"point":{"rule":"required","type":"bytes","id":1}}},"SignerProxy":{"fields":{"data":{"rule":"required","type":"string","id":1},"public":{"rule":"required","type":"bytes","id":2}}},"SignerEvmContract":{"fields":{"address":{"rule":"required","type":"bytes","id":1}}},"SignerDID":{"fields":{"public":{"rule":"required","type":"bytes","id":1},"secret":{"rule":"required","type":"bytes","id":2},"did":{"rule":"required","type":"string","id":3}}},"Request":{"fields":{"baseid":{"rule":"required","type":"bytes","id":1},"action":{"rule":"required","type":"string","id":2},"msg":{"rule":"required","type":"bytes","id":3},"identities":{"rule":"repeated","type":"Identity","id":4,"options":{"packed":false}},"signatures":{"rule":"repeated","type":"bytes","id":5}}},"Rules":{"fields":{"list":{"rule":"repeated","type":"Rule","id":1,"options":{"packed":false}}}},"Rule":{"fields":{"action":{"rule":"required","type":"string","id":1},"expr":{"rule":"required","type":"bytes","id":2}}}}},"trie":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"TrieProto"},"nested":{"InteriorNode":{"fields":{"left":{"rule":"required","type":"bytes","id":1},"right":{"rule":"required","type":"bytes","id":2}}},"EmptyNode":{"fields":{"prefix":{"rule":"repeated","type":"bool","id":1,"options":{"packed":true}}}},"LeafNode":{"fields":{"prefix":{"rule":"repeated","type":"bool","id":1,"options":{"packed":true}},"key":{"rule":"required","type":"bytes","id":2},"value":{"rule":"required","type":"bytes","id":3}}},"Proof":{"fields":{"interiors":{"rule":"repeated","type":"InteriorNode","id":1,"options":{"packed":false}},"leaf":{"rule":"required","type":"LeafNode","id":2},"empty":{"rule":"required","type":"EmptyNode","id":3},"nonce":{"rule":"required","type":"bytes","id":4}}}}},"calypso":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"Calypso"},"nested":{"Write":{"fields":{"data":{"rule":"required","type":"bytes","id":1},"u":{"rule":"required","type":"bytes","id":2},"ubar":{"rule":"required","type":"bytes","id":3},"e":{"rule":"required","type":"bytes","id":4},"f":{"rule":"required","type":"bytes","id":5},"c":{"rule":"required","type":"bytes","id":6},"extradata":{"type":"bytes","id":7},"ltsid":{"rule":"required","type":"bytes","id":8},"cost":{"type":"byzcoin.Coin","id":9}}},"Read":{"fields":{"write":{"rule":"required","type":"bytes","id":1},"xc":{"rule":"required","type":"bytes","id":2}}},"Authorise":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1}}},"AuthoriseReply":{"fields":{}},"Authorize":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"timestamp":{"type":"sint64","id":2},"signature":{"type":"bytes","id":3}}},"AuthorizeReply":{"fields":{}},"CreateLTS":{"fields":{"proof":{"rule":"required","type":"byzcoin.Proof","id":1}}},"CreateLTSReply":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2},"x":{"rule":"required","type":"bytes","id":3}}},"ReshareLTS":{"fields":{"proof":{"rule":"required","type":"byzcoin.Proof","id":1}}},"ReshareLTSReply":{"fields":{}},"UpdateValidPeers":{"fields":{"proof":{"rule":"required","type":"byzcoin.Proof","id":1}}},"UpdateValidPeersReply":{"fields":{}},"DecryptKey":{"fields":{"read":{"rule":"required","type":"byzcoin.Proof","id":1},"write":{"rule":"required","type":"byzcoin.Proof","id":2}}},"DecryptKeyReply":{"fields":{"c":{"rule":"required","type":"bytes","id":1},"xhatenc":{"rule":"required","type":"bytes","id":2},"x":{"rule":"required","type":"bytes","id":3}}},"GetLTSReply":{"fields":{"ltsid":{"rule":"required","type":"bytes","id":1}}},"LtsInstanceInfo":{"fields":{"roster":{"rule":"required","type":"onet.Roster","id":1}}}}},"eventlog":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"EventLogProto"},"nested":{"SearchRequest":{"fields":{"instance":{"rule":"required","type":"bytes","id":1},"id":{"rule":"required","type":"bytes","id":2},"topic":{"rule":"required","type":"string","id":3},"from":{"rule":"required","type":"sint64","id":4},"to":{"rule":"required","type":"sint64","id":5}}},"SearchResponse":{"fields":{"events":{"rule":"repeated","type":"Event","id":1,"options":{"packed":false}},"truncated":{"rule":"required","type":"bool","id":2}}},"Event":{"fields":{"when":{"rule":"required","type":"sint64","id":1},"topic":{"rule":"required","type":"string","id":2},"content":{"rule":"required","type":"string","id":3}}}}},"evoting":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"Evoting"},"nested":{"Transaction":{"fields":{"master":{"type":"Master","id":1},"link":{"type":"Link","id":2},"election":{"type":"Election","id":3},"ballot":{"type":"Ballot","id":4},"mix":{"type":"Mix","id":5},"partial":{"type":"Partial","id":6},"user":{"rule":"required","type":"uint32","id":7},"signature":{"rule":"required","type":"bytes","id":8}}},"Master":{"fields":{"id":{"rule":"required","type":"bytes","id":1},"roster":{"type":"onet.Roster","id":2},"admins":{"rule":"repeated","type":"uint32","id":3,"options":{"packed":true}},"key":{"rule":"required","type":"bytes","id":4}}},"Link":{"fields":{"id":{"rule":"required","type":"bytes","id":1}}},"Election":{"fields":{"name":{"keyType":"string","type":"string","id":1},"creator":{"rule":"required","type":"uint32","id":2},"users":{"rule":"repeated","type":"uint32","id":3,"options":{"packed":true}},"id":{"rule":"required","type":"bytes","id":4},"master":{"rule":"required","type":"bytes","id":5},"roster":{"type":"onet.Roster","id":6},"key":{"rule":"required","type":"bytes","id":7},"masterkey":{"rule":"required","type":"bytes","id":8},"stage":{"rule":"required","type":"uint32","id":9},"candidates":{"rule":"repeated","type":"uint32","id":10,"options":{"packed":true}},"maxchoices":{"rule":"required","type":"sint32","id":11},"subtitle":{"keyType":"string","type":"string","id":12},"moreinfo":{"rule":"required","type":"string","id":13},"start":{"rule":"required","type":"sint64","id":14},"end":{"rule":"required","type":"sint64","id":15},"theme":{"rule":"required","type":"string","id":16},"footer":{"rule":"required","type":"Footer","id":17},"voted":{"rule":"required","type":"bytes","id":18},"moreinfolang":{"keyType":"string","type":"string","id":19}}},"Footer":{"fields":{"text":{"rule":"required","type":"string","id":1},"contacttitle":{"rule":"required","type":"string","id":2},"contactphone":{"rule":"required","type":"string","id":3},"contactemail":{"rule":"required","type":"string","id":4}}},"Ballot":{"fields":{"user":{"rule":"required","type":"uint32","id":1},"alpha":{"rule":"required","type":"bytes","id":2},"beta":{"rule":"required","type":"bytes","id":3}}},"Mix":{"fields":{"ballots":{"rule":"repeated","type":"Ballot","id":1,"options":{"packed":false}},"proof":{"rule":"required","type":"bytes","id":2},"nodeid":{"rule":"required","type":"bytes","id":3},"signature":{"rule":"required","type":"bytes","id":4}}},"Partial":{"fields":{"points":{"rule":"repeated","type":"bytes","id":1},"nodeid":{"rule":"required","type":"bytes","id":2},"signature":{"rule":"required","type":"bytes","id":3}}}}},"personhood":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"Personhood"},"nested":{"RoPaSci":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"ropasciid":{"rule":"required","type":"bytes","id":2},"locked":{"type":"sint64","id":3}}},"RoPaSciStruct":{"fields":{"description":{"rule":"required","type":"string","id":1},"stake":{"rule":"required","type":"byzcoin.Coin","id":2},"firstplayerhash":{"rule":"required","type":"bytes","id":3},"firstplayer":{"type":"sint32","id":4},"secondplayer":{"type":"sint32","id":5},"secondplayeraccount":{"type":"bytes","id":6},"firstplayeraccount":{"type":"bytes","id":7},"calypsowrite":{"type":"bytes","id":8},"calypsoread":{"type":"bytes","id":9}}},"CredentialStruct":{"fields":{"credentials":{"rule":"repeated","type":"Credential","id":1,"options":{"packed":false}}}},"Credential":{"fields":{"name":{"rule":"required","type":"string","id":1},"attributes":{"rule":"repeated","type":"Attribute","id":2,"options":{"packed":false}}}},"Attribute":{"fields":{"name":{"rule":"required","type":"string","id":1},"value":{"rule":"required","type":"bytes","id":2}}},"SpawnerStruct":{"fields":{"costdarc":{"rule":"required","type":"byzcoin.Coin","id":1},"costcoin":{"rule":"required","type":"byzcoin.Coin","id":2},"costcredential":{"rule":"required","type":"byzcoin.Coin","id":3},"costparty":{"rule":"required","type":"byzcoin.Coin","id":4},"beneficiary":{"rule":"required","type":"bytes","id":5},"costropasci":{"type":"byzcoin.Coin","id":6},"costcwrite":{"type":"byzcoin.Coin","id":7},"costcread":{"type":"byzcoin.Coin","id":8},"costvalue":{"type":"byzcoin.Coin","id":9}}},"PopPartyStruct":{"fields":{"state":{"rule":"required","type":"sint32","id":1},"organizers":{"rule":"required","type":"sint32","id":2},"finalizations":{"rule":"repeated","type":"string","id":3},"description":{"rule":"required","type":"PopDesc","id":4},"attendees":{"rule":"required","type":"Attendees","id":5},"miners":{"rule":"repeated","type":"LRSTag","id":6,"options":{"packed":false}},"miningreward":{"rule":"required","type":"uint64","id":7},"previous":{"type":"bytes","id":8},"next":{"type":"bytes","id":9}}},"PopDesc":{"fields":{"name":{"rule":"required","type":"string","id":1},"purpose":{"rule":"required","type":"string","id":2},"datetime":{"rule":"required","type":"uint64","id":3},"location":{"rule":"required","type":"string","id":4}}},"FinalStatement":{"fields":{"desc":{"type":"PopDesc","id":1},"attendees":{"rule":"required","type":"Attendees","id":2}}},"Attendees":{"fields":{"keys":{"rule":"repeated","type":"bytes","id":1}}},"LRSTag":{"fields":{"tag":{"rule":"required","type":"bytes","id":1}}}}},"personhood_service":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"PersonhoodService"},"nested":{"PartyList":{"fields":{"newparty":{"type":"Party","id":1},"wipeparties":{"type":"bool","id":2},"partydelete":{"type":"PartyDelete","id":3}}},"PartyDelete":{"fields":{"partyid":{"rule":"required","type":"bytes","id":1},"identity":{"rule":"required","type":"darc.Identity","id":2},"signature":{"rule":"required","type":"bytes","id":3}}},"PartyListResponse":{"fields":{"parties":{"rule":"repeated","type":"Party","id":1,"options":{"packed":false}}}},"Party":{"fields":{"roster":{"rule":"required","type":"onet.Roster","id":1},"byzcoinid":{"rule":"required","type":"bytes","id":2},"instanceid":{"rule":"required","type":"bytes","id":3}}},"RoPaSciList":{"fields":{"newropasci":{"type":"personhood.RoPaSci","id":1},"wipe":{"type":"bool","id":2},"lock":{"type":"personhood.RoPaSci","id":3}}},"RoPaSciListResponse":{"fields":{"ropascis":{"rule":"repeated","type":"personhood.RoPaSci","id":1,"options":{"packed":false}}}},"StringReply":{"fields":{"reply":{"rule":"required","type":"string","id":1}}},"Poll":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"newpoll":{"type":"PollStruct","id":2},"list":{"type":"PollList","id":3},"answer":{"type":"PollAnswer","id":4},"delete":{"type":"PollDelete","id":5}}},"PollDelete":{"fields":{"identity":{"rule":"required","type":"darc.Identity","id":1},"pollid":{"rule":"required","type":"bytes","id":2},"signature":{"rule":"required","type":"bytes","id":3}}},"PollList":{"fields":{"partyids":{"rule":"repeated","type":"bytes","id":1}}},"PollAnswer":{"fields":{"pollid":{"rule":"required","type":"bytes","id":1},"choice":{"rule":"required","type":"sint32","id":2},"lrs":{"rule":"required","type":"bytes","id":3},"partyid":{"type":"bytes","id":4}}},"PollStruct":{"fields":{"personhood":{"rule":"required","type":"bytes","id":1},"pollid":{"type":"bytes","id":2},"title":{"rule":"required","type":"string","id":3},"description":{"rule":"required","type":"string","id":4},"choices":{"rule":"repeated","type":"string","id":5},"chosen":{"rule":"repeated","type":"PollChoice","id":6,"options":{"packed":false}}}},"PollChoice":{"fields":{"choice":{"rule":"required","type":"sint32","id":1},"lrstag":{"rule":"required","type":"bytes","id":2}}},"PollResponse":{"fields":{"polls":{"rule":"repeated","type":"PollStruct","id":1,"options":{"packed":false}}}},"Capabilities":{"fields":{}},"CapabilitiesResponse":{"fields":{"capabilities":{"rule":"repeated","type":"Capability","id":1,"options":{"packed":false}}}},"Capability":{"fields":{"endpoint":{"rule":"required","type":"string","id":1},"version":{"rule":"required","type":"bytes","id":2}}},"UserLocation":{"fields":{"publickey":{"rule":"required","type":"bytes","id":1},"credentialiid":{"type":"bytes","id":2},"credential":{"type":"personhood.CredentialStruct","id":3},"location":{"type":"string","id":4},"time":{"rule":"required","type":"sint64","id":5}}},"Meetup":{"fields":{"userlocation":{"type":"UserLocation","id":1},"wipe":{"type":"bool","id":2}}},"MeetupResponse":{"fields":{"users":{"rule":"repeated","type":"UserLocation","id":1,"options":{"packed":false}}}},"Challenge":{"fields":{"update":{"type":"ChallengeCandidate","id":1}}},"ChallengeCandidate":{"fields":{"credential":{"rule":"required","type":"bytes","id":1},"score":{"rule":"required","type":"sint32","id":2},"signup":{"rule":"required","type":"sint64","id":3}}},"ChallengeReply":{"fields":{"list":{"rule":"repeated","type":"ChallengeCandidate","id":1,"options":{"packed":false}}}},"GetAdminDarcIDs":{"fields":{}},"GetAdminDarcIDsReply":{"fields":{"admindarcids":{"rule":"repeated","type":"bytes","id":1}}},"SetAdminDarcIDs":{"fields":{"newadmindarcids":{"rule":"repeated","type":"bytes","id":1},"signature":{"rule":"required","type":"bytes","id":2}}},"SetAdminDarcIDsReply":{"fields":{}},"EmailSetup":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"roster":{"rule":"required","type":"onet.Roster","id":2},"deviceurl":{"rule":"required","type":"string","id":3},"emaildarcid":{"rule":"required","type":"bytes","id":4},"smtphost":{"rule":"required","type":"string","id":5},"smtpfrom":{"rule":"required","type":"string","id":6},"smtpreplyto":{"rule":"required","type":"string","id":7},"baseurl":{"rule":"required","type":"string","id":8},"signature":{"rule":"required","type":"bytes","id":9}}},"EmailSetupReply":{"fields":{}},"EmailSignup":{"fields":{"email":{"rule":"required","type":"string","id":1},"alias":{"rule":"required","type":"string","id":2}}},"EmailSignupReply":{"fields":{"status":{"rule":"required","type":"sint32","id":1}}},"EmailRecover":{"fields":{"email":{"rule":"required","type":"string","id":1}}},"EmailRecoverReply":{"fields":{"status":{"rule":"required","type":"sint32","id":1}}}}},"status":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"StatusProto"},"nested":{"Request":{"fields":{}},"Response":{"fields":{"status":{"keyType":"string","type":"onet.Status","id":1},"serveridentity":{"type":"network.ServerIdentity","id":2}}},"CheckConnectivity":{"fields":{"time":{"rule":"required","type":"sint64","id":1},"timeout":{"rule":"required","type":"sint64","id":2},"findfaulty":{"rule":"required","type":"bool","id":3},"list":{"rule":"repeated","type":"network.ServerIdentity","id":4,"options":{"packed":false}},"signature":{"rule":"required","type":"bytes","id":5}}},"CheckConnectivityReply":{"fields":{"nodes":{"rule":"repeated","type":"network.ServerIdentity","id":1,"options":{"packed":false}}}}}}}} +{"nested":{"cothority":{},"authprox":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"AuthProxProto"},"nested":{"EnrollRequest":{"fields":{"type":{"rule":"required","type":"string","id":1},"issuer":{"rule":"required","type":"string","id":2},"participants":{"rule":"repeated","type":"bytes","id":3},"longpri":{"rule":"required","type":"PriShare","id":4},"longpubs":{"rule":"repeated","type":"bytes","id":5}}},"EnrollResponse":{"fields":{}},"SignatureRequest":{"fields":{"type":{"rule":"required","type":"string","id":1},"issuer":{"rule":"required","type":"string","id":2},"authinfo":{"rule":"required","type":"bytes","id":3},"randpri":{"rule":"required","type":"PriShare","id":4},"randpubs":{"rule":"repeated","type":"bytes","id":5},"message":{"rule":"required","type":"bytes","id":6}}},"PriShare":{"fields":{}},"PartialSig":{"fields":{"partial":{"rule":"required","type":"PriShare","id":1},"sessionid":{"rule":"required","type":"bytes","id":2},"signature":{"rule":"required","type":"bytes","id":3}}},"SignatureResponse":{"fields":{"partialsignature":{"rule":"required","type":"PartialSig","id":1}}},"EnrollmentsRequest":{"fields":{"types":{"rule":"repeated","type":"string","id":1},"issuers":{"rule":"repeated","type":"string","id":2}}},"EnrollmentsResponse":{"fields":{"enrollments":{"rule":"repeated","type":"EnrollmentInfo","id":1,"options":{"packed":false}}}},"EnrollmentInfo":{"fields":{"type":{"rule":"required","type":"string","id":1},"issuer":{"rule":"required","type":"string","id":2},"public":{"rule":"required","type":"bytes","id":3}}}}},"bevm":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"BEvmProto"},"nested":{"ViewCallRequest":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"bevminstanceid":{"rule":"required","type":"bytes","id":2},"accountaddress":{"rule":"required","type":"bytes","id":3},"contractaddress":{"rule":"required","type":"bytes","id":4},"calldata":{"rule":"required","type":"bytes","id":5},"minblockindex":{"rule":"required","type":"sint32","id":6}}},"ViewCallResponse":{"fields":{"result":{"rule":"required","type":"bytes","id":1}}}}},"byzcoin":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"ByzCoinProto"},"nested":{"GetAllByzCoinIDsRequest":{"fields":{}},"GetAllByzCoinIDsResponse":{"fields":{"ids":{"rule":"repeated","type":"bytes","id":1}}},"DataHeader":{"fields":{"trieroot":{"rule":"required","type":"bytes","id":1},"clienttransactionhash":{"rule":"required","type":"bytes","id":2},"statechangeshash":{"rule":"required","type":"bytes","id":3},"timestamp":{"rule":"required","type":"sint64","id":4},"version":{"type":"sint32","id":5}}},"DataBody":{"fields":{"txresults":{"rule":"repeated","type":"TxResult","id":1,"options":{"packed":false}}}},"CreateGenesisBlock":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"roster":{"rule":"required","type":"onet.Roster","id":2},"genesisdarc":{"rule":"required","type":"darc.Darc","id":3},"blockinterval":{"rule":"required","type":"sint64","id":4},"maxblocksize":{"type":"sint32","id":5},"darccontractids":{"rule":"repeated","type":"string","id":6}}},"CreateGenesisBlockResponse":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"skipblock":{"type":"skipchain.SkipBlock","id":2}}},"AddTxRequest":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"skipchainid":{"rule":"required","type":"bytes","id":2},"transaction":{"rule":"required","type":"ClientTransaction","id":3},"inclusionwait":{"type":"sint32","id":4},"prooffrom":{"type":"bytes","id":5},"flags":{"type":"sint32","id":6}}},"AddTxResponse":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"error":{"type":"string","id":2},"proof":{"type":"Proof","id":3}}},"GetProof":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"key":{"rule":"required","type":"bytes","id":2},"id":{"rule":"required","type":"bytes","id":3},"mustcontainblock":{"type":"bytes","id":4}}},"GetProofResponse":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"proof":{"rule":"required","type":"Proof","id":2}}},"CheckAuthorization":{"fields":{"version":{"rule":"required","type":"sint32","id":1},"byzcoinid":{"rule":"required","type":"bytes","id":2},"darcid":{"rule":"required","type":"bytes","id":3},"identities":{"rule":"repeated","type":"darc.Identity","id":4,"options":{"packed":false}}}},"CheckAuthorizationResponse":{"fields":{"actions":{"rule":"repeated","type":"string","id":1}}},"ChainConfig":{"fields":{"blockinterval":{"rule":"required","type":"sint64","id":1},"roster":{"rule":"required","type":"onet.Roster","id":2},"maxblocksize":{"rule":"required","type":"sint32","id":3},"darccontractids":{"rule":"repeated","type":"string","id":4}}},"Proof":{"fields":{"inclusionproof":{"rule":"required","type":"trie.Proof","id":1},"latest":{"rule":"required","type":"skipchain.SkipBlock","id":2},"links":{"rule":"repeated","type":"skipchain.ForwardLink","id":3,"options":{"packed":false}}}},"Instruction":{"fields":{"instanceid":{"rule":"required","type":"bytes","id":1},"spawn":{"type":"Spawn","id":2},"invoke":{"type":"Invoke","id":3},"delete":{"type":"Delete","id":4},"signercounter":{"rule":"repeated","type":"uint64","id":5,"options":{"packed":true}},"signeridentities":{"rule":"repeated","type":"darc.Identity","id":6,"options":{"packed":false}},"signatures":{"rule":"repeated","type":"bytes","id":7}}},"Spawn":{"fields":{"contractid":{"rule":"required","type":"string","id":1},"args":{"rule":"repeated","type":"Argument","id":2,"options":{"packed":false}}}},"Invoke":{"fields":{"contractid":{"rule":"required","type":"string","id":1},"command":{"rule":"required","type":"string","id":2},"args":{"rule":"repeated","type":"Argument","id":3,"options":{"packed":false}}}},"Delete":{"fields":{"contractid":{"rule":"required","type":"string","id":1},"args":{"rule":"repeated","type":"Argument","id":2,"options":{"packed":false}}}},"Argument":{"fields":{"name":{"rule":"required","type":"string","id":1},"value":{"rule":"required","type":"bytes","id":2}}},"ClientTransaction":{"fields":{"instructions":{"rule":"repeated","type":"Instruction","id":1,"options":{"packed":false}}}},"TxResult":{"fields":{"clienttransaction":{"rule":"required","type":"ClientTransaction","id":1},"accepted":{"rule":"required","type":"bool","id":2}}},"StateChange":{"fields":{"stateaction":{"rule":"required","type":"sint32","id":1},"instanceid":{"rule":"required","type":"bytes","id":2},"contractid":{"rule":"required","type":"string","id":3},"value":{"rule":"required","type":"bytes","id":4},"darcid":{"rule":"required","type":"bytes","id":5},"version":{"rule":"required","type":"uint64","id":6}}},"Coin":{"fields":{"name":{"rule":"required","type":"bytes","id":1},"value":{"rule":"required","type":"uint64","id":2}}},"StreamingRequest":{"fields":{"id":{"rule":"required","type":"bytes","id":1}}},"StreamingResponse":{"fields":{"block":{"type":"skipchain.SkipBlock","id":1}}},"PaginateRequest":{"fields":{"startid":{"rule":"required","type":"bytes","id":1},"pagesize":{"rule":"required","type":"uint64","id":2},"numpages":{"rule":"required","type":"uint64","id":3},"backward":{"rule":"required","type":"bool","id":4}}},"PaginateResponse":{"fields":{"blocks":{"rule":"repeated","type":"skipchain.SkipBlock","id":1,"options":{"packed":false}},"pagenumber":{"rule":"required","type":"uint64","id":2},"backward":{"rule":"required","type":"bool","id":3},"errorcode":{"rule":"required","type":"uint64","id":4},"errortext":{"rule":"repeated","type":"string","id":5}}},"DownloadState":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"nonce":{"rule":"required","type":"uint64","id":2},"length":{"rule":"required","type":"sint32","id":3}}},"DownloadStateResponse":{"fields":{"keyvalues":{"rule":"repeated","type":"DBKeyValue","id":1,"options":{"packed":false}},"nonce":{"rule":"required","type":"uint64","id":2},"total":{"type":"sint32","id":3}}},"DBKeyValue":{"fields":{"key":{"rule":"required","type":"bytes","id":1},"value":{"rule":"required","type":"bytes","id":2}}},"StateChangeBody":{"fields":{"stateaction":{"rule":"required","type":"sint32","id":1},"contractid":{"rule":"required","type":"string","id":2},"value":{"rule":"required","type":"bytes","id":3},"version":{"rule":"required","type":"uint64","id":4},"darcid":{"rule":"required","type":"bytes","id":5}}},"GetSignerCounters":{"fields":{"signerids":{"rule":"repeated","type":"string","id":1},"skipchainid":{"rule":"required","type":"bytes","id":2}}},"GetSignerCountersResponse":{"fields":{"counters":{"rule":"repeated","type":"uint64","id":1,"options":{"packed":true}},"index":{"type":"uint64","id":2}}},"GetInstanceVersion":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2},"version":{"rule":"required","type":"uint64","id":3}}},"GetLastInstanceVersion":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2}}},"GetInstanceVersionResponse":{"fields":{"statechange":{"rule":"required","type":"StateChange","id":1},"blockindex":{"rule":"required","type":"sint32","id":2}}},"GetAllInstanceVersion":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2}}},"GetAllInstanceVersionResponse":{"fields":{"statechanges":{"rule":"repeated","type":"GetInstanceVersionResponse","id":1,"options":{"packed":false}}}},"CheckStateChangeValidity":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2},"version":{"rule":"required","type":"uint64","id":3}}},"CheckStateChangeValidityResponse":{"fields":{"statechanges":{"rule":"repeated","type":"StateChange","id":1,"options":{"packed":false}},"blockid":{"rule":"required","type":"bytes","id":2}}},"ResolveInstanceID":{"fields":{"skipchainid":{"rule":"required","type":"bytes","id":1},"darcid":{"rule":"required","type":"bytes","id":2},"name":{"rule":"required","type":"string","id":3}}},"ResolvedInstanceID":{"fields":{"instanceid":{"rule":"required","type":"bytes","id":1}}},"DebugRequest":{"fields":{"byzcoinid":{"type":"bytes","id":1}}},"DebugResponse":{"fields":{"byzcoins":{"rule":"repeated","type":"DebugResponseByzcoin","id":1,"options":{"packed":false}},"dump":{"rule":"repeated","type":"DebugResponseState","id":2,"options":{"packed":false}}}},"DebugResponseByzcoin":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"genesis":{"type":"skipchain.SkipBlock","id":2},"latest":{"type":"skipchain.SkipBlock","id":3}}},"DebugResponseState":{"fields":{"key":{"rule":"required","type":"bytes","id":1},"state":{"rule":"required","type":"StateChangeBody","id":2}}},"DebugRemoveRequest":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"signature":{"rule":"required","type":"bytes","id":2}}},"IDVersion":{"fields":{"id":{"rule":"required","type":"bytes","id":1},"version":{"rule":"required","type":"uint64","id":2}}},"GetUpdatesRequest":{"fields":{"instances":{"rule":"repeated","type":"IDVersion","id":1,"options":{"packed":false}},"flags":{"rule":"required","type":"uint64","id":2},"latestblockid":{"type":"bytes","id":3},"skipchainid":{"type":"bytes","id":4}}},"GetUpdatesReply":{"fields":{"proofs":{"rule":"repeated","type":"trie.Proof","id":1,"options":{"packed":false}},"links":{"rule":"repeated","type":"skipchain.ForwardLink","id":2,"options":{"packed":false}},"latest":{"type":"skipchain.SkipBlock","id":3}}}}},"skipchain":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"SkipchainProto"},"nested":{"StoreSkipBlock":{"fields":{"targetSkipChainID":{"rule":"required","type":"bytes","id":1},"newBlock":{"rule":"required","type":"SkipBlock","id":2},"signature":{"type":"bytes","id":3}}},"StoreSkipBlockReply":{"fields":{"previous":{"type":"SkipBlock","id":1},"latest":{"rule":"required","type":"SkipBlock","id":2}}},"GetAllSkipChainIDs":{"fields":{}},"GetAllSkipChainIDsReply":{"fields":{"skipChainIDs":{"rule":"repeated","type":"bytes","id":1}}},"GetSingleBlock":{"fields":{"id":{"rule":"required","type":"bytes","id":1}}},"GetSingleBlockByIndex":{"fields":{"genesis":{"rule":"required","type":"bytes","id":1},"index":{"rule":"required","type":"sint32","id":2}}},"GetSingleBlockByIndexReply":{"fields":{"skipblock":{"rule":"required","type":"SkipBlock","id":1},"links":{"rule":"repeated","type":"ForwardLink","id":2,"options":{"packed":false}}}},"GetUpdateChain":{"fields":{"latestID":{"rule":"required","type":"bytes","id":1},"maxHeight":{"type":"sint32","id":2},"maxBlocks":{"type":"sint32","id":3}}},"GetUpdateChainReply":{"fields":{"update":{"rule":"repeated","type":"SkipBlock","id":1,"options":{"packed":false}}}},"SkipBlock":{"fields":{"index":{"rule":"required","type":"sint32","id":1},"height":{"rule":"required","type":"sint32","id":2},"maxHeight":{"rule":"required","type":"sint32","id":3},"baseHeight":{"rule":"required","type":"sint32","id":4},"backlinks":{"rule":"repeated","type":"bytes","id":5},"verifiers":{"rule":"repeated","type":"bytes","id":6},"genesis":{"rule":"required","type":"bytes","id":7},"data":{"rule":"required","type":"bytes","id":8},"roster":{"rule":"required","type":"onet.Roster","id":9},"hash":{"rule":"required","type":"bytes","id":10},"forward":{"rule":"repeated","type":"ForwardLink","id":11,"options":{"packed":false}},"payload":{"type":"bytes","id":12},"signatureScheme":{"type":"uint32","id":13}}},"ForwardLink":{"fields":{"from":{"rule":"required","type":"bytes","id":1},"to":{"rule":"required","type":"bytes","id":2},"newRoster":{"type":"onet.Roster","id":3},"signature":{"rule":"required","type":"ByzcoinSig","id":4}}},"ByzcoinSig":{"fields":{"msg":{"rule":"required","type":"bytes","id":1},"sig":{"rule":"required","type":"bytes","id":2}}},"SchnorrSig":{"fields":{"challenge":{"rule":"required","type":"bytes","id":1},"response":{"rule":"required","type":"bytes","id":2}}},"Exception":{"fields":{"index":{"rule":"required","type":"sint32","id":1},"commitment":{"rule":"required","type":"bytes","id":2}}}}},"onet":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"OnetProto"},"nested":{"Roster":{"fields":{"id":{"type":"bytes","id":1},"list":{"rule":"repeated","type":"network.ServerIdentity","id":2,"options":{"packed":false}},"aggregate":{"rule":"required","type":"bytes","id":3}}},"Status":{"fields":{"field":{"keyType":"string","type":"string","id":1}}}}},"network":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"NetworkProto"},"nested":{"ServerIdentity":{"fields":{"public":{"rule":"required","type":"bytes","id":1},"serviceIdentities":{"rule":"repeated","type":"ServiceIdentity","id":2,"options":{"packed":false}},"id":{"rule":"required","type":"bytes","id":3},"address":{"rule":"required","type":"string","id":4},"description":{"rule":"required","type":"string","id":5},"url":{"type":"string","id":7}}},"ServiceIdentity":{"fields":{"name":{"rule":"required","type":"string","id":1},"suite":{"rule":"required","type":"string","id":2},"public":{"rule":"required","type":"bytes","id":3}}}}},"darc":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"DarcProto"},"nested":{"Darc":{"fields":{"version":{"rule":"required","type":"uint64","id":1},"description":{"rule":"required","type":"bytes","id":2},"baseid":{"type":"bytes","id":3},"previd":{"rule":"required","type":"bytes","id":4},"rules":{"rule":"required","type":"Rules","id":5},"signatures":{"rule":"repeated","type":"Signature","id":6,"options":{"packed":false}},"verificationdarcs":{"rule":"repeated","type":"Darc","id":7,"options":{"packed":false}}}},"Identity":{"fields":{"darc":{"type":"IdentityDarc","id":1},"ed25519":{"type":"IdentityEd25519","id":2},"x509ec":{"type":"IdentityX509EC","id":3},"proxy":{"type":"IdentityProxy","id":4},"evmcontract":{"type":"IdentityEvmContract","id":5},"did":{"type":"IdentityDID","id":6},"tsm":{"type":"IdentityTSM","id":7}}},"IdentityEd25519":{"fields":{"point":{"rule":"required","type":"bytes","id":1}}},"IdentityTSM":{"fields":{"publickey":{"rule":"required","type":"bytes","id":1}}},"IdentityX509EC":{"fields":{"public":{"rule":"required","type":"bytes","id":1}}},"IdentityProxy":{"fields":{"data":{"rule":"required","type":"string","id":1},"public":{"rule":"required","type":"bytes","id":2}}},"IdentityDarc":{"fields":{"id":{"rule":"required","type":"bytes","id":1}}},"IdentityEvmContract":{"fields":{"address":{"rule":"required","type":"bytes","id":1}}},"IdentityDID":{"fields":{"did":{"rule":"required","type":"string","id":1},"diddoc":{"type":"DIDDoc","id":2},"method":{"rule":"required","type":"string","id":3}}},"DIDDoc":{"fields":{"context":{"rule":"repeated","type":"string","id":1},"id":{"rule":"required","type":"string","id":2},"publickey":{"rule":"repeated","type":"PublicKey","id":3,"options":{"packed":false}},"service":{"rule":"repeated","type":"DIDService","id":4,"options":{"packed":false}},"authentication":{"rule":"repeated","type":"VerificationMethod","id":5,"options":{"packed":false}}}},"PublicKey":{"fields":{"id":{"rule":"required","type":"string","id":1},"type":{"rule":"required","type":"string","id":2},"controller":{"rule":"required","type":"string","id":3},"value":{"rule":"required","type":"bytes","id":4}}},"DIDService":{"fields":{"id":{"rule":"required","type":"string","id":1},"type":{"rule":"required","type":"string","id":2},"priority":{"rule":"required","type":"sint32","id":3},"recipientkeys":{"rule":"repeated","type":"string","id":4},"routingkeys":{"rule":"repeated","type":"string","id":5},"serviceendpoint":{"rule":"required","type":"string","id":6}}},"VerificationMethod":{"fields":{"publickey":{"rule":"required","type":"PublicKey","id":1}}},"Signature":{"fields":{"signature":{"rule":"required","type":"bytes","id":1},"signer":{"rule":"required","type":"Identity","id":2}}},"Signer":{"fields":{"ed25519":{"type":"SignerEd25519","id":1},"x509ec":{"type":"SignerX509EC","id":2},"proxy":{"type":"SignerProxy","id":3},"evmcontract":{"type":"SignerEvmContract","id":4},"did":{"type":"SignerDID","id":5}}},"SignerEd25519":{"fields":{"point":{"rule":"required","type":"bytes","id":1},"secret":{"rule":"required","type":"bytes","id":2}}},"SignerX509EC":{"fields":{"point":{"rule":"required","type":"bytes","id":1}}},"SignerProxy":{"fields":{"data":{"rule":"required","type":"string","id":1},"public":{"rule":"required","type":"bytes","id":2}}},"SignerEvmContract":{"fields":{"address":{"rule":"required","type":"bytes","id":1}}},"SignerDID":{"fields":{"public":{"rule":"required","type":"bytes","id":1},"secret":{"rule":"required","type":"bytes","id":2},"did":{"rule":"required","type":"string","id":3}}},"Request":{"fields":{"baseid":{"rule":"required","type":"bytes","id":1},"action":{"rule":"required","type":"string","id":2},"msg":{"rule":"required","type":"bytes","id":3},"identities":{"rule":"repeated","type":"Identity","id":4,"options":{"packed":false}},"signatures":{"rule":"repeated","type":"bytes","id":5}}},"Rules":{"fields":{"list":{"rule":"repeated","type":"Rule","id":1,"options":{"packed":false}}}},"Rule":{"fields":{"action":{"rule":"required","type":"string","id":1},"expr":{"rule":"required","type":"bytes","id":2}}}}},"trie":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"TrieProto"},"nested":{"InteriorNode":{"fields":{"left":{"rule":"required","type":"bytes","id":1},"right":{"rule":"required","type":"bytes","id":2}}},"EmptyNode":{"fields":{"prefix":{"rule":"repeated","type":"bool","id":1,"options":{"packed":true}}}},"LeafNode":{"fields":{"prefix":{"rule":"repeated","type":"bool","id":1,"options":{"packed":true}},"key":{"rule":"required","type":"bytes","id":2},"value":{"rule":"required","type":"bytes","id":3}}},"Proof":{"fields":{"interiors":{"rule":"repeated","type":"InteriorNode","id":1,"options":{"packed":false}},"leaf":{"rule":"required","type":"LeafNode","id":2},"empty":{"rule":"required","type":"EmptyNode","id":3},"nonce":{"rule":"required","type":"bytes","id":4}}}}},"calypso":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"Calypso"},"nested":{"Write":{"fields":{"data":{"rule":"required","type":"bytes","id":1},"u":{"rule":"required","type":"bytes","id":2},"ubar":{"rule":"required","type":"bytes","id":3},"e":{"rule":"required","type":"bytes","id":4},"f":{"rule":"required","type":"bytes","id":5},"c":{"rule":"required","type":"bytes","id":6},"extradata":{"type":"bytes","id":7},"ltsid":{"rule":"required","type":"bytes","id":8},"cost":{"type":"byzcoin.Coin","id":9}}},"Read":{"fields":{"write":{"rule":"required","type":"bytes","id":1},"xc":{"rule":"required","type":"bytes","id":2}}},"Authorise":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1}}},"AuthoriseReply":{"fields":{}},"Authorize":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"timestamp":{"type":"sint64","id":2},"signature":{"type":"bytes","id":3}}},"AuthorizeReply":{"fields":{}},"CreateLTS":{"fields":{"proof":{"rule":"required","type":"byzcoin.Proof","id":1}}},"CreateLTSReply":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"instanceid":{"rule":"required","type":"bytes","id":2},"x":{"rule":"required","type":"bytes","id":3}}},"ReshareLTS":{"fields":{"proof":{"rule":"required","type":"byzcoin.Proof","id":1}}},"ReshareLTSReply":{"fields":{}},"UpdateValidPeers":{"fields":{"proof":{"rule":"required","type":"byzcoin.Proof","id":1}}},"UpdateValidPeersReply":{"fields":{}},"DecryptKey":{"fields":{"read":{"rule":"required","type":"byzcoin.Proof","id":1},"write":{"rule":"required","type":"byzcoin.Proof","id":2}}},"DecryptKeyReply":{"fields":{"c":{"rule":"required","type":"bytes","id":1},"xhatenc":{"rule":"required","type":"bytes","id":2},"x":{"rule":"required","type":"bytes","id":3}}},"GetLTSReply":{"fields":{"ltsid":{"rule":"required","type":"bytes","id":1}}},"LtsInstanceInfo":{"fields":{"roster":{"rule":"required","type":"onet.Roster","id":1}}}}},"eventlog":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"EventLogProto"},"nested":{"SearchRequest":{"fields":{"instance":{"rule":"required","type":"bytes","id":1},"id":{"rule":"required","type":"bytes","id":2},"topic":{"rule":"required","type":"string","id":3},"from":{"rule":"required","type":"sint64","id":4},"to":{"rule":"required","type":"sint64","id":5}}},"SearchResponse":{"fields":{"events":{"rule":"repeated","type":"Event","id":1,"options":{"packed":false}},"truncated":{"rule":"required","type":"bool","id":2}}},"Event":{"fields":{"when":{"rule":"required","type":"sint64","id":1},"topic":{"rule":"required","type":"string","id":2},"content":{"rule":"required","type":"string","id":3}}}}},"evoting":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"Evoting"},"nested":{"Transaction":{"fields":{"master":{"type":"Master","id":1},"link":{"type":"Link","id":2},"election":{"type":"Election","id":3},"ballot":{"type":"Ballot","id":4},"mix":{"type":"Mix","id":5},"partial":{"type":"Partial","id":6},"user":{"rule":"required","type":"uint32","id":7},"signature":{"rule":"required","type":"bytes","id":8}}},"Master":{"fields":{"id":{"rule":"required","type":"bytes","id":1},"roster":{"type":"onet.Roster","id":2},"admins":{"rule":"repeated","type":"uint32","id":3,"options":{"packed":true}},"key":{"rule":"required","type":"bytes","id":4}}},"Link":{"fields":{"id":{"rule":"required","type":"bytes","id":1}}},"Election":{"fields":{"name":{"keyType":"string","type":"string","id":1},"creator":{"rule":"required","type":"uint32","id":2},"users":{"rule":"repeated","type":"uint32","id":3,"options":{"packed":true}},"id":{"rule":"required","type":"bytes","id":4},"master":{"rule":"required","type":"bytes","id":5},"roster":{"type":"onet.Roster","id":6},"key":{"rule":"required","type":"bytes","id":7},"masterkey":{"rule":"required","type":"bytes","id":8},"stage":{"rule":"required","type":"uint32","id":9},"candidates":{"rule":"repeated","type":"uint32","id":10,"options":{"packed":true}},"maxchoices":{"rule":"required","type":"sint32","id":11},"subtitle":{"keyType":"string","type":"string","id":12},"moreinfo":{"rule":"required","type":"string","id":13},"start":{"rule":"required","type":"sint64","id":14},"end":{"rule":"required","type":"sint64","id":15},"theme":{"rule":"required","type":"string","id":16},"footer":{"rule":"required","type":"Footer","id":17},"voted":{"rule":"required","type":"bytes","id":18},"moreinfolang":{"keyType":"string","type":"string","id":19}}},"Footer":{"fields":{"text":{"rule":"required","type":"string","id":1},"contacttitle":{"rule":"required","type":"string","id":2},"contactphone":{"rule":"required","type":"string","id":3},"contactemail":{"rule":"required","type":"string","id":4}}},"Ballot":{"fields":{"user":{"rule":"required","type":"uint32","id":1},"alpha":{"rule":"required","type":"bytes","id":2},"beta":{"rule":"required","type":"bytes","id":3},"additionalalphas":{"rule":"repeated","type":"bytes","id":4},"additionalbetas":{"rule":"repeated","type":"bytes","id":5}}},"Mix":{"fields":{"ballots":{"rule":"repeated","type":"Ballot","id":1,"options":{"packed":false}},"proof":{"rule":"required","type":"bytes","id":2},"nodeid":{"rule":"required","type":"bytes","id":3},"signature":{"rule":"required","type":"bytes","id":4},"additionalproofs":{"rule":"repeated","type":"bytes","id":5}}},"Partial":{"fields":{"points":{"rule":"repeated","type":"bytes","id":1},"nodeid":{"rule":"required","type":"bytes","id":2},"signature":{"rule":"required","type":"bytes","id":3},"additionalpoints":{"rule":"repeated","type":"PartialAdditional","id":4,"options":{"packed":false}}}},"PartialAdditional":{"fields":{"additionalpoints":{"rule":"repeated","type":"bytes","id":1}}}}},"personhood":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"Personhood"},"nested":{"RoPaSci":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"ropasciid":{"rule":"required","type":"bytes","id":2},"locked":{"type":"sint64","id":3}}},"RoPaSciStruct":{"fields":{"description":{"rule":"required","type":"string","id":1},"stake":{"rule":"required","type":"byzcoin.Coin","id":2},"firstplayerhash":{"rule":"required","type":"bytes","id":3},"firstplayer":{"type":"sint32","id":4},"secondplayer":{"type":"sint32","id":5},"secondplayeraccount":{"type":"bytes","id":6},"firstplayeraccount":{"type":"bytes","id":7},"calypsowrite":{"type":"bytes","id":8},"calypsoread":{"type":"bytes","id":9}}},"CredentialStruct":{"fields":{"credentials":{"rule":"repeated","type":"Credential","id":1,"options":{"packed":false}}}},"Credential":{"fields":{"name":{"rule":"required","type":"string","id":1},"attributes":{"rule":"repeated","type":"Attribute","id":2,"options":{"packed":false}}}},"Attribute":{"fields":{"name":{"rule":"required","type":"string","id":1},"value":{"rule":"required","type":"bytes","id":2}}},"SpawnerStruct":{"fields":{"costdarc":{"rule":"required","type":"byzcoin.Coin","id":1},"costcoin":{"rule":"required","type":"byzcoin.Coin","id":2},"costcredential":{"rule":"required","type":"byzcoin.Coin","id":3},"costparty":{"rule":"required","type":"byzcoin.Coin","id":4},"beneficiary":{"rule":"required","type":"bytes","id":5},"costropasci":{"type":"byzcoin.Coin","id":6},"costcwrite":{"type":"byzcoin.Coin","id":7},"costcread":{"type":"byzcoin.Coin","id":8},"costvalue":{"type":"byzcoin.Coin","id":9}}},"PopPartyStruct":{"fields":{"state":{"rule":"required","type":"sint32","id":1},"organizers":{"rule":"required","type":"sint32","id":2},"finalizations":{"rule":"repeated","type":"string","id":3},"description":{"rule":"required","type":"PopDesc","id":4},"attendees":{"rule":"required","type":"Attendees","id":5},"miners":{"rule":"repeated","type":"LRSTag","id":6,"options":{"packed":false}},"miningreward":{"rule":"required","type":"uint64","id":7},"previous":{"type":"bytes","id":8},"next":{"type":"bytes","id":9}}},"PopDesc":{"fields":{"name":{"rule":"required","type":"string","id":1},"purpose":{"rule":"required","type":"string","id":2},"datetime":{"rule":"required","type":"uint64","id":3},"location":{"rule":"required","type":"string","id":4}}},"FinalStatement":{"fields":{"desc":{"type":"PopDesc","id":1},"attendees":{"rule":"required","type":"Attendees","id":2}}},"Attendees":{"fields":{"keys":{"rule":"repeated","type":"bytes","id":1}}},"LRSTag":{"fields":{"tag":{"rule":"required","type":"bytes","id":1}}}}},"personhood_service":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"PersonhoodService"},"nested":{"PartyList":{"fields":{"newparty":{"type":"Party","id":1},"wipeparties":{"type":"bool","id":2},"partydelete":{"type":"PartyDelete","id":3}}},"PartyDelete":{"fields":{"partyid":{"rule":"required","type":"bytes","id":1},"identity":{"rule":"required","type":"darc.Identity","id":2},"signature":{"rule":"required","type":"bytes","id":3}}},"PartyListResponse":{"fields":{"parties":{"rule":"repeated","type":"Party","id":1,"options":{"packed":false}}}},"Party":{"fields":{"roster":{"rule":"required","type":"onet.Roster","id":1},"byzcoinid":{"rule":"required","type":"bytes","id":2},"instanceid":{"rule":"required","type":"bytes","id":3}}},"RoPaSciList":{"fields":{"newropasci":{"type":"personhood.RoPaSci","id":1},"wipe":{"type":"bool","id":2},"lock":{"type":"personhood.RoPaSci","id":3}}},"RoPaSciListResponse":{"fields":{"ropascis":{"rule":"repeated","type":"personhood.RoPaSci","id":1,"options":{"packed":false}}}},"StringReply":{"fields":{"reply":{"rule":"required","type":"string","id":1}}},"Poll":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"newpoll":{"type":"PollStruct","id":2},"list":{"type":"PollList","id":3},"answer":{"type":"PollAnswer","id":4},"delete":{"type":"PollDelete","id":5}}},"PollDelete":{"fields":{"identity":{"rule":"required","type":"darc.Identity","id":1},"pollid":{"rule":"required","type":"bytes","id":2},"signature":{"rule":"required","type":"bytes","id":3}}},"PollList":{"fields":{"partyids":{"rule":"repeated","type":"bytes","id":1}}},"PollAnswer":{"fields":{"pollid":{"rule":"required","type":"bytes","id":1},"choice":{"rule":"required","type":"sint32","id":2},"lrs":{"rule":"required","type":"bytes","id":3},"partyid":{"type":"bytes","id":4}}},"PollStruct":{"fields":{"personhood":{"rule":"required","type":"bytes","id":1},"pollid":{"type":"bytes","id":2},"title":{"rule":"required","type":"string","id":3},"description":{"rule":"required","type":"string","id":4},"choices":{"rule":"repeated","type":"string","id":5},"chosen":{"rule":"repeated","type":"PollChoice","id":6,"options":{"packed":false}}}},"PollChoice":{"fields":{"choice":{"rule":"required","type":"sint32","id":1},"lrstag":{"rule":"required","type":"bytes","id":2}}},"PollResponse":{"fields":{"polls":{"rule":"repeated","type":"PollStruct","id":1,"options":{"packed":false}}}},"Capabilities":{"fields":{}},"CapabilitiesResponse":{"fields":{"capabilities":{"rule":"repeated","type":"Capability","id":1,"options":{"packed":false}}}},"Capability":{"fields":{"endpoint":{"rule":"required","type":"string","id":1},"version":{"rule":"required","type":"bytes","id":2}}},"UserLocation":{"fields":{"publickey":{"rule":"required","type":"bytes","id":1},"credentialiid":{"type":"bytes","id":2},"credential":{"type":"personhood.CredentialStruct","id":3},"location":{"type":"string","id":4},"time":{"rule":"required","type":"sint64","id":5}}},"Meetup":{"fields":{"userlocation":{"type":"UserLocation","id":1},"wipe":{"type":"bool","id":2}}},"MeetupResponse":{"fields":{"users":{"rule":"repeated","type":"UserLocation","id":1,"options":{"packed":false}}}},"Challenge":{"fields":{"update":{"type":"ChallengeCandidate","id":1}}},"ChallengeCandidate":{"fields":{"credential":{"rule":"required","type":"bytes","id":1},"score":{"rule":"required","type":"sint32","id":2},"signup":{"rule":"required","type":"sint64","id":3}}},"ChallengeReply":{"fields":{"list":{"rule":"repeated","type":"ChallengeCandidate","id":1,"options":{"packed":false}}}},"GetAdminDarcIDs":{"fields":{}},"GetAdminDarcIDsReply":{"fields":{"admindarcids":{"rule":"repeated","type":"bytes","id":1}}},"SetAdminDarcIDs":{"fields":{"newadmindarcids":{"rule":"repeated","type":"bytes","id":1},"signature":{"rule":"required","type":"bytes","id":2}}},"SetAdminDarcIDsReply":{"fields":{}},"EmailSetup":{"fields":{"byzcoinid":{"rule":"required","type":"bytes","id":1},"roster":{"rule":"required","type":"onet.Roster","id":2},"deviceurl":{"rule":"required","type":"string","id":3},"emaildarcid":{"rule":"required","type":"bytes","id":4},"smtphost":{"rule":"required","type":"string","id":5},"smtpfrom":{"rule":"required","type":"string","id":6},"smtpreplyto":{"rule":"required","type":"string","id":7},"baseurl":{"rule":"required","type":"string","id":8},"signature":{"rule":"required","type":"bytes","id":9}}},"EmailSetupReply":{"fields":{}},"EmailSignup":{"fields":{"email":{"rule":"required","type":"string","id":1},"alias":{"rule":"required","type":"string","id":2}}},"EmailSignupReply":{"fields":{"status":{"rule":"required","type":"sint32","id":1}}},"EmailRecover":{"fields":{"email":{"rule":"required","type":"string","id":1}}},"EmailRecoverReply":{"fields":{"status":{"rule":"required","type":"sint32","id":1}}}}},"status":{"options":{"java_package":"ch.epfl.dedis.lib.proto","java_outer_classname":"StatusProto"},"nested":{"Request":{"fields":{}},"Response":{"fields":{"status":{"keyType":"string","type":"onet.Status","id":1},"serveridentity":{"type":"network.ServerIdentity","id":2}}},"CheckConnectivity":{"fields":{"time":{"rule":"required","type":"sint64","id":1},"timeout":{"rule":"required","type":"sint64","id":2},"findfaulty":{"rule":"required","type":"bool","id":3},"list":{"rule":"repeated","type":"network.ServerIdentity","id":4,"options":{"packed":false}},"signature":{"rule":"required","type":"bytes","id":5}}},"CheckConnectivityReply":{"fields":{"nodes":{"rule":"repeated","type":"network.ServerIdentity","id":1,"options":{"packed":false}}}}}}}} diff --git a/external/proto/evoting.proto b/external/proto/evoting.proto index e690d72f5..1e05b1aa4 100644 --- a/external/proto/evoting.proto +++ b/external/proto/evoting.proto @@ -101,6 +101,11 @@ message Ballot { // ElGamal ciphertext pair. required bytes alpha = 2; required bytes beta = 3; + // Additional ciphertext pairs in case there are more than 9 candidates. + // As these are slices, the resulting protobuf is backward compatible with + // the old ones. + repeated bytes additionalalphas = 4; + repeated bytes additionalbetas = 5; } // Mix contains the shuffled ballots. @@ -113,6 +118,10 @@ message Mix { required bytes nodeid = 3; // Signature of the public key required bytes signature = 4; + // Additional proofs for eventual additional ciphertexts in the Ballots. + // To keep backward-compatibility in the resulting protobuf, + // these proofs are added at the end of the structure. + repeated bytes additionalproofs = 5; } // Partial contains the partially decrypted ballots. @@ -123,4 +132,12 @@ message Partial { required bytes nodeid = 2; // Signature of the public key required bytes signature = 3; + // Additional points from decrypted plaintexts. + // To keep backward-compatibility in the resulting protobuf, + // these points are added at the end of the structure. + repeated PartialAdditional additionalpoints = 4; +} + +message PartialAdditional { + repeated bytes additionalpoints = 1; }