gitextract_zbjy07td/ ├── .gitignore ├── CHANGELOG.md ├── INSTRUCTIONS.md ├── LICENSE ├── PAPERS.md ├── README.md ├── ae/ │ └── 2025_USEC_Practical_Keyword_PIR_from_Key-to-Index_Mappings.md ├── data/ │ ├── README.md │ ├── black_ip/ │ │ ├── blackip.txt │ │ └── oldip.txt │ ├── classification/ │ │ ├── breast_cancer/ │ │ │ └── breastcancer.csv │ │ ├── iris/ │ │ │ └── iris.csv │ │ ├── pendigits/ │ │ │ └── pendigits.csv │ │ └── weather/ │ │ └── weather.csv │ └── regression/ │ ├── abalone/ │ │ ├── abalone-test.csv │ │ └── abalone-train.csv │ ├── autompg/ │ │ └── autoMpg.csv │ ├── boston_housing/ │ │ └── boston_housing.csv │ ├── cpu/ │ │ └── cpu.csv │ └── kin8nm/ │ └── kin8nm.csv ├── mpc4j-common-circuit/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── circuit/ │ │ ├── CircuitConfig.java │ │ ├── MpcVector.java │ │ ├── operator/ │ │ │ ├── DyadicAcOperator.java │ │ │ ├── DyadicBcOperator.java │ │ │ ├── UnaryAcOperator.java │ │ │ ├── UnaryBcOperator.java │ │ │ └── Z2IntegerOperator.java │ │ ├── prefix/ │ │ │ ├── AbstractPrefixTree.java │ │ │ ├── BrentKungTree.java │ │ │ ├── KoggeStoneTree.java │ │ │ ├── PrefixNode.java │ │ │ ├── PrefixOp.java │ │ │ ├── PrefixTree.java │ │ │ ├── PrefixTreeFactory.java │ │ │ └── SklanskyTree.java │ │ ├── z2/ │ │ │ ├── AbstractZ2Circuit.java │ │ │ ├── MpcZ2Vector.java │ │ │ ├── MpcZ2cParty.java │ │ │ ├── PlainZ2Vector.java │ │ │ ├── PlainZ2cParty.java │ │ │ ├── Z2CircuitConfig.java │ │ │ ├── Z2IntegerCircuit.java │ │ │ ├── adder/ │ │ │ │ ├── AbstractAdder.java │ │ │ │ ├── Adder.java │ │ │ │ ├── AdderFactory.java │ │ │ │ ├── ParallelPrefixAdder.java │ │ │ │ └── RippleCarryAdder.java │ │ │ ├── comparator/ │ │ │ │ ├── Comparator.java │ │ │ │ ├── ComparatorFactory.java │ │ │ │ ├── SerialComparator.java │ │ │ │ └── TreeComparator.java │ │ │ ├── multiplier/ │ │ │ │ ├── AbstractMultiplier.java │ │ │ │ ├── Multiplier.java │ │ │ │ ├── MultiplierFactory.java │ │ │ │ └── ShiftAddMultiplier.java │ │ │ ├── psorter/ │ │ │ │ ├── AbstractPermutationSorter.java │ │ │ │ ├── Psorter.java │ │ │ │ ├── PsorterFactory.java │ │ │ │ └── bitonic/ │ │ │ │ └── PermutableBitonicSorter.java │ │ │ ├── sorter/ │ │ │ │ ├── AbstractSorter.java │ │ │ │ ├── AbstractSortingNetwork.java │ │ │ │ ├── BitonicSorter.java │ │ │ │ ├── RandomizedShellSorter.java │ │ │ │ ├── Sorter.java │ │ │ │ └── SorterFactory.java │ │ │ └── utils/ │ │ │ └── Z2VectorUtils.java │ │ ├── zl/ │ │ │ ├── MpcZlVector.java │ │ │ ├── MpcZlcParty.java │ │ │ ├── PlainZlVector.java │ │ │ └── PlainZlcParty.java │ │ ├── zl64/ │ │ │ ├── MpcZl64Vector.java │ │ │ ├── MpcZl64cParty.java │ │ │ ├── PlainZl64Vector.java │ │ │ └── PlainZl64cParty.java │ │ └── zlong/ │ │ ├── MpcLongParty.java │ │ ├── MpcLongVector.java │ │ └── PlainLongVector.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── circuit/ │ │ ├── z2/ │ │ │ ├── BatchPlainZ2PartyTest.java │ │ │ ├── SinglePlainZ2PartyTest.java │ │ │ ├── Z2AdderTest.java │ │ │ ├── Z2CircuitTestUtils.java │ │ │ ├── Z2ComparatorTest.java │ │ │ ├── Z2IntegerCircuitParty.java │ │ │ ├── Z2IntegerCircuitTest.java │ │ │ ├── Z2MultiplierTest.java │ │ │ ├── Z2PsorterTest.java │ │ │ └── Z2SorterTest.java │ │ └── zl/ │ │ ├── BatchPlainZlPartyTest.java │ │ └── SinglePlainZlPartyTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-common-data/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── data/ │ │ ├── DataFrameUtils.java │ │ ├── DatasetManager.java │ │ ├── classification/ │ │ │ ├── BreastCancer.java │ │ │ ├── Iris.java │ │ │ ├── PenDigits.java │ │ │ └── Weather.java │ │ └── regression/ │ │ ├── Abalone.java │ │ ├── AutoMpg.java │ │ ├── BostonHousing.java │ │ ├── Cpu.java │ │ └── Kin8nm.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── data/ │ │ └── DatasetTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-common-rpc/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── rpc/ │ │ ├── MpcAbortException.java │ │ ├── MpcAbortPreconditions.java │ │ ├── Party.java │ │ ├── PartyState.java │ │ ├── PtoState.java │ │ ├── Rpc.java │ │ ├── RpcManager.java │ │ ├── RpcPropertiesUtils.java │ │ ├── desc/ │ │ │ ├── PtoDesc.java │ │ │ ├── PtoDescManager.java │ │ │ └── SecurityModel.java │ │ ├── impl/ │ │ │ ├── file/ │ │ │ │ ├── FileParty.java │ │ │ │ ├── FilePtoDesc.java │ │ │ │ ├── FileRpc.java │ │ │ │ └── FileRpcManager.java │ │ │ ├── memory/ │ │ │ │ ├── MemoryParty.java │ │ │ │ ├── MemoryPtoDesc.java │ │ │ │ ├── MemoryRpc.java │ │ │ │ └── MemoryRpcManager.java │ │ │ └── netty/ │ │ │ ├── NettyParty.java │ │ │ ├── protobuf/ │ │ │ │ ├── RobustNettyRpc.proto │ │ │ │ ├── RobustNettyRpcProtobuf.java │ │ │ │ ├── SimpleNettyRpc.proto │ │ │ │ ├── SimpleNettyRpcProtobuf.java │ │ │ │ └── readme.md │ │ │ ├── robust/ │ │ │ │ ├── RobustChunkAssembler.java │ │ │ │ ├── RobustDataReceiveHandler.java │ │ │ │ ├── RobustDataReceiveThread.java │ │ │ │ ├── RobustDataSendHandler.java │ │ │ │ ├── RobustDataSendManager.java │ │ │ │ ├── RobustNettyPtoDesc.java │ │ │ │ ├── RobustNettyRpc.java │ │ │ │ └── RobustNettyRpcManager.java │ │ │ └── simple/ │ │ │ ├── SimpleDataReceiveHandler.java │ │ │ ├── SimpleDataReceiveThread.java │ │ │ ├── SimpleDataSendHandler.java │ │ │ ├── SimpleDataSendManager.java │ │ │ ├── SimpleNettyPtoDesc.java │ │ │ ├── SimpleNettyRpc.java │ │ │ └── SimpleNettyRpcManager.java │ │ ├── main/ │ │ │ ├── AbstractMainTwoPartyPto.java │ │ │ ├── MainParty1Thread.java │ │ │ ├── MainParty2Thread.java │ │ │ ├── MainPtoConfigUtils.java │ │ │ └── MainTwoPartyPto.java │ │ ├── pto/ │ │ │ ├── AbstractMultiPartyPto.java │ │ │ ├── AbstractMultiPartyPtoConfig.java │ │ │ ├── AbstractThreePartyMemoryRpcPto.java │ │ │ ├── AbstractThreePartyPto.java │ │ │ ├── AbstractTwoPartyAidPto.java │ │ │ ├── AbstractTwoPartyMemoryRpcPto.java │ │ │ ├── AbstractTwoPartyPto.java │ │ │ ├── MultiPartyPto.java │ │ │ ├── MultiPartyPtoConfig.java │ │ │ ├── PtoFactory.java │ │ │ ├── ThreePartyPto.java │ │ │ ├── TwoPartyAidPto.java │ │ │ └── TwoPartyPto.java │ │ └── utils/ │ │ ├── DataPacket.java │ │ ├── DataPacketBuffer.java │ │ ├── DataPacketHeader.java │ │ └── PayloadType.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── rpc/ │ │ ├── RpcTestUtils.java │ │ ├── impl/ │ │ │ ├── RpcConnectTest.java │ │ │ ├── RpcImplTestPtoDesc.java │ │ │ ├── RpcImplTestUtils.java │ │ │ ├── RpcSendRecvTest.java │ │ │ ├── RpcSendRecvThread.java │ │ │ └── netty/ │ │ │ ├── robust/ │ │ │ │ ├── RobustChunkAssemblerTest.java │ │ │ │ └── RobustNettyRpcTest.java │ │ │ └── simple/ │ │ │ └── SimpleNettyRpcTest.java │ │ └── utils/ │ │ ├── DataPacketBufferParty1Thread.java │ │ ├── DataPacketBufferParty2Thread.java │ │ ├── DataPacketBufferTest.java │ │ ├── DataPacketTest.java │ │ └── DataPacketTestPtoDesc.java │ └── resources/ │ └── log4j.properties ├── mpc4j-common-sampler/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── sampler/ │ │ ├── Sampler.java │ │ ├── SecureNoiseMath.java │ │ ├── binary/ │ │ │ ├── BinarySampler.java │ │ │ ├── bernoulli/ │ │ │ │ ├── ApacheBernoulliSampler.java │ │ │ │ ├── BernoulliSampler.java │ │ │ │ ├── ExpBernoulliSampler.java │ │ │ │ └── SecureBernoulliSampler.java │ │ │ └── others/ │ │ │ └── ExpfBernoulliSampler.java │ │ ├── integral/ │ │ │ ├── IntegralSampler.java │ │ │ ├── gaussian/ │ │ │ │ ├── AbstractDiscGaussSampler.java │ │ │ │ ├── AbstractTauDiscGaussSampler.java │ │ │ │ ├── AliasTauDiscGaussSampler.java │ │ │ │ ├── Cks20DiscGaussSampler.java │ │ │ │ ├── Cks20TauDiscGaussSampler.java │ │ │ │ ├── ConvolutionDiscGaussSampler.java │ │ │ │ ├── DiscGaussSampler.java │ │ │ │ ├── DiscGaussSamplerFactory.java │ │ │ │ ├── Sigma2LogTableDiscGaussSampler.java │ │ │ │ ├── Sigma2LogTableTauDiscGaussSampler.java │ │ │ │ ├── TauDiscGaussSampler.java │ │ │ │ ├── UniLogTableTauDiscGaussSampler.java │ │ │ │ ├── UniOnlineTauDiscGaussSampler.java │ │ │ │ └── UniTableTauDiscGaussSampler.java │ │ │ ├── geometric/ │ │ │ │ ├── ApacheGeometricSampler.java │ │ │ │ ├── DiscreteGeometricSampler.java │ │ │ │ ├── GeometricSampler.java │ │ │ │ └── JdkGeometricSampler.java │ │ │ ├── nb/ │ │ │ │ ├── ApacheNbSampler.java │ │ │ │ └── NbSampler.java │ │ │ ├── others/ │ │ │ │ └── Sigma2DiscGaussSampler.java │ │ │ └── poisson/ │ │ │ ├── ApachePoissonSampler.java │ │ │ └── PoissonSampler.java │ │ └── real/ │ │ ├── RealSampler.java │ │ ├── gamma/ │ │ │ ├── ApacheGammaSampler.java │ │ │ └── GammaSampler.java │ │ ├── gaussian/ │ │ │ ├── ApacheGaussianSampler.java │ │ │ ├── GaussianSampler.java │ │ │ └── GoogleGaussianSampler.java │ │ └── laplace/ │ │ ├── ApacheLaplaceSampler.java │ │ ├── GoogleLaplaceSampler.java │ │ └── LaplaceSampler.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── sampler/ │ │ ├── binary/ │ │ │ ├── BernoulliEfficiencyTest.java │ │ │ └── BernoulliTest.java │ │ ├── integral/ │ │ │ ├── IntegerEfficiencyTest.java │ │ │ ├── gaussian/ │ │ │ │ ├── ConvolutionDiscGaussSamplerTest.java │ │ │ │ ├── DiscGaussSamplerEfficiencyTest.java │ │ │ │ ├── DiscGaussSamplerTest.java │ │ │ │ ├── DiscGaussSamplerTestUtils.java │ │ │ │ └── TauDiscGaussSamplerTest.java │ │ │ ├── geometric/ │ │ │ │ └── GeometricTest.java │ │ │ ├── nb/ │ │ │ │ └── NbSamplerTest.java │ │ │ └── poisson/ │ │ │ └── PoissonSamplerTest.java │ │ └── real/ │ │ ├── RealEfficiencyTest.java │ │ ├── gamma/ │ │ │ └── GammaRealTest.java │ │ ├── gaussian/ │ │ │ └── GaussianRealTest.java │ │ └── laplace/ │ │ └── LaplaceRealTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-common-structure/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── mpc4j/ │ │ │ └── common/ │ │ │ └── structure/ │ │ │ ├── StructureUtils.java │ │ │ ├── database/ │ │ │ │ ├── Database.java │ │ │ │ ├── DatabaseFactory.java │ │ │ │ ├── NaiveDatabase.java │ │ │ │ ├── Zl32Database.java │ │ │ │ ├── Zl64Database.java │ │ │ │ └── ZlDatabase.java │ │ │ ├── fastfilter/ │ │ │ │ ├── AbstractFastCuckooFilter.java │ │ │ │ ├── AbstractFastCuckooFilterPosition.java │ │ │ │ ├── AbstractFastVacuumFilter.java │ │ │ │ ├── AbstractFastVacuumFilterPosition.java │ │ │ │ ├── FastCuckooFilter.java │ │ │ │ ├── FastCuckooFilterFactory.java │ │ │ │ ├── FastCuckooFilterPosition.java │ │ │ │ ├── MobileFastCuckooFilter.java │ │ │ │ ├── MobileFastCuckooFilterPosition.java │ │ │ │ ├── MobileFastVacuumFilter.java │ │ │ │ ├── MobileFastVacuumFilterPosition.java │ │ │ │ ├── NaiveFastCuckooFilter.java │ │ │ │ ├── NaiveFastCuckooFilterPosition.java │ │ │ │ ├── NaiveFastVacuumFilter.java │ │ │ │ ├── NaiveFastVacuumFilterPosition.java │ │ │ │ └── SingleTable.java │ │ │ ├── filter/ │ │ │ │ ├── AbstractBloomFilter.java │ │ │ │ ├── AbstractCuckooFilter.java │ │ │ │ ├── AbstractCuckooFilterPosition.java │ │ │ │ ├── AbstractVacuumFilter.java │ │ │ │ ├── AbstractVacuumFilterPosition.java │ │ │ │ ├── BloomFilter.java │ │ │ │ ├── BloomFilterFactory.java │ │ │ │ ├── CuckooFilter.java │ │ │ │ ├── CuckooFilterFactory.java │ │ │ │ ├── CuckooFilterPosition.java │ │ │ │ ├── DistinctBloomFilter.java │ │ │ │ ├── Filter.java │ │ │ │ ├── FilterFactory.java │ │ │ │ ├── MobileCuckooFilter.java │ │ │ │ ├── MobileCuckooFilterPosition.java │ │ │ │ ├── MobileVacuumFilter.java │ │ │ │ ├── MobileVacuumFilterPosition.java │ │ │ │ ├── NaiveCuckooFilter.java │ │ │ │ ├── NaiveCuckooFilterPosition.java │ │ │ │ ├── NaiveRandomBloomFilter.java │ │ │ │ ├── NaiveVacuumFilter.java │ │ │ │ ├── NaiveVacuumFilterPosition.java │ │ │ │ ├── SetFilter.java │ │ │ │ └── SparseRandomBloomFilter.java │ │ │ ├── fusefilter/ │ │ │ │ ├── AbstractArity3ByteFuseInstance.java │ │ │ │ ├── AbstractArity3ByteFusePosition.java │ │ │ │ ├── Arity3ByteFuseFilter.java │ │ │ │ ├── Arity3ByteFuseInstance.java │ │ │ │ ├── Arity3ByteFusePosition.java │ │ │ │ ├── ByteFuseFilter.java │ │ │ │ ├── ByteFuseInstance.java │ │ │ │ ├── ByteFusePosition.java │ │ │ │ └── ByteFuseUtils.java │ │ │ ├── lpn/ │ │ │ │ ├── LpnCoder.java │ │ │ │ ├── LpnParams.java │ │ │ │ ├── LpnParamsChecker.java │ │ │ │ ├── dual/ │ │ │ │ │ ├── DualLpnCoder.java │ │ │ │ │ ├── excoder/ │ │ │ │ │ │ ├── EaCoder.java │ │ │ │ │ │ ├── ExCoder.java │ │ │ │ │ │ ├── ExCoderFactory.java │ │ │ │ │ │ ├── NonSysEcCoder.java │ │ │ │ │ │ └── SystemEcCoder.java │ │ │ │ │ ├── expander/ │ │ │ │ │ │ ├── AbstractExpanderCoder.java │ │ │ │ │ │ ├── NonSysExpanderCoder.java │ │ │ │ │ │ └── SystemExpanderCoder.java │ │ │ │ │ └── silver/ │ │ │ │ │ ├── AbstractSilverCodeCreator.java │ │ │ │ │ ├── FullSilverCodeCreator.java │ │ │ │ │ ├── OnlineSilverCodeCreator.java │ │ │ │ │ ├── SilverCodeCreator.java │ │ │ │ │ ├── SilverCodeCreatorFactory.java │ │ │ │ │ ├── SilverCodeCreatorUtils.java │ │ │ │ │ ├── SilverCodeLpnParamsFinder.java │ │ │ │ │ └── SilverCoder.java │ │ │ │ └── primal/ │ │ │ │ ├── LocalLinearCoder.java │ │ │ │ └── PrimalLpnCoder.java │ │ │ ├── matrix/ │ │ │ │ ├── ByteMatrix.java │ │ │ │ ├── IntMatrix.java │ │ │ │ ├── LongRingMatrix.java │ │ │ │ ├── Matrix.java │ │ │ │ ├── Zl64Matrix.java │ │ │ │ └── zp/ │ │ │ │ ├── DenseZpMatrix.java │ │ │ │ └── ZpMatrix.java │ │ │ ├── okve/ │ │ │ │ ├── OkveHashUtils.java │ │ │ │ ├── cuckootable/ │ │ │ │ │ ├── AbstractCuckooTable.java │ │ │ │ │ ├── CuckooTable.java │ │ │ │ │ ├── CuckooTableSingletonTcFinder.java │ │ │ │ │ ├── CuckooTableTcFinder.java │ │ │ │ │ ├── H2CuckooTable.java │ │ │ │ │ ├── H2CuckooTableDfsDealer.java │ │ │ │ │ ├── H2CuckooTableTcFinder.java │ │ │ │ │ ├── H3CuckooTable.java │ │ │ │ │ └── H4CuckooTable.java │ │ │ │ ├── dokvs/ │ │ │ │ │ ├── DistinctGbfUtils.java │ │ │ │ │ ├── H2BlazeGctDokvsUtils.java │ │ │ │ │ ├── H2ClusterBlazeGctDokvsUtils.java │ │ │ │ │ ├── H2GctDokvsUtils.java │ │ │ │ │ ├── H2NaiveGctDokvsUtils.java │ │ │ │ │ ├── H3BlazeGctDovsUtils.java │ │ │ │ │ ├── H3ClusterBlazeGctDokvsUtils.java │ │ │ │ │ ├── H3GctDokvsUtils.java │ │ │ │ │ ├── H3NaiveGctDokvsUtils.java │ │ │ │ │ ├── ecc/ │ │ │ │ │ │ ├── AbstractEccDokvs.java │ │ │ │ │ │ ├── AbstractGbfEccDokvs.java │ │ │ │ │ │ ├── AbstractH2ClusterBlazeGctEccDokvs.java │ │ │ │ │ │ ├── AbstractH2GctEccDokvs.java │ │ │ │ │ │ ├── AbstractH3ClusterBlazeGctEccDokvs.java │ │ │ │ │ │ ├── AbstractH3GctEccDokvs.java │ │ │ │ │ │ ├── DistinctGbfEccDokvs.java │ │ │ │ │ │ ├── EccDokvs.java │ │ │ │ │ │ ├── EccDokvsFactory.java │ │ │ │ │ │ ├── H2BlazeGctEccDokvs.java │ │ │ │ │ │ ├── H2NaiveClusterBlazeGctEccOkvs.java │ │ │ │ │ │ ├── H2SingletonGctEccDokvs.java │ │ │ │ │ │ ├── H2SparseClusterBlazeGctEccDokvs.java │ │ │ │ │ │ ├── H2TwoCoreGctEccDokvs.java │ │ │ │ │ │ ├── H3BlazeGctEccDokvs.java │ │ │ │ │ │ ├── H3NaiveClusterBlazeGctEccDokvs.java │ │ │ │ │ │ ├── H3SingletonGctEccDokvs.java │ │ │ │ │ │ ├── H3SparseClusterBlazeGctDokvs.java │ │ │ │ │ │ └── SparseEccDokvs.java │ │ │ │ │ ├── gf2e/ │ │ │ │ │ │ ├── AbstractGbfGf2eDokvs.java │ │ │ │ │ │ ├── AbstractGf2eDokvs.java │ │ │ │ │ │ ├── AbstractH2ClusterBlazeGctGf2eDokvs.java │ │ │ │ │ │ ├── AbstractH2GctGf2eDokvs.java │ │ │ │ │ │ ├── AbstractH3ClusterBlazeGctGf2eDokvs.java │ │ │ │ │ │ ├── AbstractH3GctGf2eDokvs.java │ │ │ │ │ │ ├── BinaryGf2eDokvs.java │ │ │ │ │ │ ├── DistinctGbfGf2eDokvs.java │ │ │ │ │ │ ├── Gf2eDokvs.java │ │ │ │ │ │ ├── Gf2eDokvsFactory.java │ │ │ │ │ │ ├── H2BlazeGctGf2eDokvs.java │ │ │ │ │ │ ├── H2NaiveClusterBlazeGctGf2eDokvs.java │ │ │ │ │ │ ├── H2SingletonGctGf2eDokvs.java │ │ │ │ │ │ ├── H2SparseClusterBlazeGctGf2eDokvs.java │ │ │ │ │ │ ├── H2TwoCoreGctGf2eDokvs.java │ │ │ │ │ │ ├── H3BlazeGctGf2eDokvs.java │ │ │ │ │ │ ├── H3NaiveClusterBlazeGctGf2eDokvs.java │ │ │ │ │ │ ├── H3SingletonGctGf2eDokvs.java │ │ │ │ │ │ ├── H3SparseClusterBlazeGctGf2eDokvs.java │ │ │ │ │ │ ├── MegaBinGf2eDokvs.java │ │ │ │ │ │ └── SparseGf2eDokvs.java │ │ │ │ │ ├── gf2k/ │ │ │ │ │ │ ├── AbstractGf2kDokvs.java │ │ │ │ │ │ ├── AbstractH3FieldGctGf2kDokvs.java │ │ │ │ │ │ ├── BinaryGf2kDokvs.java │ │ │ │ │ │ ├── FieldGf2kDokvs.java │ │ │ │ │ │ ├── Gf2kDokvs.java │ │ │ │ │ │ ├── Gf2kDokvsFactory.java │ │ │ │ │ │ ├── H3ClusterFieldBlazeGctGf2kDokvs.java │ │ │ │ │ │ ├── H3FieldBlazeGctGf2kDokvs.java │ │ │ │ │ │ └── MegaBinGf2kDokvs.java │ │ │ │ │ └── zp/ │ │ │ │ │ ├── AbstractGbfZpDokvs.java │ │ │ │ │ ├── AbstractH2ClusterBlazeGctZpDokvs.java │ │ │ │ │ ├── AbstractH2GctZpDokvs.java │ │ │ │ │ ├── AbstractH3ClusterBlazeGctZpDokvs.java │ │ │ │ │ ├── AbstractH3GctZpDokvs.java │ │ │ │ │ ├── AbstractZpDokvs.java │ │ │ │ │ ├── DistinctGbfZpDokvs.java │ │ │ │ │ ├── H2BlazeGctZpDokvs.java │ │ │ │ │ ├── H2NaiveClusterBlazeGctZpDokvs.java │ │ │ │ │ ├── H2SingletonGctZpDokvs.java │ │ │ │ │ ├── H2SparseClusterBlazeGctZpDokvs.java │ │ │ │ │ ├── H2TwoCoreGctZpDokvs.java │ │ │ │ │ ├── H3BlazeGctZpDokvs.java │ │ │ │ │ ├── H3NaiveClusterBlazeGctZpDokvs.java │ │ │ │ │ ├── H3SingletonGctZpDokvs.java │ │ │ │ │ ├── H3SparseClusterBlazeGctZpDokvs.java │ │ │ │ │ ├── SparseZpDokvs.java │ │ │ │ │ ├── ZpDokvs.java │ │ │ │ │ └── ZpDokvsFactory.java │ │ │ │ └── tool/ │ │ │ │ ├── BinaryBandLinearSolver.java │ │ │ │ ├── BinaryLinearSolver.java │ │ │ │ ├── BinaryMaxLisFinder.java │ │ │ │ ├── EccLinearSolver.java │ │ │ │ ├── Gf2kLinearSolver.java │ │ │ │ ├── RowEchelonFormInfo.java │ │ │ │ ├── Zp64BandLinearSolver.java │ │ │ │ ├── ZpBandLinearSolver.java │ │ │ │ ├── ZpLinearSolver.java │ │ │ │ └── ZpMaxLisFinder.java │ │ │ ├── pgm/ │ │ │ │ ├── IntGrowableArray.java │ │ │ │ ├── LongApproxPgmIndex.java │ │ │ │ ├── LongIntrinsics.java │ │ │ │ ├── LongPgmIndex.java │ │ │ │ ├── PgmIndexUtil.java │ │ │ │ └── PlaModel.java │ │ │ ├── rcfilter/ │ │ │ │ ├── AbstractRandomVacuumFilter.java │ │ │ │ ├── MobileRandomVacuumFilter.java │ │ │ │ ├── MobileRandomVacuumFilterPosition.java │ │ │ │ ├── NaiveRandomVacuumFilter.java │ │ │ │ ├── NaiveRandomVacuumFilterPosition.java │ │ │ │ ├── RandomCuckooFilter.java │ │ │ │ ├── RandomCuckooFilterFactory.java │ │ │ │ ├── RandomCuckooFilterHashUtils.java │ │ │ │ └── RandomCuckooFilterPosition.java │ │ │ └── vector/ │ │ │ ├── BigIntegerVector.java │ │ │ ├── ByteVector.java │ │ │ ├── FieldVector.java │ │ │ ├── IntVector.java │ │ │ ├── LongVector.java │ │ │ ├── RingVector.java │ │ │ ├── Vector.java │ │ │ ├── Zl64Vector.java │ │ │ ├── ZlVector.java │ │ │ └── Zp64Vector.java │ │ └── resources/ │ │ └── silver/ │ │ └── z2/ │ │ ├── SILVER_11_14.txt │ │ ├── SILVER_11_15.txt │ │ ├── SILVER_11_16.txt │ │ ├── SILVER_11_17.txt │ │ ├── SILVER_11_18.txt │ │ ├── SILVER_11_19.txt │ │ ├── SILVER_11_20.txt │ │ ├── SILVER_11_21.txt │ │ ├── SILVER_11_22.txt │ │ ├── SILVER_11_23.txt │ │ ├── SILVER_11_24.txt │ │ ├── SILVER_5_14.txt │ │ ├── SILVER_5_15.txt │ │ ├── SILVER_5_16.txt │ │ ├── SILVER_5_17.txt │ │ ├── SILVER_5_18.txt │ │ ├── SILVER_5_19.txt │ │ ├── SILVER_5_20.txt │ │ ├── SILVER_5_21.txt │ │ ├── SILVER_5_22.txt │ │ ├── SILVER_5_23.txt │ │ └── SILVER_5_24.txt │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── structure/ │ │ ├── database/ │ │ │ ├── DatabaseTest.java │ │ │ └── NaiveDatabaseTest.java │ │ ├── fastfilter/ │ │ │ ├── FastCuckooFilterTest.java │ │ │ └── FastFilterEfficiencyTest.java │ │ ├── filter/ │ │ │ ├── BloomFilterTest.java │ │ │ ├── CuckooFilterTest.java │ │ │ ├── FilterEfficiencyTest.java │ │ │ └── FilterTest.java │ │ ├── fusefilter/ │ │ │ ├── ByteFuseFilterParamsTest.java │ │ │ └── ByteFuseFilterTest.java │ │ ├── lpn/ │ │ │ ├── LpnCoderTestUtils.java │ │ │ ├── LpnParamsCheckerTest.java │ │ │ ├── dual/ │ │ │ │ ├── excoder/ │ │ │ │ │ └── ExCoderTest.java │ │ │ │ ├── expander/ │ │ │ │ │ ├── NonSysExpanderCoderTest.java │ │ │ │ │ └── SystemExpanderCoderTest.java │ │ │ │ └── silver/ │ │ │ │ ├── SilverCodeCreatorTest.java │ │ │ │ └── SilverCoderTest.java │ │ │ └── primal/ │ │ │ └── LocalLinearCoderTest.java │ │ ├── matrix/ │ │ │ ├── IntMatrixTest.java │ │ │ └── zp/ │ │ │ └── DenseZpMatrixTest.java │ │ ├── okve/ │ │ │ ├── cuckootable/ │ │ │ │ ├── CuckooTableTest.java │ │ │ │ ├── H2DfsDealerTest.java │ │ │ │ ├── H2TcFinderTest.java │ │ │ │ ├── H3TcFinderTest.java │ │ │ │ └── H4TcFinderTest.java │ │ │ ├── dokvs/ │ │ │ │ ├── ecc/ │ │ │ │ │ ├── EccDokvsEfficiencyTest.java │ │ │ │ │ ├── EccDokvsTest.java │ │ │ │ │ └── SparseEccDokvsTest.java │ │ │ │ ├── gf2e/ │ │ │ │ │ ├── BinaryGf2eDokvsTest.java │ │ │ │ │ ├── Gf2eDokvsEfficiencyTest.java │ │ │ │ │ ├── Gf2eDokvsTest.java │ │ │ │ │ └── SparseGf2eDokvsTest.java │ │ │ │ ├── gf2k/ │ │ │ │ │ ├── Gf2kDokvsEfficiencyTest.java │ │ │ │ │ └── Gf2kDokvsTest.java │ │ │ │ └── zp/ │ │ │ │ ├── SparseZpDokvsTest.java │ │ │ │ ├── ZpDokvsEfficiencyTest.java │ │ │ │ └── ZpDokvsTest.java │ │ │ └── tool/ │ │ │ ├── BinaryBandLinearSolverConstantTest.java │ │ │ ├── BinaryBandLinearSolverRandomTest.java │ │ │ ├── BinaryLinearSolverConstantTest.java │ │ │ ├── BinaryLinearSolverRandomTest.java │ │ │ ├── BinaryMaxLisFinderTest.java │ │ │ ├── EccLinearSolverRandomTest.java │ │ │ ├── Gf2kLinearSolverConstantTest.java │ │ │ ├── Zp64BandLinearSolverConstantTest.java │ │ │ ├── Zp64BandLinearSolverRandomTest.java │ │ │ ├── ZpBandLinearSolverConstantTest.java │ │ │ ├── ZpBandLinearSolverRandomTest.java │ │ │ ├── ZpLinearSolverConstantTest.java │ │ │ ├── ZpLinearSolverRandomTest.java │ │ │ └── ZpMaxLisFinderTest.java │ │ ├── pgm/ │ │ │ ├── LongApproxPgmIndexParamsTest.java │ │ │ ├── LongApproxPgmIndexTest.java │ │ │ ├── LongIntrinsicsTest.java │ │ │ └── LongPgmIndexTest.java │ │ ├── rcfilter/ │ │ │ ├── RandomCuckooFilterTest.java │ │ │ └── RandomFilterEfficiencyTest.java │ │ └── vector/ │ │ ├── ByteVectorTest.java │ │ ├── IntVectorTest.java │ │ ├── LongVectorTest.java │ │ ├── Zl64VectorTest.java │ │ ├── ZlVectorTest.java │ │ └── Zp64VectorTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-common-tool/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── cc/ │ │ │ │ └── redberry/ │ │ │ │ └── rings/ │ │ │ │ └── JdkIntegersZp.java │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── mpc4j/ │ │ │ └── common/ │ │ │ └── tool/ │ │ │ ├── CommonConstants.java │ │ │ ├── Config.java │ │ │ ├── EnvType.java │ │ │ ├── MathPreconditions.java │ │ │ ├── bitmatrix/ │ │ │ │ ├── dense/ │ │ │ │ │ ├── ByteDenseBitMatrix.java │ │ │ │ │ ├── DenseBitMatrix.java │ │ │ │ │ ├── DenseBitMatrixFactory.java │ │ │ │ │ └── LongDenseBitMatrix.java │ │ │ │ ├── sparse/ │ │ │ │ │ ├── ExtremeSparseBitMatrix.java │ │ │ │ │ ├── LowerTriSquareSparseBitMatrix.java │ │ │ │ │ ├── NaiveSparseBitMatrix.java │ │ │ │ │ ├── SparseBitMatrix.java │ │ │ │ │ ├── SparseBitVector.java │ │ │ │ │ ├── TriSquareSparseBitMatrix.java │ │ │ │ │ └── UpperTriSquareSparseBitMatrix.java │ │ │ │ └── trans/ │ │ │ │ ├── AbstractSplitColTransBitMatrix.java │ │ │ │ ├── AbstractSplitRowTransBitMatrix.java │ │ │ │ ├── AbstractTransBitMatrix.java │ │ │ │ ├── EklundhTransBitMatrix.java │ │ │ │ ├── JdkSimdTransBitMatrix.java │ │ │ │ ├── JdkSplitColTransBitMatrix.java │ │ │ │ ├── JdkSplitRowTransBitMatrix.java │ │ │ │ ├── JdkTransBitMatrix.java │ │ │ │ ├── NativeSplitColTransBitMatrix.java │ │ │ │ ├── NativeSplitRowTransBitMatrix.java │ │ │ │ ├── NativeTransBitMatrix.java │ │ │ │ ├── TransBitMatrix.java │ │ │ │ └── TransBitMatrixFactory.java │ │ │ ├── bitvector/ │ │ │ │ ├── BigIntegerBitVector.java │ │ │ │ ├── BitVector.java │ │ │ │ ├── BitVectorFactory.java │ │ │ │ ├── BytesBitVector.java │ │ │ │ └── CombinedBitVector.java │ │ │ ├── bristol/ │ │ │ │ ├── AbstractBristolBmmGenerator.java │ │ │ │ ├── AbstractBristolFashionGenerator.java │ │ │ │ ├── AbstractBristolFashionLowMcGenerator.java │ │ │ │ ├── BlockBmmLookupCode.java │ │ │ │ ├── BristolFashionBmmGenerator.java │ │ │ │ ├── BristolFashionEvaluator.java │ │ │ │ ├── BristolFashionLowMcFileGenerator.java │ │ │ │ ├── BristolFashionType.java │ │ │ │ ├── GateOperation.java │ │ │ │ └── GrayCodeGenerator.java │ │ │ ├── coder/ │ │ │ │ ├── Coder.java │ │ │ │ ├── linear/ │ │ │ │ │ ├── AbstractBchCoder.java │ │ │ │ │ ├── Bch065By448Coder.java │ │ │ │ │ ├── Bch072By462Coder.java │ │ │ │ │ ├── Bch076By511Coder.java │ │ │ │ │ ├── Bch084By495Coder.java │ │ │ │ │ ├── Bch090By495Coder.java │ │ │ │ │ ├── Bch132By583Coder.java │ │ │ │ │ ├── Bch138By594Coder.java │ │ │ │ │ ├── Bch144By605Coder.java │ │ │ │ │ ├── Bch150By616Coder.java │ │ │ │ │ ├── Bch156By627Coder.java │ │ │ │ │ ├── Bch162By638Coder.java │ │ │ │ │ ├── Bch168By649Coder.java │ │ │ │ │ ├── Bch174By660Coder.java │ │ │ │ │ ├── Bch210By732Coder.java │ │ │ │ │ ├── Bch217By744Coder.java │ │ │ │ │ ├── Bch231By768Coder.java │ │ │ │ │ ├── Bch238By776Coder.java │ │ │ │ │ ├── HadamardCoder.java │ │ │ │ │ ├── LinearCoder.java │ │ │ │ │ ├── LinearCoderFactory.java │ │ │ │ │ └── ReputationCoder.java │ │ │ │ └── random/ │ │ │ │ ├── RandomCoder.java │ │ │ │ └── RandomCoderUtils.java │ │ │ ├── crypto/ │ │ │ │ ├── commit/ │ │ │ │ │ ├── AbstractRoBcCommit.java │ │ │ │ │ ├── AbstractRoJdkCommit.java │ │ │ │ │ ├── Commit.java │ │ │ │ │ ├── CommitFactory.java │ │ │ │ │ ├── RoBcSha256Commit.java │ │ │ │ │ ├── RoBcSm3Commit.java │ │ │ │ │ └── RoJdkSha256Commit.java │ │ │ │ ├── crhf/ │ │ │ │ │ ├── Crhf.java │ │ │ │ │ ├── CrhfFactory.java │ │ │ │ │ ├── FixedKeyMmoCrhf.java │ │ │ │ │ ├── JdkMmoSigmaCrhf.java │ │ │ │ │ ├── MmoCrhf.java │ │ │ │ │ └── SimdMmoSigmaCrhf.java │ │ │ │ ├── ecc/ │ │ │ │ │ ├── AbstractEcc.java │ │ │ │ │ ├── AbstractNativeEcc.java │ │ │ │ │ ├── ByteEccFactory.java │ │ │ │ │ ├── ByteFullEcc.java │ │ │ │ │ ├── ByteMulEcc.java │ │ │ │ │ ├── ByteMulElligatorEcc.java │ │ │ │ │ ├── Ecc.java │ │ │ │ │ ├── EccFactory.java │ │ │ │ │ ├── NativeEcc.java │ │ │ │ │ ├── WindowMethod.java │ │ │ │ │ ├── bc/ │ │ │ │ │ │ ├── Curve25519BcEcc.java │ │ │ │ │ │ ├── Ed25519BcByteFullEcc.java │ │ │ │ │ │ ├── Ed25519BcEcc.java │ │ │ │ │ │ ├── SecP256k1BcEcc.java │ │ │ │ │ │ ├── SecP256r1BcEcc.java │ │ │ │ │ │ ├── Sm2P256v1BcEcc.java │ │ │ │ │ │ ├── X25519BcByteMulEcc.java │ │ │ │ │ │ └── X25519BcByteMulElligatorEcc.java │ │ │ │ │ ├── cafe/ │ │ │ │ │ │ ├── CafeAffineNielsPoint.java │ │ │ │ │ │ ├── CafeCompletedPoint.java │ │ │ │ │ │ ├── CafeConstantTimeUtils.java │ │ │ │ │ │ ├── CafeConstants.java │ │ │ │ │ │ ├── CafeEdwardsCompressedPoint.java │ │ │ │ │ │ ├── CafeEdwardsPoint.java │ │ │ │ │ │ ├── CafeEdwardsPrecomputeTable.java │ │ │ │ │ │ ├── CafeFieldElement.java │ │ │ │ │ │ ├── CafeProjectiveNielsPoint.java │ │ │ │ │ │ ├── CafeProjectivePoint.java │ │ │ │ │ │ ├── CafeRistrettoCompressedPoint.java │ │ │ │ │ │ ├── CafeRistrettoGeneratorTable.java │ │ │ │ │ │ ├── CafeRistrettoPoint.java │ │ │ │ │ │ ├── CafeScalar.java │ │ │ │ │ │ ├── CafeUnpackedScalar.java │ │ │ │ │ │ ├── Ed25519CafeByteFullEcc.java │ │ │ │ │ │ └── RistrettoCafeByteFullEcc.java │ │ │ │ │ ├── fourq/ │ │ │ │ │ │ └── FourqByteFullEcc.java │ │ │ │ │ ├── openssl/ │ │ │ │ │ │ ├── AbstractOpensslEcc.java │ │ │ │ │ │ ├── SecP256k1OpensslEcc.java │ │ │ │ │ │ ├── SecP256k1OpensslNativeEcc.java │ │ │ │ │ │ ├── SecP256r1OpensslEcc.java │ │ │ │ │ │ ├── SecP256r1OpensslNativeEcc.java │ │ │ │ │ │ ├── Sm2P256v1OpensslEcc.java │ │ │ │ │ │ └── Sm2P256v1OpensslNativeEcc.java │ │ │ │ │ ├── sodium/ │ │ │ │ │ │ ├── Ed25519SodiumByteFullEcc.java │ │ │ │ │ │ └── X25519SodiumByteMulEcc.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── ByteEccUtils.java │ │ │ │ │ ├── Curve25519FieldUtils.java │ │ │ │ │ ├── Ed25519ByteEccUtils.java │ │ │ │ │ ├── FourqByteEccUtils.java │ │ │ │ │ └── X25519ByteEccUtils.java │ │ │ │ ├── engine/ │ │ │ │ │ ├── JdkSm4Engine.java │ │ │ │ │ └── Rijndael256Engine.java │ │ │ │ ├── hash/ │ │ │ │ │ ├── AbstractJdkHash.java │ │ │ │ │ ├── BcBlake2b160Hash.java │ │ │ │ │ ├── BcSha3Series256Hash.java │ │ │ │ │ ├── BcSha3Series512Hash.java │ │ │ │ │ ├── BcShake128Hash.java │ │ │ │ │ ├── BcShake256Hash.java │ │ │ │ │ ├── BcSm3Hash.java │ │ │ │ │ ├── Hash.java │ │ │ │ │ ├── HashFactory.java │ │ │ │ │ ├── JdkSha256Hash.java │ │ │ │ │ ├── NativeBlake2b160Hash.java │ │ │ │ │ ├── NativeBlake3Hash.java │ │ │ │ │ └── NativeSha256Hash.java │ │ │ │ ├── kdf/ │ │ │ │ │ ├── BcBlake2bKdf.java │ │ │ │ │ ├── BcSm3Kdf.java │ │ │ │ │ ├── JdkSha256Kdf.java │ │ │ │ │ ├── Kdf.java │ │ │ │ │ ├── KdfFactory.java │ │ │ │ │ ├── NativeBlake2bKdf.java │ │ │ │ │ ├── NativeBlake3Kdf.java │ │ │ │ │ └── NativeSha256Kdf.java │ │ │ │ ├── kyber/ │ │ │ │ │ ├── KyberEngine.java │ │ │ │ │ ├── KyberEngineFactory.java │ │ │ │ │ ├── engine/ │ │ │ │ │ │ ├── KyberCcaEngine.java │ │ │ │ │ │ ├── KyberCpaEngine.java │ │ │ │ │ │ └── KyberEngineHelper.java │ │ │ │ │ ├── params/ │ │ │ │ │ │ ├── KyberKeyPair.java │ │ │ │ │ │ ├── KyberParams.java │ │ │ │ │ │ ├── KyberUniformRandom.java │ │ │ │ │ │ └── UnpackedCiphertext.java │ │ │ │ │ └── utils/ │ │ │ │ │ ├── ByteOps.java │ │ │ │ │ ├── Ntt.java │ │ │ │ │ └── Poly.java │ │ │ │ ├── prf/ │ │ │ │ │ ├── BcSip128HashPrf.java │ │ │ │ │ ├── BcSipHashPrf.java │ │ │ │ │ ├── BcSm4CbcPrf.java │ │ │ │ │ ├── JdkAesCbcPrf.java │ │ │ │ │ ├── Prf.java │ │ │ │ │ └── PrfFactory.java │ │ │ │ ├── prg/ │ │ │ │ │ ├── BcSm4CtrPrg.java │ │ │ │ │ ├── BcSm4EcbPrg.java │ │ │ │ │ ├── JdkAesCtrPrg.java │ │ │ │ │ ├── JdkAesEcbPrg.java │ │ │ │ │ ├── JdkSecureRandomPrg.java │ │ │ │ │ ├── Prg.java │ │ │ │ │ └── PrgFactory.java │ │ │ │ ├── prp/ │ │ │ │ │ ├── BcSm4Prp.java │ │ │ │ │ ├── DefaultFixedKeyPrp.java │ │ │ │ │ ├── FixedKeyPrp.java │ │ │ │ │ ├── JdkAesPrp.java │ │ │ │ │ ├── JdkBytesLowMcPrp.java │ │ │ │ │ ├── JdkLongsLowMcPrp.java │ │ │ │ │ ├── NativeAesPrp.java │ │ │ │ │ ├── Prp.java │ │ │ │ │ └── PrpFactory.java │ │ │ │ ├── stream/ │ │ │ │ │ ├── BcAesOfbStreamCipher.java │ │ │ │ │ ├── BcSm4OfbStreamCipher.java │ │ │ │ │ ├── BcZuc128StreamCipher.java │ │ │ │ │ ├── JdkAesOfbStreamCipher.java │ │ │ │ │ ├── StreamCipher.java │ │ │ │ │ └── StreamCipherFactory.java │ │ │ │ └── tcrhf/ │ │ │ │ ├── Tcrhf.java │ │ │ │ ├── TcrhfFactory.java │ │ │ │ └── TmmoTcrhf.java │ │ │ ├── f3hash/ │ │ │ │ ├── F3Hash.java │ │ │ │ ├── F3HashFactory.java │ │ │ │ └── LongF3Hash.java │ │ │ ├── galoisfield/ │ │ │ │ ├── BigIntegerField.java │ │ │ │ ├── BigIntegerRing.java │ │ │ │ ├── ByteField.java │ │ │ │ ├── ByteRing.java │ │ │ │ ├── BytesField.java │ │ │ │ ├── BytesRing.java │ │ │ │ ├── LongField.java │ │ │ │ ├── LongRing.java │ │ │ │ ├── Z3ByteField.java │ │ │ │ ├── Z3Utils.java │ │ │ │ ├── gf2e/ │ │ │ │ │ ├── AbstractGf064.java │ │ │ │ │ ├── AbstractGf128.java │ │ │ │ │ ├── AbstractGf2e.java │ │ │ │ │ ├── CombinedGf064.java │ │ │ │ │ ├── CombinedGf128.java │ │ │ │ │ ├── Gf2e.java │ │ │ │ │ ├── Gf2eFactory.java │ │ │ │ │ ├── Gf2eGadget.java │ │ │ │ │ ├── Gf2eManager.java │ │ │ │ │ ├── JdkGf001.java │ │ │ │ │ ├── JdkGf002.java │ │ │ │ │ ├── JdkGf004.java │ │ │ │ │ ├── JdkGf008.java │ │ │ │ │ ├── JdkGf016.java │ │ │ │ │ ├── JdkGf032.java │ │ │ │ │ ├── JdkGf064.java │ │ │ │ │ ├── JdkGf128.java │ │ │ │ │ ├── JdkGf2eUtils.java │ │ │ │ │ ├── NtlGf2e.java │ │ │ │ │ ├── NtlNativeGf2e.java │ │ │ │ │ └── RingsGf2e.java │ │ │ │ ├── gf2k/ │ │ │ │ │ ├── AbstractGf2k.java │ │ │ │ │ ├── CombinedGf2k.java │ │ │ │ │ ├── Gf2k.java │ │ │ │ │ ├── Gf2kFactory.java │ │ │ │ │ ├── Gf2kGadget.java │ │ │ │ │ ├── JdkGf2k.java │ │ │ │ │ ├── NtlGf2k.java │ │ │ │ │ └── RingsGf2k.java │ │ │ │ ├── sgf2k/ │ │ │ │ │ ├── AbstractSubSgf2k.java │ │ │ │ │ ├── Dgf2k.java │ │ │ │ │ ├── Dgf2kFactory.java │ │ │ │ │ ├── NtlSubSgf2k.java │ │ │ │ │ ├── RingsSubSgf2k.java │ │ │ │ │ ├── Sgf2k.java │ │ │ │ │ ├── Sgf2k001.java │ │ │ │ │ ├── Sgf2k128.java │ │ │ │ │ ├── Sgf2kFactory.java │ │ │ │ │ └── Sgf2kManager.java │ │ │ │ ├── zl/ │ │ │ │ │ ├── AbstractZl.java │ │ │ │ │ ├── JdkZl.java │ │ │ │ │ ├── Zl.java │ │ │ │ │ └── ZlFactory.java │ │ │ │ ├── zl64/ │ │ │ │ │ ├── AbstractZl64.java │ │ │ │ │ ├── JdkZl64.java │ │ │ │ │ ├── Zl64.java │ │ │ │ │ └── Zl64Factory.java │ │ │ │ ├── zn/ │ │ │ │ │ ├── AbstractZn.java │ │ │ │ │ ├── JdkZn.java │ │ │ │ │ ├── Zn.java │ │ │ │ │ └── ZnFactory.java │ │ │ │ ├── zn64/ │ │ │ │ │ ├── AbstractZn64.java │ │ │ │ │ ├── RingsZn64.java │ │ │ │ │ ├── Zn64.java │ │ │ │ │ └── Zn64Factory.java │ │ │ │ ├── zp/ │ │ │ │ │ ├── AbstractZp.java │ │ │ │ │ ├── JdkZp.java │ │ │ │ │ ├── Zp.java │ │ │ │ │ ├── ZpFactory.java │ │ │ │ │ ├── ZpGadget.java │ │ │ │ │ └── ZpManager.java │ │ │ │ └── zp64/ │ │ │ │ ├── AbstractZp64.java │ │ │ │ ├── RingsZp64.java │ │ │ │ ├── Zp64.java │ │ │ │ ├── Zp64Factory.java │ │ │ │ ├── Zp64Gadget.java │ │ │ │ └── Zp64Manager.java │ │ │ ├── hash/ │ │ │ │ ├── IntHash.java │ │ │ │ ├── IntHashFactory.java │ │ │ │ ├── LongHash.java │ │ │ │ ├── LongHashFactory.java │ │ │ │ ├── bobhash/ │ │ │ │ │ ├── BobHashUtils.java │ │ │ │ │ ├── BobIntHash.java │ │ │ │ │ └── BobLongHash.java │ │ │ │ └── xxhash/ │ │ │ │ ├── XxIntHash.java │ │ │ │ └── XxLongHash.java │ │ │ ├── hashbin/ │ │ │ │ ├── MaxBinSizeUtils.java │ │ │ │ ├── object/ │ │ │ │ │ ├── EmptyPadHashBin.java │ │ │ │ │ ├── HashBin.java │ │ │ │ │ ├── HashBinEntry.java │ │ │ │ │ ├── PhaseHashBin.java │ │ │ │ │ ├── RandomPadHashBin.java │ │ │ │ │ ├── TwoChoiceHashBin.java │ │ │ │ │ └── cuckoo/ │ │ │ │ │ ├── AbstractNoStashCuckooHashBin.java │ │ │ │ │ ├── CuckooHashBin.java │ │ │ │ │ ├── CuckooHashBinFactory.java │ │ │ │ │ ├── NaiveCuckooHashBin.java │ │ │ │ │ ├── NaiveNoStashCuckooHashBin.java │ │ │ │ │ ├── NoStashCuckooHashBin.java │ │ │ │ │ ├── NoStashCuckooHashBinUtils.java │ │ │ │ │ ├── OneHashCuckooHashBin.java │ │ │ │ │ └── Psz18NoStashCuckooHashBin.java │ │ │ │ └── primitive/ │ │ │ │ ├── ArraySimpleIntHashBin.java │ │ │ │ ├── DynamicSimpleIntHashBin.java │ │ │ │ ├── IntHashBin.java │ │ │ │ └── cuckoo/ │ │ │ │ ├── AbstractIntNoStashCuckooHashBin.java │ │ │ │ ├── IntCuckooHashBinFactory.java │ │ │ │ ├── IntNoStashCuckooHashBin.java │ │ │ │ ├── NaiveIntNoStashCuckooHashBin.java │ │ │ │ └── Psz18IntNoStashCuckooHashBin.java │ │ │ ├── metrics/ │ │ │ │ ├── HeavyHitterMetrics.java │ │ │ │ └── KendallCorrelation.java │ │ │ ├── network/ │ │ │ │ ├── PermutationNetwork.java │ │ │ │ ├── PermutationNetworkFactory.java │ │ │ │ ├── PermutationNetworkUtils.java │ │ │ │ ├── benes/ │ │ │ │ │ ├── AbstractBenesNetwork.java │ │ │ │ │ ├── BenesNetwork.java │ │ │ │ │ ├── BenesNetworkFactory.java │ │ │ │ │ ├── JdkBenesNetwork.java │ │ │ │ │ └── NativeBenesNetwork.java │ │ │ │ ├── decomposer/ │ │ │ │ │ ├── AbstractPermutationDecomposer.java │ │ │ │ │ ├── Cgp20PermutationDecomposer.java │ │ │ │ │ ├── Lll24PermutationDecomposer.java │ │ │ │ │ ├── PermutationDecomposer.java │ │ │ │ │ └── PermutationDecomposerFactory.java │ │ │ │ └── waksman/ │ │ │ │ ├── AbstractWaksmanNetwork.java │ │ │ │ ├── JdkWaksmanNetwork.java │ │ │ │ ├── NativeWaksmanNetwork.java │ │ │ │ ├── WaksmanNetwork.java │ │ │ │ └── WaksmanNetworkFactory.java │ │ │ ├── polynomial/ │ │ │ │ ├── gf2e/ │ │ │ │ │ ├── AbstractGf2ePoly.java │ │ │ │ │ ├── AbstractRingsGf2ePoly.java │ │ │ │ │ ├── Gf2ePoly.java │ │ │ │ │ ├── Gf2ePolyFactory.java │ │ │ │ │ ├── NtlGf2ePoly.java │ │ │ │ │ ├── NtlNativeGf2ePoly.java │ │ │ │ │ ├── RingsLagrangeGf2ePoly.java │ │ │ │ │ └── RingsNewtonGf2ePoly.java │ │ │ │ ├── power/ │ │ │ │ │ ├── PowersDag.java │ │ │ │ │ └── PowersNode.java │ │ │ │ ├── zp/ │ │ │ │ │ ├── AbstractRingsZpPoly.java │ │ │ │ │ ├── AbstractZpPoly.java │ │ │ │ │ ├── AbstractZpTreePoly.java │ │ │ │ │ ├── JdkLagrangeZpPoly.java │ │ │ │ │ ├── JdkNewtonZpPoly.java │ │ │ │ │ ├── NtlTreeZpPoly.java │ │ │ │ │ ├── NtlZpPoly.java │ │ │ │ │ ├── RingsLagrangeZpPoly.java │ │ │ │ │ ├── RingsNewtonZpPoly.java │ │ │ │ │ ├── RingsZpTreePoly.java │ │ │ │ │ ├── ZpPoly.java │ │ │ │ │ ├── ZpPolyFactory.java │ │ │ │ │ └── ZpTreePoly.java │ │ │ │ └── zp64/ │ │ │ │ ├── AbstractRingsZp64Poly.java │ │ │ │ ├── AbstractZp64Poly.java │ │ │ │ ├── NtlZp64Poly.java │ │ │ │ ├── RingsLagrangeZp64Poly.java │ │ │ │ ├── RingsNewtonZp64Poly.java │ │ │ │ ├── Zp64Poly.java │ │ │ │ └── Zp64PolyFactory.java │ │ │ └── utils/ │ │ │ ├── BigDecimalUtils.java │ │ │ ├── BigIntegerUtils.java │ │ │ ├── BinaryUtils.java │ │ │ ├── BlockUtils.java │ │ │ ├── BytesUtils.java │ │ │ ├── CommonUtils.java │ │ │ ├── DoubleUtils.java │ │ │ ├── Gf2xUtils.java │ │ │ ├── IntUtils.java │ │ │ ├── LongUtils.java │ │ │ ├── ObjectUtils.java │ │ │ ├── PropertiesUtils.java │ │ │ ├── RankUtils.java │ │ │ └── SerializeUtils.java │ │ └── resources/ │ │ ├── bristol/ │ │ │ ├── basic/ │ │ │ │ ├── adder64.txt │ │ │ │ ├── aes_128.txt │ │ │ │ ├── divide64.txt │ │ │ │ ├── mult64.txt │ │ │ │ ├── neg64.txt │ │ │ │ └── sub64.txt │ │ │ └── extend/ │ │ │ ├── adder64.txt │ │ │ ├── aes_128.txt │ │ │ ├── divide64.txt │ │ │ ├── mult64.txt │ │ │ ├── neg64.txt │ │ │ └── sub64.txt │ │ ├── gen_matrix/ │ │ │ ├── mx132by583.txt │ │ │ ├── mx138by594.txt │ │ │ ├── mx144by605.txt │ │ │ ├── mx150by616.txt │ │ │ ├── mx156by627.txt │ │ │ ├── mx162by638.txt │ │ │ ├── mx168by649.txt │ │ │ ├── mx174by660.txt │ │ │ ├── mx210by732.txt │ │ │ ├── mx217by744.txt │ │ │ ├── mx231by768.txt │ │ │ ├── mx238by776.txt │ │ │ ├── mx65by448.txt │ │ │ ├── mx72by462.txt │ │ │ ├── mx76by511.txt │ │ │ ├── mx84by495.txt │ │ │ └── mx90by495.txt │ │ └── low_mc/ │ │ ├── lowmc_128_128_192.txt │ │ ├── lowmc_128_128_20.txt │ │ ├── lowmc_128_128_208.txt │ │ ├── lowmc_128_128_21.txt │ │ ├── lowmc_128_128_23.txt │ │ ├── lowmc_128_128_287.txt │ │ └── lowmc_128_128_32.txt │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── common/ │ │ └── tool/ │ │ ├── MathPreconditionsTest.java │ │ ├── bitmatrix/ │ │ │ ├── dense/ │ │ │ │ ├── DenseBitMatrixTest.java │ │ │ │ ├── SquareDenseBitMatrixEfficiencyTest.java │ │ │ │ └── SquareDenseBitMatrixTest.java │ │ │ ├── sparse/ │ │ │ │ ├── ExtremeSparseBitMatrixTest.java │ │ │ │ ├── NaiveSparseBitMatrixTest.java │ │ │ │ └── TriSparseBitMatrixTest.java │ │ │ └── trans/ │ │ │ ├── TransBitMatrixEfficiencyTest.java │ │ │ └── TransBitMatrixTest.java │ │ ├── bitvector/ │ │ │ ├── BitVectorEfficiencyTest.java │ │ │ └── BitVectorTest.java │ │ ├── bristol/ │ │ │ ├── BlockBmmLookupCodeTest.java │ │ │ ├── BristolFashionBmmGeneratorTest.java │ │ │ ├── BristolFashionEvaluatorTest.java │ │ │ ├── BristolFashionLowMcFileGeneratorTest.java │ │ │ └── GrayCoderGeneratorTest.java │ │ ├── coder/ │ │ │ ├── Bch076By511CoderTest.java │ │ │ ├── HadamardCoderTest.java │ │ │ ├── LinearCoderTest.java │ │ │ ├── RandomCoderTest.java │ │ │ ├── RandomCoderUtilsTest.java │ │ │ └── ReputationCoderTest.java │ │ ├── crypto/ │ │ │ ├── commit/ │ │ │ │ └── CommitTest.java │ │ │ ├── crhf/ │ │ │ │ ├── CrhfConsistencyTest.java │ │ │ │ ├── CrhfEfficiencyTest.java │ │ │ │ └── CrhfTest.java │ │ │ ├── ecc/ │ │ │ │ ├── ByteEccConsistencyTest.java │ │ │ │ ├── ByteFullEccTest.java │ │ │ │ ├── ByteMulEccTest.java │ │ │ │ ├── ByteMulElligatorEccTest.java │ │ │ │ ├── EccConsistencyTest.java │ │ │ │ ├── EccEfficiencyTest.java │ │ │ │ ├── EccMixTest.java │ │ │ │ ├── EccTest.java │ │ │ │ └── cafe/ │ │ │ │ ├── CafeConstantTimeUtilsTest.java │ │ │ │ ├── CafeConstantsTest.java │ │ │ │ ├── CafeEdwardsCompressedPointTest.java │ │ │ │ ├── CafeEdwardsPointTest.java │ │ │ │ ├── CafeEdwardsPrecomputeTableTest.java │ │ │ │ ├── CafeFieldElementTest.java │ │ │ │ ├── CafeRistrettoCompressedPointTest.java │ │ │ │ ├── CafeRistrettoPointTest.java │ │ │ │ ├── CafeScalarTest.java │ │ │ │ └── CafeUnpackedScalarTest.java │ │ │ ├── engine/ │ │ │ │ └── Rijndael256EngineTest.java │ │ │ ├── hash/ │ │ │ │ ├── HashConsistencyTest.java │ │ │ │ ├── HashEfficiencyTest.java │ │ │ │ └── HashTest.java │ │ │ ├── kdf/ │ │ │ │ ├── KdfConsistencyTest.java │ │ │ │ ├── KdfEfficiencyTest.java │ │ │ │ └── KdfTest.java │ │ │ ├── kyber/ │ │ │ │ └── KyberEngineTest.java │ │ │ ├── prf/ │ │ │ │ ├── PrfEfficiencyTest.java │ │ │ │ └── PrfTest.java │ │ │ ├── prg/ │ │ │ │ ├── PrgEfficiencyTest.java │ │ │ │ └── PrgTest.java │ │ │ ├── prp/ │ │ │ │ ├── PrpConsistencyTest.java │ │ │ │ ├── PrpEfficiencyTest.java │ │ │ │ └── PrpTest.java │ │ │ ├── stream/ │ │ │ │ ├── StreamCipherEfficiencyTest.java │ │ │ │ └── StreamCipherTest.java │ │ │ └── tcrhf/ │ │ │ ├── TcrhfEfficiencyTest.java │ │ │ └── TcrhfTest.java │ │ ├── f3hash/ │ │ │ ├── F3HashEfficiencyTest.java │ │ │ └── F3HashTest.java │ │ ├── galoisfield/ │ │ │ ├── BigIntegerFieldTest.java │ │ │ ├── BigIntegerRingTest.java │ │ │ ├── BytesFieldEfficiencyTest.java │ │ │ ├── BytesFieldTest.java │ │ │ ├── BytesRingEfficiencyTest.java │ │ │ ├── BytesRingTest.java │ │ │ ├── GaloisfieldTestUtils.java │ │ │ ├── LongFieldEfficiencyTest.java │ │ │ ├── LongFieldTest.java │ │ │ ├── LongRingEfficiencyTest.java │ │ │ ├── LongRingTest.java │ │ │ ├── Z3ByteFieldTest.java │ │ │ ├── Z3UtilsTest.java │ │ │ ├── gf2e/ │ │ │ │ ├── Gf2eConsistencyTest.java │ │ │ │ ├── Gf2eGadgetTest.java │ │ │ │ ├── Gf2eManagerTest.java │ │ │ │ ├── Gf2eTest.java │ │ │ │ └── JdkGf2eLookupTableTest.java │ │ │ ├── gf2k/ │ │ │ │ ├── Gf2kConsistencyTest.java │ │ │ │ ├── Gf2kGadgetTest.java │ │ │ │ └── Gf2kTest.java │ │ │ ├── sgf2k/ │ │ │ │ ├── Sgf2kConsistencyTest.java │ │ │ │ ├── Sgf2kEfficiencyTest.java │ │ │ │ ├── Sgf2kManagerTest.java │ │ │ │ └── Sgf2kTest.java │ │ │ ├── zl/ │ │ │ │ ├── Zl64SpecialTest.java │ │ │ │ └── ZlTest.java │ │ │ ├── zn/ │ │ │ │ └── ZnTest.java │ │ │ ├── zn64/ │ │ │ │ └── Zn64Test.java │ │ │ ├── zp/ │ │ │ │ ├── ZpGadgetTest.java │ │ │ │ └── ZpTest.java │ │ │ └── zp64/ │ │ │ ├── Zp64GadgetTest.java │ │ │ └── Zp64Test.java │ │ ├── hash/ │ │ │ ├── IntHashEfficiencyTest.java │ │ │ ├── IntHashTest.java │ │ │ ├── LongHashEfficiencyTest.java │ │ │ ├── LongHashTest.java │ │ │ └── bobhash/ │ │ │ ├── BobIntHashTest.java │ │ │ └── BobLongHashTest.java │ │ ├── hashbin/ │ │ │ ├── HashBinTestUtils.java │ │ │ ├── MaxBinSizeUtilsTest.java │ │ │ ├── object/ │ │ │ │ ├── EmptyPadHashBinEfficiencyTest.java │ │ │ │ ├── EmptyPadHashBinTest.java │ │ │ │ ├── PhaseHashBinTest.java │ │ │ │ ├── RandomPadHashBinEfficiencyTest.java │ │ │ │ ├── RandomPadHashBinTest.java │ │ │ │ ├── TwoChoiceHashBinTest.java │ │ │ │ └── cuckoo/ │ │ │ │ ├── CuckooHashBinEfficiencyTest.java │ │ │ │ ├── CuckooHashBinParamsTest.java │ │ │ │ ├── CuckooHashBinTest.java │ │ │ │ ├── NoStashCuckooHashBinTest.java │ │ │ │ └── OneHashCuckooHashBinTest.java │ │ │ └── primitive/ │ │ │ ├── SimpleIntHashBinEfficiencyTest.java │ │ │ ├── SimpleIntHashBinTest.java │ │ │ └── cuckoo/ │ │ │ ├── IntCuckooHashBinEfficiencyTest.java │ │ │ └── IntCuckooHashBinTest.java │ │ ├── metrics/ │ │ │ ├── HeavyHitterMetricsTest.java │ │ │ └── KendallCorrelationTest.java │ │ ├── network/ │ │ │ ├── PermutationNetworkEfficiencyTest.java │ │ │ ├── PermutationNetworkTest.java │ │ │ ├── benes/ │ │ │ │ └── BenesNetworkTest.java │ │ │ ├── decomposer/ │ │ │ │ ├── PermutationDecomposerEfficiencyTest.java │ │ │ │ └── PermutationDecomposerTest.java │ │ │ └── waksman/ │ │ │ └── WaksmanNetworkTest.java │ │ ├── polynomial/ │ │ │ ├── gf2e/ │ │ │ │ ├── Gf2ePolyEfficiencyTest.java │ │ │ │ └── Gf2ePolyTest.java │ │ │ ├── zp/ │ │ │ │ ├── ZpPolyEfficiencyTest.java │ │ │ │ ├── ZpPolyTest.java │ │ │ │ ├── ZpTreePolyEfficiencyTest.java │ │ │ │ └── ZpTreePolyTest.java │ │ │ └── zp64/ │ │ │ ├── Zp64PolyEfficiencyTest.java │ │ │ └── Zp64PolyTest.java │ │ └── utils/ │ │ ├── BigIntegerUtilsTest.java │ │ ├── BinaryUtilsTest.java │ │ ├── BlockUtilsEfficiencyTest.java │ │ ├── BlockUtilsTest.java │ │ ├── BytesEfficiencyTest.java │ │ ├── BytesUtilsTest.java │ │ ├── CommonUtilsTest.java │ │ ├── DoubleUtilsTest.java │ │ ├── Gf2xUtilsTest.java │ │ ├── IntUtilsTest.java │ │ ├── LongUtilsTest.java │ │ └── SerializeUtilsTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-crypto-algs/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── crypto/ │ │ └── algs/ │ │ ├── iprf/ │ │ │ ├── InversePrf.java │ │ │ └── PnmSampler.java │ │ ├── main/ │ │ │ ├── AlgsMain.java │ │ │ └── popf/ │ │ │ └── PopfMain.java │ │ ├── ope/ │ │ │ ├── Bclo09LongOpeEngine.java │ │ │ └── Zlp24LongRopeEngine.java │ │ ├── popf/ │ │ │ └── Zlp24LongPopfEngine.java │ │ ├── restriction/ │ │ │ ├── AbstractLongRestriction.java │ │ │ ├── LongEmptyRestriction.java │ │ │ ├── LongLinearBoundRestriction.java │ │ │ ├── LongLinearMaxBoundRestriction.java │ │ │ ├── LongLinearMinBoundRestriction.java │ │ │ └── LongRestriction.java │ │ ├── smprp/ │ │ │ ├── AdSmallDomainPrp.java │ │ │ ├── SmallDomainPrp.java │ │ │ └── SmallDomainPrpFactory.java │ │ └── utils/ │ │ ├── distribution/ │ │ │ ├── Coins.java │ │ │ ├── FastHgd.java │ │ │ ├── Hgd.java │ │ │ ├── HgdFactory.java │ │ │ ├── PreciseHgd.java │ │ │ └── RandomHgd.java │ │ └── range/ │ │ ├── BigIntegerRange.java │ │ └── LongRange.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── crypto/ │ │ └── algs/ │ │ ├── iprf/ │ │ │ └── PnmSamplerTest.java │ │ ├── ope/ │ │ │ ├── LongOpeTest.java │ │ │ └── LongRopeTest.java │ │ ├── popf/ │ │ │ └── LongPopfTest.java │ │ ├── smprp/ │ │ │ └── SmallDomainPrpTest.java │ │ └── utils/ │ │ ├── distribution/ │ │ │ ├── CoinsTest.java │ │ │ └── HgdTest.java │ │ └── range/ │ │ ├── BigIntegerRangeTest.java │ │ └── LongRangeTest.java │ └── resources/ │ ├── conf_popf_example.conf │ └── log4j.properties ├── mpc4j-crypto-fhe/ │ ├── mpc4j-crypto-fhe-seal/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── mpc4j/ │ │ │ └── crypto/ │ │ │ └── fhe/ │ │ │ └── seal/ │ │ │ ├── BatchEncoder.java │ │ │ ├── Ciphertext.java │ │ │ ├── CkksEncoder.java │ │ │ ├── Decryptor.java │ │ │ ├── Encryptor.java │ │ │ ├── Evaluator.java │ │ │ ├── GaloisKeys.java │ │ │ ├── KeyGenerator.java │ │ │ ├── KswitchKeys.java │ │ │ ├── Plaintext.java │ │ │ ├── PublicKey.java │ │ │ ├── RelinKeys.java │ │ │ ├── SecretKey.java │ │ │ ├── context/ │ │ │ │ ├── EncryptionParameterQualifiers.java │ │ │ │ ├── EncryptionParameters.java │ │ │ │ ├── ErrorType.java │ │ │ │ ├── ParmsId.java │ │ │ │ ├── SchemeType.java │ │ │ │ └── SealContext.java │ │ │ ├── iterator/ │ │ │ │ ├── CoeffIterator.java │ │ │ │ ├── PolyIterator.java │ │ │ │ ├── RnsIterator.java │ │ │ │ ├── SealIterator.java │ │ │ │ └── StrideIterator.java │ │ │ ├── modulus/ │ │ │ │ ├── AbstractModulus.java │ │ │ │ ├── CoeffModulus.java │ │ │ │ ├── Modulus.java │ │ │ │ └── PlainModulus.java │ │ │ ├── ntt/ │ │ │ │ ├── ModArithLazy.java │ │ │ │ ├── NttHandler.java │ │ │ │ ├── NttTables.java │ │ │ │ └── NttTool.java │ │ │ ├── rand/ │ │ │ │ ├── AbstractPrng.java │ │ │ │ ├── AbstractUniformRandomGeneratorInfo.java │ │ │ │ ├── Blake2xbPrng.java │ │ │ │ ├── ClippedNormalDistribution.java │ │ │ │ ├── PrngType.java │ │ │ │ ├── Shake256Prng.java │ │ │ │ ├── UniformRandomGenerator.java │ │ │ │ ├── UniformRandomGeneratorFactory.java │ │ │ │ ├── UniformRandomGeneratorInfo.java │ │ │ │ └── primitive/ │ │ │ │ ├── Blake2.java │ │ │ │ ├── Blake2b.java │ │ │ │ ├── Blake2xb.java │ │ │ │ └── Shake256.java │ │ │ ├── rns/ │ │ │ │ ├── BaseConverter.java │ │ │ │ ├── RnsBase.java │ │ │ │ └── RnsTool.java │ │ │ ├── rq/ │ │ │ │ ├── PolyArithmeticSmallMod.java │ │ │ │ └── PolyCore.java │ │ │ ├── serialization/ │ │ │ │ ├── ComprModeType.java │ │ │ │ ├── SealCloneable.java │ │ │ │ ├── SealHeader.java │ │ │ │ ├── SealSerializable.java │ │ │ │ ├── SealVersion.java │ │ │ │ └── Serialization.java │ │ │ ├── utils/ │ │ │ │ ├── AbstractDynArray.java │ │ │ │ ├── AbstractGaloisTool.java │ │ │ │ ├── Arithmetic.java │ │ │ │ ├── ComplexRoots.java │ │ │ │ ├── Constants.java │ │ │ │ ├── DwtHandler.java │ │ │ │ ├── DynArray.java │ │ │ │ ├── GaloisTool.java │ │ │ │ ├── GlobalVariables.java │ │ │ │ ├── HashFunction.java │ │ │ │ ├── HeStdParms.java │ │ │ │ ├── RingLwe.java │ │ │ │ ├── ScalingVariant.java │ │ │ │ └── ValCheck.java │ │ │ └── zq/ │ │ │ ├── Common.java │ │ │ ├── MultiplyUintModOperand.java │ │ │ ├── Numth.java │ │ │ ├── UintArithmetic.java │ │ │ ├── UintArithmeticMod.java │ │ │ ├── UintArithmeticSmallMod.java │ │ │ └── UintCore.java │ │ └── test/ │ │ ├── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── mpc4j/ │ │ │ └── crypto/ │ │ │ └── fhe/ │ │ │ └── seal/ │ │ │ ├── BatchEncoderTest.java │ │ │ ├── CiphertextTest.java │ │ │ ├── CkksTest.java │ │ │ ├── EncryptorTest.java │ │ │ ├── EvaluatorTest.java │ │ │ ├── GaloisKeysTest.java │ │ │ ├── KeyGeneratorTest.java │ │ │ ├── PlaintextTest.java │ │ │ ├── PublicKeyTest.java │ │ │ ├── RelinKeysTest.java │ │ │ ├── SecretKeyTest.java │ │ │ ├── compatibility/ │ │ │ │ └── SealBfvCompatibleTest.java │ │ │ ├── context/ │ │ │ │ ├── EncryptionParametersTest.java │ │ │ │ └── SealContextTest.java │ │ │ ├── examples/ │ │ │ │ ├── Example01BfvBasicsTest.java │ │ │ │ ├── Example02EncodersTest.java │ │ │ │ ├── Example03LevelsTest.java │ │ │ │ ├── Example04BgvBasicsTest.java │ │ │ │ ├── Example05CkksBasicsTest.java │ │ │ │ ├── Example06RotationTest.java │ │ │ │ ├── Example07SerializationTest.java │ │ │ │ ├── Example08PerformanceTest.java │ │ │ │ └── ExamplesUtils.java │ │ │ ├── modulus/ │ │ │ │ ├── CoeffModulusTest.java │ │ │ │ └── ModulusTest.java │ │ │ ├── ntt/ │ │ │ │ └── NttTest.java │ │ │ ├── rand/ │ │ │ │ ├── UniformRandomGeneratorTest.java │ │ │ │ └── primitive/ │ │ │ │ ├── Blake2bTest.java │ │ │ │ ├── Blake2xbTest.java │ │ │ │ └── Shake256Test.java │ │ │ ├── rns/ │ │ │ │ ├── BaseConverterTest.java │ │ │ │ ├── RnsBaseTest.java │ │ │ │ └── RnsToolTest.java │ │ │ ├── rq/ │ │ │ │ ├── PolyArithmeticSmallModTest.java │ │ │ │ └── PolyCoreTest.java │ │ │ ├── serialization/ │ │ │ │ ├── SerializationTest.java │ │ │ │ └── TestCloneable.java │ │ │ ├── utils/ │ │ │ │ ├── ClipNormalTest.java │ │ │ │ ├── ComplexRootsTest.java │ │ │ │ ├── DynArrayTest.java │ │ │ │ ├── GaloisToolTest.java │ │ │ │ └── HashFunctionTest.java │ │ │ └── zq/ │ │ │ ├── CommonTest.java │ │ │ ├── NumthTest.java │ │ │ ├── StringToUint64Test.java │ │ │ ├── Uint64ToStringTest.java │ │ │ ├── UintArithmeticModTest.java │ │ │ ├── UintArithmeticSmallModTest.java │ │ │ ├── UintArithmeticTest.java │ │ │ └── UintCoreTest.java │ │ └── resources/ │ │ ├── compatibility/ │ │ │ ├── bfv_4096_plain_16_coeff_20_20_ciphertext_data.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_ciphertext_hex.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_galois_key_data.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_galois_key_hex.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_public_key_data.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_public_key_hex.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_relinearization_key_data.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_relinearization_key_hex.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_secret_key_data.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_secret_key_hex.txt │ │ │ ├── bfv_4096_plain_16_coeff_20_20_seed_ciphertext_data.txt │ │ │ └── bfv_4096_plain_16_coeff_20_20_seed_ciphertext_hex.txt │ │ └── log4j.properties │ └── pom.xml ├── mpc4j-crypto-phe/ │ ├── LICENSE.txt │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── crypto/ │ │ └── phe/ │ │ ├── AbstractPheEngine.java │ │ ├── PheContextMismatchException.java │ │ ├── PheDecodeException.java │ │ ├── PheEncodeException.java │ │ ├── PheEngine.java │ │ ├── PheFactory.java │ │ ├── PheMathUtils.java │ │ ├── PheRuntimeException.java │ │ ├── PheSecLevel.java │ │ ├── PheType.java │ │ ├── impl/ │ │ │ ├── ou98/ │ │ │ │ ├── Ou98PheEngine.java │ │ │ │ ├── Ou98PhePrivateKey.java │ │ │ │ └── Ou98PhePublicKey.java │ │ │ └── pai99/ │ │ │ ├── Pai99PheEngine.java │ │ │ ├── Pai99PhePrivateKey.java │ │ │ └── Pai99PhePublicKey.java │ │ └── params/ │ │ ├── PheCiphertext.java │ │ ├── PheKeyGenParams.java │ │ ├── PheKeyParams.java │ │ ├── PheParams.java │ │ ├── PhePlaintext.java │ │ ├── PhePlaintextEncoder.java │ │ ├── PhePrivateKey.java │ │ └── PhePublicKey.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── crypto/ │ │ └── phe/ │ │ ├── PheEngineTestConfiguration.java │ │ ├── PheParamsTestConfiguration.java │ │ ├── PheTestUtils.java │ │ ├── impl/ │ │ │ ├── PheAdditionTest.java │ │ │ ├── PheDivisionTest.java │ │ │ ├── PheEfficiencyTest.java │ │ │ ├── PheKeyGenTest.java │ │ │ ├── PheMultiplicationTest.java │ │ │ ├── PheRawTest.java │ │ │ └── PheSubtractionTest.java │ │ └── params/ │ │ ├── PheCiphertextTest.java │ │ ├── PhePlaintextAdditionTest.java │ │ ├── PhePlaintextDivisionTest.java │ │ ├── PhePlaintextMultiplicationTest.java │ │ ├── PhePlaintextSubtractionTest.java │ │ └── PhePlaintextTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-dp-cdp/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── dp/ │ │ └── cdp/ │ │ ├── Cdp.java │ │ ├── CdpConfig.java │ │ ├── nominal/ │ │ │ ├── Base2ExpCdp.java │ │ │ ├── Base2ExpCdpConfig.java │ │ │ ├── ExpCdp.java │ │ │ ├── ExpCdpConfig.java │ │ │ ├── NominalCdp.java │ │ │ ├── NominalCdpConfig.java │ │ │ ├── NominalCdpFactory.java │ │ │ ├── NounPair.java │ │ │ └── NounPairDistance.java │ │ └── numeric/ │ │ ├── integral/ │ │ │ ├── IntegralCdp.java │ │ │ ├── IntegralCdpConfig.java │ │ │ ├── IntegralCdpFactory.java │ │ │ ├── bound/ │ │ │ │ ├── Base2ExpBoundIntegralCdp.java │ │ │ │ ├── Base2ExpBoundIntegralCdpConfig.java │ │ │ │ ├── BoundIntegralCdp.java │ │ │ │ ├── BoundIntegralCdpConfig.java │ │ │ │ ├── BoundIntegralCdpFactory.java │ │ │ │ ├── ExpBoundIntegralCdp.java │ │ │ │ ├── ExpBoundIntegralCdpConfig.java │ │ │ │ ├── NaiveBoundIntegralCdp.java │ │ │ │ └── NaiveBoundIntegralCdpConfig.java │ │ │ └── unbound/ │ │ │ ├── UnboundIntegralCdp.java │ │ │ ├── UnboundIntegralCdpConfig.java │ │ │ ├── UnboundIntegralCdpFactory.java │ │ │ └── geometric/ │ │ │ ├── ApacheGeometricCdp.java │ │ │ ├── ApacheGeometricCdpConfig.java │ │ │ ├── DiscreteGeometricCdp.java │ │ │ ├── DiscreteGeometricCdpConfig.java │ │ │ ├── GeometricCdp.java │ │ │ ├── GeometricCdpConfig.java │ │ │ └── GeometricCdpFactory.java │ │ └── real/ │ │ ├── RealCdp.java │ │ ├── RealCdpConfig.java │ │ ├── RealCdpFactory.java │ │ ├── bound/ │ │ │ ├── BoundRealCdp.java │ │ │ ├── BoundRealCdpConfig.java │ │ │ ├── BoundRealCdpFactory.java │ │ │ ├── NaiveBoundRealCdp.java │ │ │ └── NaiveBoundRealCdpConfig.java │ │ └── unbound/ │ │ ├── ApacheLaplaceCdp.java │ │ ├── ApacheLaplaceCdpConfig.java │ │ ├── GoogleLaplaceCdp.java │ │ ├── GoogleLaplaceCdpConfig.java │ │ ├── StaircaseCdp.java │ │ ├── StaircaseCdpConfig.java │ │ ├── UnboundRealCdp.java │ │ ├── UnboundRealCdpConfig.java │ │ └── UnboundRealCdpFactory.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── dp/ │ │ └── cdp/ │ │ ├── nominal/ │ │ │ ├── AbstractNominalCdpTest.java │ │ │ ├── Base2ExpCdpTest.java │ │ │ └── ExpCdpTest.java │ │ └── numeric/ │ │ ├── integral/ │ │ │ ├── bound/ │ │ │ │ ├── AbstractBoundIntegralCdpTest.java │ │ │ │ ├── Base2ExpBoundIntegralCdpTest.java │ │ │ │ ├── ExpBoundIntegralCdpTest.java │ │ │ │ └── NaiveBoundIntegralCdpTest.java │ │ │ └── unbound/ │ │ │ ├── AbstractUnboundIntegralCdpTest.java │ │ │ ├── ApacheGeometricCdpTest.java │ │ │ └── DiscreteGeometricCdpTest.java │ │ └── real/ │ │ ├── bound/ │ │ │ ├── AbstractBoundRealCdpTest.java │ │ │ └── NaiveBoundRealCdpTest.java │ │ └── unbound/ │ │ ├── AbstractUnboundRealCdpTest.java │ │ ├── ApacheLaplaceTest.java │ │ ├── GoogleLaplaceTest.java │ │ └── StaircaseCdpTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-dp-ldp/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── dp/ │ │ └── ldp/ │ │ ├── Ldp.java │ │ ├── LdpConfig.java │ │ ├── nominal/ │ │ │ ├── NominalLdp.java │ │ │ ├── NominalLdpConfig.java │ │ │ ├── binary/ │ │ │ │ ├── BinaryLdp.java │ │ │ │ ├── BinaryLdpConfig.java │ │ │ │ ├── BinaryLdpFactory.java │ │ │ │ ├── RandomResponseLdp.java │ │ │ │ └── RandomResponseLdpConfig.java │ │ │ └── encode/ │ │ │ ├── DirectEncodeLdp.java │ │ │ ├── DirectEncodeLdpConfig.java │ │ │ ├── EncodeLdp.java │ │ │ ├── EncodeLdpConfig.java │ │ │ └── EncodeLdpFactory.java │ │ ├── numeric/ │ │ │ ├── integral/ │ │ │ │ ├── AdjExpMapIntegralLdp.java │ │ │ │ ├── AdjExpMapIntegralLdpConfig.java │ │ │ │ ├── AdjMapIntegralLdp.java │ │ │ │ ├── AdjMapIntegralLdpConfig.java │ │ │ │ ├── GlobalExpMapIntegralLdp.java │ │ │ │ ├── GlobalExpMapIntegralLdpConfig.java │ │ │ │ ├── GlobalMapIntegralLdp.java │ │ │ │ ├── GlobalMapIntegralLdpConfig.java │ │ │ │ ├── IntegralLdp.java │ │ │ │ ├── IntegralLdpConfig.java │ │ │ │ ├── IntegralLdpFactory.java │ │ │ │ ├── LocalExpMapIntegralLdp.java │ │ │ │ ├── LocalExpMapIntegralLdpConfig.java │ │ │ │ ├── LocalMapIntegralLdp.java │ │ │ │ ├── LocalMapIntegralLdpConfig.java │ │ │ │ ├── NaiveRangeIntegralLdp.java │ │ │ │ └── NaiveRangeIntegralLdpConfig.java │ │ │ └── real/ │ │ │ ├── AdjMapRealLdp.java │ │ │ ├── AdjMapRealLdpConfig.java │ │ │ ├── GlobalMapRealLdp.java │ │ │ ├── GlobalMapRealLdpConfig.java │ │ │ ├── LocalMapRealLdp.java │ │ │ ├── LocalMapRealLdpConfig.java │ │ │ ├── NaiveRangeRealLdp.java │ │ │ ├── NaiveRangeRealLdpConfig.java │ │ │ ├── RealLdp.java │ │ │ ├── RealLdpConfig.java │ │ │ └── RealLdpFactory.java │ │ └── range/ │ │ ├── ApacheLaplaceLdp.java │ │ ├── ApacheLaplaceLdpConfig.java │ │ ├── GoogleLaplaceLdp.java │ │ ├── GoogleLaplaceLdpConfig.java │ │ ├── HybridLdp.java │ │ ├── HybridLdpConfig.java │ │ ├── MinimaxLdp.java │ │ ├── MinimaxLdpConfig.java │ │ ├── PiecewiseLdp.java │ │ ├── PiecewiseLdpConfig.java │ │ ├── RangeLdp.java │ │ ├── RangeLdpConfig.java │ │ └── RangeLdpFactory.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── dp/ │ │ └── ldp/ │ │ ├── nominal/ │ │ │ ├── binary/ │ │ │ │ ├── AbstractBinaryLdpTest.java │ │ │ │ └── RandomResponseLdpTest.java │ │ │ └── encode/ │ │ │ ├── AbstractEncodeLdpTest.java │ │ │ └── DirectEncodeLdpTest.java │ │ ├── numeric/ │ │ │ ├── integral/ │ │ │ │ ├── AbstractIntegralLdpTest.java │ │ │ │ ├── AdjExpMapIntegralLdpTest.java │ │ │ │ ├── AdjMapIntegralLdpTest.java │ │ │ │ ├── GlobalExpMapIntegralLdpTest.java │ │ │ │ ├── GlobalMapIntegralLdpTest.java │ │ │ │ ├── LocalExpMapIntegralLdpTest.java │ │ │ │ ├── LocalMapIntegralLdpTest.java │ │ │ │ └── NaiveRangeIntegralLdpTest.java │ │ │ └── real/ │ │ │ ├── AbstractRealLdpTest.java │ │ │ ├── AdjMapRealLdpTest.java │ │ │ ├── GlobalMapRealLdpTest.java │ │ │ ├── LocalMapRealLdpTest.java │ │ │ └── NaiveRangeRealLdpTest.java │ │ └── range/ │ │ ├── AbstractRangeLdpTest.java │ │ ├── ApacheLaplaceLdpTest.java │ │ ├── GoogleLaplaceLdpTest.java │ │ ├── HybridLdpTest.java │ │ ├── MinimaxLdpTest.java │ │ └── PiecewiseLdpTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-dp-service/ │ ├── config/ │ │ ├── kosarak.conf │ │ ├── synthetic_data.conf │ │ └── synthetic_data_test.conf │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── dp/ │ │ └── service/ │ │ ├── fo/ │ │ │ ├── AbstractFoLdpClient.java │ │ │ ├── AbstractFoLdpServer.java │ │ │ ├── FoLdpClient.java │ │ │ ├── FoLdpFactory.java │ │ │ ├── FoLdpServer.java │ │ │ ├── cms/ │ │ │ │ ├── AppleCmsFoLdpClient.java │ │ │ │ ├── AppleCmsFoLdpServer.java │ │ │ │ ├── AppleHcmsFoLdpClient.java │ │ │ │ └── AppleHcmsFoLdpServer.java │ │ │ ├── config/ │ │ │ │ ├── AppleCmsFoLdpConfig.java │ │ │ │ ├── AppleHcmsFoLdpConfig.java │ │ │ │ ├── BasicFoLdpConfig.java │ │ │ │ ├── FlhFoLdpConfig.java │ │ │ │ ├── FoLdpConfig.java │ │ │ │ ├── OlhFoLdpConfig.java │ │ │ │ └── RapporFoLdpConfig.java │ │ │ ├── de/ │ │ │ │ ├── DeIndexFoLdpClient.java │ │ │ │ ├── DeIndexFoLdpServer.java │ │ │ │ ├── DeStringFoLdpClient.java │ │ │ │ └── DeStringFoLdpServer.java │ │ │ ├── hadamard/ │ │ │ │ ├── HmFoLdpClient.java │ │ │ │ ├── HmFoLdpServer.java │ │ │ │ ├── HmLowEpsFoLdpClient.java │ │ │ │ ├── HmLowEpsFoLdpServer.java │ │ │ │ ├── HrFoLdpClient.java │ │ │ │ ├── HrFoLdpServer.java │ │ │ │ ├── HrHighEpsFoLdpClient.java │ │ │ │ └── HrHighEpsFoLdpServer.java │ │ │ ├── lh/ │ │ │ │ ├── BlhFoLdpClient.java │ │ │ │ ├── BlhFoLdpServer.java │ │ │ │ ├── FlhFoLdpClient.java │ │ │ │ ├── FlhFoLdpServer.java │ │ │ │ ├── OlhFoLdpClient.java │ │ │ │ └── OlhFoLdpServer.java │ │ │ ├── rappor/ │ │ │ │ ├── RapporFoLdpClient.java │ │ │ │ ├── RapporFoLdpServer.java │ │ │ │ └── RapporFoLdpUtils.java │ │ │ └── ue/ │ │ │ ├── OueFoLdpClient.java │ │ │ ├── OueFoLdpServer.java │ │ │ ├── SueFoLdpClient.java │ │ │ └── SueFoLdpServer.java │ │ ├── heavyhitter/ │ │ │ ├── AbstractHhLdpClient.java │ │ │ ├── AbstractHhLdpServer.java │ │ │ ├── HhLdpClient.java │ │ │ ├── HhLdpFactory.java │ │ │ ├── HhLdpServer.java │ │ │ ├── HhLdpServerState.java │ │ │ ├── config/ │ │ │ │ ├── BaseHhLdpConfig.java │ │ │ │ ├── BdrHhgHhLdpConfig.java │ │ │ │ ├── BgrHgHhLdpConfig.java │ │ │ │ ├── CnrHhgHhLdpConfig.java │ │ │ │ ├── DsrHgHhLdpConfig.java │ │ │ │ ├── FoHhLdpConfig.java │ │ │ │ ├── HgHhLdpConfig.java │ │ │ │ ├── HhLdpConfig.java │ │ │ │ └── HhgHhLdpConfig.java │ │ │ ├── fo/ │ │ │ │ ├── FoHhLdpClient.java │ │ │ │ └── FoHhLdpServer.java │ │ │ ├── hg/ │ │ │ │ ├── BdrHhgHhLdpClient.java │ │ │ │ ├── BdrHhgHhLdpServer.java │ │ │ │ ├── BgrHgHhLdpClient.java │ │ │ │ ├── BgrHgHhLdpServer.java │ │ │ │ ├── CnrHhgHhLdpClient.java │ │ │ │ ├── CnrHhgHhLdpServer.java │ │ │ │ ├── DsrHgHhLdpClient.java │ │ │ │ ├── DsrHgHhLdpServer.java │ │ │ │ └── HhgHhLdpServer.java │ │ │ └── utils/ │ │ │ ├── EmptyHhLdpServerContext.java │ │ │ ├── HgHhLdpServerContext.java │ │ │ └── HhLdpServerContext.java │ │ ├── main/ │ │ │ ├── HhLdpAggMetrics.java │ │ │ ├── HhLdpMain.java │ │ │ ├── HhLdpMetrics.java │ │ │ └── LdpServiceMain.java │ │ ├── structure/ │ │ │ ├── HeavyGuardian.java │ │ │ ├── NaiveStreamCounter.java │ │ │ └── StreamCounter.java │ │ └── tool/ │ │ ├── BucketDomain.java │ │ ├── BucketDoubleComparator.java │ │ ├── BucketIntegerComparator.java │ │ ├── Domain.java │ │ ├── FingerprintUtils.java │ │ ├── HeavyGuardianUtils.java │ │ └── StreamDataUtils.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── dp/ │ │ └── service/ │ │ ├── LdpTestDataUtils.java │ │ ├── fo/ │ │ │ ├── FoLdpEfficiencyTest.java │ │ │ └── FoLdpTest.java │ │ ├── heavyhitter/ │ │ │ ├── HgHhLdpTest.java │ │ │ ├── HhLdpEfficiencyTest.java │ │ │ ├── HhLdpTest.java │ │ │ └── SingleHgHhLdpTest.java │ │ ├── main/ │ │ │ └── HhLdpMainTest.java │ │ ├── structure/ │ │ │ └── StreamCounterTest.java │ │ └── tool/ │ │ ├── FingerprintUtilsTest.java │ │ └── StreamDataUtilsTest.java │ └── resources/ │ ├── log4j.properties │ ├── stream_counter_example_data.txt │ └── test_config/ │ ├── hh_ldp_test_config_alpha.conf │ ├── hh_ldp_test_config_default.conf │ ├── hh_ldp_test_config_empty_fo_types.conf │ ├── hh_ldp_test_config_empty_hg_types.conf │ ├── hh_ldp_test_config_empty_plain.conf │ ├── hh_ldp_test_config_empty_report_postfix.conf │ ├── hh_ldp_test_config_gammah.conf │ ├── hh_ldp_test_config_gammah_no_warmup.conf │ ├── hh_ldp_test_config_lambdal.conf │ ├── hh_ldp_test_config_no_domain.conf │ ├── hh_ldp_test_config_no_gammah.conf │ ├── hh_ldp_test_config_no_lambdal.conf │ └── hh_ldp_test_config_zero_warmup.conf ├── mpc4j-native-fhe/ │ ├── CMakeLists.txt │ ├── README.md │ ├── apsi.cpp │ ├── apsi.h │ ├── index_pir.cpp │ ├── index_pir.h │ ├── pir/ │ │ ├── edu_alibaba_mpc4j_work_psipir_Lpzl24BatchPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_work_psipir_Lpzl24BatchPirNativeUtils.h │ │ └── std/ │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_cw_CwStdIdxPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_cw_CwStdIdxPirNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_fast_FastStdIdxPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_fast_FastStdIdxPirNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_mul_MulStdIdxPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_mul_MulStdIdxPirNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_onion_OnionStdIdxPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_onion_OnionStdIdxPirNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_seal_SealStdIdxPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_seal_SealStdIdxPirNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_vectorized_VectorizedStdIdxPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_vectorized_VectorizedStdIdxPirNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_xpir_XpirStdIdxPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_index_xpir_XpirStdIdxPirNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_ks_labelpsi_LabelpsiStdKsPirNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_ks_labelpsi_LabelpsiStdKsPirNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_pir_stdpir_kw_pantheon_PantheonStdKwPirNativeUtils.cpp │ │ └── edu_alibaba_mpc4j_s2pc_pir_stdpir_kw_pantheon_PantheonStdKwPirNativeUtils.h │ ├── polynomials.cpp │ ├── polynomials.h │ ├── random.cpp │ ├── random.h │ ├── serialize.cpp │ ├── serialize.h │ ├── tfhe/ │ │ ├── params.h │ │ ├── rns.h │ │ ├── tfhe.cpp │ │ ├── tfhe.h │ │ ├── util.cpp │ │ └── util.h │ ├── upso/ │ │ ├── edu_alibaba_mpc4j_s2pc_upso_ucpsi_sj23_pdsm_Sj23PdsmUcpsiNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_upso_ucpsi_sj23_pdsm_Sj23PdsmUcpsiNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_upso_ucpsi_sj23_peqt_Sj23PeqtUcpsiNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_upso_ucpsi_sj23_peqt_Sj23PeqtUcpsiNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_upso_upsi_cmg21_Cmg21UpsiNativeUtils.cpp │ │ ├── edu_alibaba_mpc4j_s2pc_upso_upsi_cmg21_Cmg21UpsiNativeUtils.h │ │ ├── edu_alibaba_mpc4j_s2pc_upso_upsu_tcl23_Tcl23UpsuNativeUtils.cpp │ │ └── edu_alibaba_mpc4j_s2pc_upso_upsu_tcl23_Tcl23UpsuNativeUtils.h │ ├── utils.cpp │ └── utils.h ├── mpc4j-native-fourq/ │ ├── AMD64/ │ │ ├── consts.c │ │ ├── fp2_1271.S │ │ ├── fp2_1271_AVX2.S │ │ └── fp_x64.h │ ├── ARM64/ │ │ └── fp_arm64.h │ ├── CMakeLists.txt │ ├── FourQ.h │ ├── FourQ_api.h │ ├── FourQ_internal.h │ ├── FourQ_params.h │ ├── FourQ_tables.h │ ├── LICENSE.txt │ ├── README.md │ ├── crypto_util.c │ ├── eccp2.c │ ├── eccp2_core.c │ ├── eccp2_no_endo.c │ ├── generic/ │ │ └── fp.h │ ├── hash_to_curve.c │ ├── kex.c │ ├── random/ │ │ ├── random.c │ │ └── random.h │ ├── schnorrq.c │ ├── sha512/ │ │ ├── sha512.c │ │ └── sha512.h │ ├── table_lookup.h │ └── tests/ │ ├── crypto_tests.c │ ├── ecc_tests.c │ ├── fp_tests.c │ ├── test_extras.c │ └── test_extras.h ├── mpc4j-native-tool/ │ ├── CMakeLists.txt │ ├── README.md │ ├── bit_matrix_trans/ │ │ ├── bit_matrix_trans.h │ │ ├── edu_alibaba_mpc4j_common_tool_bitmatrix_trans_NativeTransBitMatrix.cpp │ │ └── edu_alibaba_mpc4j_common_tool_bitmatrix_trans_NativeTransBitMatrix.h │ ├── common/ │ │ ├── block.h │ │ ├── defines.cpp │ │ ├── defines.h │ │ ├── sse2neon.h │ │ └── stdc++.h │ ├── crypto/ │ │ ├── aes.h │ │ ├── blake2/ │ │ │ ├── COPYING │ │ │ ├── neon/ │ │ │ │ ├── blake2-impl.h │ │ │ │ ├── blake2.h │ │ │ │ ├── blake2b-load-neon.h │ │ │ │ ├── blake2b-neon.c │ │ │ │ ├── blake2b-round.h │ │ │ │ ├── blake2bp.c │ │ │ │ ├── blake2s-load-neon.h │ │ │ │ ├── blake2s-neon.c │ │ │ │ ├── blake2s-round.h │ │ │ │ ├── blake2sp.c │ │ │ │ ├── blake2xb.c │ │ │ │ ├── blake2xs.c │ │ │ │ └── genkat-c.c │ │ │ └── sse/ │ │ │ ├── blake2-config.h │ │ │ ├── blake2-impl.h │ │ │ ├── blake2.c │ │ │ ├── blake2.h │ │ │ ├── blake2b-load-sse2.h │ │ │ ├── blake2b-load-sse41.h │ │ │ ├── blake2b-round.h │ │ │ ├── blake2bp.c │ │ │ └── blake2xb.c │ │ ├── blake2b_hash.h │ │ ├── blake2b_kdf.h │ │ ├── blake3/ │ │ │ ├── blake3.c │ │ │ ├── blake3.h │ │ │ ├── blake3_avx2_x86-64_unix.S │ │ │ ├── blake3_avx512_x86-64_unix.S │ │ │ ├── blake3_dispatch.c │ │ │ ├── blake3_impl.h │ │ │ ├── blake3_neon.c │ │ │ ├── blake3_portable.c │ │ │ ├── blake3_sse2_x86-64_unix.S │ │ │ └── blake3_sse41_x86-64_unix.S │ │ ├── blake3_hash.h │ │ ├── blake3_kdf.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_hash_NativeBlake2b160Hash.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_hash_NativeBlake2b160Hash.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_hash_NativeBlake3Hash.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_hash_NativeBlake3Hash.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_hash_NativeSha256Hash.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_hash_NativeSha256Hash.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_kdf_NativeBlake2bKdf.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_kdf_NativeBlake2bKdf.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_kdf_NativeBlake3Kdf.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_kdf_NativeBlake3Kdf.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_prp_NativeAesPrp.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_prp_NativeAesPrp.h │ │ └── sha256_hash.h │ ├── doc/ │ │ ├── compile_centos_x86_64.md │ │ ├── compile_mac_aarch64.md │ │ ├── compile_mac_x86_64.md │ │ └── compile_ubuntu.md │ ├── ecc_fourq/ │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_fourq_FourqByteFullEcc.cpp │ │ └── edu_alibaba_mpc4j_common_tool_crypto_ecc_fourq_FourqByteFullEcc.h │ ├── ecc_openssl/ │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_openssl_SecP256k1OpensslNativeEcc.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_openssl_SecP256k1OpensslNativeEcc.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_openssl_SecP256r1OpensslNativeEcc.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_openssl_SecP256r1OpensslNativeEcc.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_openssl_Sm2P256v1OpensslNativeEcc.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_openssl_Sm2P256v1OpensslNativeEcc.h │ │ ├── openssl_bit_iterator.hpp │ │ ├── openssl_ecc.cpp │ │ ├── openssl_ecc.h │ │ └── openssl_window_method.hpp │ ├── ecc_sodium/ │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_sodium_Ed25519SodiumByteFullEcc.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_sodium_Ed25519SodiumByteFullEcc.h │ │ ├── edu_alibaba_mpc4j_common_tool_crypto_ecc_sodium_X25519SodiumByteMulEcc.cpp │ │ └── edu_alibaba_mpc4j_common_tool_crypto_ecc_sodium_X25519SodiumByteMulEcc.h │ ├── gf2e/ │ │ ├── edu_alibaba_mpc4j_common_tool_galoisfield_gf2e_NtlNativeGf2e.cpp │ │ └── edu_alibaba_mpc4j_common_tool_galoisfield_gf2e_NtlNativeGf2e.h │ ├── network/ │ │ ├── benes_network.hpp │ │ ├── edu_alibaba_mpc4j_common_tool_network_benes_NativeBenesNetwork.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_network_benes_NativeBenesNetwork.h │ │ ├── edu_alibaba_mpc4j_common_tool_network_waksman_NativeWaksmanNetwork.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_network_waksman_NativeWaksmanNetwork.h │ │ └── waksman_network.hpp │ ├── ntl_poly/ │ │ ├── edu_alibaba_mpc4j_common_tool_polynomial_gf2e_NtlNativeGf2ePoly.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_polynomial_gf2e_NtlNativeGf2ePoly.h │ │ ├── edu_alibaba_mpc4j_common_tool_polynomial_zp64_NtlZp64Poly.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_polynomial_zp64_NtlZp64Poly.h │ │ ├── edu_alibaba_mpc4j_common_tool_polynomial_zp_NtlTreeZpPoly.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_polynomial_zp_NtlTreeZpPoly.h │ │ ├── edu_alibaba_mpc4j_common_tool_polynomial_zp_NtlZpPoly.cpp │ │ ├── edu_alibaba_mpc4j_common_tool_polynomial_zp_NtlZpPoly.h │ │ ├── ntl_gf2x.cpp │ │ ├── ntl_gf2x.h │ │ ├── ntl_tree_zp.cpp │ │ ├── ntl_tree_zp.h │ │ ├── ntl_zp.cpp │ │ ├── ntl_zp.h │ │ ├── ntl_zp64.cpp │ │ ├── ntl_zp64.h │ │ ├── ntl_zp_util.cpp │ │ └── ntl_zp_util.h │ └── ntl_sgf2k/ │ ├── edu_alibaba_mpc4j_common_tool_galoisfield_sgf2k_NtlSubSgf2k.cpp │ ├── edu_alibaba_mpc4j_common_tool_galoisfield_sgf2k_NtlSubSgf2k.h │ ├── ntl_sgf2k_utils.cpp │ └── ntl_sgf2k_utils.h ├── mpc4j-s2pc-aby/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── aby/ │ │ ├── basics/ │ │ │ ├── z2/ │ │ │ │ ├── AbstractZ2cParty.java │ │ │ │ ├── SquareZ2Vector.java │ │ │ │ ├── Z2cConfig.java │ │ │ │ ├── Z2cFactory.java │ │ │ │ ├── Z2cParty.java │ │ │ │ ├── bea91/ │ │ │ │ │ ├── Bea91Z2cConfig.java │ │ │ │ │ ├── Bea91Z2cPtoDesc.java │ │ │ │ │ ├── Bea91Z2cReceiver.java │ │ │ │ │ └── Bea91Z2cSender.java │ │ │ │ └── rrg21/ │ │ │ │ ├── Rrg21Z2cConfig.java │ │ │ │ ├── Rrg21Z2cPtoDesc.java │ │ │ │ ├── Rrg21Z2cReceiver.java │ │ │ │ └── Rrg21Z2cSender.java │ │ │ ├── zl/ │ │ │ │ ├── AbstractZlcParty.java │ │ │ │ ├── SquareZlVector.java │ │ │ │ ├── ZlcConfig.java │ │ │ │ ├── ZlcFactory.java │ │ │ │ ├── ZlcParty.java │ │ │ │ └── bea91/ │ │ │ │ ├── Bea91ZlcConfig.java │ │ │ │ ├── Bea91ZlcPtoDesc.java │ │ │ │ ├── Bea91ZlcReceiver.java │ │ │ │ └── Bea91ZlcSender.java │ │ │ └── zl64/ │ │ │ ├── AbstractZl64cParty.java │ │ │ ├── SquareZl64Vector.java │ │ │ ├── Zl64cConfig.java │ │ │ ├── Zl64cFactory.java │ │ │ ├── Zl64cParty.java │ │ │ └── bea91/ │ │ │ ├── Bea91Zl64cConfig.java │ │ │ ├── Bea91Zl64cPtoDesc.java │ │ │ ├── Bea91Zl64cReceiver.java │ │ │ └── Bea91Zl64cSender.java │ │ ├── edit/ │ │ │ ├── AbstractEditDistReceiver.java │ │ │ ├── AbstractEditDistSender.java │ │ │ ├── DistCmpConfig.java │ │ │ ├── DistCmpReceiver.java │ │ │ ├── DistCmpSender.java │ │ │ ├── EditDistFactory.java │ │ │ ├── EditUtils.java │ │ │ └── s2pc/ │ │ │ └── diag/ │ │ │ ├── S2pcDiagEditDistConfig.java │ │ │ ├── S2pcDiagEditDistPtoDesc.java │ │ │ ├── S2pcDiagEditDistReceiver.java │ │ │ └── S2pcDiagEditDistSender.java │ │ ├── main/ │ │ │ ├── AbyMain.java │ │ │ └── osn/ │ │ │ ├── RosnConfigUtils.java │ │ │ └── RosnMain.java │ │ ├── operator/ │ │ │ ├── agg/ │ │ │ │ ├── hamming/ │ │ │ │ │ ├── AbstractHammingParty.java │ │ │ │ │ ├── HammingConfig.java │ │ │ │ │ ├── HammingFactory.java │ │ │ │ │ ├── HammingParty.java │ │ │ │ │ └── bcp13/ │ │ │ │ │ ├── Bcp13ShHammingConfig.java │ │ │ │ │ ├── Bcp13ShHammingPtoDesc.java │ │ │ │ │ ├── Bcp13ShHammingReceiver.java │ │ │ │ │ └── Bcp13ShHammingSender.java │ │ │ │ └── max/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlMaxParty.java │ │ │ │ ├── ZlMaxConfig.java │ │ │ │ ├── ZlMaxFactory.java │ │ │ │ ├── ZlMaxParty.java │ │ │ │ └── rrk20/ │ │ │ │ ├── Rrk20ZlMaxConfig.java │ │ │ │ ├── Rrk20ZlMaxPtoDesc.java │ │ │ │ ├── Rrk20ZlMaxReceiver.java │ │ │ │ └── Rrk20ZlMaxSender.java │ │ │ ├── corr/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlCorrParty.java │ │ │ │ ├── ZlCorrConfig.java │ │ │ │ ├── ZlCorrFactory.java │ │ │ │ ├── ZlCorrParty.java │ │ │ │ ├── gp23/ │ │ │ │ │ ├── Gp23ZlCorrConfig.java │ │ │ │ │ ├── Gp23ZlCorrPtoDesc.java │ │ │ │ │ ├── Gp23ZlCorrReceiver.java │ │ │ │ │ └── Gp23ZlCorrSender.java │ │ │ │ └── rrk20/ │ │ │ │ ├── Rrk20ZlCorrConfig.java │ │ │ │ ├── Rrk20ZlCorrPtoDesc.java │ │ │ │ ├── Rrk20ZlCorrReceiver.java │ │ │ │ └── Rrk20ZlCorrSender.java │ │ │ └── row/ │ │ │ ├── b2a/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlB2aParty.java │ │ │ │ ├── ZlB2aConfig.java │ │ │ │ ├── ZlB2aFactory.java │ │ │ │ ├── ZlB2aParty.java │ │ │ │ └── rrkc20/ │ │ │ │ ├── Rrkc20ZlB2aConfig.java │ │ │ │ ├── Rrkc20ZlB2aPtoDesc.java │ │ │ │ ├── Rrkc20ZlB2aReceiver.java │ │ │ │ └── Rrkc20ZlB2aSender.java │ │ │ ├── crossTerm/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlCrossTermReceiver.java │ │ │ │ ├── AbstractZlCrossTermSender.java │ │ │ │ ├── ZlCrossTermConfig.java │ │ │ │ ├── ZlCrossTermFactory.java │ │ │ │ ├── ZlCrossTermParty.java │ │ │ │ └── rrgg21/ │ │ │ │ ├── Rrgg21ZlCrossTermConfig.java │ │ │ │ ├── Rrgg21ZlCrossTermPtoDesc.java │ │ │ │ ├── Rrgg21ZlCrossTermReceiver.java │ │ │ │ └── Rrgg21ZlCrossTermSender.java │ │ │ ├── drelu/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlDreluParty.java │ │ │ │ ├── ZlDreluConfig.java │ │ │ │ ├── ZlDreluFactory.java │ │ │ │ ├── ZlDreluParty.java │ │ │ │ └── rrk20/ │ │ │ │ ├── Rrk20ZlDreluConfig.java │ │ │ │ ├── Rrk20ZlDreluPtoDesc.java │ │ │ │ ├── Rrk20ZlDreluReceiver.java │ │ │ │ └── Rrk20ZlDreluSender.java │ │ │ ├── extension/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlExtensionParty.java │ │ │ │ ├── ZlExtensionConfig.java │ │ │ │ ├── ZlExtensionFactory.java │ │ │ │ ├── ZlExtensionParty.java │ │ │ │ ├── g24/ │ │ │ │ │ ├── G24ZlExtensionConfig.java │ │ │ │ │ ├── G24ZlExtensionPtoDesc.java │ │ │ │ │ ├── G24ZlExtensionReceiver.java │ │ │ │ │ └── G24ZlExtensionSender.java │ │ │ │ └── rrgg21/ │ │ │ │ ├── Rrgg21ZlExtensionConfig.java │ │ │ │ ├── Rrgg21ZlExtensionPtoDesc.java │ │ │ │ ├── Rrgg21ZlExtensionReceiver.java │ │ │ │ └── Rrgg21ZlExtensionSender.java │ │ │ ├── lut/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlLutReceiver.java │ │ │ │ ├── AbstractZlLutSender.java │ │ │ │ ├── ZlLutConfig.java │ │ │ │ ├── ZlLutFactory.java │ │ │ │ ├── ZlLutReceiver.java │ │ │ │ ├── ZlLutSender.java │ │ │ │ └── rrgg21/ │ │ │ │ ├── Rrgg21ZlLutConfig.java │ │ │ │ ├── Rrgg21ZlLutPtoDesc.java │ │ │ │ ├── Rrgg21ZlLutReceiver.java │ │ │ │ └── Rrgg21ZlLutSender.java │ │ │ ├── matCrossTerm/ │ │ │ │ ├── AbstractZlMatCrossTermReceiver.java │ │ │ │ ├── AbstractZlMatCrossTermSender.java │ │ │ │ ├── ZlMatCrossTermConfig.java │ │ │ │ ├── ZlMatCrossTermFactory.java │ │ │ │ ├── ZlMatCrossTermParty.java │ │ │ │ └── rrgg21/ │ │ │ │ ├── Rrgg21ZlMatCrossTermConfig.java │ │ │ │ ├── Rrgg21ZlMatCrossTermPtoDesc.java │ │ │ │ ├── Rrgg21ZlMatCrossTermReceiver.java │ │ │ │ └── Rrgg21ZlMatCrossTermSender.java │ │ │ ├── max2/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlMax2Party.java │ │ │ │ ├── ZlMax2Config.java │ │ │ │ ├── ZlMax2Factory.java │ │ │ │ ├── ZlMax2Party.java │ │ │ │ └── rrk20/ │ │ │ │ ├── Rrk20ZlMax2Config.java │ │ │ │ ├── Rrk20ZlMax2PtoDesc.java │ │ │ │ ├── Rrk20ZlMax2Receiver.java │ │ │ │ └── Rrk20ZlMax2Sender.java │ │ │ ├── millionaire/ │ │ │ │ ├── AbstractMillionaireParty.java │ │ │ │ ├── MillionaireConfig.java │ │ │ │ ├── MillionaireFactory.java │ │ │ │ ├── MillionaireParty.java │ │ │ │ └── rrk20/ │ │ │ │ ├── Rrk20MillionaireConfig.java │ │ │ │ ├── Rrk20MillionairePtoDesc.java │ │ │ │ ├── Rrk20MillionaireReceiver.java │ │ │ │ ├── Rrk20MillionaireSender.java │ │ │ │ └── Rrk20MillionaireUtils.java │ │ │ ├── min2/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlMin2Party.java │ │ │ │ ├── ZlMin2Config.java │ │ │ │ ├── ZlMin2Factory.java │ │ │ │ ├── ZlMin2Party.java │ │ │ │ └── rrk20/ │ │ │ │ ├── Rrk20ZlMin2Config.java │ │ │ │ ├── Rrk20ZlMin2PtoDesc.java │ │ │ │ ├── Rrk20ZlMin2Receiver.java │ │ │ │ └── Rrk20ZlMin2Sender.java │ │ │ ├── mux/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlMuxParty.java │ │ │ │ ├── ZlMuxConfig.java │ │ │ │ ├── ZlMuxFactory.java │ │ │ │ ├── ZlMuxParty.java │ │ │ │ ├── rrg21/ │ │ │ │ │ ├── Rrg21ZlMuxConfig.java │ │ │ │ │ ├── Rrg21ZlMuxPtoDesc.java │ │ │ │ │ ├── Rrg21ZlMuxReceiver.java │ │ │ │ │ └── Rrg21ZlMuxSender.java │ │ │ │ └── rrk20/ │ │ │ │ ├── Rrk20ZlMuxConfig.java │ │ │ │ ├── Rrk20ZlMuxPtoDesc.java │ │ │ │ ├── Rrk20ZlMuxReceiver.java │ │ │ │ └── Rrk20ZlMuxSender.java │ │ │ ├── peqt/ │ │ │ │ ├── AbstractPeqtParty.java │ │ │ │ ├── PeqtConfig.java │ │ │ │ ├── PeqtFactory.java │ │ │ │ ├── PeqtParty.java │ │ │ │ ├── cgs22/ │ │ │ │ │ ├── Cgs22PeqtConfig.java │ │ │ │ │ ├── Cgs22PeqtPtoDesc.java │ │ │ │ │ ├── Cgs22PeqtReceiver.java │ │ │ │ │ ├── Cgs22PeqtSender.java │ │ │ │ │ └── Cgs22PeqtUtils.java │ │ │ │ └── naive/ │ │ │ │ ├── NaivePeqtConfig.java │ │ │ │ ├── NaivePeqtPtoDesc.java │ │ │ │ ├── NaivePeqtReceiver.java │ │ │ │ └── NaivePeqtSender.java │ │ │ ├── trunc/ │ │ │ │ └── zl/ │ │ │ │ ├── AbstractZlTruncParty.java │ │ │ │ ├── ZlTruncConfig.java │ │ │ │ ├── ZlTruncFactory.java │ │ │ │ ├── ZlTruncParty.java │ │ │ │ ├── gp23/ │ │ │ │ │ ├── Gp23ZlTruncConfig.java │ │ │ │ │ ├── Gp23ZlTruncPtoDesc.java │ │ │ │ │ ├── Gp23ZlTruncReceiver.java │ │ │ │ │ └── Gp23ZlTruncSender.java │ │ │ │ └── rrk20/ │ │ │ │ ├── Rrk20ZlTruncConfig.java │ │ │ │ ├── Rrk20ZlTruncPtoDesc.java │ │ │ │ ├── Rrk20ZlTruncReceiver.java │ │ │ │ └── Rrk20ZlTruncSender.java │ │ │ └── wrap/ │ │ │ └── zl/ │ │ │ ├── AbstractZlWrapParty.java │ │ │ ├── ZlWrapConfig.java │ │ │ ├── ZlWrapFactory.java │ │ │ ├── ZlWrapParty.java │ │ │ └── rrkc20/ │ │ │ ├── Rrkc20ZlWrapConfig.java │ │ │ ├── Rrkc20ZlWrapPtoDesc.java │ │ │ ├── Rrkc20ZlWrapReceiver.java │ │ │ └── Rrkc20ZlWrapSender.java │ │ └── pcg/ │ │ ├── TrustDealer.java │ │ ├── TrustDealerConfig.java │ │ ├── TrustDealerPtoDesc.java │ │ ├── TrustDealerPtoStep.java │ │ ├── TrustDealerThread.java │ │ ├── dabit/ │ │ │ ├── ZlDaBitTuple.java │ │ │ └── zl/ │ │ │ ├── AbstractZlDaBitGenParty.java │ │ │ ├── ZlDaBitGenConfig.java │ │ │ ├── ZlDaBitGenFactory.java │ │ │ ├── ZlDaBitGenParty.java │ │ │ ├── lkz24/ │ │ │ │ ├── Lkz24ZlDaBitGenConfig.java │ │ │ │ ├── Lkz24ZlDaBitGenPtoDesc.java │ │ │ │ ├── Lzk24ZlDaBitGenReceiver.java │ │ │ │ └── Lzk24ZlDaBitGenSender.java │ │ │ └── plg24/ │ │ │ ├── Plg24ZlDaBitGenConfig.java │ │ │ ├── Plg24ZlDaBitGenPtoDesc.java │ │ │ ├── Plg24ZlDaBitGenReceiver.java │ │ │ └── Plg24ZlDaBitGenSender.java │ │ ├── osn/ │ │ │ ├── dosn/ │ │ │ │ ├── AbstractDosnReceiver.java │ │ │ │ ├── AbstractDosnSender.java │ │ │ │ ├── DosnConfig.java │ │ │ │ ├── DosnFactory.java │ │ │ │ ├── DosnPartyOutput.java │ │ │ │ ├── DosnReceiver.java │ │ │ │ ├── DosnSender.java │ │ │ │ └── lll24/ │ │ │ │ ├── Lll24DosnConfig.java │ │ │ │ ├── Lll24DosnPtoDesc.java │ │ │ │ ├── Lll24DosnReceiver.java │ │ │ │ └── Lll24DosnSender.java │ │ │ ├── posn/ │ │ │ │ ├── AbstractPosnReceiver.java │ │ │ │ ├── AbstractPosnSender.java │ │ │ │ ├── PosnConfig.java │ │ │ │ ├── PosnFactory.java │ │ │ │ ├── PosnReceiver.java │ │ │ │ ├── PosnSender.java │ │ │ │ └── lll24/ │ │ │ │ ├── Lll24PosnConfig.java │ │ │ │ ├── Lll24PosnPtoDesc.java │ │ │ │ ├── Lll24PosnReceiver.java │ │ │ │ └── Lll24PosnSender.java │ │ │ └── rosn/ │ │ │ ├── AbstractCstRosnReceiver.java │ │ │ ├── AbstractCstRosnSender.java │ │ │ ├── AbstractNetRosnReceiver.java │ │ │ ├── AbstractNetRosnSender.java │ │ │ ├── AbstractRosnReceiver.java │ │ │ ├── AbstractRosnSender.java │ │ │ ├── CstRosnConfig.java │ │ │ ├── CstRosnPtoStep.java │ │ │ ├── CstRosnReceiver.java │ │ │ ├── CstRosnSender.java │ │ │ ├── NetRosnConfig.java │ │ │ ├── RosnConfig.java │ │ │ ├── RosnFactory.java │ │ │ ├── RosnReceiver.java │ │ │ ├── RosnReceiverOutput.java │ │ │ ├── RosnSender.java │ │ │ ├── RosnSenderOutput.java │ │ │ ├── cgp20/ │ │ │ │ ├── Cgp20CstRosnConfig.java │ │ │ │ ├── Cgp20CstRosnPtoDesc.java │ │ │ │ ├── Cgp20CstRosnReceiver.java │ │ │ │ └── Cgp20CstRosnSender.java │ │ │ ├── gmr21/ │ │ │ │ ├── Gmr21FlatNetRosnConfig.java │ │ │ │ ├── Gmr21FlatNetRosnPtoDesc.java │ │ │ │ ├── Gmr21FlatNetRosnReceiver.java │ │ │ │ ├── Gmr21FlatNetRosnSender.java │ │ │ │ ├── Gmr21NetRosnConfig.java │ │ │ │ ├── Gmr21NetRosnPtoDesc.java │ │ │ │ ├── Gmr21NetRosnReceiver.java │ │ │ │ └── Gmr21NetRosnSender.java │ │ │ ├── lll24/ │ │ │ │ ├── Lll24CstRosnConfig.java │ │ │ │ ├── Lll24CstRosnPtoDesc.java │ │ │ │ ├── Lll24CstRosnReceiver.java │ │ │ │ ├── Lll24CstRosnSender.java │ │ │ │ ├── Lll24FlatNetRosnConfig.java │ │ │ │ ├── Lll24FlatNetRosnPtoDesc.java │ │ │ │ ├── Lll24FlatNetRosnReceiver.java │ │ │ │ ├── Lll24FlatNetRosnSender.java │ │ │ │ ├── Lll24NetRosnConfig.java │ │ │ │ ├── Lll24NetRosnPtoDesc.java │ │ │ │ ├── Lll24NetRosnReceiver.java │ │ │ │ └── Lll24NetRosnSender.java │ │ │ ├── ms13/ │ │ │ │ ├── Ms13NetRosnConfig.java │ │ │ │ ├── Ms13NetRosnPtoDesc.java │ │ │ │ ├── Ms13NetRosnReceiver.java │ │ │ │ └── Ms13NetRosnSender.java │ │ │ └── prrs24/ │ │ │ ├── Prrs24OprfRosnConfig.java │ │ │ ├── Prrs24OprfRosnPtoDesc.java │ │ │ ├── Prrs24OprfRosnReceiver.java │ │ │ └── Prrs24OprfRosnSender.java │ │ ├── sowoprf/ │ │ │ ├── AbstractF23SowOprfReceiver.java │ │ │ ├── AbstractF23SowOprfSender.java │ │ │ ├── AbstractF32SowOprfReceiver.java │ │ │ ├── AbstractF32SowOprfSender.java │ │ │ ├── F23SowOprfConfig.java │ │ │ ├── F23SowOprfFactory.java │ │ │ ├── F23SowOprfReceiver.java │ │ │ ├── F23SowOprfSender.java │ │ │ ├── F23Wprf.java │ │ │ ├── F23WprfByteMatrix.java │ │ │ ├── F23WprfLongMatrix.java │ │ │ ├── F23WprfMatrix.java │ │ │ ├── F23WprfMatrixFactory.java │ │ │ ├── F23WprfNaiveMatrix.java │ │ │ ├── F32SowOprfConfig.java │ │ │ ├── F32SowOprfFactory.java │ │ │ ├── F32SowOprfReceiver.java │ │ │ ├── F32SowOprfSender.java │ │ │ ├── F32Wprf.java │ │ │ ├── F32WprfByteMatrix.java │ │ │ ├── F32WprfLongMatrix.java │ │ │ ├── F32WprfMatrix.java │ │ │ ├── F32WprfMatrixFactory.java │ │ │ ├── F32WprfNaiveMatrix.java │ │ │ └── aprr24/ │ │ │ ├── Aprr24F23SowOprfConfig.java │ │ │ ├── Aprr24F23SowOprfPtoDesc.java │ │ │ ├── Aprr24F23SowOprfReceiver.java │ │ │ ├── Aprr24F23SowOprfSender.java │ │ │ ├── Aprr24F32SowOprfConfig.java │ │ │ ├── Aprr24F32SowOprfPtoDesc.java │ │ │ ├── Aprr24F32SowOprfReceiver.java │ │ │ └── Aprr24F32SowOprfSender.java │ │ ├── st/ │ │ │ ├── bst/ │ │ │ │ ├── AbstractBstReceiver.java │ │ │ │ ├── AbstractBstSender.java │ │ │ │ ├── BstConfig.java │ │ │ │ ├── BstFactory.java │ │ │ │ ├── BstReceiver.java │ │ │ │ ├── BstReceiverOutput.java │ │ │ │ ├── BstSender.java │ │ │ │ ├── BstSenderOutput.java │ │ │ │ ├── cgp20/ │ │ │ │ │ ├── Cgp20BstConfig.java │ │ │ │ │ ├── Cgp20BstPtoDesc.java │ │ │ │ │ ├── Cgp20BstReceiver.java │ │ │ │ │ └── Cgp20BstSender.java │ │ │ │ └── lll24/ │ │ │ │ ├── Lll24BstConfig.java │ │ │ │ ├── Lll24BstPtoDesc.java │ │ │ │ ├── Lll24BstReceiver.java │ │ │ │ └── Lll24BstSender.java │ │ │ ├── pst/ │ │ │ │ ├── AbstractPstReceiver.java │ │ │ │ ├── AbstractPstSender.java │ │ │ │ ├── PstConfig.java │ │ │ │ ├── PstFactory.java │ │ │ │ ├── PstReceiver.java │ │ │ │ ├── PstSender.java │ │ │ │ ├── cgp20/ │ │ │ │ │ ├── Cgp20PstConfig.java │ │ │ │ │ ├── Cgp20PstPtoDesc.java │ │ │ │ │ ├── Cgp20PstReceiver.java │ │ │ │ │ └── Cgp20PstSender.java │ │ │ │ └── lll24/ │ │ │ │ ├── Lll24PstConfig.java │ │ │ │ ├── Lll24PstPtoDesc.java │ │ │ │ ├── Lll24PstReceiver.java │ │ │ │ └── Lll24PstSender.java │ │ │ └── sst/ │ │ │ ├── AbstractSstReceiver.java │ │ │ ├── AbstractSstSender.java │ │ │ ├── SstConfig.java │ │ │ ├── SstFactory.java │ │ │ ├── SstReceiver.java │ │ │ ├── SstReceiverOutput.java │ │ │ ├── SstSender.java │ │ │ ├── SstSenderOutput.java │ │ │ ├── cgp20/ │ │ │ │ ├── Cgp20SstConfig.java │ │ │ │ ├── Cgp20SstPtoDesc.java │ │ │ │ ├── Cgp20SstReceiver.java │ │ │ │ └── Cgp20SstSender.java │ │ │ └── lll24/ │ │ │ ├── Lll24SstConfig.java │ │ │ ├── Lll24SstPtoDesc.java │ │ │ ├── Lll24SstReceiver.java │ │ │ └── Lll24SstSender.java │ │ └── triple/ │ │ ├── Z2Triple.java │ │ ├── Zl64Triple.java │ │ ├── ZlTriple.java │ │ ├── Zp64Triple.java │ │ ├── z2/ │ │ │ ├── AbstractZ2TripleGenParty.java │ │ │ ├── Z2TripleGenConfig.java │ │ │ ├── Z2TripleGenFactory.java │ │ │ ├── Z2TripleGenParty.java │ │ │ ├── aided/ │ │ │ │ ├── AidedZ2TripleGenConfig.java │ │ │ │ └── AidedZ2TripleGenParty.java │ │ │ ├── direct/ │ │ │ │ ├── DirectZ2TripleGenConfig.java │ │ │ │ ├── DirectZ2TripleGenPtoDesc.java │ │ │ │ ├── DirectZ2TripleGenReceiver.java │ │ │ │ └── DirectZ2TripleGenSender.java │ │ │ ├── fake/ │ │ │ │ ├── FakeZ2TripleGenConfig.java │ │ │ │ ├── FakeZ2TripleGenPtoDesc.java │ │ │ │ ├── FakeZ2TripleGenReceiver.java │ │ │ │ └── FakeZ2TripleGenSender.java │ │ │ ├── lcot/ │ │ │ │ ├── LcotZ2TripleGenConfig.java │ │ │ │ ├── LcotZ2TripleGenPtoDesc.java │ │ │ │ ├── LcotZ2TripleGenReceiver.java │ │ │ │ └── LcotZ2TripleGenSender.java │ │ │ └── silent/ │ │ │ ├── SilentZ2TripleGenConfig.java │ │ │ ├── SilentZ2TripleGenPtoDesc.java │ │ │ ├── SilentZ2TripleGenReceiver.java │ │ │ └── SilentZ2TripleGenSender.java │ │ ├── zl/ │ │ │ ├── AbstractZlTripleGenParty.java │ │ │ ├── ZlTripleGenConfig.java │ │ │ ├── ZlTripleGenFactory.java │ │ │ ├── ZlTripleGenParty.java │ │ │ ├── aided/ │ │ │ │ ├── AidedZlTripleGenConfig.java │ │ │ │ └── AidedZlTripleGenParty.java │ │ │ ├── direct/ │ │ │ │ ├── DirectZlTripleGenConfig.java │ │ │ │ ├── DirectZlTripleGenPtoDesc.java │ │ │ │ ├── DirectZlTripleGenReceiver.java │ │ │ │ └── DirectZlTripleGenSender.java │ │ │ ├── fake/ │ │ │ │ ├── FakeZlTripleGenConfig.java │ │ │ │ ├── FakeZlTripleGenPtoDesc.java │ │ │ │ ├── FakeZlTripleGenReceiver.java │ │ │ │ └── FakeZlTripleGenSender.java │ │ │ └── silent/ │ │ │ ├── SilentZlTripleGenConfig.java │ │ │ ├── SilentZlTripleGenPtoDesc.java │ │ │ ├── SilentZlTripleGenReceiver.java │ │ │ └── SilentZlTripleGenSender.java │ │ └── zl64/ │ │ ├── AbstractZl64TripleGenParty.java │ │ ├── Zl64TripleGenConfig.java │ │ ├── Zl64TripleGenFactory.java │ │ ├── Zl64TripleGenParty.java │ │ ├── aided/ │ │ │ ├── AidedZl64TripleGenConfig.java │ │ │ └── AidedZl64TripleGenParty.java │ │ ├── direct/ │ │ │ ├── DirectZl64TripleGenConfig.java │ │ │ ├── DirectZl64TripleGenPtoDesc.java │ │ │ ├── DirectZl64TripleGenReceiver.java │ │ │ └── DirectZl64TripleGenSender.java │ │ ├── fake/ │ │ │ ├── FakeZl64TripleGenConfig.java │ │ │ ├── FakeZl64TripleGenPtoDesc.java │ │ │ ├── FakeZl64TripleGenReceiver.java │ │ │ └── FakeZl64TripleGenSender.java │ │ └── silent/ │ │ ├── SilentZl64TripleGenConfig.java │ │ ├── SilentZl64TripleGenPtoDesc.java │ │ ├── SilentZl64TripleGenReceiver.java │ │ └── SilentZl64TripleGenSender.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── aby/ │ │ ├── basics/ │ │ │ ├── z2/ │ │ │ │ ├── BatchDyadicZ2cReceiverThread.java │ │ │ │ ├── BatchDyadicZ2cSenderThread.java │ │ │ │ ├── BatchUnaryZ2cReceiverThread.java │ │ │ │ ├── BatchUnaryZ2cSenderThread.java │ │ │ │ ├── BatchZ2cTest.java │ │ │ │ ├── SingleDyadicZ2cReceiverThread.java │ │ │ │ ├── SingleDyadicZ2cSenderThread.java │ │ │ │ ├── SingleUnaryZ2cReceiverThread.java │ │ │ │ ├── SingleUnaryZ2cSenderThread.java │ │ │ │ ├── SingleZ2cTest.java │ │ │ │ ├── UnbalancedAndZ2cReceiverThread.java │ │ │ │ ├── UnbalancedAndZ2cSenderThread.java │ │ │ │ └── Z2cUnbalancedAndTest.java │ │ │ ├── zl/ │ │ │ │ ├── BatchDyadicZlcReceiverThread.java │ │ │ │ ├── BatchDyadicZlcSenderThread.java │ │ │ │ ├── BatchUnaryZlcReceiverThread.java │ │ │ │ ├── BatchUnaryZlcSenderThread.java │ │ │ │ ├── BatchZlcTest.java │ │ │ │ ├── SingleDyadicZlcReceiverThread.java │ │ │ │ ├── SingleDyadicZlcSenderThread.java │ │ │ │ ├── SingleUnaryZlcReceiverThread.java │ │ │ │ ├── SingleUnaryZlcSenderThread.java │ │ │ │ └── SingleZlcTest.java │ │ │ └── zl64/ │ │ │ ├── BatchDyadicZl64cReceiverThread.java │ │ │ ├── BatchDyadicZl64cSenderThread.java │ │ │ ├── BatchUnaryZl64cReceiverThread.java │ │ │ ├── BatchUnaryZl64cSenderThread.java │ │ │ ├── BatchZl64cTest.java │ │ │ ├── SingleDyadicZl64cReceiverThread.java │ │ │ ├── SingleDyadicZl64cSenderThread.java │ │ │ ├── SingleUnaryZl64cReceiverThread.java │ │ │ ├── SingleUnaryZl64cSenderThread.java │ │ │ └── SingleZl64cTest.java │ │ ├── edit/ │ │ │ ├── EditDistEfficiencyTest.java │ │ │ ├── EditDistReceiverThread.java │ │ │ ├── EditDistSenderThread.java │ │ │ └── EditDistTest.java │ │ ├── main/ │ │ │ └── RosnMainTest.java │ │ ├── operator/ │ │ │ ├── agg/ │ │ │ │ ├── hamming/ │ │ │ │ │ ├── HammingReceiverThread.java │ │ │ │ │ ├── HammingSenderThread.java │ │ │ │ │ └── HammingTest.java │ │ │ │ └── max/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlMaxPartyThread.java │ │ │ │ └── ZlMaxTest.java │ │ │ ├── corr/ │ │ │ │ ├── ZlCorrPartyThread.java │ │ │ │ └── ZlCorrTest.java │ │ │ └── row/ │ │ │ ├── b2a/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlB2aPartyThread.java │ │ │ │ └── ZlB2aTest.java │ │ │ ├── crossTerm/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlCrossTermPartyThread.java │ │ │ │ └── ZlCrossTermTest.java │ │ │ ├── drelu/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlDreluPartyThread.java │ │ │ │ └── ZlDreluTest.java │ │ │ ├── extension/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlExtensionPartyThread.java │ │ │ │ └── ZlExtensionTest.java │ │ │ ├── lut/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlLutReceiverThread.java │ │ │ │ ├── ZlLutSenderThread.java │ │ │ │ └── ZlLutTest.java │ │ │ ├── matCrossTerm/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlMatCrossTermPartyThread.java │ │ │ │ └── ZlMatCrossTermTest.java │ │ │ ├── max2/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlMax2PartyThread.java │ │ │ │ └── ZlMax2Test.java │ │ │ ├── millionaire/ │ │ │ │ ├── MillionairePartyThread.java │ │ │ │ ├── MillionaireTest.java │ │ │ │ └── MillionaireTestUtils.java │ │ │ ├── min2/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlMin2PartyThread.java │ │ │ │ └── ZlMin2Test.java │ │ │ ├── mux/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlMuxReceiverThread.java │ │ │ │ ├── ZlMuxSenderThread.java │ │ │ │ └── ZlMuxTest.java │ │ │ ├── peqt/ │ │ │ │ ├── PeqtPartyThread.java │ │ │ │ ├── PeqtTest.java │ │ │ │ └── PeqtTestUtils.java │ │ │ ├── trunc/ │ │ │ │ └── zl/ │ │ │ │ ├── ZlTruncPartyThread.java │ │ │ │ └── ZlTruncTest.java │ │ │ └── wrap/ │ │ │ └── zl/ │ │ │ ├── ZlWrapPartyThread.java │ │ │ └── ZlWrapTest.java │ │ └── pcg/ │ │ ├── dabit/ │ │ │ ├── DaBitTestUtils.java │ │ │ ├── ZlDaBitTupleTest.java │ │ │ └── zl/ │ │ │ ├── ZlDaBitGenPartyThread.java │ │ │ └── ZlDaBitGenTest.java │ │ ├── osn/ │ │ │ ├── OsnTestUtils.java │ │ │ ├── RosnPartyOutputTest.java │ │ │ ├── dosn/ │ │ │ │ ├── DosnReceiverThread.java │ │ │ │ ├── DosnSenderThread.java │ │ │ │ └── DosnTest.java │ │ │ ├── posn/ │ │ │ │ ├── PosnReceiverThread.java │ │ │ │ ├── PosnSenderThread.java │ │ │ │ └── PosnTest.java │ │ │ └── rosn/ │ │ │ ├── RosnReceiverThread.java │ │ │ ├── RosnSenderThread.java │ │ │ └── RosnTest.java │ │ ├── sowoprf/ │ │ │ ├── F23SowOprfReceiverThread.java │ │ │ ├── F23SowOprfSenderThread.java │ │ │ ├── F23SowOprfTest.java │ │ │ ├── F23WprfMatrixTest.java │ │ │ ├── F23WprfTest.java │ │ │ ├── F32SowOprfReceiverThread.java │ │ │ ├── F32SowOprfSenderThread.java │ │ │ ├── F32SowOprfTest.java │ │ │ ├── F32WprfMatrixTest.java │ │ │ ├── F32WprfTest.java │ │ │ └── WprfEfficiencyTest.java │ │ ├── st/ │ │ │ ├── bst/ │ │ │ │ ├── BstReceiverThread.java │ │ │ │ ├── BstSenderThread.java │ │ │ │ └── BstTest.java │ │ │ ├── pst/ │ │ │ │ ├── PstReceiverThread.java │ │ │ │ ├── PstSenderThread.java │ │ │ │ └── PstTest.java │ │ │ └── sst/ │ │ │ ├── SstReceiverThread.java │ │ │ ├── SstSenderThread.java │ │ │ └── SstTest.java │ │ └── triple/ │ │ ├── TripleTestUtils.java │ │ ├── Z2TripleTest.java │ │ ├── Zl64TripleTest.java │ │ ├── ZlTripleTest.java │ │ ├── Zp64TripleTest.java │ │ ├── z2/ │ │ │ ├── Z2TripleGenAidTest.java │ │ │ ├── Z2TripleGenPartyThread.java │ │ │ └── Z2TripleGenTest.java │ │ ├── zl/ │ │ │ ├── ZlTripleGenAidTest.java │ │ │ ├── ZlTripleGenPartyThread.java │ │ │ └── ZlTripleGenTest.java │ │ └── zl64/ │ │ ├── Zl64TripleGenAidTest.java │ │ ├── Zl64TripleGenPartyThread.java │ │ └── Zl64TripleGenTest.java │ └── resources/ │ ├── conf_rosn_example.conf │ ├── log4j.properties │ └── sim example.csv ├── mpc4j-s2pc-opf/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── opf/ │ │ ├── mqrpmt/ │ │ │ ├── AbstractMqRpmtClient.java │ │ │ ├── AbstractMqRpmtServer.java │ │ │ ├── MqRpmtClient.java │ │ │ ├── MqRpmtConfig.java │ │ │ ├── MqRpmtFactory.java │ │ │ ├── MqRpmtServer.java │ │ │ ├── czz24/ │ │ │ │ ├── Czz24CwOprfMqRpmtClient.java │ │ │ │ ├── Czz24CwOprfMqRpmtConfig.java │ │ │ │ ├── Czz24CwOprfMqRpmtPtoDesc.java │ │ │ │ └── Czz24CwOprfMqRpmtServer.java │ │ │ ├── gmr21/ │ │ │ │ ├── Gmr21MqRpmtClient.java │ │ │ │ ├── Gmr21MqRpmtConfig.java │ │ │ │ ├── Gmr21MqRpmtPtoDesc.java │ │ │ │ └── Gmr21MqRpmtServer.java │ │ │ └── zcl23/ │ │ │ ├── Zcl23PkeMqRpmtClient.java │ │ │ ├── Zcl23PkeMqRpmtConfig.java │ │ │ ├── Zcl23PkeMqRpmtPtoDesc.java │ │ │ └── Zcl23PkeMqRpmtServer.java │ │ ├── opprf/ │ │ │ ├── batch/ │ │ │ │ ├── AbstractBopprfReceiver.java │ │ │ │ ├── AbstractBopprfSender.java │ │ │ │ ├── BopprfConfig.java │ │ │ │ ├── BopprfFactory.java │ │ │ │ ├── BopprfReceiver.java │ │ │ │ ├── BopprfSender.java │ │ │ │ └── okvs/ │ │ │ │ ├── OkvsBopprfConfig.java │ │ │ │ ├── OkvsBopprfPtoDesc.java │ │ │ │ ├── OkvsBopprfReceiver.java │ │ │ │ └── OkvsBopprfSender.java │ │ │ └── rb/ │ │ │ ├── AbstractRbopprfReceiver.java │ │ │ ├── AbstractRbopprfSender.java │ │ │ ├── RbopprfConfig.java │ │ │ ├── RbopprfFactory.java │ │ │ ├── RbopprfReceiver.java │ │ │ ├── RbopprfSender.java │ │ │ └── cgs22/ │ │ │ ├── Cgs22RbopprfConfig.java │ │ │ ├── Cgs22RbopprfPtoDesc.java │ │ │ ├── Cgs22RbopprfReceiver.java │ │ │ └── Cgs22RbopprfSender.java │ │ ├── oprf/ │ │ │ ├── AbstractMpOprfReceiver.java │ │ │ ├── AbstractMpOprfSender.java │ │ │ ├── AbstractOprfReceiver.java │ │ │ ├── AbstractOprfSender.java │ │ │ ├── MpOprfConfig.java │ │ │ ├── MpOprfReceiver.java │ │ │ ├── MpOprfReceiverOutput.java │ │ │ ├── MpOprfSender.java │ │ │ ├── MpOprfSenderOutput.java │ │ │ ├── OprfConfig.java │ │ │ ├── OprfFactory.java │ │ │ ├── OprfReceiver.java │ │ │ ├── OprfReceiverOutput.java │ │ │ ├── OprfSender.java │ │ │ ├── OprfSenderOutput.java │ │ │ ├── cm20/ │ │ │ │ ├── Cm20MpOprfConfig.java │ │ │ │ ├── Cm20MpOprfPtoDesc.java │ │ │ │ ├── Cm20MpOprfReceiver.java │ │ │ │ ├── Cm20MpOprfSender.java │ │ │ │ ├── Cm20MpOprfSenderOutput.java │ │ │ │ └── Cm20MpOprfUtils.java │ │ │ ├── fipr05/ │ │ │ │ ├── Fipr05MpOprfConfig.java │ │ │ │ ├── Fipr05MpOprfPtoDesc.java │ │ │ │ ├── Fipr05MpOprfReceiver.java │ │ │ │ ├── Fipr05MpOprfSender.java │ │ │ │ └── Fipr05MpOprfSenderOutput.java │ │ │ ├── kkrt16/ │ │ │ │ ├── Kkrt16OprfSenderOutput.java │ │ │ │ ├── Kkrt16OptOprfConfig.java │ │ │ │ ├── Kkrt16OptOprfPtoDesc.java │ │ │ │ ├── Kkrt16OptOprfReceiver.java │ │ │ │ ├── Kkrt16OptOprfSender.java │ │ │ │ ├── Kkrt16OriOprfConfig.java │ │ │ │ ├── Kkrt16OriOprfPtoDesc.java │ │ │ │ ├── Kkrt16OriOprfReceiver.java │ │ │ │ └── Kkrt16OriOprfSender.java │ │ │ └── rs21/ │ │ │ ├── Rs21MpOprfConfig.java │ │ │ ├── Rs21MpOprfPtoDesc.java │ │ │ ├── Rs21MpOprfReceiver.java │ │ │ ├── Rs21MpOprfSender.java │ │ │ └── Rs21MpOprfSenderOutput.java │ │ ├── oprp/ │ │ │ ├── AbstractOprpReceiver.java │ │ │ ├── AbstractOprpSender.java │ │ │ ├── OprpConfig.java │ │ │ ├── OprpFactory.java │ │ │ ├── OprpReceiver.java │ │ │ ├── OprpReceiverOutput.java │ │ │ ├── OprpSender.java │ │ │ ├── OprpSenderOutput.java │ │ │ └── lowmc/ │ │ │ ├── LowMcOprpConfig.java │ │ │ ├── LowMcOprpPtoDesc.java │ │ │ ├── LowMcOprpReceiver.java │ │ │ ├── LowMcOprpSender.java │ │ │ └── LowMcUtils.java │ │ ├── osorter/ │ │ │ ├── AbstractObSorter.java │ │ │ ├── ObSortConfig.java │ │ │ ├── ObSortFactory.java │ │ │ ├── ObSorter.java │ │ │ ├── bitonic/ │ │ │ │ ├── BitonicSorter.java │ │ │ │ ├── BitonicSorterConfig.java │ │ │ │ └── BitonicSorterPtoDesc.java │ │ │ └── quick/ │ │ │ ├── PrpUtils.java │ │ │ ├── QuickSortUtils.java │ │ │ ├── QuickSorter.java │ │ │ ├── QuickSorterConfig.java │ │ │ └── QuickSorterPtoDesc.java │ │ ├── pmpeqt/ │ │ │ ├── AbstractPmPeqtReceiver.java │ │ │ ├── AbstractPmPeqtSender.java │ │ │ ├── PmPeqtConfig.java │ │ │ ├── PmPeqtFactory.java │ │ │ ├── PmPeqtReceiver.java │ │ │ ├── PmPeqtSender.java │ │ │ └── tcl23/ │ │ │ ├── Tcl23ByteEccDdhPmPeqtConfig.java │ │ │ ├── Tcl23ByteEccDdhPmPeqtPtoDesc.java │ │ │ ├── Tcl23ByteEccDdhPmPeqtReceiver.java │ │ │ ├── Tcl23ByteEccDdhPmPeqtSender.java │ │ │ ├── Tcl23EccDdhPmPeqtConfig.java │ │ │ ├── Tcl23EccDdhPmPeqtPtoDesc.java │ │ │ ├── Tcl23EccDdhPmPeqtReceiver.java │ │ │ ├── Tcl23EccDdhPmPeqtSender.java │ │ │ ├── Tcl23PsOprfPmPeqtConfig.java │ │ │ ├── Tcl23PsOprfPmPeqtPtoDesc.java │ │ │ ├── Tcl23PsOprfPmPeqtReceiver.java │ │ │ └── Tcl23PsOprfPmPeqtSender.java │ │ ├── psm/ │ │ │ ├── pdsm/ │ │ │ │ ├── AbstractPdsmReceiver.java │ │ │ │ ├── AbstractPdsmSender.java │ │ │ │ ├── PdsmConfig.java │ │ │ │ ├── PdsmFactory.java │ │ │ │ ├── PdsmReceiver.java │ │ │ │ ├── PdsmSender.java │ │ │ │ └── cgs22/ │ │ │ │ ├── Cgs22NaivePdsmConfig.java │ │ │ │ ├── Cgs22NaivePdsmPtoDesc.java │ │ │ │ ├── Cgs22NaivePdsmReceiver.java │ │ │ │ ├── Cgs22NaivePdsmSender.java │ │ │ │ ├── Cgs22OpprfPdsmConfig.java │ │ │ │ ├── Cgs22OpprfPdsmPtoDesc.java │ │ │ │ ├── Cgs22OpprfPdsmReceiver.java │ │ │ │ └── Cgs22OpprfPdsmSender.java │ │ │ └── pesm/ │ │ │ ├── AbstractPesmReceiver.java │ │ │ ├── AbstractPesmSender.java │ │ │ ├── PesmConfig.java │ │ │ ├── PesmFactory.java │ │ │ ├── PesmReceiver.java │ │ │ ├── PesmSender.java │ │ │ └── cgs22/ │ │ │ ├── Cgs22LnotPesmConfig.java │ │ │ ├── Cgs22LnotPesmPtoDesc.java │ │ │ ├── Cgs22LnotPesmReceiver.java │ │ │ └── Cgs22LnotPesmSender.java │ │ ├── shuffle/ │ │ │ ├── AbstractShuffleReceiver.java │ │ │ ├── AbstractShuffleSender.java │ │ │ ├── ShuffleConfig.java │ │ │ ├── ShuffleFactory.java │ │ │ ├── ShuffleParty.java │ │ │ └── cgp20/ │ │ │ ├── Cgp20ShuffleConfig.java │ │ │ ├── Cgp20ShufflePtoDesc.java │ │ │ ├── Cgp20ShuffleReceiver.java │ │ │ └── Cgp20ShuffleSender.java │ │ └── sqoprf/ │ │ ├── AbstractSqOprfReceiver.java │ │ ├── AbstractSqOprfSender.java │ │ ├── SqOprfConfig.java │ │ ├── SqOprfFactory.java │ │ ├── SqOprfKey.java │ │ ├── SqOprfReceiver.java │ │ ├── SqOprfReceiverOutput.java │ │ ├── SqOprfSender.java │ │ ├── SqOprfSenderOutput.java │ │ ├── nr04/ │ │ │ ├── Nr04EccSqOprfConfig.java │ │ │ ├── Nr04EccSqOprfKey.java │ │ │ ├── Nr04EccSqOprfPtoDesc.java │ │ │ ├── Nr04EccSqOprfReceiver.java │ │ │ └── Nr04EccSqOprfSender.java │ │ ├── pssw09/ │ │ │ ├── Pssw09SqOprfConfig.java │ │ │ ├── Pssw09SqOprfKey.java │ │ │ ├── Pssw09SqOprfPtoDesc.java │ │ │ ├── Pssw09SqOprfReceiver.java │ │ │ └── Pssw09SqOprfSender.java │ │ └── ra17/ │ │ ├── Ra17ByteEccSqOprfConfig.java │ │ ├── Ra17ByteEccSqOprfKey.java │ │ ├── Ra17ByteEccSqOprfPtoDesc.java │ │ ├── Ra17ByteEccSqOprfReceiver.java │ │ ├── Ra17ByteEccSqOprfSender.java │ │ ├── Ra17EccSqOprfConfig.java │ │ ├── Ra17EccSqOprfKey.java │ │ ├── Ra17EccSqOprfPtoDesc.java │ │ ├── Ra17EccSqOprfReceiver.java │ │ └── Ra17EccSqOprfSender.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── opf/ │ │ ├── OpfUtils.java │ │ ├── mqrpmt/ │ │ │ ├── MqRmptTest.java │ │ │ ├── MqRpmtClientThread.java │ │ │ └── MqRpmtServerThread.java │ │ ├── opprf/ │ │ │ ├── OpprfTestUtils.java │ │ │ ├── batch/ │ │ │ │ ├── BopprfReceiverThread.java │ │ │ │ ├── BopprfSenderThread.java │ │ │ │ └── BopprfTest.java │ │ │ └── rb/ │ │ │ ├── RbopprfReceiverThread.java │ │ │ ├── RbopprfSenderThread.java │ │ │ └── RbopprfTest.java │ │ ├── oprf/ │ │ │ ├── MpOprfReceiverThread.java │ │ │ ├── MpOprfSenderThread.java │ │ │ ├── MpOprfTest.java │ │ │ ├── OprfEfficiencyTest.java │ │ │ ├── OprfReceiverThread.java │ │ │ ├── OprfSenderThread.java │ │ │ ├── OprfTest.java │ │ │ └── cm20/ │ │ │ └── Cm20MpOprfPtoDescTest.java │ │ ├── oprp/ │ │ │ ├── OprpReceiverThread.java │ │ │ ├── OprpSenderThread.java │ │ │ └── OprpTest.java │ │ ├── osorter/ │ │ │ ├── ObSorterTest.java │ │ │ └── ObSorterThread.java │ │ ├── pmpeqt/ │ │ │ ├── PmPeqtReceiverThread.java │ │ │ ├── PmPeqtSenderThread.java │ │ │ └── PmPeqtTest.java │ │ ├── psm/ │ │ │ ├── pdsm/ │ │ │ │ ├── PdsmReceiverThread.java │ │ │ │ ├── PdsmSenderThread.java │ │ │ │ ├── PdsmTest.java │ │ │ │ └── PdsmTestUtils.java │ │ │ └── pesm/ │ │ │ ├── PesmReceiverThread.java │ │ │ ├── PesmSenderThread.java │ │ │ ├── PesmTest.java │ │ │ └── PesmTestUtils.java │ │ ├── shuffle/ │ │ │ ├── ShuffleReceiverThread.java │ │ │ ├── ShuffleSenderThread.java │ │ │ └── ShuffleTest.java │ │ └── sqoprf/ │ │ ├── SqOprfReceiverThread.java │ │ ├── SqOprfSenderThread.java │ │ └── SqOprfTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-s2pc-pcg/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── pcg/ │ │ ├── AbstractBatchPcgOutput.java │ │ ├── BatchPcgOutput.java │ │ ├── MergedPcgPartyOutput.java │ │ ├── PcgPartyOutput.java │ │ ├── ct/ │ │ │ ├── AbstractCoinTossParty.java │ │ │ ├── CoinTossConfig.java │ │ │ ├── CoinTossFactory.java │ │ │ ├── CoinTossParty.java │ │ │ ├── blum82/ │ │ │ │ ├── Blum82CoinTossConfig.java │ │ │ │ ├── Blum82CoinTossPtoDesc.java │ │ │ │ ├── Blum82CoinTossReceiver.java │ │ │ │ └── Blum82CoinTossSender.java │ │ │ └── direct/ │ │ │ ├── DirectCoinTossConfig.java │ │ │ ├── DirectCoinTossPtoDesc.java │ │ │ ├── DirectCoinTossReceiver.java │ │ │ └── DirectCoinTossSender.java │ │ ├── dpprf/ │ │ │ ├── cdpprf/ │ │ │ │ ├── bp/ │ │ │ │ │ ├── AbstractBpCdpprfReceiver.java │ │ │ │ │ ├── AbstractBpCdpprfSender.java │ │ │ │ │ ├── BpCdpprfConfig.java │ │ │ │ │ ├── BpCdpprfFactory.java │ │ │ │ │ ├── BpCdpprfReceiver.java │ │ │ │ │ ├── BpCdpprfReceiverOutput.java │ │ │ │ │ ├── BpCdpprfSender.java │ │ │ │ │ ├── BpCdpprfSenderOutput.java │ │ │ │ │ └── gyw23/ │ │ │ │ │ ├── Gyw23BpCdpprfConfig.java │ │ │ │ │ ├── Gyw23BpCdpprfPtoDesc.java │ │ │ │ │ ├── Gyw23BpCdpprfReceiver.java │ │ │ │ │ └── Gyw23BpCdpprfSender.java │ │ │ │ └── sp/ │ │ │ │ ├── AbstractSpCdpprfReceiver.java │ │ │ │ ├── AbstractSpCdpprfSender.java │ │ │ │ ├── SpCdpprfConfig.java │ │ │ │ ├── SpCdpprfFactory.java │ │ │ │ ├── SpCdpprfReceiver.java │ │ │ │ ├── SpCdpprfReceiverOutput.java │ │ │ │ ├── SpCdpprfSender.java │ │ │ │ ├── SpCdpprfSenderOutput.java │ │ │ │ └── gyw23/ │ │ │ │ ├── Gyw23SpCdpprfConfig.java │ │ │ │ ├── Gyw23SpCdpprfPtoDesc.java │ │ │ │ ├── Gyw23SpCdpprfReceiver.java │ │ │ │ └── Gyw23SpCdpprfSender.java │ │ │ └── rdpprf/ │ │ │ ├── bp/ │ │ │ │ ├── AbstractBpRdpprfReceiver.java │ │ │ │ ├── AbstractBpRdpprfSender.java │ │ │ │ ├── BpRdpprfConfig.java │ │ │ │ ├── BpRdpprfFactory.java │ │ │ │ ├── BpRdpprfReceiver.java │ │ │ │ ├── BpRdpprfReceiverOutput.java │ │ │ │ ├── BpRdpprfSender.java │ │ │ │ ├── BpRdpprfSenderOutput.java │ │ │ │ └── ywl20/ │ │ │ │ ├── Ywl20BpRdpprfConfig.java │ │ │ │ ├── Ywl20BpRdpprfPtoDesc.java │ │ │ │ ├── Ywl20BpRdpprfReceiver.java │ │ │ │ └── Ywl20BpRdpprfSender.java │ │ │ └── sp/ │ │ │ ├── AbstractSpRdpprfReceiver.java │ │ │ ├── AbstractSpRdpprfSender.java │ │ │ ├── SpRdpprfConfig.java │ │ │ ├── SpRdpprfFactory.java │ │ │ ├── SpRdpprfReceiver.java │ │ │ ├── SpRdpprfReceiverOutput.java │ │ │ ├── SpRdpprfSender.java │ │ │ ├── SpRdpprfSenderOutput.java │ │ │ └── ywl20/ │ │ │ ├── Ywl20SpRdpprfConfig.java │ │ │ ├── Ywl20SpRdpprfPtoDesc.java │ │ │ ├── Ywl20SpRdpprfReceiver.java │ │ │ └── Ywl20SpRdpprfSender.java │ │ ├── ot/ │ │ │ ├── KdfOtReceiverOutput.java │ │ │ ├── KdfOtSenderOutput.java │ │ │ ├── OtReceiverOutput.java │ │ │ ├── OtSenderOutput.java │ │ │ ├── base/ │ │ │ │ ├── AbstractBaseOtReceiver.java │ │ │ │ ├── AbstractBaseOtSender.java │ │ │ │ ├── BaseOtConfig.java │ │ │ │ ├── BaseOtFactory.java │ │ │ │ ├── BaseOtReceiver.java │ │ │ │ ├── BaseOtReceiverOutput.java │ │ │ │ ├── BaseOtSender.java │ │ │ │ ├── BaseOtSenderOutput.java │ │ │ │ ├── co15/ │ │ │ │ │ ├── Co15BaseOtConfig.java │ │ │ │ │ ├── Co15BaseOtPtoDesc.java │ │ │ │ │ ├── Co15BaseOtReceiver.java │ │ │ │ │ └── Co15BaseOtSender.java │ │ │ │ ├── csw20/ │ │ │ │ │ ├── Csw20BaseOtConfig.java │ │ │ │ │ ├── Csw20BaseOtPtoDesc.java │ │ │ │ │ ├── Csw20BaseOtReceiver.java │ │ │ │ │ └── Csw20BaseOtSender.java │ │ │ │ ├── mr19/ │ │ │ │ │ ├── Mr19EccBaseOtConfig.java │ │ │ │ │ ├── Mr19EccBaseOtPtoDesc.java │ │ │ │ │ ├── Mr19EccBaseOtReceiver.java │ │ │ │ │ ├── Mr19EccBaseOtSender.java │ │ │ │ │ ├── Mr19KyberBaseOtConfig.java │ │ │ │ │ ├── Mr19KyberBaseOtPtoDesc.java │ │ │ │ │ ├── Mr19KyberBaseOtReceiver.java │ │ │ │ │ └── Mr19KyberBaseOtSender.java │ │ │ │ └── np01/ │ │ │ │ ├── Np01BaseOtConfig.java │ │ │ │ ├── Np01BaseOtPtoDesc.java │ │ │ │ ├── Np01BaseOtReceiver.java │ │ │ │ ├── Np01BaseOtSender.java │ │ │ │ ├── Np01ByteBaseOtConfig.java │ │ │ │ ├── Np01ByteBaseOtPtoDesc.java │ │ │ │ ├── Np01ByteBaseOtReceiver.java │ │ │ │ └── Np01ByteBaseOtSender.java │ │ │ ├── bnot/ │ │ │ │ ├── AbstractBaseNotReceiver.java │ │ │ │ ├── AbstractBaseNotSender.java │ │ │ │ ├── BaseNotConfig.java │ │ │ │ ├── BaseNotFactory.java │ │ │ │ ├── BaseNotReceiver.java │ │ │ │ ├── BaseNotReceiverOutput.java │ │ │ │ ├── BaseNotSender.java │ │ │ │ ├── BaseNotSenderOutput.java │ │ │ │ ├── co15/ │ │ │ │ │ ├── Co15BaseNotConfig.java │ │ │ │ │ ├── Co15BaseNotPtoDesc.java │ │ │ │ │ ├── Co15BaseNotReceiver.java │ │ │ │ │ └── Co15BaseNotSender.java │ │ │ │ ├── mr19/ │ │ │ │ │ ├── Mr19EccBaseNotConfig.java │ │ │ │ │ ├── Mr19EccBaseNotPtoDesc.java │ │ │ │ │ ├── Mr19EccBaseNotReceiver.java │ │ │ │ │ ├── Mr19EccBaseNotSender.java │ │ │ │ │ ├── Mr19KyberBaseNotConfig.java │ │ │ │ │ ├── Mr19KyberBaseNotPtoDesc.java │ │ │ │ │ ├── Mr19KyberBaseNotReceiver.java │ │ │ │ │ └── Mr19KyberBaseNotSender.java │ │ │ │ ├── np01/ │ │ │ │ │ ├── Np01BaseNotConfig.java │ │ │ │ │ ├── Np01BaseNotPtoDesc.java │ │ │ │ │ ├── Np01BaseNotReceiver.java │ │ │ │ │ └── Np01BaseNotSender.java │ │ │ │ └── np99/ │ │ │ │ ├── Np99BaseNotConfig.java │ │ │ │ ├── Np99BaseNotPtoDesc.java │ │ │ │ ├── Np99BaseNotReceiver.java │ │ │ │ └── Np99BaseNotSender.java │ │ │ ├── conv32/ │ │ │ │ ├── AbstractConv32Party.java │ │ │ │ ├── Conv32Config.java │ │ │ │ ├── Conv32Factory.java │ │ │ │ ├── Conv32Party.java │ │ │ │ ├── ccot/ │ │ │ │ │ ├── CcotConv32Config.java │ │ │ │ │ ├── CcotConv32PtoDesc.java │ │ │ │ │ ├── CcotConv32Receiver.java │ │ │ │ │ └── CcotConv32Sender.java │ │ │ │ ├── scot/ │ │ │ │ │ ├── ScotConv32Config.java │ │ │ │ │ ├── ScotConv32PtoDesc.java │ │ │ │ │ ├── ScotConv32Receiver.java │ │ │ │ │ └── ScotConv32Sender.java │ │ │ │ ├── svode/ │ │ │ │ │ ├── SvodeConv32Config.java │ │ │ │ │ ├── SvodeConv32PtoDesc.java │ │ │ │ │ ├── SvodeConv32Receiver.java │ │ │ │ │ └── SvodeConv32Sender.java │ │ │ │ └── svole/ │ │ │ │ ├── SvoleConv32Config.java │ │ │ │ ├── SvoleConv32PtoDesc.java │ │ │ │ ├── SvoleConv32Receiver.java │ │ │ │ └── SvoleConv32Sender.java │ │ │ ├── cot/ │ │ │ │ ├── AbstractCotReceiver.java │ │ │ │ ├── AbstractCotSender.java │ │ │ │ ├── CotConfig.java │ │ │ │ ├── CotFactory.java │ │ │ │ ├── CotReceiver.java │ │ │ │ ├── CotReceiverOutput.java │ │ │ │ ├── CotSender.java │ │ │ │ ├── CotSenderOutput.java │ │ │ │ ├── RotReceiverOutput.java │ │ │ │ ├── RotSenderOutput.java │ │ │ │ ├── core/ │ │ │ │ │ ├── AbstractCoreCotReceiver.java │ │ │ │ │ ├── AbstractCoreCotSender.java │ │ │ │ │ ├── CoreCotConfig.java │ │ │ │ │ ├── CoreCotFactory.java │ │ │ │ │ ├── CoreCotReceiver.java │ │ │ │ │ ├── CoreCotSender.java │ │ │ │ │ ├── alsz13/ │ │ │ │ │ │ ├── Alsz13CoreCotConfig.java │ │ │ │ │ │ ├── Alsz13CoreCotPtoDesc.java │ │ │ │ │ │ ├── Alsz13CoreCotReceiver.java │ │ │ │ │ │ └── Alsz13CoreCotSender.java │ │ │ │ │ ├── iknp03/ │ │ │ │ │ │ ├── Iknp03CoreCotConfig.java │ │ │ │ │ │ ├── Iknp03CoreCotPtoDesc.java │ │ │ │ │ │ ├── Iknp03CoreCotReceiver.java │ │ │ │ │ │ └── Iknp03CoreCotSender.java │ │ │ │ │ └── kos15/ │ │ │ │ │ ├── Kos15CoreCotConfig.java │ │ │ │ │ ├── Kos15CoreCotPtoDesc.java │ │ │ │ │ ├── Kos15CoreCotReceiver.java │ │ │ │ │ └── Kos15CoreCotSender.java │ │ │ │ ├── impl/ │ │ │ │ │ ├── direct/ │ │ │ │ │ │ ├── DirectCotConfig.java │ │ │ │ │ │ ├── DirectCotPtoDesc.java │ │ │ │ │ │ ├── DirectCotReceiver.java │ │ │ │ │ │ └── DirectCotSender.java │ │ │ │ │ └── silent/ │ │ │ │ │ ├── SilentCotConfig.java │ │ │ │ │ ├── SilentCotPtoDesc.java │ │ │ │ │ ├── SilentCotReceiver.java │ │ │ │ │ └── SilentCotSender.java │ │ │ │ ├── nc/ │ │ │ │ │ ├── AbstractNcCotReceiver.java │ │ │ │ │ ├── AbstractNcCotSender.java │ │ │ │ │ ├── NcCotConfig.java │ │ │ │ │ ├── NcCotFactory.java │ │ │ │ │ ├── NcCotReceiver.java │ │ │ │ │ ├── NcCotSender.java │ │ │ │ │ ├── crr21/ │ │ │ │ │ │ ├── Crr21NcCotConfig.java │ │ │ │ │ │ ├── Crr21NcCotPtoDesc.java │ │ │ │ │ │ ├── Crr21NcCotReceiver.java │ │ │ │ │ │ └── Crr21NcCotSender.java │ │ │ │ │ ├── rrt23/ │ │ │ │ │ │ ├── Rrt23NcCotConfig.java │ │ │ │ │ │ ├── Rrt23NcCotPtoDesc.java │ │ │ │ │ │ ├── Rrt23NcCotReceiver.java │ │ │ │ │ │ └── Rrt23NcCotSender.java │ │ │ │ │ └── ywl20/ │ │ │ │ │ ├── Ywl20NcCotConfig.java │ │ │ │ │ ├── Ywl20NcCotLpnParamsFinder.java │ │ │ │ │ ├── Ywl20NcCotPtoDesc.java │ │ │ │ │ ├── Ywl20NcCotReceiver.java │ │ │ │ │ └── Ywl20NcCotSender.java │ │ │ │ ├── pre/ │ │ │ │ │ ├── AbstractPreCotReceiver.java │ │ │ │ │ ├── AbstractPreCotSender.java │ │ │ │ │ ├── PreCotConfig.java │ │ │ │ │ ├── PreCotFactory.java │ │ │ │ │ ├── PreCotReceiver.java │ │ │ │ │ ├── PreCotSender.java │ │ │ │ │ └── bea95/ │ │ │ │ │ ├── Bea95PreCotConfig.java │ │ │ │ │ ├── Bea95PreCotPtoDesc.java │ │ │ │ │ ├── Bea95PreCotReceiver.java │ │ │ │ │ └── Bea95PreCotSender.java │ │ │ │ └── sp/ │ │ │ │ ├── bsp/ │ │ │ │ │ ├── AbstractBspCotReceiver.java │ │ │ │ │ ├── AbstractBspCotSender.java │ │ │ │ │ ├── BspCotConfig.java │ │ │ │ │ ├── BspCotFactory.java │ │ │ │ │ ├── BspCotReceiver.java │ │ │ │ │ ├── BspCotReceiverOutput.java │ │ │ │ │ ├── BspCotSender.java │ │ │ │ │ ├── BspCotSenderOutput.java │ │ │ │ │ ├── gyw23/ │ │ │ │ │ │ ├── Gyw23BspCotConfig.java │ │ │ │ │ │ ├── Gyw23BspCotPtoDesc.java │ │ │ │ │ │ ├── Gyw23BspCotReceiver.java │ │ │ │ │ │ └── Gyw23BspCotSender.java │ │ │ │ │ └── ywl20/ │ │ │ │ │ ├── Ywl20MaBspCotConfig.java │ │ │ │ │ ├── Ywl20MaBspCotPtoDesc.java │ │ │ │ │ ├── Ywl20MaBspCotReceiver.java │ │ │ │ │ ├── Ywl20MaBspCotSender.java │ │ │ │ │ ├── Ywl20ShBspCotConfig.java │ │ │ │ │ ├── Ywl20ShBspCotPtoDesc.java │ │ │ │ │ ├── Ywl20ShBspCotReceiver.java │ │ │ │ │ └── Ywl20ShBspCotSender.java │ │ │ │ ├── msp/ │ │ │ │ │ ├── AbstractMspCotReceiver.java │ │ │ │ │ ├── AbstractMspCotSender.java │ │ │ │ │ ├── MspCotConfig.java │ │ │ │ │ ├── MspCotFactory.java │ │ │ │ │ ├── MspCotReceiver.java │ │ │ │ │ ├── MspCotReceiverOutput.java │ │ │ │ │ ├── MspCotSender.java │ │ │ │ │ ├── MspCotSenderOutput.java │ │ │ │ │ ├── bcg19/ │ │ │ │ │ │ ├── Bcg19RegMspCotConfig.java │ │ │ │ │ │ ├── Bcg19RegMspCotPtoDesc.java │ │ │ │ │ │ ├── Bcg19RegMspCotReceiver.java │ │ │ │ │ │ └── Bcg19RegMspCotSender.java │ │ │ │ │ └── ywl20/ │ │ │ │ │ ├── Ywl20UniMspCotConfig.java │ │ │ │ │ ├── Ywl20UniMspCotPtoDesc.java │ │ │ │ │ ├── Ywl20UniMspCotReceiver.java │ │ │ │ │ ├── Ywl20UniMspCotSender.java │ │ │ │ │ └── Ywl20UniMspCotUtils.java │ │ │ │ └── ssp/ │ │ │ │ ├── AbstractSspCotReceiver.java │ │ │ │ ├── AbstractSspCotSender.java │ │ │ │ ├── SspCotConfig.java │ │ │ │ ├── SspCotFactory.java │ │ │ │ ├── SspCotReceiver.java │ │ │ │ ├── SspCotReceiverOutput.java │ │ │ │ ├── SspCotSender.java │ │ │ │ ├── SspCotSenderOutput.java │ │ │ │ ├── gyw23/ │ │ │ │ │ ├── Gyw23SspCotConfig.java │ │ │ │ │ ├── Gyw23SspCotPtoDesc.java │ │ │ │ │ ├── Gyw23SspCotReceiver.java │ │ │ │ │ └── Gyw23SspCotSender.java │ │ │ │ └── ywl20/ │ │ │ │ ├── Ywl20MaSspCotConfig.java │ │ │ │ ├── Ywl20MaSspCotPtoDesc.java │ │ │ │ ├── Ywl20MaSspCotReceiver.java │ │ │ │ ├── Ywl20MaSspCotSender.java │ │ │ │ ├── Ywl20ShSspCotConfig.java │ │ │ │ ├── Ywl20ShSspCotPtoDesc.java │ │ │ │ ├── Ywl20ShSspCotReceiver.java │ │ │ │ └── Ywl20ShSspCotSender.java │ │ │ ├── lcot/ │ │ │ │ ├── AbstractLcotReceiver.java │ │ │ │ ├── AbstractLcotSender.java │ │ │ │ ├── LcotConfig.java │ │ │ │ ├── LcotFactory.java │ │ │ │ ├── LcotReceiver.java │ │ │ │ ├── LcotReceiverOutput.java │ │ │ │ ├── LcotSender.java │ │ │ │ ├── LcotSenderOutput.java │ │ │ │ ├── kk13/ │ │ │ │ │ ├── Kk13OptLcotConfig.java │ │ │ │ │ ├── Kk13OptLcotPtoDesc.java │ │ │ │ │ ├── Kk13OptLcotReceiver.java │ │ │ │ │ ├── Kk13OptLcotSender.java │ │ │ │ │ ├── Kk13OriLcotConfig.java │ │ │ │ │ ├── Kk13OriLcotPtoDesc.java │ │ │ │ │ ├── Kk13OriLcotReceiver.java │ │ │ │ │ └── Kk13OriLcotSender.java │ │ │ │ └── oos17/ │ │ │ │ ├── Oos17LcotConfig.java │ │ │ │ ├── Oos17LcotPtoDesc.java │ │ │ │ ├── Oos17LcotReceiver.java │ │ │ │ └── Oos17LcotSender.java │ │ │ └── lnot/ │ │ │ ├── AbstractLnotReceiver.java │ │ │ ├── AbstractLnotSender.java │ │ │ ├── LnotConfig.java │ │ │ ├── LnotFactory.java │ │ │ ├── LnotReceiver.java │ │ │ ├── LnotReceiverOutput.java │ │ │ ├── LnotSender.java │ │ │ ├── LnotSenderOutput.java │ │ │ ├── impl/ │ │ │ │ ├── cot/ │ │ │ │ │ ├── CotLnotConfig.java │ │ │ │ │ ├── CotLnotPtoDesc.java │ │ │ │ │ ├── CotLnotReceiver.java │ │ │ │ │ └── CotLnotSender.java │ │ │ │ └── direct/ │ │ │ │ ├── DirectLnotConfig.java │ │ │ │ ├── DirectLnotPtoDesc.java │ │ │ │ ├── DirectLnotReceiver.java │ │ │ │ └── DirectLnotSender.java │ │ │ ├── nc/ │ │ │ │ ├── AbstractNcLnotReceiver.java │ │ │ │ ├── AbstractNcLnotSender.java │ │ │ │ ├── NcLnotConfig.java │ │ │ │ ├── NcLnotFactory.java │ │ │ │ ├── NcLnotReceiver.java │ │ │ │ ├── NcLnotSender.java │ │ │ │ └── cot/ │ │ │ │ ├── CotNcLnotConfig.java │ │ │ │ ├── CotNcLnotPtoDesc.java │ │ │ │ ├── CotNcLnotReceiver.java │ │ │ │ └── CotNcLnotSender.java │ │ │ └── pre/ │ │ │ ├── AbstractPreLnotReceiver.java │ │ │ ├── AbstractPreLnotSender.java │ │ │ ├── PreLnotConfig.java │ │ │ ├── PreLnotFactory.java │ │ │ ├── PreLnotReceiver.java │ │ │ ├── PreLnotSender.java │ │ │ └── bea95/ │ │ │ ├── Bea95PreLnotConfig.java │ │ │ ├── Bea95PreLnotPtoDesc.java │ │ │ ├── Bea95PreLnotReceiver.java │ │ │ └── Bea95PreLnotSender.java │ │ ├── vode/ │ │ │ └── gf2k/ │ │ │ ├── Gf2kVodePartyOutput.java │ │ │ ├── Gf2kVodeReceiverOutput.java │ │ │ ├── Gf2kVodeSenderOutput.java │ │ │ ├── core/ │ │ │ │ ├── AbstractGf2kCoreVodeReceiver.java │ │ │ │ ├── AbstractGf2kCoreVodeSender.java │ │ │ │ ├── Gf2kCoreVodeConfig.java │ │ │ │ ├── Gf2kCoreVodeFactory.java │ │ │ │ ├── Gf2kCoreVodeReceiver.java │ │ │ │ ├── Gf2kCoreVodeSender.java │ │ │ │ └── aprr24/ │ │ │ │ ├── Aprr24Gf2kCoreVodeConfig.java │ │ │ │ ├── Aprr24Gf2kCoreVodePtoDesc.java │ │ │ │ ├── Aprr24Gf2kCoreVodeReceiver.java │ │ │ │ └── Aprr24Gf2kCoreVodeSender.java │ │ │ ├── nc/ │ │ │ │ ├── AbstractGf2kNcVodeReceiver.java │ │ │ │ ├── AbstractGf2kNcVodeSender.java │ │ │ │ ├── Gf2kNcVodeConfig.java │ │ │ │ ├── Gf2kNcVodeFactory.java │ │ │ │ ├── Gf2kNcVodeReceiver.java │ │ │ │ ├── Gf2kNcVodeSender.java │ │ │ │ └── aprr24/ │ │ │ │ ├── Aprr24Gf2kNcVodeConfig.java │ │ │ │ ├── Aprr24Gf2kNcVodeLpnParamsFinder.java │ │ │ │ ├── Aprr24Gf2kNcVodePtoDesc.java │ │ │ │ ├── Aprr24Gf2kNcVodeReceiver.java │ │ │ │ └── Aprr24Gf2kNcVodeSender.java │ │ │ └── sp/ │ │ │ ├── bsp/ │ │ │ │ ├── AbstractGf2kBspVodeReceiver.java │ │ │ │ ├── AbstractGf2kBspVodeSender.java │ │ │ │ ├── Gf2kBspVodeConfig.java │ │ │ │ ├── Gf2kBspVodeFactory.java │ │ │ │ ├── Gf2kBspVodeReceiver.java │ │ │ │ ├── Gf2kBspVodeReceiverOutput.java │ │ │ │ ├── Gf2kBspVodeSender.java │ │ │ │ ├── Gf2kBspVodeSenderOutput.java │ │ │ │ ├── aprr24/ │ │ │ │ │ ├── Aprr24Gf2kBspVodeConfig.java │ │ │ │ │ ├── Aprr24Gf2kBspVodePtoDesc.java │ │ │ │ │ ├── Aprr24Gf2kBspVodeReceiver.java │ │ │ │ │ └── Aprr24Gf2kBspVodeSender.java │ │ │ │ └── gyw23/ │ │ │ │ ├── Gyw23Gf2kBspVodeConfig.java │ │ │ │ ├── Gyw23Gf2kBspVodePtoDesc.java │ │ │ │ ├── Gyw23Gf2kBspVodeReceiver.java │ │ │ │ └── Gyw23Gf2kBspVodeSender.java │ │ │ ├── msp/ │ │ │ │ ├── AbstractGf2kMspVodeReceiver.java │ │ │ │ ├── AbstractGf2kMspVodeSender.java │ │ │ │ ├── Gf2kMspVodeConfig.java │ │ │ │ ├── Gf2kMspVodeFactory.java │ │ │ │ ├── Gf2kMspVodeReceiver.java │ │ │ │ ├── Gf2kMspVodeReceiverOutput.java │ │ │ │ ├── Gf2kMspVodeSender.java │ │ │ │ ├── Gf2kMspVodeSenderOutput.java │ │ │ │ └── bcg19/ │ │ │ │ ├── Bcg19RegGf2kMspVodeConfig.java │ │ │ │ ├── Bcg19RegGf2kMspVodePtoDesc.java │ │ │ │ ├── Bcg19RegGf2kMspVodeReceiver.java │ │ │ │ └── Bcg19RegGf2kMspVodeSender.java │ │ │ └── ssp/ │ │ │ ├── AbstractGf2kSspVodeReceiver.java │ │ │ ├── AbstractGf2kSspVodeSender.java │ │ │ ├── Gf2kSspVodeConfig.java │ │ │ ├── Gf2kSspVodeFactory.java │ │ │ ├── Gf2kSspVodeReceiver.java │ │ │ ├── Gf2kSspVodeReceiverOutput.java │ │ │ ├── Gf2kSspVodeSender.java │ │ │ ├── Gf2kSspVodeSenderOutput.java │ │ │ ├── aprr24/ │ │ │ │ ├── Aprr24Gf2kSspVodeConfig.java │ │ │ │ ├── Aprr24Gf2kSspVodePtoDesc.java │ │ │ │ ├── Aprr24Gf2kSspVodeReceiver.java │ │ │ │ └── Aprr24Gf2kSspVodeSender.java │ │ │ └── gyw23/ │ │ │ ├── Gyw23Gf2kSspVodeConfig.java │ │ │ ├── Gyw23Gf2kSspVodePtoDesc.java │ │ │ ├── Gyw23Gf2kSspVodeReceiver.java │ │ │ └── Gyw23Gf2kSspVodeSender.java │ │ └── vole/ │ │ ├── gf2e/ │ │ │ ├── Gf2eVoleReceiverOutput.java │ │ │ ├── Gf2eVoleSenderOutput.java │ │ │ └── core/ │ │ │ ├── AbstractGf2eCoreVoleReceiver.java │ │ │ ├── AbstractGf2eCoreVoleSender.java │ │ │ ├── Gf2eCoreVoleConfig.java │ │ │ ├── Gf2eCoreVoleFactory.java │ │ │ ├── Gf2eCoreVoleReceiver.java │ │ │ └── Gf2eCoreVoleSender.java │ │ ├── gf2k/ │ │ │ ├── Gf2kVolePartyOutput.java │ │ │ ├── Gf2kVoleReceiverOutput.java │ │ │ ├── Gf2kVoleSenderOutput.java │ │ │ ├── core/ │ │ │ │ ├── AbstractGf2kCoreVoleReceiver.java │ │ │ │ ├── AbstractGf2kCoreVoleSender.java │ │ │ │ ├── Gf2kCoreVoleConfig.java │ │ │ │ ├── Gf2kCoreVoleFactory.java │ │ │ │ ├── Gf2kCoreVoleReceiver.java │ │ │ │ ├── Gf2kCoreVoleSender.java │ │ │ │ ├── kos16/ │ │ │ │ │ ├── Kos16Gf2kCoreVoleConfig.java │ │ │ │ │ ├── Kos16Gf2kCoreVolePtoDesc.java │ │ │ │ │ ├── Kos16Gf2kCoreVoleReceiver.java │ │ │ │ │ └── Kos16Gf2kCoreVoleSender.java │ │ │ │ └── wykw21/ │ │ │ │ ├── Wykw21Gf2kCoreVoleConfig.java │ │ │ │ ├── Wykw21Gf2kCoreVolePtoDesc.java │ │ │ │ ├── Wykw21Gf2kCoreVoleReceiver.java │ │ │ │ └── Wykw21Gf2kCoreVoleSender.java │ │ │ ├── nc/ │ │ │ │ ├── AbstractGf2kNcVoleReceiver.java │ │ │ │ ├── AbstractGf2kNcVoleSender.java │ │ │ │ ├── Gf2kNcVoleConfig.java │ │ │ │ ├── Gf2kNcVoleFactory.java │ │ │ │ ├── Gf2kNcVoleReceiver.java │ │ │ │ ├── Gf2kNcVoleSender.java │ │ │ │ └── wykw21/ │ │ │ │ ├── Wykw21Gf2kNcVoleConfig.java │ │ │ │ ├── Wykw21Gf2kNcVoleLpnParamsFinder.java │ │ │ │ ├── Wykw21Gf2kNcVolePtoDesc.java │ │ │ │ ├── Wykw21Gf2kNcVoleReceiver.java │ │ │ │ └── Wykw21Gf2kNcVoleSender.java │ │ │ └── sp/ │ │ │ ├── bsp/ │ │ │ │ ├── AbstractGf2kBspVoleReceiver.java │ │ │ │ ├── AbstractGf2kBspVoleSender.java │ │ │ │ ├── Gf2kBspVoleConfig.java │ │ │ │ ├── Gf2kBspVoleFactory.java │ │ │ │ ├── Gf2kBspVoleReceiver.java │ │ │ │ ├── Gf2kBspVoleReceiverOutput.java │ │ │ │ ├── Gf2kBspVoleSender.java │ │ │ │ ├── Gf2kBspVoleSenderOutput.java │ │ │ │ ├── gyw23/ │ │ │ │ │ ├── Gyw23Gf2kBspVoleConfig.java │ │ │ │ │ ├── Gyw23Gf2kBspVolePtoDesc.java │ │ │ │ │ ├── Gyw23Gf2kBspVoleReceiver.java │ │ │ │ │ └── Gyw23Gf2kBspVoleSender.java │ │ │ │ └── wykw21/ │ │ │ │ ├── Wykw21MaGf2kBspVoleConfig.java │ │ │ │ ├── Wykw21MaGf2kBspVolePtoDesc.java │ │ │ │ ├── Wykw21MaGf2kBspVoleReceiver.java │ │ │ │ ├── Wykw21MaGf2kBspVoleSender.java │ │ │ │ ├── Wykw21ShGf2kBspVoleConfig.java │ │ │ │ ├── Wykw21ShGf2kBspVolePtoDesc.java │ │ │ │ ├── Wykw21ShGf2kBspVoleReceiver.java │ │ │ │ └── Wykw21ShGf2kBspVoleSender.java │ │ │ ├── msp/ │ │ │ │ ├── AbstractGf2kMspVoleReceiver.java │ │ │ │ ├── AbstractGf2kMspVoleSender.java │ │ │ │ ├── Gf2kMspVoleConfig.java │ │ │ │ ├── Gf2kMspVoleFactory.java │ │ │ │ ├── Gf2kMspVoleReceiver.java │ │ │ │ ├── Gf2kMspVoleReceiverOutput.java │ │ │ │ ├── Gf2kMspVoleSender.java │ │ │ │ ├── Gf2kMspVoleSenderOutput.java │ │ │ │ └── bcg19/ │ │ │ │ ├── Bcg19RegGf2kMspVoleConfig.java │ │ │ │ ├── Bcg19RegGf2kMspVolePtoDesc.java │ │ │ │ ├── Bcg19RegGf2kMspVoleReceiver.java │ │ │ │ └── Bcg19RegGf2kMspVoleSender.java │ │ │ └── ssp/ │ │ │ ├── AbstractGf2kSspVoleReceiver.java │ │ │ ├── AbstractGf2kSspVoleSender.java │ │ │ ├── Gf2kSspVoleConfig.java │ │ │ ├── Gf2kSspVoleFactory.java │ │ │ ├── Gf2kSspVoleReceiver.java │ │ │ ├── Gf2kSspVoleReceiverOutput.java │ │ │ ├── Gf2kSspVoleSender.java │ │ │ ├── Gf2kSspVoleSenderOutput.java │ │ │ ├── gyw23/ │ │ │ │ ├── Gyw23Gf2kSspVoleConfig.java │ │ │ │ ├── Gyw23Gf2kSspVolePtoDesc.java │ │ │ │ ├── Gyw23Gf2kSspVoleReceiver.java │ │ │ │ └── Gyw23Gf2kSspVoleSender.java │ │ │ └── wykw21/ │ │ │ ├── Wykw21MaGf2kSspVoleConfig.java │ │ │ ├── Wykw21MaGf2kSspVolePtoDesc.java │ │ │ ├── Wykw21MaGf2kSspVoleReceiver.java │ │ │ ├── Wykw21MaGf2kSspVoleSender.java │ │ │ ├── Wykw21ShGf2kSspVoleConfig.java │ │ │ ├── Wykw21ShGf2kSspVolePtoDesc.java │ │ │ ├── Wykw21ShGf2kSspVoleReceiver.java │ │ │ └── Wykw21ShGf2kSspVoleSender.java │ │ ├── zp/ │ │ │ ├── ZpVoleReceiverOutput.java │ │ │ ├── ZpVoleSenderOutput.java │ │ │ └── core/ │ │ │ ├── AbstractZpCoreVoleReceiver.java │ │ │ ├── AbstractZpCoreVoleSender.java │ │ │ ├── ZpCoreVoleConfig.java │ │ │ ├── ZpCoreVoleFactory.java │ │ │ ├── ZpCoreVoleReceiver.java │ │ │ ├── ZpCoreVoleSender.java │ │ │ └── kos16/ │ │ │ ├── Kos16ZpCoreVoleConfig.java │ │ │ ├── Kos16ZpCoreVolePtoDesc.java │ │ │ ├── Kos16ZpCoreVoleReceiver.java │ │ │ └── Kos16ZpCoreVoleSender.java │ │ └── zp64/ │ │ ├── Zp64VoleReceiverOutput.java │ │ ├── Zp64VoleSenderOutput.java │ │ └── core/ │ │ ├── AbstractZp64CoreVoleReceiver.java │ │ ├── AbstractZp64CoreVoleSender.java │ │ ├── Zp64CoreVoleConfig.java │ │ ├── Zp64CoreVoleFactory.java │ │ ├── Zp64CoreVoleReceiver.java │ │ ├── Zp64CoreVoleSender.java │ │ └── kos16/ │ │ ├── Kos16Zp64CoreVoleConfig.java │ │ ├── Kos16Zp64CoreVolePtoDesc.java │ │ ├── Kos16Zp64CoreVoleReceiver.java │ │ └── Kos16Zp64CoreVoleSender.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── pcg/ │ │ ├── ct/ │ │ │ ├── CoinTossPartyThread.java │ │ │ └── CoinTossTest.java │ │ ├── dpprf/ │ │ │ ├── cdpprf/ │ │ │ │ ├── bp/ │ │ │ │ │ ├── BpCdpprfReceiverThread.java │ │ │ │ │ ├── BpCdpprfSenderThread.java │ │ │ │ │ └── BpCdpprfTest.java │ │ │ │ └── sp/ │ │ │ │ ├── SpCdpprfReceiverThread.java │ │ │ │ ├── SpCdpprfSenderThread.java │ │ │ │ └── SpCdpprfTest.java │ │ │ └── rdpprf/ │ │ │ ├── bp/ │ │ │ │ ├── BpRdpprfReceiverThread.java │ │ │ │ ├── BpRdpprfSenderThread.java │ │ │ │ └── BpRdpprfTest.java │ │ │ └── sp/ │ │ │ ├── SpRdpprfReceiverThread.java │ │ │ ├── SpRdpprfSenderThread.java │ │ │ └── SpRdpprfTest.java │ │ ├── ot/ │ │ │ ├── OtTestUtils.java │ │ │ ├── base/ │ │ │ │ ├── BaseOtReceiverThread.java │ │ │ │ ├── BaseOtSenderThread.java │ │ │ │ └── BaseOtTest.java │ │ │ ├── bnot/ │ │ │ │ ├── BaseNotReceiverThread.java │ │ │ │ ├── BaseNotSenderThread.java │ │ │ │ └── BaseNotTest.java │ │ │ ├── conv32/ │ │ │ │ ├── Conv32PartyThread.java │ │ │ │ └── Conv32Test.java │ │ │ ├── cot/ │ │ │ │ ├── CotOutputTest.java │ │ │ │ ├── CotReceiverThread.java │ │ │ │ ├── CotSenderThread.java │ │ │ │ ├── CotTest.java │ │ │ │ ├── core/ │ │ │ │ │ ├── CoreCotReceiverThread.java │ │ │ │ │ ├── CoreCotSenderThread.java │ │ │ │ │ └── CoreCotTest.java │ │ │ │ ├── nc/ │ │ │ │ │ ├── NcCotReceiverThread.java │ │ │ │ │ ├── NcCotSenderThread.java │ │ │ │ │ ├── NcCotTest.java │ │ │ │ │ └── ywl20/ │ │ │ │ │ ├── Ywl20NcCotLpnParamsFinderTest.java │ │ │ │ │ └── Ywl20NcCotPtoDescTest.java │ │ │ │ ├── pre/ │ │ │ │ │ ├── PreCotReceiverThread.java │ │ │ │ │ ├── PreCotSenderThread.java │ │ │ │ │ └── PreCotTest.java │ │ │ │ └── sp/ │ │ │ │ ├── bsp/ │ │ │ │ │ ├── BspCotReceiverThread.java │ │ │ │ │ ├── BspCotSenderThread.java │ │ │ │ │ └── BspCotTest.java │ │ │ │ ├── msp/ │ │ │ │ │ ├── MspCotReceiverThread.java │ │ │ │ │ ├── MspCotSenderThread.java │ │ │ │ │ └── MspCotTest.java │ │ │ │ └── ssp/ │ │ │ │ ├── SspCotReceiverThread.java │ │ │ │ ├── SspCotSenderThread.java │ │ │ │ └── SspCotTest.java │ │ │ ├── lcot/ │ │ │ │ ├── LcotOutputTest.java │ │ │ │ ├── LcotReceiverThread.java │ │ │ │ ├── LcotSenderThread.java │ │ │ │ └── LcotTest.java │ │ │ └── lnot/ │ │ │ ├── LnotOutputTest.java │ │ │ ├── LnotReceiverThread.java │ │ │ ├── LnotSenderThread.java │ │ │ ├── LnotTest.java │ │ │ ├── nc/ │ │ │ │ ├── NcLnotReceiverThread.java │ │ │ │ ├── NcLnotSenderThread.java │ │ │ │ └── NcLnotTest.java │ │ │ └── pre/ │ │ │ ├── PreLnotReceiverThread.java │ │ │ ├── PreLnotSenderThread.java │ │ │ └── PreLnotTest.java │ │ ├── vode/ │ │ │ ├── VodeTestUtils.java │ │ │ └── gf2k/ │ │ │ ├── Gf2kVodePartyOutputTest.java │ │ │ ├── core/ │ │ │ │ ├── Gf2kCoreVodeReceiverThread.java │ │ │ │ ├── Gf2kCoreVodeSenderThread.java │ │ │ │ └── Gf2kCoreVodeTest.java │ │ │ ├── nc/ │ │ │ │ ├── Gf2kNcVodeReceiverThread.java │ │ │ │ ├── Gf2kNcVodeSenderThread.java │ │ │ │ ├── Gf2kNcVodeTest.java │ │ │ │ └── aprr24/ │ │ │ │ ├── Aprr24Gf2kNcVodeLpnParamsFinderTest.java │ │ │ │ └── Aprr24NcCotPtoDescTest.java │ │ │ └── sp/ │ │ │ ├── bsp/ │ │ │ │ ├── Gf2kBspVodeReceiverThread.java │ │ │ │ ├── Gf2kBspVodeSenderThread.java │ │ │ │ └── Gf2kBspVodeTest.java │ │ │ ├── msp/ │ │ │ │ ├── Gf2kMspVodeReceiverThread.java │ │ │ │ ├── Gf2kMspVodeSenderThread.java │ │ │ │ └── Gf2kMspVodeTest.java │ │ │ └── ssp/ │ │ │ ├── Gf2kSspVodeOutputTest.java │ │ │ ├── Gf2kSspVodeReceiverThread.java │ │ │ ├── Gf2kSspVodeSenderThread.java │ │ │ └── Gf2kSspVodeTest.java │ │ └── vole/ │ │ ├── VoleTestUtils.java │ │ ├── gf2e/ │ │ │ └── Gf2eVoleOutputTest.java │ │ ├── gf2k/ │ │ │ ├── Gf2kVoleOutputTest.java │ │ │ ├── core/ │ │ │ │ ├── Gf2kCoreVoleReceiverThread.java │ │ │ │ ├── Gf2kCoreVoleSenderThread.java │ │ │ │ └── Gf2kCoreVoleTest.java │ │ │ ├── nc/ │ │ │ │ ├── Gf2kNcVoleReceiverThread.java │ │ │ │ ├── Gf2kNcVoleSenderThread.java │ │ │ │ ├── Gf2kNcVoleTest.java │ │ │ │ └── wykw21/ │ │ │ │ ├── Wykw21Gf2kNcVoleLpnParamsFinderTest.java │ │ │ │ └── Wykw21Gf2kNcVolePtoDescTest.java │ │ │ └── sp/ │ │ │ ├── bsp/ │ │ │ │ ├── Gf2kBspVoleReceiverThread.java │ │ │ │ ├── Gf2kBspVoleSenderThread.java │ │ │ │ └── Gf2kBspVoleTest.java │ │ │ ├── msp/ │ │ │ │ ├── Gf2kMspVoleReceiverThread.java │ │ │ │ ├── Gf2kMspVoleSenderThread.java │ │ │ │ └── Gf2kMspVoleTest.java │ │ │ └── ssp/ │ │ │ ├── Gf2kSspVoleOutputTest.java │ │ │ ├── Gf2kSspVoleReceiverThread.java │ │ │ ├── Gf2kSspVoleSenderThread.java │ │ │ └── Gf2kSspVoleTest.java │ │ ├── zp/ │ │ │ ├── ZpVoleOutputTest.java │ │ │ └── core/ │ │ │ ├── ZpCoreVoleReceiverThread.java │ │ │ ├── ZpCoreVoleSenderThread.java │ │ │ └── ZpCoreVoleTest.java │ │ └── zp64/ │ │ ├── Zp64VoleOutputTest.java │ │ └── core/ │ │ ├── Zp64CoreVoleReceiverThread.java │ │ ├── Zp64CoreVoleSenderThread.java │ │ └── Zp64CoreVoleTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-s2pc-pir/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── pir/ │ │ ├── IdxPirClient.java │ │ ├── IdxPirServer.java │ │ ├── KeyPirClient.java │ │ ├── KeyPirServer.java │ │ ├── PirUtils.java │ │ ├── cppir/ │ │ │ ├── GaussianLweParam.java │ │ │ ├── GaussianLwePirConfig.java │ │ │ ├── index/ │ │ │ │ ├── AbstractCpIdxPirClient.java │ │ │ │ ├── AbstractCpIdxPirServer.java │ │ │ │ ├── CpIdxPirClient.java │ │ │ │ ├── CpIdxPirConfig.java │ │ │ │ ├── CpIdxPirFactory.java │ │ │ │ ├── CpIdxPirServer.java │ │ │ │ ├── HintCpIdxPirClient.java │ │ │ │ ├── HintCpIdxPirServer.java │ │ │ │ ├── StreamCpIdxPirClient.java │ │ │ │ ├── StreamCpIdxPirServer.java │ │ │ │ ├── frodo/ │ │ │ │ │ ├── FrodoCpIdxPirClient.java │ │ │ │ │ ├── FrodoCpIdxPirConfig.java │ │ │ │ │ ├── FrodoCpIdxPirPtoDesc.java │ │ │ │ │ └── FrodoCpIdxPirServer.java │ │ │ │ ├── mir/ │ │ │ │ │ ├── MirCpIdxPirClient.java │ │ │ │ │ ├── MirCpIdxPirConfig.java │ │ │ │ │ ├── MirCpIdxPirPtoDesc.java │ │ │ │ │ ├── MirCpIdxPirServer.java │ │ │ │ │ ├── MirCpIdxPirUtils.java │ │ │ │ │ └── hint/ │ │ │ │ │ ├── AbstractMirHint.java │ │ │ │ │ ├── AbstractRandomCutoffMirHint.java │ │ │ │ │ ├── IntQuickSelect.java │ │ │ │ │ ├── MirBackupHint.java │ │ │ │ │ ├── MirDirectPrimaryHint.java │ │ │ │ │ ├── MirHint.java │ │ │ │ │ ├── MirPrimaryHint.java │ │ │ │ │ └── MirProgrammedPrimaryHint.java │ │ │ │ ├── pai/ │ │ │ │ │ ├── PaiCpIdxPirClient.java │ │ │ │ │ ├── PaiCpIdxPirConfig.java │ │ │ │ │ ├── PaiCpIdxPirPtoDesc.java │ │ │ │ │ ├── PaiCpIdxPirServer.java │ │ │ │ │ └── PaiCpIdxPirUtils.java │ │ │ │ ├── piano/ │ │ │ │ │ ├── PianoCpIdxPirClient.java │ │ │ │ │ ├── PianoCpIdxPirConfig.java │ │ │ │ │ ├── PianoCpIdxPirPtoDesc.java │ │ │ │ │ ├── PianoCpIdxPirServer.java │ │ │ │ │ ├── PianoCpIdxPirUtils.java │ │ │ │ │ └── hint/ │ │ │ │ │ ├── AbstractPianoHint.java │ │ │ │ │ ├── PianoBackupHint.java │ │ │ │ │ ├── PianoDirectPrimaryHint.java │ │ │ │ │ ├── PianoHint.java │ │ │ │ │ ├── PianoPrimaryHint.java │ │ │ │ │ └── PianoProgrammedPrimaryHint.java │ │ │ │ ├── plinko/ │ │ │ │ │ ├── MirPlinkoCpIdxPirClient.java │ │ │ │ │ ├── MirPlinkoCpIdxPirConfig.java │ │ │ │ │ ├── MirPlinkoCpIdxPirPtoDesc.java │ │ │ │ │ ├── MirPlinkoCpIdxPirServer.java │ │ │ │ │ ├── MirPlinkoCpIdxPirUtils.java │ │ │ │ │ ├── PianoPlinkoCpIdxPirClient.java │ │ │ │ │ ├── PianoPlinkoCpIdxPirConfig.java │ │ │ │ │ ├── PianoPlinkoCpIdxPirPtoDesc.java │ │ │ │ │ ├── PianoPlinkoCpIdxPirServer.java │ │ │ │ │ └── PianoPlinkoCpIdxPirUtils.java │ │ │ │ └── simple/ │ │ │ │ ├── DoubleCpIdxPirClient.java │ │ │ │ ├── DoubleCpIdxPirConfig.java │ │ │ │ ├── DoubleCpIdxPirPtoDesc.java │ │ │ │ ├── DoubleCpIdxPirServer.java │ │ │ │ ├── SimpleCpIdxPirClient.java │ │ │ │ ├── SimpleCpIdxPirConfig.java │ │ │ │ ├── SimpleCpIdxPirPtoDesc.java │ │ │ │ └── SimpleCpIdxPirServer.java │ │ │ └── ks/ │ │ │ ├── AbstractCpKsPirClient.java │ │ │ ├── AbstractCpKsPirServer.java │ │ │ ├── CpKsPirClient.java │ │ │ ├── CpKsPirConfig.java │ │ │ ├── CpKsPirFactory.java │ │ │ ├── CpKsPirServer.java │ │ │ ├── HintCpKsPirClient.java │ │ │ ├── HintCpKsPirServer.java │ │ │ ├── alpr21/ │ │ │ │ ├── Alpr21CpKsPirClient.java │ │ │ │ ├── Alpr21CpKsPirConfig.java │ │ │ │ ├── Alpr21CpKsPirDesc.java │ │ │ │ └── Alpr21CpKsPirServer.java │ │ │ ├── chalamet/ │ │ │ │ ├── ChalametCpKsPirClient.java │ │ │ │ ├── ChalametCpKsPirConfig.java │ │ │ │ ├── ChalametCpKsPirDesc.java │ │ │ │ └── ChalametCpKsPirServer.java │ │ │ ├── pai/ │ │ │ │ ├── PaiCpCksPirClient.java │ │ │ │ ├── PaiCpCksPirConfig.java │ │ │ │ ├── PaiCpCksPirDesc.java │ │ │ │ ├── PaiCpCksPirServer.java │ │ │ │ └── PaiCpCksPirUtils.java │ │ │ └── simple/ │ │ │ ├── SimpleBinCpKsPirClient.java │ │ │ ├── SimpleBinCpKsPirConfig.java │ │ │ ├── SimpleBinCpKsPirDesc.java │ │ │ ├── SimpleBinCpKsPirServer.java │ │ │ ├── SimpleNaiveCpKsPirClient.java │ │ │ ├── SimpleNaiveCpKsPirConfig.java │ │ │ ├── SimpleNaiveCpKsPirDesc.java │ │ │ ├── SimpleNaiveCpKsPirServer.java │ │ │ ├── SimplePgmCpKsPirClient.java │ │ │ ├── SimplePgmCpKsPirConfig.java │ │ │ ├── SimplePgmCpKsPirDesc.java │ │ │ └── SimplePgmCpKsPirServer.java │ │ ├── main/ │ │ │ ├── PirMain.java │ │ │ ├── cppir/ │ │ │ │ ├── index/ │ │ │ │ │ ├── CpIdxPirConfigUtils.java │ │ │ │ │ └── CpIdxPirMain.java │ │ │ │ └── keyword/ │ │ │ │ ├── SingleCpKsPirConfigUtils.java │ │ │ │ └── SingleCpKsPirMain.java │ │ │ ├── kspir/ │ │ │ │ ├── SingleKsPirConfigUtils.java │ │ │ │ └── SingleKsPirMain.java │ │ │ └── kwpir/ │ │ │ ├── StdKwPirConfigUtils.java │ │ │ └── StdKwPirMain.java │ │ └── stdpir/ │ │ ├── index/ │ │ │ ├── AbstractStdIdxPirClient.java │ │ │ ├── AbstractStdIdxPirServer.java │ │ │ ├── PbcableStdIdxPirClient.java │ │ │ ├── PbcableStdIdxPirConfig.java │ │ │ ├── PbcableStdIdxPirServer.java │ │ │ ├── StdIdxPirClient.java │ │ │ ├── StdIdxPirConfig.java │ │ │ ├── StdIdxPirFactory.java │ │ │ ├── StdIdxPirParams.java │ │ │ ├── StdIdxPirServer.java │ │ │ ├── cw/ │ │ │ │ ├── CwStdIdxPirClient.java │ │ │ │ ├── CwStdIdxPirConfig.java │ │ │ │ ├── CwStdIdxPirNativeUtils.java │ │ │ │ ├── CwStdIdxPirParams.java │ │ │ │ ├── CwStdIdxPirPtoDesc.java │ │ │ │ ├── CwStdIdxPirServer.java │ │ │ │ └── CwStdIdxPirUtils.java │ │ │ ├── fast/ │ │ │ │ ├── FastStdIdxPirClient.java │ │ │ │ ├── FastStdIdxPirConfig.java │ │ │ │ ├── FastStdIdxPirNativeUtils.java │ │ │ │ ├── FastStdIdxPirParams.java │ │ │ │ ├── FastStdIdxPirPtoDesc.java │ │ │ │ └── FastStdIdxPirServer.java │ │ │ ├── mul/ │ │ │ │ ├── MulStdIdxPirClient.java │ │ │ │ ├── MulStdIdxPirConfig.java │ │ │ │ ├── MulStdIdxPirNativeUtils.java │ │ │ │ ├── MulStdIdxPirParams.java │ │ │ │ ├── MulStdIdxPirPtoDesc.java │ │ │ │ └── MulStdIdxPirServer.java │ │ │ ├── onion/ │ │ │ │ ├── OnionStdIdxPirClient.java │ │ │ │ ├── OnionStdIdxPirConfig.java │ │ │ │ ├── OnionStdIdxPirNativeUtils.java │ │ │ │ ├── OnionStdIdxPirParams.java │ │ │ │ ├── OnionStdIdxPirPtoDesc.java │ │ │ │ └── OnionStdIdxPirServer.java │ │ │ ├── pbc/ │ │ │ │ ├── PbcStdIdxPirClient.java │ │ │ │ ├── PbcStdIdxPirConfig.java │ │ │ │ ├── PbcStdIdxPirPtoDesc.java │ │ │ │ └── PbcStdIdxPirServer.java │ │ │ ├── seal/ │ │ │ │ ├── SealStdIdxPirClient.java │ │ │ │ ├── SealStdIdxPirConfig.java │ │ │ │ ├── SealStdIdxPirNativeUtils.java │ │ │ │ ├── SealStdIdxPirParams.java │ │ │ │ ├── SealStdIdxPirPtoDesc.java │ │ │ │ └── SealStdIdxPirServer.java │ │ │ ├── vectorized/ │ │ │ │ ├── VectorizedStdIdxPirClient.java │ │ │ │ ├── VectorizedStdIdxPirConfig.java │ │ │ │ ├── VectorizedStdIdxPirNativeUtils.java │ │ │ │ ├── VectorizedStdIdxPirParams.java │ │ │ │ ├── VectorizedStdIdxPirPtoDesc.java │ │ │ │ └── VectorizedStdIdxPirServer.java │ │ │ └── xpir/ │ │ │ ├── XpirStdIdxPirClient.java │ │ │ ├── XpirStdIdxPirConfig.java │ │ │ ├── XpirStdIdxPirNativeUtils.java │ │ │ ├── XpirStdIdxPirParams.java │ │ │ ├── XpirStdIdxPirPtoDesc.java │ │ │ └── XpirStdIdxPirServer.java │ │ ├── ks/ │ │ │ ├── AbstractStdKsPirClient.java │ │ │ ├── AbstractStdKsPirServer.java │ │ │ ├── StdKsPirClient.java │ │ │ ├── StdKsPirConfig.java │ │ │ ├── StdKsPirFactory.java │ │ │ ├── StdKsPirParams.java │ │ │ ├── StdKsPirServer.java │ │ │ └── labelpsi/ │ │ │ ├── LabelpsiStdKsPirClient.java │ │ │ ├── LabelpsiStdKsPirConfig.java │ │ │ ├── LabelpsiStdKsPirNativeUtils.java │ │ │ ├── LabelpsiStdKsPirParams.java │ │ │ ├── LabelpsiStdKsPirParamsChecker.java │ │ │ ├── LabelpsiStdKsPirPtoDesc.java │ │ │ └── LabelpsiStdKsPirServer.java │ │ └── kw/ │ │ ├── AbstractStdKwPirClient.java │ │ ├── AbstractStdKwPirServer.java │ │ ├── StdKwPirClient.java │ │ ├── StdKwPirConfig.java │ │ ├── StdKwPirFactory.java │ │ ├── StdKwPirParams.java │ │ ├── StdKwPirServer.java │ │ ├── alpr21/ │ │ │ ├── Alpr21StdKwPirClient.java │ │ │ ├── Alpr21StdKwPirConfig.java │ │ │ ├── Alpr21StdKwPirParams.java │ │ │ ├── Alpr21StdKwPirPtoDesc.java │ │ │ └── Alpr21StdKwPirServer.java │ │ └── pantheon/ │ │ ├── PantheonStdKwPirClient.java │ │ ├── PantheonStdKwPirConfig.java │ │ ├── PantheonStdKwPirNativeUtils.java │ │ ├── PantheonStdKwPirParams.java │ │ ├── PantheonStdKwPirPtoDesc.java │ │ └── PantheonStdKwPirServer.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── pir/ │ │ ├── cppir/ │ │ │ ├── index/ │ │ │ │ ├── CpIdxPirClientThread.java │ │ │ │ ├── CpIdxPirServerThread.java │ │ │ │ ├── CpIdxPirTest.java │ │ │ │ ├── StreamCpIdxPirClientThread.java │ │ │ │ ├── StreamCpIdxPirServerThread.java │ │ │ │ ├── StreamCpIdxPirTest.java │ │ │ │ ├── mir/ │ │ │ │ │ └── MirHintTest.java │ │ │ │ └── piano/ │ │ │ │ └── PianoHintTest.java │ │ │ └── ks/ │ │ │ ├── CpKsPirClientThread.java │ │ │ ├── CpKsPirServerThread.java │ │ │ ├── CpKsPirTest.java │ │ │ └── simple/ │ │ │ └── SimpleCpKsPirParamsTest.java │ │ ├── main/ │ │ │ ├── CpIdxPirMainTest.java │ │ │ ├── MainSingleCpKsPirTest.java │ │ │ └── MainSingleKwPirTest.java │ │ └── stdpir/ │ │ ├── index/ │ │ │ ├── StdIdxPirClientThread.java │ │ │ ├── StdIdxPirServerThread.java │ │ │ ├── StdIdxPirTest.java │ │ │ └── params/ │ │ │ ├── CwPirParamsTest.java │ │ │ ├── FastPirParamsTest.java │ │ │ ├── MulPirParamsTest.java │ │ │ ├── OnionPirParamsTest.java │ │ │ ├── PbcPirParamsTest.java │ │ │ ├── SealPirParamsTest.java │ │ │ ├── VectorizedPirParamsTest.java │ │ │ └── XpirParamsTest.java │ │ ├── ks/ │ │ │ ├── StdKsPirClientThread.java │ │ │ ├── StdKsPirServerThread.java │ │ │ ├── StdKsPirTest.java │ │ │ └── params/ │ │ │ ├── LabelpsiKsPirParamsCheckerTest.java │ │ │ └── LabelpsiKsPirTest.java │ │ └── kw/ │ │ ├── StdKwPirClientThread.java │ │ ├── StdKwPirServerThread.java │ │ └── StdKwPirTest.java │ └── resources/ │ ├── conf_cp_idx_pir_example.conf │ ├── conf_single_cp_ks_pir_example.conf │ ├── conf_single_kw_pir_example.conf │ └── log4j.properties ├── mpc4j-s2pc-pjc/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── pjc/ │ │ ├── main/ │ │ │ ├── PjcMain.java │ │ │ ├── pid/ │ │ │ │ ├── PidConfigUtils.java │ │ │ │ └── PidMain.java │ │ │ └── pmid/ │ │ │ ├── PmidConfigUtils.java │ │ │ └── PmidMain.java │ │ ├── pid/ │ │ │ ├── AbstractPidParty.java │ │ │ ├── PidConfig.java │ │ │ ├── PidFactory.java │ │ │ ├── PidParty.java │ │ │ ├── PidPartyOutput.java │ │ │ ├── PidUtils.java │ │ │ ├── bkms20/ │ │ │ │ ├── Bkms20ByteEccPidClient.java │ │ │ │ ├── Bkms20ByteEccPidConfig.java │ │ │ │ ├── Bkms20ByteEccPidPtoDesc.java │ │ │ │ ├── Bkms20ByteEccPidServer.java │ │ │ │ ├── Bkms20EccPidClient.java │ │ │ │ ├── Bkms20EccPidConfig.java │ │ │ │ ├── Bkms20EccPidPtoDesc.java │ │ │ │ └── Bkms20EccPidServer.java │ │ │ ├── czz24/ │ │ │ │ ├── Czz24PidClient.java │ │ │ │ ├── Czz24PidConfig.java │ │ │ │ ├── Czz24PidPtoDesc.java │ │ │ │ └── Czz24PidServer.java │ │ │ └── gmr21/ │ │ │ ├── Gmr21MpPidClient.java │ │ │ ├── Gmr21MpPidConfig.java │ │ │ ├── Gmr21MpPidPtoDesc.java │ │ │ ├── Gmr21MpPidServer.java │ │ │ ├── Gmr21SloppyPidClient.java │ │ │ ├── Gmr21SloppyPidConfig.java │ │ │ ├── Gmr21SloppyPidPtoDesc.java │ │ │ └── Gmr21SloppyPidServer.java │ │ └── pmid/ │ │ ├── AbstractPmidClient.java │ │ ├── AbstractPmidServer.java │ │ ├── PmidClient.java │ │ ├── PmidConfig.java │ │ ├── PmidFactory.java │ │ ├── PmidPartyOutput.java │ │ ├── PmidServer.java │ │ ├── PmidUtils.java │ │ └── zcl22/ │ │ ├── Zcl22MpPmidClient.java │ │ ├── Zcl22MpPmidConfig.java │ │ ├── Zcl22MpPmidPtoDesc.java │ │ ├── Zcl22MpPmidServer.java │ │ ├── Zcl22PmidUtils.java │ │ ├── Zcl22SloppyPmidClient.java │ │ ├── Zcl22SloppyPmidConfig.java │ │ ├── Zcl22SloppyPmidPtoDesc.java │ │ └── Zcl22SloppyPmidServer.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── pjc/ │ │ ├── main/ │ │ │ ├── MainPidTest.java │ │ │ └── MainPmidTest.java │ │ ├── pid/ │ │ │ ├── PidPartyThread.java │ │ │ └── PidTest.java │ │ └── pmid/ │ │ ├── BothSetPmidClientThread.java │ │ ├── BothSetPmidServerThread.java │ │ ├── BothSetPmidTest.java │ │ ├── ClientSetPmidClientThread.java │ │ ├── ClientSetPmidServerThread.java │ │ ├── ClientSetPmidTest.java │ │ ├── PmidClientThread.java │ │ ├── PmidServerThread.java │ │ ├── PmidTest.java │ │ ├── ServerSetPmidClientThread.java │ │ ├── ServerSetPmidServerThread.java │ │ └── ServerSetPmidTest.java │ └── resources/ │ ├── conf_pid_example.conf │ ├── conf_pmid_example.conf │ └── log4j.properties ├── mpc4j-s2pc-pso/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── pso/ │ │ ├── PsoUtils.java │ │ ├── cpsi/ │ │ │ ├── ccpsi/ │ │ │ │ ├── AbstractBopprfCcpsiClient.java │ │ │ │ ├── AbstractBopprfCcpsiServer.java │ │ │ │ ├── AbstractCcpsiClient.java │ │ │ │ ├── AbstractCcpsiServer.java │ │ │ │ ├── BopprfCcpsiConfig.java │ │ │ │ ├── BopprfCcpsiPtoDesc.java │ │ │ │ ├── CcpsiClient.java │ │ │ │ ├── CcpsiClientOutput.java │ │ │ │ ├── CcpsiConfig.java │ │ │ │ ├── CcpsiFactory.java │ │ │ │ ├── CcpsiServer.java │ │ │ │ ├── cgs22/ │ │ │ │ │ ├── Cgs22CcpsiClient.java │ │ │ │ │ ├── Cgs22CcpsiConfig.java │ │ │ │ │ ├── Cgs22CcpsiPtoDesc.java │ │ │ │ │ └── Cgs22CcpsiServer.java │ │ │ │ ├── psty19/ │ │ │ │ │ ├── Psty19CcpsiClient.java │ │ │ │ │ ├── Psty19CcpsiConfig.java │ │ │ │ │ ├── Psty19CcpsiPtoDesc.java │ │ │ │ │ └── Psty19CcpsiServer.java │ │ │ │ └── rs21/ │ │ │ │ ├── Rs21CcpsiClient.java │ │ │ │ ├── Rs21CcpsiConfig.java │ │ │ │ ├── Rs21CcpsiPtoDesc.java │ │ │ │ └── Rs21CcpsiServer.java │ │ │ └── scpsi/ │ │ │ ├── AbstractBopprfScpsiClient.java │ │ │ ├── AbstractBopprfScpsiServer.java │ │ │ ├── AbstractScpsiClient.java │ │ │ ├── AbstractScpsiServer.java │ │ │ ├── BopprfScpsiConfig.java │ │ │ ├── BopprfScpsiPtoDesc.java │ │ │ ├── ScpsiClient.java │ │ │ ├── ScpsiConfig.java │ │ │ ├── ScpsiFactory.java │ │ │ ├── ScpsiServer.java │ │ │ ├── ScpsiServerOutput.java │ │ │ ├── cgs22/ │ │ │ │ ├── Cgs22ScpsiClient.java │ │ │ │ ├── Cgs22ScpsiConfig.java │ │ │ │ ├── Cgs22ScpsiPtoDesc.java │ │ │ │ └── Cgs22ScpsiServer.java │ │ │ ├── psty19/ │ │ │ │ ├── Psty19ScpsiClient.java │ │ │ │ ├── Psty19ScpsiConfig.java │ │ │ │ ├── Psty19ScpsiPtoDesc.java │ │ │ │ └── Psty19ScpsiServer.java │ │ │ └── rs21/ │ │ │ ├── Rs21ScpsiClient.java │ │ │ ├── Rs21ScpsiConfig.java │ │ │ ├── Rs21ScpsiPtoDesc.java │ │ │ └── Rs21ScpsiServer.java │ │ ├── main/ │ │ │ ├── PsoMain.java │ │ │ ├── ccpsi/ │ │ │ │ ├── CcpsiConfigUtils.java │ │ │ │ └── CcpsiMain.java │ │ │ ├── psi/ │ │ │ │ ├── PsiConfigUtils.java │ │ │ │ └── PsiMain.java │ │ │ ├── psu/ │ │ │ │ ├── OoPsuConfigUtils.java │ │ │ │ ├── OoPsuMain.java │ │ │ │ ├── PsuBlackIpConfigUtils.java │ │ │ │ ├── PsuBlackIpMain.java │ │ │ │ ├── PsuConfigUtils.java │ │ │ │ └── PsuMain.java │ │ │ └── scpsi/ │ │ │ ├── ScpsiConfigUtils.java │ │ │ └── ScpsiMain.java │ │ ├── psi/ │ │ │ ├── AbstractPsiClient.java │ │ │ ├── AbstractPsiServer.java │ │ │ ├── FilterPsiConfig.java │ │ │ ├── PsiClient.java │ │ │ ├── PsiConfig.java │ │ │ ├── PsiFactory.java │ │ │ ├── PsiServer.java │ │ │ ├── PsiUtils.java │ │ │ ├── aid/ │ │ │ │ ├── AbstractAidPsiClient.java │ │ │ │ ├── AbstractAidPsiServer.java │ │ │ │ ├── AidPsiConfig.java │ │ │ │ └── kmrs14/ │ │ │ │ ├── Kmrs14AidPsiAider.java │ │ │ │ ├── Kmrs14AidPsiClient.java │ │ │ │ ├── Kmrs14AidPsiConfig.java │ │ │ │ ├── Kmrs14AidPsiPtoDesc.java │ │ │ │ └── Kmrs14AidPsiServer.java │ │ │ ├── cuckoo/ │ │ │ │ ├── kkrt16/ │ │ │ │ │ ├── Kkrt16PsiClient.java │ │ │ │ │ ├── Kkrt16PsiConfig.java │ │ │ │ │ ├── Kkrt16PsiPtoDesc.java │ │ │ │ │ └── Kkrt16PsiServer.java │ │ │ │ ├── oos17/ │ │ │ │ │ ├── Oos17PsiClient.java │ │ │ │ │ ├── Oos17PsiConfig.java │ │ │ │ │ ├── Oos17PsiPtoDesc.java │ │ │ │ │ └── Oos17PsiServer.java │ │ │ │ └── psz14/ │ │ │ │ ├── Psz14PsiClient.java │ │ │ │ ├── Psz14PsiConfig.java │ │ │ │ ├── Psz14PsiPtoDesc.java │ │ │ │ └── Psz14PsiServer.java │ │ │ ├── mpoprf/ │ │ │ │ ├── AbstractMpOprfPsiClient.java │ │ │ │ ├── AbstractMpOprfPsiServer.java │ │ │ │ ├── MpOprfPsiConfig.java │ │ │ │ ├── MpOprfPsiPtoStep.java │ │ │ │ ├── cm20/ │ │ │ │ │ ├── Cm20PsiClient.java │ │ │ │ │ ├── Cm20PsiConfig.java │ │ │ │ │ ├── Cm20PsiPtoDesc.java │ │ │ │ │ └── Cm20PsiServer.java │ │ │ │ ├── rr22/ │ │ │ │ │ ├── Rr22PsiClient.java │ │ │ │ │ ├── Rr22PsiConfig.java │ │ │ │ │ ├── Rr22PsiPtoDesc.java │ │ │ │ │ └── Rr22PsiServer.java │ │ │ │ └── rs21/ │ │ │ │ ├── Rs21PsiClient.java │ │ │ │ ├── Rs21PsiConfig.java │ │ │ │ ├── Rs21PsiPtoDesc.java │ │ │ │ └── Rs21PsiServer.java │ │ │ ├── mqrpmt/ │ │ │ │ ├── AbstractMqRpmtPsiClient.java │ │ │ │ ├── AbstractMqRpmtPsiServer.java │ │ │ │ ├── MqRpmtPsiConfig.java │ │ │ │ ├── MqRpmtPsiPtoDesc.java │ │ │ │ ├── czz22/ │ │ │ │ │ ├── Czz22PsiClient.java │ │ │ │ │ ├── Czz22PsiConfig.java │ │ │ │ │ ├── Czz22PsiPtoDesc.java │ │ │ │ │ └── Czz22PsiServer.java │ │ │ │ └── gmr21/ │ │ │ │ ├── Gmr21PsiClient.java │ │ │ │ ├── Gmr21PsiConfig.java │ │ │ │ ├── Gmr21PsiPtoDesc.java │ │ │ │ └── Gmr21PsiServer.java │ │ │ ├── other/ │ │ │ │ ├── dcw13/ │ │ │ │ │ ├── Dcw13PsiClient.java │ │ │ │ │ ├── Dcw13PsiConfig.java │ │ │ │ │ ├── Dcw13PsiPtoDesc.java │ │ │ │ │ └── Dcw13PsiServer.java │ │ │ │ ├── prty19/ │ │ │ │ │ ├── Prty19FastPsiClient.java │ │ │ │ │ ├── Prty19FastPsiConfig.java │ │ │ │ │ ├── Prty19FastPsiPtoDesc.java │ │ │ │ │ ├── Prty19FastPsiServer.java │ │ │ │ │ ├── Prty19LowPsiClient.java │ │ │ │ │ ├── Prty19LowPsiConfig.java │ │ │ │ │ ├── Prty19LowPsiPtoDesc.java │ │ │ │ │ ├── Prty19LowPsiServer.java │ │ │ │ │ └── Prty19PsiUtils.java │ │ │ │ ├── prty20/ │ │ │ │ │ ├── Prty20PsiClient.java │ │ │ │ │ ├── Prty20PsiConfig.java │ │ │ │ │ ├── Prty20PsiPtoDesc.java │ │ │ │ │ └── Prty20PsiServer.java │ │ │ │ ├── rr16/ │ │ │ │ │ ├── Rr16PsiClient.java │ │ │ │ │ ├── Rr16PsiConfig.java │ │ │ │ │ ├── Rr16PsiPtoDesc.java │ │ │ │ │ ├── Rr16PsiServer.java │ │ │ │ │ └── Rr16PsiUtils.java │ │ │ │ └── rr17/ │ │ │ │ ├── Rr17DePsiClient.java │ │ │ │ ├── Rr17DePsiConfig.java │ │ │ │ ├── Rr17DePsiPtoDesc.java │ │ │ │ ├── Rr17DePsiServer.java │ │ │ │ ├── Rr17EcPsiClient.java │ │ │ │ ├── Rr17EcPsiConfig.java │ │ │ │ ├── Rr17EcPsiPtoDesc.java │ │ │ │ └── Rr17EcPsiServer.java │ │ │ ├── pke/ │ │ │ │ ├── hfh99/ │ │ │ │ │ ├── Hfh99ByteEccPsiClient.java │ │ │ │ │ ├── Hfh99ByteEccPsiConfig.java │ │ │ │ │ ├── Hfh99ByteEccPsiPtoDesc.java │ │ │ │ │ ├── Hfh99ByteEccPsiServer.java │ │ │ │ │ ├── Hfh99EccPsiClient.java │ │ │ │ │ ├── Hfh99EccPsiConfig.java │ │ │ │ │ ├── Hfh99EccPsiPtoDesc.java │ │ │ │ │ └── Hfh99EccPsiServer.java │ │ │ │ └── rt21/ │ │ │ │ ├── Rt21PsiClient.java │ │ │ │ ├── Rt21PsiConfig.java │ │ │ │ ├── Rt21PsiPtoDesc.java │ │ │ │ └── Rt21PsiServer.java │ │ │ └── sqoprf/ │ │ │ ├── AbstractSqOprfPsiClient.java │ │ │ ├── AbstractSqOprfPsiServer.java │ │ │ ├── SqOprfPsiConfig.java │ │ │ ├── SqOprfPsiPtoStep.java │ │ │ └── ra17/ │ │ │ ├── Ra17ByteEccPsiClient.java │ │ │ ├── Ra17ByteEccPsiConfig.java │ │ │ ├── Ra17ByteEccPsiPtoDesc.java │ │ │ ├── Ra17ByteEccPsiServer.java │ │ │ ├── Ra17EccPsiClient.java │ │ │ ├── Ra17EccPsiConfig.java │ │ │ ├── Ra17EccPsiPtoDesc.java │ │ │ └── Ra17EccPsiServer.java │ │ ├── psica/ │ │ │ ├── AbstractPsiCaClient.java │ │ │ ├── AbstractPsiCaServer.java │ │ │ ├── PsiCaClient.java │ │ │ ├── PsiCaConfig.java │ │ │ ├── PsiCaFactory.java │ │ │ ├── PsiCaServer.java │ │ │ ├── ccpsi/ │ │ │ │ ├── CcPsiCaClient.java │ │ │ │ ├── CcPsiCaConfig.java │ │ │ │ ├── CcPsiCaPtoDesc.java │ │ │ │ └── CcPsiCaServer.java │ │ │ ├── cgt12/ │ │ │ │ ├── Cgt12EccPsiCaClient.java │ │ │ │ ├── Cgt12EccPsiCaConfig.java │ │ │ │ ├── Cgt12EccPsiCaPtoDesc.java │ │ │ │ └── Cgt12EccPsiCaServer.java │ │ │ ├── gmr21/ │ │ │ │ ├── Gmr21PsiCaClient.java │ │ │ │ ├── Gmr21PsiCaConfig.java │ │ │ │ ├── Gmr21PsiCaPtoDesc.java │ │ │ │ └── Gmr21PsiCaServer.java │ │ │ └── hfh99/ │ │ │ ├── Hfh99EccPsiCaClient.java │ │ │ ├── Hfh99EccPsiCaConfig.java │ │ │ ├── Hfh99EccPsiCaPtoDesc.java │ │ │ └── Hfh99EccPsiCaServer.java │ │ └── psu/ │ │ ├── AbstractOoPsuClient.java │ │ ├── AbstractOoPsuServer.java │ │ ├── AbstractPsuClient.java │ │ ├── AbstractPsuServer.java │ │ ├── OoPsuClient.java │ │ ├── OoPsuConfig.java │ │ ├── OoPsuServer.java │ │ ├── PsuClient.java │ │ ├── PsuClientOutput.java │ │ ├── PsuConfig.java │ │ ├── PsuFactory.java │ │ ├── PsuServer.java │ │ ├── czz24/ │ │ │ ├── Czz24CwOprfPsuClient.java │ │ │ ├── Czz24CwOprfPsuConfig.java │ │ │ ├── Czz24CwOprfPsuPtoDesc.java │ │ │ └── Czz24CwOprfPsuServer.java │ │ ├── gmr21/ │ │ │ ├── Gmr21PsuClient.java │ │ │ ├── Gmr21PsuConfig.java │ │ │ ├── Gmr21PsuPtoDesc.java │ │ │ └── Gmr21PsuServer.java │ │ ├── jsz22/ │ │ │ ├── Jsz22SfcPsuClient.java │ │ │ ├── Jsz22SfcPsuConfig.java │ │ │ ├── Jsz22SfcPsuPtoDesc.java │ │ │ ├── Jsz22SfcPsuServer.java │ │ │ ├── Jsz22SfsPsuClient.java │ │ │ ├── Jsz22SfsPsuConfig.java │ │ │ ├── Jsz22SfsPsuPtoDesc.java │ │ │ └── Jsz22SfsPsuServer.java │ │ ├── krtw19/ │ │ │ ├── Krtw19PsuClient.java │ │ │ ├── Krtw19PsuConfig.java │ │ │ ├── Krtw19PsuPtoDesc.java │ │ │ └── Krtw19PsuServer.java │ │ └── zcl23/ │ │ ├── Zcl23PkePsuClient.java │ │ ├── Zcl23PkePsuConfig.java │ │ ├── Zcl23PkePsuPtoDesc.java │ │ ├── Zcl23PkePsuServer.java │ │ ├── Zcl23SkePsuClient.java │ │ ├── Zcl23SkePsuConfig.java │ │ ├── Zcl23SkePsuPtoDesc.java │ │ └── Zcl23SkePsuServer.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── pso/ │ │ ├── BytesElementGenTest.java │ │ ├── cpsi/ │ │ │ ├── ccpsi/ │ │ │ │ ├── CcpsiClientThread.java │ │ │ │ ├── CcpsiServerThread.java │ │ │ │ └── CcpsiTest.java │ │ │ └── scpsi/ │ │ │ ├── ScpsiClientThread.java │ │ │ ├── ScpsiServerThread.java │ │ │ └── ScpsiTest.java │ │ ├── main/ │ │ │ ├── MainCcpsiTest.java │ │ │ ├── MainOoPsuTest.java │ │ │ ├── MainPsiTest.java │ │ │ ├── MainPsuTest.java │ │ │ └── MainScpsiTest.java │ │ ├── psi/ │ │ │ ├── AidPsiTest.java │ │ │ ├── PsiAiderThread.java │ │ │ ├── PsiClientThread.java │ │ │ ├── PsiServerThread.java │ │ │ └── PsiTest.java │ │ ├── psica/ │ │ │ ├── PsiCaClientThread.java │ │ │ ├── PsiCaServerThread.java │ │ │ └── PsiCaTest.java │ │ └── psu/ │ │ ├── OoPsuClientThread.java │ │ ├── OoPsuServerThread.java │ │ ├── OoPsuTest.java │ │ ├── PsuAidTest.java │ │ ├── PsuClientThread.java │ │ ├── PsuServerThread.java │ │ └── PsuTest.java │ └── resources/ │ ├── conf_ccpsi_example.conf │ ├── conf_oo_psu_example.conf │ ├── conf_psi_example.conf │ ├── conf_psu_example.conf │ ├── conf_scpsi_example.conf │ └── log4j.properties ├── mpc4j-s2pc-upso/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── upso/ │ │ ├── UpsoUtils.java │ │ ├── main/ │ │ │ ├── UpsoMain.java │ │ │ ├── ucpsi/ │ │ │ │ ├── UcpsiConfigUtils.java │ │ │ │ ├── UcpsiMain.java │ │ │ │ └── UcpsiMainType.java │ │ │ └── upsu/ │ │ │ ├── UpsuConfigUtils.java │ │ │ ├── UpsuMain.java │ │ │ └── UpsuMainType.java │ │ ├── okvr/ │ │ │ ├── AbstractOkvrReceiver.java │ │ │ ├── AbstractOkvrSender.java │ │ │ ├── OkvrConfig.java │ │ │ ├── OkvrFactory.java │ │ │ ├── OkvrReceiver.java │ │ │ ├── OkvrSender.java │ │ │ ├── kw/ │ │ │ │ ├── KwOkvrConfig.java │ │ │ │ ├── KwOkvrPtoDesc.java │ │ │ │ ├── KwOkvrReceiver.java │ │ │ │ └── KwOkvrSender.java │ │ │ ├── okvs/ │ │ │ │ ├── OkvsOkvrConfig.java │ │ │ │ ├── OkvsOkvrPtoDesc.java │ │ │ │ ├── OkvsOkvrReceiver.java │ │ │ │ └── OkvsOkvrSender.java │ │ │ └── pir/ │ │ │ ├── PirOkvrConfig.java │ │ │ ├── PirOkvrPtoDesc.java │ │ │ ├── PirOkvrReceiver.java │ │ │ └── PirOkvrSender.java │ │ ├── ucpsi/ │ │ │ ├── AbstractUcpsiClient.java │ │ │ ├── AbstractUcpsiServer.java │ │ │ ├── UcpsiClient.java │ │ │ ├── UcpsiClientOutput.java │ │ │ ├── UcpsiConfig.java │ │ │ ├── UcpsiFactory.java │ │ │ ├── UcpsiServer.java │ │ │ ├── psty19/ │ │ │ │ ├── Psty19UcpsiClient.java │ │ │ │ ├── Psty19UcpsiConfig.java │ │ │ │ ├── Psty19UcpsiPtoDesc.java │ │ │ │ └── Psty19UcpsiServer.java │ │ │ └── sj23/ │ │ │ ├── pdsm/ │ │ │ │ ├── Sj23PdsmUcpsiClient.java │ │ │ │ ├── Sj23PdsmUcpsiConfig.java │ │ │ │ ├── Sj23PdsmUcpsiNativeUtils.java │ │ │ │ ├── Sj23PdsmUcpsiParams.java │ │ │ │ ├── Sj23PdsmUcpsiPtoDesc.java │ │ │ │ └── Sj23PdsmUcpsiServer.java │ │ │ └── peqt/ │ │ │ ├── Sj23PeqtUcpsiClient.java │ │ │ ├── Sj23PeqtUcpsiConfig.java │ │ │ ├── Sj23PeqtUcpsiNativeUtils.java │ │ │ ├── Sj23PeqtUcpsiParams.java │ │ │ ├── Sj23PeqtUcpsiPtoDesc.java │ │ │ └── Sj23PeqtUcpsiServer.java │ │ ├── upsi/ │ │ │ ├── AbstractUpsiClient.java │ │ │ ├── AbstractUpsiServer.java │ │ │ ├── UpsiClient.java │ │ │ ├── UpsiConfig.java │ │ │ ├── UpsiFactory.java │ │ │ ├── UpsiParams.java │ │ │ ├── UpsiServer.java │ │ │ └── cmg21/ │ │ │ ├── Cmg21JavaUpsiClient.java │ │ │ ├── Cmg21JavaUpsiConfig.java │ │ │ ├── Cmg21JavaUpsiPtoDesc.java │ │ │ ├── Cmg21JavaUpsiServer.java │ │ │ ├── Cmg21UpsiClient.java │ │ │ ├── Cmg21UpsiConfig.java │ │ │ ├── Cmg21UpsiNativeUtils.java │ │ │ ├── Cmg21UpsiParams.java │ │ │ ├── Cmg21UpsiParamsChecker.java │ │ │ ├── Cmg21UpsiPtoDesc.java │ │ │ └── Cmg21UpsiServer.java │ │ └── upsu/ │ │ ├── AbstractUpsuReceiver.java │ │ ├── AbstractUpsuSender.java │ │ ├── UpsuConfig.java │ │ ├── UpsuFactory.java │ │ ├── UpsuParams.java │ │ ├── UpsuReceiver.java │ │ ├── UpsuReceiverOutput.java │ │ ├── UpsuSender.java │ │ ├── tcl23/ │ │ │ ├── Tcl23UpsuConfig.java │ │ │ ├── Tcl23UpsuNativeUtils.java │ │ │ ├── Tcl23UpsuParams.java │ │ │ ├── Tcl23UpsuParamsChecker.java │ │ │ ├── Tcl23UpsuPtoDesc.java │ │ │ ├── Tcl23UpsuReceiver.java │ │ │ └── Tcl23UpsuSender.java │ │ └── zlp24/ │ │ ├── Zlp24PeqtUpsuConfig.java │ │ ├── Zlp24PeqtUpsuPtoDesc.java │ │ ├── Zlp24PeqtUpsuReceiver.java │ │ ├── Zlp24PeqtUpsuSender.java │ │ ├── Zlp24PkeUpsuConfig.java │ │ ├── Zlp24PkeUpsuPtoDesc.java │ │ ├── Zlp24PkeUpsuReceiver.java │ │ └── Zlp24PkeUpsuSender.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s2pc/ │ │ └── upso/ │ │ ├── main/ │ │ │ ├── MainUcpsiTest.java │ │ │ └── MainUpsuTest.java │ │ ├── okvr/ │ │ │ ├── OkvrReceiverThread.java │ │ │ ├── OkvrSenderThread.java │ │ │ ├── OkvrTest.java │ │ │ └── OkvrTestUtils.java │ │ ├── ucpsi/ │ │ │ ├── UcpsiClientThread.java │ │ │ ├── UcpsiServerThread.java │ │ │ └── UcpsiTest.java │ │ ├── upsi/ │ │ │ ├── UpsiClientThread.java │ │ │ ├── UpsiServerThread.java │ │ │ ├── UpsiTest.java │ │ │ └── cmg21/ │ │ │ ├── Cmg21UpsiClientThread.java │ │ │ ├── Cmg21UpsiParamsCheckerTest.java │ │ │ ├── Cmg21UpsiServerThread.java │ │ │ └── Cmg21UpsiTest.java │ │ └── upsu/ │ │ ├── UpsuReceiverThread.java │ │ ├── UpsuSenderThread.java │ │ └── UpsuTest.java │ └── resources/ │ ├── conf_ucpsi_example.conf │ ├── conf_upsu_example.conf │ └── log4j.properties ├── mpc4j-s3pc-abb3/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s3pc/ │ │ └── abb3/ │ │ ├── basic/ │ │ │ ├── Abb3Config.java │ │ │ ├── Abb3Factory.java │ │ │ ├── Abb3Party.java │ │ │ ├── Abb3RpConfig.java │ │ │ ├── Abb3RpParty.java │ │ │ ├── Abb3RpPtoDesc.java │ │ │ ├── AbstractAbbThreePartyPto.java │ │ │ ├── conversion/ │ │ │ │ ├── ConvConfig.java │ │ │ │ ├── ConvOperations.java │ │ │ │ ├── ConvParty.java │ │ │ │ └── replicate/ │ │ │ │ ├── AbstractAby3ConvParty.java │ │ │ │ ├── Aby3ConvConfig.java │ │ │ │ ├── Aby3ConvFactory.java │ │ │ │ ├── Aby3ConvParty.java │ │ │ │ ├── Aby3ConvPtoDesc.java │ │ │ │ ├── Aby3MalConvParty.java │ │ │ │ └── Aby3ShConvParty.java │ │ │ ├── core/ │ │ │ │ ├── AbbCoreParty.java │ │ │ │ ├── z2/ │ │ │ │ │ ├── AbstractTripletZ2cParty.java │ │ │ │ │ ├── TripletZ2cConfig.java │ │ │ │ │ ├── TripletZ2cParty.java │ │ │ │ │ └── replicate/ │ │ │ │ │ ├── AbstractAby3Z2cParty.java │ │ │ │ │ ├── Aby3MaliciousZ2cParty.java │ │ │ │ │ ├── Aby3SemiHonestZ2cParty.java │ │ │ │ │ ├── Aby3Z2cConfig.java │ │ │ │ │ ├── Aby3Z2cFactory.java │ │ │ │ │ └── Aby3Z2cPtoDesc.java │ │ │ │ └── zlong/ │ │ │ │ ├── AbstractTripletLongParty.java │ │ │ │ ├── TripletLongConfig.java │ │ │ │ ├── TripletLongParty.java │ │ │ │ └── replicate/ │ │ │ │ ├── TripletRpLongConfig.java │ │ │ │ ├── TripletRpLongCpFactory.java │ │ │ │ ├── aby3/ │ │ │ │ │ ├── AbstractAby3LongParty.java │ │ │ │ │ ├── Aby3LongConfig.java │ │ │ │ │ ├── Aby3LongCpPtoDesc.java │ │ │ │ │ ├── Aby3MaliciousZl64Party.java │ │ │ │ │ └── Aby3SemiHonestLongParty.java │ │ │ │ └── mac/ │ │ │ │ ├── Cgh18RpLongConfig.java │ │ │ │ ├── Cgh18RpLongCpPtoDesc.java │ │ │ │ └── Cgh18RpLongParty.java │ │ │ ├── shuffle/ │ │ │ │ ├── ShuffleConfig.java │ │ │ │ ├── ShuffleOperations.java │ │ │ │ ├── ShuffleParty.java │ │ │ │ └── replicate/ │ │ │ │ ├── AbstractAby3ShuffleParty.java │ │ │ │ ├── Aby3MalShuffleParty.java │ │ │ │ ├── Aby3ShShuffleParty.java │ │ │ │ ├── Aby3ShuffleConfig.java │ │ │ │ ├── Aby3ShuffleFactory.java │ │ │ │ ├── Aby3ShuffleParty.java │ │ │ │ └── Aby3ShufflePtoDesc.java │ │ │ └── utils/ │ │ │ ├── FileUtils.java │ │ │ ├── MatrixUtils.java │ │ │ ├── PrpUtils.java │ │ │ └── ShuffleUtils.java │ │ ├── context/ │ │ │ ├── TripletProvider.java │ │ │ ├── TripletProviderConfig.java │ │ │ ├── TripletProviderPtoDesc.java │ │ │ ├── cr/ │ │ │ │ ├── S3pcCrProvider.java │ │ │ │ ├── S3pcCrProviderConfig.java │ │ │ │ └── S3pcCrProviderPtoDesc.java │ │ │ ├── msg/ │ │ │ │ └── VerificationMsg.java │ │ │ └── tuple/ │ │ │ ├── RpMtProviderFactory.java │ │ │ ├── longtuple/ │ │ │ │ ├── AbstractRpLongMtp.java │ │ │ │ ├── RpLongMtp.java │ │ │ │ ├── RpLongMtpConfig.java │ │ │ │ ├── buffer/ │ │ │ │ │ ├── RpLongBufferMtp.java │ │ │ │ │ ├── RpLongBufferMtpConfig.java │ │ │ │ │ └── RpLongBufferMtpPtoDesc.java │ │ │ │ ├── env/ │ │ │ │ │ ├── RpLongEnvConfig.java │ │ │ │ │ ├── RpLongEnvParty.java │ │ │ │ │ └── RpLongEnvPtoDesc.java │ │ │ │ ├── file/ │ │ │ │ │ ├── RpLongFileMtp.java │ │ │ │ │ ├── RpLongFileMtpConfig.java │ │ │ │ │ └── RpLongFileMtpPtoDesc.java │ │ │ │ ├── generator/ │ │ │ │ │ ├── AbstractRpLongMtg.java │ │ │ │ │ ├── RpLongMtg.java │ │ │ │ │ ├── RpLongMtgConfig.java │ │ │ │ │ ├── RpLongMtgFactory.java │ │ │ │ │ └── flnw17/ │ │ │ │ │ ├── Flnw17RpLongMtg.java │ │ │ │ │ ├── Flnw17RpLongMtgConfig.java │ │ │ │ │ └── Flnw17RpLongMtgPtoDesc.java │ │ │ │ └── simulate/ │ │ │ │ ├── RpLongSimMtp.java │ │ │ │ ├── RpLongSimMtpConfig.java │ │ │ │ └── RpLongSimMtpPtoDesc.java │ │ │ └── z2tuple/ │ │ │ ├── AbstractRpZ2Mtp.java │ │ │ ├── RpZ2Mtp.java │ │ │ ├── RpZ2MtpConfig.java │ │ │ ├── buffer/ │ │ │ │ ├── RpZ2BufferMtp.java │ │ │ │ ├── RpZ2BufferMtpConfig.java │ │ │ │ └── RpZ2BufferMtpPtoDesc.java │ │ │ ├── env/ │ │ │ │ ├── RpZ2EnvConfig.java │ │ │ │ ├── RpZ2EnvParty.java │ │ │ │ └── RpZ2EnvPtoDesc.java │ │ │ ├── file/ │ │ │ │ ├── RpZ2FileMtp.java │ │ │ │ ├── RpZ2FileMtpConfig.java │ │ │ │ └── RpZ2FileMtpPtoDesc.java │ │ │ ├── generator/ │ │ │ │ ├── AbstractRpZ2Mtg.java │ │ │ │ ├── RpZ2Mtg.java │ │ │ │ ├── RpZ2MtgConfig.java │ │ │ │ ├── RpZ2MtgFactory.java │ │ │ │ └── flnw17/ │ │ │ │ ├── Flnw17RpZ2Mtg.java │ │ │ │ ├── Flnw17RpZ2MtgConfig.java │ │ │ │ └── Flnw17RpZ2MtgPtoDesc.java │ │ │ └── simulate/ │ │ │ ├── RpZ2SimMtp.java │ │ │ ├── RpZ2SimMtpConfig.java │ │ │ └── RpZ2SimMtpPtoDesc.java │ │ ├── main/ │ │ │ ├── Abb3RpMain.java │ │ │ ├── predicate/ │ │ │ │ └── PredicateMain.java │ │ │ └── shuffle/ │ │ │ └── ShuffleMain.java │ │ ├── mainpto/ │ │ │ ├── AbstractMainAbb3PartyPto.java │ │ │ ├── MainAbb3PartyPto.java │ │ │ └── MainAbb3PartyThread.java │ │ └── structure/ │ │ ├── z2/ │ │ │ ├── TripletZ2Vector.java │ │ │ └── replicate/ │ │ │ └── TripletRpZ2Vector.java │ │ └── zlong/ │ │ ├── TripletLongVector.java │ │ └── replicate/ │ │ ├── TripletRpLongMacVector.java │ │ └── TripletRpLongVector.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── s3pc/ │ │ └── abb3/ │ │ ├── basic/ │ │ │ ├── conversion/ │ │ │ │ ├── Aby3ConvPartyThread.java │ │ │ │ └── Aby3ConvTest.java │ │ │ ├── core/ │ │ │ │ ├── z2/ │ │ │ │ │ ├── Aby3Z2cPartyThread.java │ │ │ │ │ └── Aby3Z2cTest.java │ │ │ │ └── zlong/ │ │ │ │ ├── TripletRpLongCpTest.java │ │ │ │ └── TripletRpLongCpThread.java │ │ │ ├── shuffle/ │ │ │ │ ├── Aby3ShufflePartyThread.java │ │ │ │ └── Aby3ShuffleTest.java │ │ │ └── utils/ │ │ │ ├── FileUtilsTest.java │ │ │ └── PrpUtilsTest.java │ │ ├── context/ │ │ │ ├── cr/ │ │ │ │ ├── S3pcCrProviderTest.java │ │ │ │ └── S3pcCrProviderThread.java │ │ │ └── tuple/ │ │ │ ├── longtuple/ │ │ │ │ ├── env/ │ │ │ │ │ ├── RpZl64EnvPartyThread.java │ │ │ │ │ └── RpZl64EnvTest.java │ │ │ │ └── mtp/ │ │ │ │ ├── RpLongMtpTest.java │ │ │ │ └── RpZl64MtpThread.java │ │ │ └── z2tuple/ │ │ │ ├── env/ │ │ │ │ ├── RpZ2EnvPartyThread.java │ │ │ │ └── RpZ2EnvTest.java │ │ │ └── mtp/ │ │ │ ├── RpZ2MtpTest.java │ │ │ └── RpZ2MtpThread.java │ │ └── main/ │ │ ├── MainPredicateTest.java │ │ └── MainShuffleTest.java │ └── resources/ │ ├── conf_predicate_example.conf │ ├── conf_shuffle_example.conf │ └── log4j.properties ├── mpc4j-sml-opboost/ │ ├── README.md │ ├── conf/ │ │ ├── conf_opboost_cls_adult.txt │ │ ├── conf_opboost_cls_digits.txt │ │ ├── conf_opboost_kendall_adult10_age.txt │ │ ├── conf_opboost_kendall_syn10.txt │ │ ├── conf_opboost_overfit_cls_adult.txt │ │ ├── conf_opboost_overfit_cls_digits.txt │ │ ├── conf_opboost_reg_casp.txt │ │ └── conf_opboost_reg_powerplant.txt │ ├── lib/ │ │ └── xgboost4j_2.12-1.5.2.jar │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ ├── ai/ │ │ │ └── h2o/ │ │ │ └── algos/ │ │ │ └── tree/ │ │ │ ├── INode.java │ │ │ └── INodeStat.java │ │ ├── biz/ │ │ │ └── k11i/ │ │ │ └── xgboost/ │ │ │ ├── Predictor.java │ │ │ ├── config/ │ │ │ │ └── PredictorConfiguration.java │ │ │ ├── fvec/ │ │ │ │ ├── Fvec.java │ │ │ │ ├── FvecDoubleArray.java │ │ │ │ ├── FvecFloatArray.java │ │ │ │ └── FvecMap.java │ │ │ ├── gbm/ │ │ │ │ ├── AbstractGradBoostModel.java │ │ │ │ ├── GardBoostDart.java │ │ │ │ ├── GardBoostLinear.java │ │ │ │ ├── GradBoostModel.java │ │ │ │ └── GradBoostTree.java │ │ │ ├── learner/ │ │ │ │ ├── ObjFunction.java │ │ │ │ └── ObjFunctionManager.java │ │ │ ├── spark/ │ │ │ │ └── SparkModelParam.java │ │ │ ├── tree/ │ │ │ │ ├── AbstractRegTreeNode.java │ │ │ │ ├── DefaultRegTreeFactory.java │ │ │ │ ├── RegTree.java │ │ │ │ ├── RegTreeFactory.java │ │ │ │ ├── RegTreeImpl.java │ │ │ │ ├── RegTreeNode.java │ │ │ │ └── RegTreeNodeState.java │ │ │ └── util/ │ │ │ └── ModelReader.java │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── sml/ │ │ ├── opboost/ │ │ │ ├── AbstractOpBoostConfigBuilder.java │ │ │ ├── AbstractOpBoostHost.java │ │ │ ├── OpBoostConfig.java │ │ │ ├── OpBoostHostConfig.java │ │ │ ├── OpBoostPtoConfig.java │ │ │ ├── OpBoostPtoDesc.java │ │ │ ├── OpBoostSlave.java │ │ │ ├── OpBoostSlaveConfig.java │ │ │ ├── OpBoostUtils.java │ │ │ ├── grad/ │ │ │ │ ├── ClsOpGradBoostHost.java │ │ │ │ ├── ClsOpGradBoostHostConfig.java │ │ │ │ ├── RegOpGradBoostHost.java │ │ │ │ └── RegOpGradBoostHostConfig.java │ │ │ ├── main/ │ │ │ │ ├── OpBoost.java │ │ │ │ ├── OpBoostLdpType.java │ │ │ │ ├── OpBoostMain.java │ │ │ │ ├── OpBoostMainUtils.java │ │ │ │ ├── OpBoostTaskType.java │ │ │ │ ├── kendall/ │ │ │ │ │ └── WeightedKendall.java │ │ │ │ ├── opboost/ │ │ │ │ │ ├── AbstractClsOpBoost.java │ │ │ │ │ ├── AbstractOpBoost.java │ │ │ │ │ ├── AbstractOpBoostHostRunner.java │ │ │ │ │ ├── AbstractRegOpBoost.java │ │ │ │ │ ├── OpBoostRunner.java │ │ │ │ │ ├── OpBoostSlaveRunner.java │ │ │ │ │ ├── RegOpBoostHostRunner.java │ │ │ │ │ ├── grad/ │ │ │ │ │ │ ├── ClsOpGradBoost.java │ │ │ │ │ │ ├── ClsOpGradBoostHostRunner.java │ │ │ │ │ │ ├── RegOpGradBoost.java │ │ │ │ │ │ └── RegOpGradBoostHostRunner.java │ │ │ │ │ └── xgboost/ │ │ │ │ │ ├── ClsOpXgBoost.java │ │ │ │ │ ├── ClsOpXgBoostHostRunner.java │ │ │ │ │ ├── RegOpXgBoost.java │ │ │ │ │ └── RegOpXgBoostHostRunner.java │ │ │ │ └── overfit/ │ │ │ │ ├── AbstractOverfitOpXgBoost.java │ │ │ │ └── ClsOverfitOpXgBoost.java │ │ │ └── xgboost/ │ │ │ ├── OpXgBoostHost.java │ │ │ ├── OpXgBoostHostConfig.java │ │ │ ├── OpXgBoostUtils.java │ │ │ ├── XgBoostClsParams.java │ │ │ ├── XgBoostParams.java │ │ │ └── XgBoostRegParams.java │ │ └── smile/ │ │ ├── base/ │ │ │ └── cart/ │ │ │ ├── Cart.java │ │ │ ├── DecisionNode.java │ │ │ ├── InternalNode.java │ │ │ ├── LeafNode.java │ │ │ ├── Loss.java │ │ │ ├── Node.java │ │ │ ├── NominalNode.java │ │ │ ├── NominalSplit.java │ │ │ ├── OrdinalNode.java │ │ │ ├── OrdinalSplit.java │ │ │ ├── RegressionNode.java │ │ │ ├── Split.java │ │ │ └── SplitRule.java │ │ ├── classification/ │ │ │ ├── DecisionTree.java │ │ │ └── GradientTreeBoost.java │ │ ├── feature/ │ │ │ ├── Shap.java │ │ │ └── TreeShap.java │ │ └── regression/ │ │ ├── GradientTreeBoost.java │ │ ├── Regression.java │ │ └── RegressionTree.java │ └── test/ │ ├── java/ │ │ ├── biz/ │ │ │ └── k11i/ │ │ │ └── xgboost/ │ │ │ └── tree/ │ │ │ ├── BoosterPredictTest.java │ │ │ └── PredictorPredictLeafTest.java │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── sml/ │ │ └── opboost/ │ │ ├── OpBoostSlaveThread.java │ │ ├── OpBoostTestUtils.java │ │ ├── grad/ │ │ │ ├── OpGbdtClsHostThread.java │ │ │ ├── OpGbdtClsMultiSlaveTest.java │ │ │ ├── OpGbdtClsSingleSlaveTest.java │ │ │ ├── OpGbdtRegHostThread.java │ │ │ ├── OpGbdtRegMultiSlaveTest.java │ │ │ └── OpGbdtRegSingleSlaveTest.java │ │ └── xgboost/ │ │ ├── OpXgBoostClsMultiSlaveTest.java │ │ ├── OpXgBoostClsSingleSlaveTest.java │ │ ├── OpXgBoostHostThread.java │ │ ├── OpXgBoostRegMultiSlaveTest.java │ │ └── OpXgBoostRegSingleSlaveTest.java │ └── resources/ │ ├── agaricus.txt.test │ ├── agaricus.txt.train │ └── log4j.properties ├── mpc4j-work-db-dynamic/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── db/ │ │ └── dynamic/ │ │ ├── AbstractDynamicDbCircuit.java │ │ ├── DynamicDbCircuit.java │ │ ├── DynamicDbCircuitConfig.java │ │ ├── agg/ │ │ │ ├── AggMt.java │ │ │ ├── DynamicDbAggCircuit.java │ │ │ ├── DynamicDbAggCircuitFactory.java │ │ │ └── Zgc24DynamicDbAggCircuit.java │ │ ├── group/ │ │ │ ├── DynamicDbGroupByCircuit.java │ │ │ ├── DynamicDbGroupByCircuitFactory.java │ │ │ ├── GroupByMt.java │ │ │ ├── PointQueryOnGroupMtCircuit.java │ │ │ └── Zgc24DynamicDbGroupByCircuit.java │ │ ├── join/ │ │ │ └── pkpk/ │ │ │ ├── DynamicDbPkPkJoinCircuit.java │ │ │ ├── DynamicDbPkPkJoinCircuitFactory.java │ │ │ ├── JoinInputMt.java │ │ │ ├── PkPkJoinMt.java │ │ │ └── Zgc24DynamicDbPkPkJoinCircuit.java │ │ ├── main/ │ │ │ ├── DynamicDbCircuitUtils.java │ │ │ ├── DynamicDbGroupMain.java │ │ │ ├── DynamicDbMain.java │ │ │ ├── DynamicDbOrderByMain.java │ │ │ └── join/ │ │ │ └── pkpk/ │ │ │ └── DynamicDbPkPkJoinMain.java │ │ ├── main3/ │ │ │ ├── DynamicDbGroupMain3p.java │ │ │ ├── DynamicDbMain3p.java │ │ │ └── DynamicDbOrderByMain3p.java │ │ ├── orderby/ │ │ │ ├── DynamicDbOrderByCircuit.java │ │ │ ├── DynamicDbOrderByCircuitFactory.java │ │ │ ├── OrderByMt.java │ │ │ ├── Zgc24DynamicDbOrderByCircuit.java │ │ │ └── Zgc24OptDynamicDbOrderByCircuit.java │ │ ├── select/ │ │ │ ├── DynamicDbSelectCircuit.java │ │ │ ├── DynamicDbSelectCircuitFactory.java │ │ │ ├── SelectMt.java │ │ │ └── Zgc24DynamicDbSelectCircuit.java │ │ └── structure/ │ │ ├── AbstractMaterializedTable.java │ │ ├── AggregateEnum.java │ │ ├── MaterializedTable.java │ │ ├── MaterializedTableType.java │ │ ├── OperationEnum.java │ │ └── UpdateMessage.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── db/ │ │ └── dynamic/ │ │ ├── DynamicDb2pcZ2Party.java │ │ ├── DynamicDb3pcZ2Party.java │ │ ├── DynamicDbAggTest.java │ │ ├── DynamicDbCircuitPartyThread.java │ │ ├── DynamicDbGroupByTest.java │ │ ├── DynamicDbOrderByTest.java │ │ ├── DynamicDbPkPkJoinMainTest.java │ │ ├── DynamicDbPkPkJoinTest.java │ │ ├── DynamicDbSelectTest.java │ │ ├── group/ │ │ │ ├── PointQueryOnGroupMtCircuitPartyThread.java │ │ │ └── PointQueryOnGroupMtCircuitTest.java │ │ ├── main/ │ │ │ ├── DynamicDbGroupMainTest.java │ │ │ ├── DynamicDbOrderByMainTest.java │ │ │ └── DynamicDbPkPkJoinMainTest.java │ │ └── main3/ │ │ ├── DynamicDbGroupMain3pTest.java │ │ └── DynamicDbOrderByMain3pTest.java │ └── resources/ │ ├── conf_group_example.conf │ ├── conf_group_example_3p.conf │ ├── conf_order_example.conf │ ├── conf_order_example_3p.conf │ ├── conf_pk_pk_join_example.conf │ └── log4j.properties ├── mpc4j-work-db-sketch/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── db/ │ │ └── sketch/ │ │ ├── AbstractSketchPartyPto.java │ │ ├── CMS/ │ │ │ ├── AbstractCMSParty.java │ │ │ ├── AbstractCMSTable.java │ │ │ ├── CMSConfig.java │ │ │ ├── CMSFactory.java │ │ │ ├── CMSParty.java │ │ │ ├── HashParameters.java │ │ │ ├── Z2CMSTable.java │ │ │ └── z2/ │ │ │ ├── CMSz2Config.java │ │ │ ├── CMSz2Party.java │ │ │ └── CMSz2PtoDesc.java │ │ ├── GK/ │ │ │ ├── AbstractGKParty.java │ │ │ ├── AbstractGKTable.java │ │ │ ├── GKConfig.java │ │ │ ├── GKFactory.java │ │ │ ├── GKParty.java │ │ │ ├── GKTable.java │ │ │ └── z2/ │ │ │ ├── GKz2Config.java │ │ │ ├── GKz2Party.java │ │ │ └── GKz2PtoDesc.java │ │ ├── HLL/ │ │ │ ├── AbstractHLLParty.java │ │ │ ├── AbstractHLLTable.java │ │ │ ├── HLLConfig.java │ │ │ ├── HLLFactory.java │ │ │ ├── HLLParty.java │ │ │ ├── HLLTable.java │ │ │ └── z2/ │ │ │ ├── HLLz2Config.java │ │ │ ├── HLLz2Party.java │ │ │ └── HLLz2PtoDesc.java │ │ ├── SS/ │ │ │ ├── AbstractSSParty.java │ │ │ ├── AbstractSSTable.java │ │ │ ├── SSConfig.java │ │ │ ├── SSFactory.java │ │ │ ├── SSParty.java │ │ │ ├── SSTable.java │ │ │ └── z2/ │ │ │ ├── SSz2Config.java │ │ │ ├── SSz2Party.java │ │ │ └── SSz2PtoDesc.java │ │ ├── SketchPartyPto.java │ │ ├── main/ │ │ │ ├── CMS/ │ │ │ │ ├── CMSConfigUtils.java │ │ │ │ └── CMSZ2Main.java │ │ │ ├── GK/ │ │ │ │ ├── GKConfigUtils.java │ │ │ │ └── GKMain.java │ │ │ ├── HLL/ │ │ │ │ ├── HLLConfigUtils.java │ │ │ │ └── HLLMain.java │ │ │ ├── SS/ │ │ │ │ ├── SSConfigUtils.java │ │ │ │ └── SSMain.java │ │ │ └── StreamingMain.java │ │ ├── structure/ │ │ │ ├── AbstractSketchTable.java │ │ │ ├── SketchTable.java │ │ │ └── SketchTableType.java │ │ └── utils/ │ │ ├── DataGenerator.java │ │ ├── orderselect/ │ │ │ ├── AbstractOrderSelectParty.java │ │ │ ├── OrderSelectConfig.java │ │ │ ├── OrderSelectFactory.java │ │ │ ├── OrderSelectOperations.java │ │ │ ├── OrderSelectParty.java │ │ │ └── quick/ │ │ │ ├── QuickOrderSelectConfig.java │ │ │ ├── QuickOrderSelectParty.java │ │ │ └── QuickOrderSelectPtoDesc.java │ │ ├── pop/ │ │ │ ├── PopConfig.java │ │ │ ├── PopFactory.java │ │ │ ├── PopFnParam.java │ │ │ ├── PopParty.java │ │ │ └── naive/ │ │ │ ├── NaivePopConfig.java │ │ │ ├── NaivePopParty.java │ │ │ └── NaivePopPtoDesc.java │ │ └── truncate/ │ │ ├── TruncateConfig.java │ │ ├── TruncateFactory.java │ │ ├── TruncateFnParam.java │ │ ├── TruncateParty.java │ │ └── ext/ │ │ ├── ExtTruncateConfig.java │ │ ├── ExtTruncateParty.java │ │ └── ExtTruncatePtoDesc.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── db/ │ │ └── sketch/ │ │ ├── CMS/ │ │ │ ├── CMSPartyThread.java │ │ │ └── CMSTest.java │ │ ├── GK/ │ │ │ ├── GKPartyThread.java │ │ │ └── GKTest.java │ │ ├── HLL/ │ │ │ ├── HLLPartyThread.java │ │ │ └── HLLTest.java │ │ ├── SS/ │ │ │ ├── SSPartyThread.java │ │ │ └── SSTest.java │ │ ├── experiment/ │ │ │ ├── AccuracyTest.java │ │ │ └── TimeTest.java │ │ ├── main/ │ │ │ ├── CMSZ2MainTest.java │ │ │ ├── GKMainTest.java │ │ │ ├── HLLMainTest.java │ │ │ ├── LocalTest.java │ │ │ └── SSMainTest.java │ │ └── utils/ │ │ ├── LowMcCircuit.java │ │ ├── TestDataGenerator.java │ │ ├── Utils.java │ │ ├── cms/ │ │ │ ├── AbstractCMSBatchImpl.java │ │ │ ├── CMS.java │ │ │ ├── CMSNaiveImpl.java │ │ │ ├── CMSv1BatchImpl.java │ │ │ └── CMSv2BatchImpl.java │ │ ├── gk/ │ │ │ ├── AbstractGK.java │ │ │ ├── GK.java │ │ │ ├── GKBatchImpl.java │ │ │ └── Representative.java │ │ ├── hll/ │ │ │ ├── HLL.java │ │ │ └── HLLImpl.java │ │ └── ss/ │ │ ├── SS.java │ │ └── SSBatchImpl.java │ └── resources/ │ ├── conf_cms_example.conf │ ├── conf_gk_example.conf │ ├── conf_hll_example.conf │ ├── conf_ss_example.conf │ └── log4j.properties ├── mpc4j-work-dpsi/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── dpsi/ │ │ ├── AbstractDpsiClient.java │ │ ├── AbstractDpsiServer.java │ │ ├── DpsiClient.java │ │ ├── DpsiConfig.java │ │ ├── DpsiFactory.java │ │ ├── DpsiServer.java │ │ ├── ccpsi/ │ │ │ ├── CcpsiDpsiClient.java │ │ │ ├── CcpsiDpsiConfig.java │ │ │ ├── CcpsiDpsiPtoDesc.java │ │ │ └── CcpsiDpsiServer.java │ │ ├── main/ │ │ │ ├── DpsiConfigUtils.java │ │ │ ├── DpsiMain.java │ │ │ └── DpsiMainType.java │ │ └── mqrpmt/ │ │ ├── MqRpmtDpUtils.java │ │ ├── MqRpmtDpsiClient.java │ │ ├── MqRpmtDpsiConfig.java │ │ ├── MqRpmtDpsiPtoDesc.java │ │ └── MqRpmtDpsiServer.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── dpsi/ │ │ ├── DpPsiClientThread.java │ │ ├── DpPsiParameterTest.java │ │ ├── DpPsiServerThread.java │ │ ├── DpPsiTest.java │ │ └── MainDpPsiTest.java │ └── resources/ │ ├── conf_dpsi_example.conf │ └── log4j.properties ├── mpc4j-work-femur/ │ ├── README.md │ ├── femur-common/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── work/ │ │ │ └── femur/ │ │ │ ├── FemurSealPirNativeUtils.java │ │ │ ├── FemurSealPirParams.java │ │ │ ├── FileUtils.java │ │ │ ├── demo/ │ │ │ │ ├── AbstractFemurDemoPirClient.java │ │ │ │ ├── AbstractFemurDemoPirServer.java │ │ │ │ ├── FemurDemoPirClient.java │ │ │ │ ├── FemurDemoPirConfig.java │ │ │ │ ├── FemurDemoPirFactory.java │ │ │ │ ├── FemurDemoPirServer.java │ │ │ │ ├── FemurDemoPirType.java │ │ │ │ ├── FemurStatus.java │ │ │ │ ├── naive/ │ │ │ │ │ ├── NaiveFemurDemoMemoryPirClient.java │ │ │ │ │ ├── NaiveFemurDemoMemoryPirConfig.java │ │ │ │ │ ├── NaiveFemurDemoMemoryPirServer.java │ │ │ │ │ ├── NaiveFemurDemoRedisPirClient.java │ │ │ │ │ ├── NaiveFemurDemoRedisPirConfig.java │ │ │ │ │ └── NaiveFemurDemoRedisPirServer.java │ │ │ │ └── seal/ │ │ │ │ ├── SealFemurDemoMemoryPirClient.java │ │ │ │ ├── SealFemurDemoMemoryPirConfig.java │ │ │ │ ├── SealFemurDemoMemoryPirServer.java │ │ │ │ ├── SealFemurDemoRedisPirClient.java │ │ │ │ ├── SealFemurDemoRedisPirConfig.java │ │ │ │ └── SealFemurDemoRedisPirServer.java │ │ │ └── redis/ │ │ │ ├── RedisHeaderBytesArray.java │ │ │ ├── RedisHeaderMap.java │ │ │ └── RedisHeaderSet.java │ │ └── test/ │ │ ├── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── work/ │ │ │ └── femur/ │ │ │ ├── FileUtilsTest.java │ │ │ ├── demo/ │ │ │ │ └── FemurDemoPirTest.java │ │ │ └── redis/ │ │ │ ├── RedisHeaderBytesArrayTest.java │ │ │ ├── RedisHeaderMapTest.java │ │ │ └── RedisHeaderSetTest.java │ │ └── resources/ │ │ └── log4j.properties │ ├── femur-native-fhe/ │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── seal/ │ │ │ ├── edu_alibaba_work_femur_FemurSealPirNativeUtils.cpp │ │ │ └── edu_alibaba_work_femur_FemurSealPirNativeUtils.h │ │ ├── serialize.cpp │ │ ├── serialize.h │ │ ├── utils.cpp │ │ └── utils.h │ ├── femur-rpc/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── work/ │ │ │ └── femur/ │ │ │ ├── AbstractFemurRpcPirClient.java │ │ │ ├── AbstractFemurRpcPirServer.java │ │ │ ├── FemurRpcPirClient.java │ │ │ ├── FemurRpcPirConfig.java │ │ │ ├── FemurRpcPirFactory.java │ │ │ ├── FemurRpcPirServer.java │ │ │ ├── main/ │ │ │ │ ├── FemurPirMain.java │ │ │ │ ├── FemurRpcPirConfigUtils.java │ │ │ │ └── FemurRpcPirMain.java │ │ │ ├── naive/ │ │ │ │ ├── NaiveFemurRpcPirClient.java │ │ │ │ ├── NaiveFemurRpcPirConfig.java │ │ │ │ ├── NaiveFemurRpcPirPtoDesc.java │ │ │ │ └── NaiveFemurRpcPirServer.java │ │ │ └── seal/ │ │ │ ├── SealFemurRpcPirClient.java │ │ │ ├── SealFemurRpcPirConfig.java │ │ │ ├── SealFemurRpcPirPtoDesc.java │ │ │ └── SealFemurRpcPirServer.java │ │ └── test/ │ │ ├── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── work/ │ │ │ └── femur/ │ │ │ ├── FemurRpcPirClientThread.java │ │ │ ├── FemurRpcPirServerThread.java │ │ │ └── FemurRpcPirTest.java │ │ └── resources/ │ │ ├── femur_conf.conf │ │ └── log4j.properties │ ├── femur-service/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── femur/ │ │ │ └── service/ │ │ │ ├── client/ │ │ │ │ └── FemurPirClient.java │ │ │ ├── main/ │ │ │ │ ├── Benchmark.java │ │ │ │ ├── FemurPirConfigUtils.java │ │ │ │ ├── FemurPirMain.java │ │ │ │ ├── UpdateKey.java │ │ │ │ └── UpdateValue.java │ │ │ └── server/ │ │ │ ├── FemurNaiveMemoryPirServerBoot.java │ │ │ ├── FemurNaiveRedisPirServerBoot.java │ │ │ ├── FemurPirServerBoot.java │ │ │ ├── FemurPirServerBootFactory.java │ │ │ ├── FemurPirServerProxy.java │ │ │ ├── FemurSealMemoryPirServerBoot.java │ │ │ └── FemurSealRedisPirServerBoot.java │ │ └── test/ │ │ ├── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── femur/ │ │ │ └── service/ │ │ │ └── server/ │ │ │ └── NaiveRedisServiceTest.java │ │ └── resources/ │ │ ├── femur_conf.conf │ │ └── log4j.properties │ ├── femur-service-api/ │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── proto/ │ │ └── femur_service_pir_server.proto │ └── pom.xml ├── mpc4j-work-payable/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── payable/ │ │ ├── main/ │ │ │ ├── PayableMain.java │ │ │ ├── pir/ │ │ │ │ ├── PayablePirConfigUtils.java │ │ │ │ ├── PayablePirMain.java │ │ │ │ └── PayablePirMainType.java │ │ │ └── psi/ │ │ │ ├── PayablePsiConfigUtils.java │ │ │ ├── PayablePsiMain.java │ │ │ └── PayablePsiMainType.java │ │ ├── pir/ │ │ │ ├── AbstractPayablePirClient.java │ │ │ ├── AbstractPayablePirServer.java │ │ │ ├── PayablePirClient.java │ │ │ ├── PayablePirConfig.java │ │ │ ├── PayablePirFactory.java │ │ │ ├── PayablePirServer.java │ │ │ ├── baseline/ │ │ │ │ ├── BaselinePayablePirClient.java │ │ │ │ ├── BaselinePayablePirConfig.java │ │ │ │ ├── BaselinePayablePirPtoDesc.java │ │ │ │ └── BaselinePayablePirServer.java │ │ │ └── zlp24/ │ │ │ ├── Zlp24PayablePirClient.java │ │ │ ├── Zlp24PayablePirConfig.java │ │ │ ├── Zlp24PayablePirPtoDesc.java │ │ │ └── Zlp24PayablePirServer.java │ │ └── psi/ │ │ ├── AbstractPayablePsiClient.java │ │ ├── AbstractPayablePsiServer.java │ │ ├── PayablePsiClient.java │ │ ├── PayablePsiConfig.java │ │ ├── PayablePsiFactory.java │ │ ├── PayablePsiServer.java │ │ ├── baseline/ │ │ │ ├── BaselinePayablePsiClient.java │ │ │ ├── BaselinePayablePsiConfig.java │ │ │ ├── BaselinePayablePsiPtoDesc.java │ │ │ └── BaselinePayablePsiServer.java │ │ └── zlp24/ │ │ ├── Zlp24PayablePsiClient.java │ │ ├── Zlp24PayablePsiConfig.java │ │ ├── Zlp24PayablePsiPtoDesc.java │ │ └── Zlp24PayablePsiServer.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── payable/ │ │ ├── pir/ │ │ │ ├── PayablePirClientThread.java │ │ │ ├── PayablePirServerThread.java │ │ │ └── PayablePirTest.java │ │ └── psi/ │ │ ├── PayablePsiClientThread.java │ │ ├── PayablePsiServerThread.java │ │ └── PayablePsiTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-work-psipir/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ ├── AbstractBatchPirClient.java │ │ ├── AbstractBatchPirServer.java │ │ ├── BatchPirClient.java │ │ ├── BatchPirConfig.java │ │ ├── BatchPirFactory.java │ │ ├── BatchPirServer.java │ │ ├── psipir/ │ │ │ ├── Lpzl24BatchPirClient.java │ │ │ ├── Lpzl24BatchPirConfig.java │ │ │ ├── Lpzl24BatchPirNativeUtils.java │ │ │ ├── Lpzl24BatchPirPtoDesc.java │ │ │ └── Lpzl24BatchPirServer.java │ │ └── vectoried/ │ │ ├── VectorizedBatchPirClient.java │ │ ├── VectorizedBatchPirConfig.java │ │ ├── VectorizedBatchPirPtoDesc.java │ │ └── VectorizedBatchPirServer.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ ├── BatchPirClientThread.java │ │ ├── BatchPirServerThread.java │ │ └── BatchPirTest.java │ └── resources/ │ └── log4j.properties ├── mpc4j-work-scape/ │ ├── 2022_ICDE_SCAPE.md │ ├── pom.xml │ ├── scape-s3pc-db/ │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── mpc4j/ │ │ │ └── work/ │ │ │ └── scape/ │ │ │ └── s3pc/ │ │ │ └── db/ │ │ │ ├── AbstractThreePartyDbPto.java │ │ │ ├── ThreePartyDbPto.java │ │ │ ├── group/ │ │ │ │ ├── AbstractGroupParty.java │ │ │ │ ├── GroupConfig.java │ │ │ │ ├── GroupFnParam.java │ │ │ │ ├── GroupParty.java │ │ │ │ ├── extreme/ │ │ │ │ │ ├── GroupExtremeConfig.java │ │ │ │ │ ├── GroupExtremeFactory.java │ │ │ │ │ ├── GroupExtremeParty.java │ │ │ │ │ └── hzf22/ │ │ │ │ │ ├── Hzf22GroupExtremeConfig.java │ │ │ │ │ ├── Hzf22GroupExtremeParty.java │ │ │ │ │ └── Hzf22GroupExtremePtoDesc.java │ │ │ │ └── sum/ │ │ │ │ ├── GroupSumConfig.java │ │ │ │ ├── GroupSumFactory.java │ │ │ │ ├── GroupSumParty.java │ │ │ │ ├── hzf22/ │ │ │ │ │ ├── Hzf22GroupSumConfig.java │ │ │ │ │ ├── Hzf22GroupSumParty.java │ │ │ │ │ └── Hzf22GroupSumPtoDesc.java │ │ │ │ └── hzf22ext/ │ │ │ │ ├── Hzf22ExtGroupSumConfig.java │ │ │ │ ├── Hzf22ExtGroupSumParty.java │ │ │ │ └── Hzf22ExtGroupSumPtoDesc.java │ │ │ ├── join/ │ │ │ │ ├── general/ │ │ │ │ │ ├── AbstractGeneralJoinParty.java │ │ │ │ │ ├── GeneralJoinConfig.java │ │ │ │ │ ├── GeneralJoinFactory.java │ │ │ │ │ ├── GeneralJoinFnParam.java │ │ │ │ │ ├── GeneralJoinParty.java │ │ │ │ │ └── hzf22/ │ │ │ │ │ ├── Hzf22GeneralJoinConfig.java │ │ │ │ │ ├── Hzf22GeneralJoinParty.java │ │ │ │ │ └── Hzf22GeneralJoinPtoDesc.java │ │ │ │ ├── pkfk/ │ │ │ │ │ ├── AbstractPkFkJoinParty.java │ │ │ │ │ ├── PkFkJoinConfig.java │ │ │ │ │ ├── PkFkJoinFactory.java │ │ │ │ │ ├── PkFkJoinFnParam.java │ │ │ │ │ ├── PkFkJoinParty.java │ │ │ │ │ └── hzf22/ │ │ │ │ │ ├── Hzf22PkFkJoinConfig.java │ │ │ │ │ ├── Hzf22PkFkJoinParty.java │ │ │ │ │ └── Hzf22PkFkJoinPtoDesc.java │ │ │ │ └── pkpk/ │ │ │ │ ├── AbstractPkPkJoinParty.java │ │ │ │ ├── PkPkJoinConfig.java │ │ │ │ ├── PkPkJoinFactory.java │ │ │ │ ├── PkPkJoinFnParam.java │ │ │ │ ├── PkPkJoinParty.java │ │ │ │ ├── hzf22/ │ │ │ │ │ ├── Hzf22PkPkJoinConfig.java │ │ │ │ │ ├── Hzf22PkPkJoinParty.java │ │ │ │ │ └── Hzf22PkPkJoinPtoDesc.java │ │ │ │ └── mrr20/ │ │ │ │ ├── Mrr20PkPkJoinConfig.java │ │ │ │ ├── Mrr20PkPkJoinParty.java │ │ │ │ └── Mrr20PkPkJoinPtoDesc.java │ │ │ ├── main/ │ │ │ │ ├── ScapeDbMain.java │ │ │ │ ├── group/ │ │ │ │ │ ├── extreme/ │ │ │ │ │ │ ├── GroupExtremeConfigUtils.java │ │ │ │ │ │ └── GroupExtremeMain.java │ │ │ │ │ └── sum/ │ │ │ │ │ ├── GroupSumConfigUtils.java │ │ │ │ │ └── GroupSumMain.java │ │ │ │ ├── join/ │ │ │ │ │ ├── general/ │ │ │ │ │ │ ├── GeneralJoinConfigUtils.java │ │ │ │ │ │ └── GeneralJoinMain.java │ │ │ │ │ ├── pkfk/ │ │ │ │ │ │ ├── PkFkJoinConfigUtils.java │ │ │ │ │ │ └── PkFkJoinMain.java │ │ │ │ │ └── pkpk/ │ │ │ │ │ ├── PkPkJoinConfigUtils.java │ │ │ │ │ └── PkPkJoinMain.java │ │ │ │ ├── orderby/ │ │ │ │ │ ├── OrderByConfigUtils.java │ │ │ │ │ └── OrderByMain.java │ │ │ │ └── semijoin/ │ │ │ │ ├── general/ │ │ │ │ │ ├── GeneralSemiJoinConfigUtils.java │ │ │ │ │ └── GeneralSemiJoinMain.java │ │ │ │ └── pkpk/ │ │ │ │ ├── PkPkSemiJoinConfigUtils.java │ │ │ │ └── PkPkSemiJoinMain.java │ │ │ ├── orderby/ │ │ │ │ ├── AbstractOrderByParty.java │ │ │ │ ├── OrderByConfig.java │ │ │ │ ├── OrderByFactory.java │ │ │ │ ├── OrderByFnParam.java │ │ │ │ ├── OrderByParty.java │ │ │ │ ├── hzf22/ │ │ │ │ │ ├── Hzf22OrderByConfig.java │ │ │ │ │ ├── Hzf22OrderByParty.java │ │ │ │ │ └── Hzf22OrderByPtoDesc.java │ │ │ │ └── naive/ │ │ │ │ ├── NaiveOrderByConfig.java │ │ │ │ ├── NaiveOrderByParty.java │ │ │ │ └── NaiveOrderByPtoDesc.java │ │ │ ├── semijoin/ │ │ │ │ ├── SemiJoinFnParam.java │ │ │ │ ├── general/ │ │ │ │ │ ├── GeneralSemiJoinConfig.java │ │ │ │ │ ├── GeneralSemiJoinFactory.java │ │ │ │ │ ├── GeneralSemiJoinParty.java │ │ │ │ │ └── hzf22/ │ │ │ │ │ ├── Hzf22GeneralSemiJoinConfig.java │ │ │ │ │ ├── Hzf22GeneralSemiJoinParty.java │ │ │ │ │ └── Hzf22GeneralSemiJoinPtoDesc.java │ │ │ │ └── pkpk/ │ │ │ │ ├── AbstractPkPkSemiJoinParty.java │ │ │ │ ├── PkPkSemiJoinConfig.java │ │ │ │ ├── PkPkSemiJoinFactory.java │ │ │ │ ├── PkPkSemiJoinParty.java │ │ │ │ ├── hzf22/ │ │ │ │ │ ├── Hzf22PkPkSemiJoinConfig.java │ │ │ │ │ ├── Hzf22PkPkSemiJoinParty.java │ │ │ │ │ └── Hzf22PkPkSemiJoinPtoDesc.java │ │ │ │ └── mrr20/ │ │ │ │ ├── Mrr20PkPkSemiJoinConfig.java │ │ │ │ ├── Mrr20PkPkSemiJoinParty.java │ │ │ │ └── Mrr20PkPkSemiJoinPtoDesc.java │ │ │ └── tools/ │ │ │ ├── CuckooHashWithPos.java │ │ │ ├── InputProcessUtils.java │ │ │ ├── JoinInputUtils.java │ │ │ ├── SortUtils.java │ │ │ ├── fillper/ │ │ │ │ ├── AbstractFillPermutationParty.java │ │ │ │ ├── FillPerOperations.java │ │ │ │ ├── FillPermutationConfig.java │ │ │ │ ├── FillPermutationFactory.java │ │ │ │ ├── FillPermutationParty.java │ │ │ │ ├── hzf22/ │ │ │ │ │ ├── Hzf22FillPermutationConfig.java │ │ │ │ │ ├── Hzf22FillPermutationParty.java │ │ │ │ │ └── Hzf22FillPermutationPtoDesc.java │ │ │ │ └── kks20/ │ │ │ │ ├── Kks20FillPermutationConfig.java │ │ │ │ ├── Kks20FillPermutationParty.java │ │ │ │ └── Kks20FillPermutationPtoDesc.java │ │ │ ├── randenc/ │ │ │ │ ├── RandomEncodingConfig.java │ │ │ │ ├── RandomEncodingFactory.java │ │ │ │ ├── RandomEncodingFnParam.java │ │ │ │ ├── RandomEncodingParty.java │ │ │ │ └── mrr20/ │ │ │ │ ├── Mrr20RandomEncodingConfig.java │ │ │ │ ├── Mrr20RandomEncodingParty.java │ │ │ │ └── Mrr20RandomEncodingPtoDesc.java │ │ │ └── sortsign/ │ │ │ ├── SortSignConfig.java │ │ │ ├── SortSignFactory.java │ │ │ ├── SortSignFnParam.java │ │ │ ├── SortSignParty.java │ │ │ └── hzf22/ │ │ │ ├── Hzf22SortSignConfig.java │ │ │ ├── Hzf22SortSignParty.java │ │ │ └── Hzf22SortSignPtoDesc.java │ │ └── test/ │ │ ├── java/ │ │ │ └── edu/ │ │ │ └── alibaba/ │ │ │ └── mpc4j/ │ │ │ └── work/ │ │ │ └── scape/ │ │ │ └── s3pc/ │ │ │ └── db/ │ │ │ ├── JoinResVerifyUtils.java │ │ │ ├── group/ │ │ │ │ ├── GroupFlagTest.java │ │ │ │ ├── GroupPartyThread.java │ │ │ │ ├── extreme/ │ │ │ │ │ ├── GroupExtremePartyThread.java │ │ │ │ │ └── GroupExtremeTest.java │ │ │ │ └── sum/ │ │ │ │ ├── GroupSumPartyThread.java │ │ │ │ └── GroupSumTest.java │ │ │ ├── join/ │ │ │ │ ├── general/ │ │ │ │ │ ├── GeneralJoinPartyThread.java │ │ │ │ │ └── GeneralJoinTest.java │ │ │ │ ├── pkfk/ │ │ │ │ │ ├── PkFkJoinPartyThread.java │ │ │ │ │ └── PkFkJoinTest.java │ │ │ │ └── pkpk/ │ │ │ │ ├── PkPkJoinPartyThread.java │ │ │ │ └── PkPkJoinTest.java │ │ │ ├── main/ │ │ │ │ ├── group/ │ │ │ │ │ ├── MainGroupExtremeTest.java │ │ │ │ │ └── MainGroupSumTest.java │ │ │ │ ├── join/ │ │ │ │ │ ├── MainGeneralJoinTest.java │ │ │ │ │ ├── MainPkFkJoinTest.java │ │ │ │ │ └── MainPkPkJoinTest.java │ │ │ │ ├── orderby/ │ │ │ │ │ └── MainOrderByTest.java │ │ │ │ └── semijoin/ │ │ │ │ ├── MainGeneralSemiJoinTest.java │ │ │ │ └── MainPkPkSemiJoinTest.java │ │ │ ├── orderby/ │ │ │ │ ├── OrderByPartyThread.java │ │ │ │ └── OrderByTest.java │ │ │ ├── semijoin/ │ │ │ │ ├── general/ │ │ │ │ │ ├── GeneralSemiJoinPartyThread.java │ │ │ │ │ └── GeneralSemiJoinTest.java │ │ │ │ └── pkpk/ │ │ │ │ ├── PkPkSemiJoinPartyThread.java │ │ │ │ └── PkPkSemiJoinTest.java │ │ │ └── tools/ │ │ │ ├── SortUtilsTest.java │ │ │ ├── fillper/ │ │ │ │ ├── FillPermutationPartyThread.java │ │ │ │ └── FillPermutationTest.java │ │ │ ├── randenc/ │ │ │ │ ├── RandomEncodingPartyThread.java │ │ │ │ └── RandomEncodingTest.java │ │ │ └── sortsign/ │ │ │ ├── SortSignPartyThread.java │ │ │ └── SortSignTest.java │ │ └── resources/ │ │ ├── conf_general_join_example.conf │ │ ├── conf_general_semi_join_example.conf │ │ ├── conf_group_extreme_example.conf │ │ ├── conf_group_sum_example.conf │ │ ├── conf_order_by_example.conf │ │ ├── conf_pk_fk_join_example.conf │ │ ├── conf_pk_pk_join_example.conf │ │ ├── conf_pk_pk_semi_join_example.conf │ │ ├── log4j.properties │ │ └── testDb/ │ │ ├── conf_general_join_hzf22_sorted.conf │ │ ├── conf_general_join_hzf22_unsorted.conf │ │ ├── conf_group_extreme_hzf22.conf │ │ ├── conf_group_sum_hzf22.conf │ │ ├── conf_group_sum_hzf22ext.conf │ │ ├── conf_order_by_hzf22.conf │ │ ├── conf_order_by_naive.conf │ │ ├── conf_pk_pk_join_hzf22_sorted.conf │ │ ├── conf_pk_pk_join_hzf22_unsorted.conf │ │ └── conf_pk_pk_join_mrr20.conf │ └── scape-s3pc-opf/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── scape/ │ │ └── s3pc/ │ │ └── opf/ │ │ ├── AbstractThreePartyOpfPto.java │ │ ├── ThreePartyOpfPto.java │ │ ├── agg/ │ │ │ ├── AbstractAggParty.java │ │ │ ├── AggConfig.java │ │ │ ├── AggFactory.java │ │ │ ├── AggFnParam.java │ │ │ ├── AggParty.java │ │ │ └── hzf22/ │ │ │ ├── Hzf22AggConfig.java │ │ │ ├── Hzf22AggParty.java │ │ │ └── Hzf22AggPtoDesc.java │ │ ├── main/ │ │ │ ├── ScapeOpfMain.java │ │ │ ├── agg/ │ │ │ │ ├── AggConfigUtils.java │ │ │ │ └── AggMain.java │ │ │ ├── permutation/ │ │ │ │ ├── PermutationConfigUtils.java │ │ │ │ └── PermutationMain.java │ │ │ └── pgsort/ │ │ │ ├── PgSortConfigUtils.java │ │ │ └── PgSortMain.java │ │ ├── merge/ │ │ │ ├── MergeConfig.java │ │ │ ├── MergeFactory.java │ │ │ ├── MergeFnParam.java │ │ │ ├── MergeParty.java │ │ │ └── bitonic/ │ │ │ ├── BitonicMergeCircuit.java │ │ │ ├── BitonicMergeConfig.java │ │ │ ├── BitonicMergeParty.java │ │ │ └── BitonicMergePtoDesc.java │ │ ├── permutation/ │ │ │ ├── AbstractPermuteParty.java │ │ │ ├── PermuteConfig.java │ │ │ ├── PermuteFactory.java │ │ │ ├── PermuteOperations.java │ │ │ ├── PermuteParty.java │ │ │ └── ahi22/ │ │ │ ├── Ahi22PermuteConfig.java │ │ │ ├── Ahi22PermuteParty.java │ │ │ └── Ahi22PermutePtoDesc.java │ │ ├── pgsort/ │ │ │ ├── AbstractPgSortParty.java │ │ │ ├── PgSortConfig.java │ │ │ ├── PgSortFactory.java │ │ │ ├── PgSortOperations.java │ │ │ ├── PgSortParty.java │ │ │ ├── bitonic/ │ │ │ │ ├── BitonicPgSortConfig.java │ │ │ │ ├── BitonicPgSortParty.java │ │ │ │ └── BitonicPgSortPtoDesc.java │ │ │ ├── mixed/ │ │ │ │ ├── hzf22/ │ │ │ │ │ ├── Hzf22PgSortConfig.java │ │ │ │ │ ├── Hzf22PgSortParty.java │ │ │ │ │ └── Hzf22PgSortPtoDesc.java │ │ │ │ └── opt/ │ │ │ │ ├── OptPgSortConfig.java │ │ │ │ ├── OptPgSortParty.java │ │ │ │ └── OptPgSortPtoDesc.java │ │ │ ├── quick/ │ │ │ │ ├── QuickPgSortConfig.java │ │ │ │ ├── QuickPgSortParty.java │ │ │ │ └── QuickPgSortPtoDesc.java │ │ │ └── radix/ │ │ │ ├── RadixPgSortConfig.java │ │ │ ├── RadixPgSortParty.java │ │ │ └── RadixPgSortPtoDesc.java │ │ ├── soprp/ │ │ │ ├── AbstractSoprpParty.java │ │ │ ├── SoprpConfig.java │ │ │ ├── SoprpFactory.java │ │ │ ├── SoprpOperations.java │ │ │ ├── SoprpParam.java │ │ │ ├── SoprpParty.java │ │ │ └── lowmc/ │ │ │ ├── LowMcParam.java │ │ │ ├── LowMcParamUtils.java │ │ │ ├── LowMcSoprpConfig.java │ │ │ ├── LowMcSoprpParty.java │ │ │ ├── LowMcSoprpPtoDesc.java │ │ │ └── MatrixUtils.java │ │ └── traversal/ │ │ ├── AbstractTraversalParty.java │ │ ├── TraversalConfig.java │ │ ├── TraversalFactory.java │ │ ├── TraversalOperations.java │ │ ├── TraversalParty.java │ │ └── hzf22/ │ │ ├── Hzf22TraversalConfig.java │ │ ├── Hzf22TraversalParty.java │ │ └── Hzf22TraversalPtoDesc.java │ └── test/ │ ├── java/ │ │ └── edu/ │ │ └── alibaba/ │ │ └── mpc4j/ │ │ └── work/ │ │ └── scape/ │ │ └── s3pc/ │ │ └── opf/ │ │ ├── agg/ │ │ │ ├── AggPartyThread.java │ │ │ └── AggTest.java │ │ ├── main/ │ │ │ ├── MainAggTest.java │ │ │ ├── MainPermutationTest.java │ │ │ └── MainPgSortTest.java │ │ ├── merge/ │ │ │ ├── MergePartyThread.java │ │ │ └── MergeTest.java │ │ ├── permutation/ │ │ │ ├── PermutationPartyThread.java │ │ │ └── PermutationTest.java │ │ ├── pgsort/ │ │ │ ├── MixPgSortTest.java │ │ │ ├── PgSortPartyThread.java │ │ │ ├── PgSortTest.java │ │ │ └── PgSortTestUtils.java │ │ ├── soprp/ │ │ │ ├── SoprpPartyThread.java │ │ │ └── SoprpTest.java │ │ └── traversal/ │ │ ├── TraversalPartyThread.java │ │ └── TraversalTest.java │ └── resources/ │ ├── conf_agg_example.conf │ ├── conf_permutation_example.conf │ ├── conf_pg_sort_example.conf │ └── log4j.properties └── pom.xml