[ https://issues.apache.org/jira/browse/PIRK-45?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15565701#comment-15565701 ]
ASF GitHub Bot commented on PIRK-45: ------------------------------------ Github user tellison commented on a diff in the pull request: https://github.com/apache/incubator-pirk/pull/107#discussion_r82813992 --- Diff: src/main/java/org/apache/pirk/query/wideskies/Query.java --- @@ -26,41 +26,51 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.function.Consumer; +import com.google.gson.annotations.Expose; import org.apache.pirk.encryption.ModPowAbstraction; import org.apache.pirk.serialization.Storable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Class to hold the PIR query vectors - * */ + public class Query implements Serializable, Storable { - private static final long serialVersionUID = 1L; + public static final long querySerialVersionUID = 1L; + + // So that we can serialize the version number in gson. + @Expose public final long queryVersion = querySerialVersionUID; private static final Logger logger = LoggerFactory.getLogger(Query.class); - private final QueryInfo queryInfo; // holds all query info + @Expose private final QueryInfo queryInfo; // holds all query info - private final SortedMap<Integer,BigInteger> queryElements; // query elements - ordered on insertion + @Expose private final SortedMap<Integer,BigInteger> queryElements; // query elements - ordered on insertion // lookup table for exponentiation of query vectors - based on dataPartitionBitSize // element -> <power, element^power mod N^2> private Map<BigInteger,Map<Integer,BigInteger>> expTable = new ConcurrentHashMap<>(); // File based lookup table for modular exponentiation // element hash -> filename containing it's <power, element^power mod N^2> modular exponentiations - private Map<Integer,String> expFileBasedLookup = new HashMap<>(); + @Expose private Map<Integer,String> expFileBasedLookup = new HashMap<>(); --- End diff -- Should the hash -> filename map be serialized? AFAIK it is only used by the responder to compute the results, so I don't think it needs serializing. > Remove dependency on Java serialization > --------------------------------------- > > Key: PIRK-45 > URL: https://issues.apache.org/jira/browse/PIRK-45 > Project: PIRK > Issue Type: Improvement > Reporter: Tim Ellison > Assignee: Walter Ray-Dulany > > Pirk should not depend upon Java serialization as a persistent object format. > Maintaining support for a variety of versions of Java serialized form can be > difficult, this includes both the querier and responder sides of a PIR. > Alternative formats such as XML and JSON are more forgiving/extensible. > Furthermore, and despite Pirk's trust between querier and responder, there > are potential implications for loading the binary representation of Java's > serialized instances as a vector for security vulnerabilities. -- This message was sent by Atlassian JIRA (v6.3.4#6332)