Skip to content

Commit

Permalink
Update LLV2 protos to fit the per computation ElGamalKey design. (#34)
Browse files Browse the repository at this point in the history
* Update LLV2 protos to fit the per computation ElGamalKey design.

1. Two extra stages are added to the protocl, i.e., INITIALIZATION_PHASE and
WAIT_REQUISITIONS_AND_KEY_SET.

2. CONFIRM_REQUISITIONS_PHASE is changed to CONFIRMATION_PHASE. In this
stage, the mill will confirms that
-- all local requisitions are present (it won't read and combine the
actual requisitions and write the result as an output anymore. The actual
requsitions are read later in the Setup phase. This saves storing
another copy of all requistions.)
-- EDP signatures and other duchies signatures are all valid.

3. ToConfirmRequisitionsStageDetails proto will be deprecated. The
requisitionList would be included in the serialized KingdomComputation
in the ComputationDetails.

* Add kingdomComputationDetails to the duchy internal ComputationDetails.

* Add kingdomComputationDetails to the duchy internal ComputationDetails.
  • Loading branch information
wangyaopw authored May 17, 2021
1 parent 780bd5d commit 3dec704
Show file tree
Hide file tree
Showing 60 changed files with 648 additions and 303 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ cc_library(
"//src/main/cc/wfa/measurement/common/crypto:encryption_utility_helper",
"//src/main/cc/wfa/measurement/common/crypto:protocol_cryptor",
"//src/main/cc/wfa/measurement/common/crypto:started_thread_cpu_timer",
"//src/main/proto/wfa/measurement/protocol/crypto:liquid_legions_v2_encryption_methods_cc_proto",
"//src/main/proto/wfa/measurement/internal/duchy/protocol:liquid_legions_v2_encryption_methods_cc_proto",
"@any_sketch//src/main/cc/estimation:estimators",
"@any_sketch//src/main/cc/math:distributions",
"@any_sketch//src/main/cc/math:noise_parameters_computation",
Expand All @@ -46,7 +46,7 @@ cc_library(
":liquid_legions_v2_encryption_utility",
"//src/main/cc/wfa/measurement/common:macros",
"//src/main/cc/wfa/measurement/common/crypto:encryption_utility_helper",
"//src/main/proto/wfa/measurement/protocol/crypto:liquid_legions_v2_encryption_methods_cc_proto",
"//src/main/proto/wfa/measurement/internal/duchy/protocol:liquid_legions_v2_encryption_methods_cc_proto",
"@com_google_private_join_and_compute//util:status_includes",
],
)
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#include "wfa/measurement/protocol/liquid_legions_v2/liquid_legions_v2_encryption_utility.h"
#include "wfa/measurement/internal/duchy/protocol/liquid_legions_v2/liquid_legions_v2_encryption_utility.h"

#include <algorithm>
#include <string>
Expand All @@ -34,7 +34,7 @@
#include "wfa/measurement/common/macros.h"
#include "wfa/measurement/common/string_block_sorter.h"

namespace wfa::measurement::protocol::liquid_legions_v2 {
namespace wfa::measurement::internal::duchy::protocol::liquid_legions_v2 {

namespace {

Expand Down Expand Up @@ -1029,4 +1029,4 @@ CompleteExecutionPhaseThreeAtAggregator(
return response;
}

} // namespace wfa::measurement::protocol::liquid_legions_v2
} // namespace wfa::measurement::internal::duchy::protocol::liquid_legions_v2
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,40 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef SRC_MAIN_CC_WFA_MEASUREMENT_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_H_
#define SRC_MAIN_CC_WFA_MEASUREMENT_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_H_
#ifndef SRC_MAIN_CC_WFA_MEASUREMENT_INTERNAL_DUCHY_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_H_
#define SRC_MAIN_CC_WFA_MEASUREMENT_INTERNAL_DUCHY_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_H_

#include "absl/status/statusor.h"
#include "wfa/measurement/protocol/crypto/liquid_legions_v2_encryption_methods.pb.h"
#include "wfa/measurement/internal/duchy/protocol/liquid_legions_v2_encryption_methods.pb.h"

namespace wfa::measurement::protocol::liquid_legions_v2 {
namespace wfa::measurement::internal::duchy::protocol::liquid_legions_v2 {

using ::wfa::measurement::protocol::
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseOneAtAggregatorRequest;
using ::wfa::measurement::protocol::
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseOneAtAggregatorResponse;
using ::wfa::measurement::protocol::CompleteExecutionPhaseOneRequest;
using ::wfa::measurement::protocol::CompleteExecutionPhaseOneResponse;
using ::wfa::measurement::protocol::
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseOneRequest;
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseOneResponse;
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseThreeAtAggregatorRequest;
using ::wfa::measurement::protocol::
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseThreeAtAggregatorResponse;
using ::wfa::measurement::protocol::CompleteExecutionPhaseThreeRequest;
using ::wfa::measurement::protocol::CompleteExecutionPhaseThreeResponse;
using ::wfa::measurement::protocol::
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseThreeRequest;
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseThreeResponse;
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseTwoAtAggregatorRequest;
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseTwoAtAggregatorResponse;
using ::wfa::measurement::protocol::CompleteExecutionPhaseTwoRequest;
using ::wfa::measurement::protocol::CompleteExecutionPhaseTwoResponse;
using ::wfa::measurement::protocol::CompleteSetupPhaseRequest;
using ::wfa::measurement::protocol::CompleteSetupPhaseResponse;
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseTwoRequest;
using ::wfa::measurement::internal::duchy::protocol::
CompleteExecutionPhaseTwoResponse;
using ::wfa::measurement::internal::duchy::protocol::CompleteSetupPhaseRequest;
using ::wfa::measurement::internal::duchy::protocol::CompleteSetupPhaseResponse;

// Complete work in the setup phase at both the aggregator and non-aggregator
// workers. More specifically, the worker would
Expand Down Expand Up @@ -102,6 +110,6 @@ absl::StatusOr<CompleteExecutionPhaseThreeAtAggregatorResponse>
CompleteExecutionPhaseThreeAtAggregator(
const CompleteExecutionPhaseThreeAtAggregatorRequest& request);

} // namespace wfa::measurement::protocol::liquid_legions_v2
} // namespace wfa::measurement::internal::duchy::protocol::liquid_legions_v2

#endif // SRC_MAIN_CC_WFA_MEASUREMENT_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_H_
#endif // SRC_MAIN_CC_WFA_MEASUREMENT_INTERNAL_DUCHY_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_H_
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#include "wfa/measurement/protocol/liquid_legions_v2/liquid_legions_v2_encryption_utility_wrapper.h"
#include "wfa/measurement/internal/duchy/protocol/liquid_legions_v2/liquid_legions_v2_encryption_utility_wrapper.h"

#include "absl/status/statusor.h"
#include "util/status_macros.h"
#include "wfa/measurement/common/crypto/encryption_utility_helper.h"
#include "wfa/measurement/common/macros.h"
#include "wfa/measurement/protocol/crypto/liquid_legions_v2_encryption_methods.pb.h"
#include "wfa/measurement/protocol/liquid_legions_v2/liquid_legions_v2_encryption_utility.h"
#include "wfa/measurement/internal/duchy/protocol/liquid_legions_v2/liquid_legions_v2_encryption_utility.h"
#include "wfa/measurement/internal/duchy/protocol/liquid_legions_v2_encryption_methods.pb.h"

namespace wfa::measurement::protocol::liquid_legions_v2 {
namespace wfa::measurement::internal::duchy::protocol::liquid_legions_v2 {

using ::wfa::measurement::common::crypto::ParseRequestFromString;

Expand Down Expand Up @@ -89,4 +89,4 @@ absl::StatusOr<std::string> CompleteExecutionPhaseThreeAtAggregator(
return result.SerializeAsString();
}

} // namespace wfa::measurement::protocol::liquid_legions_v2
} // namespace wfa::measurement::internal::duchy::protocol::liquid_legions_v2
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef SRC_MAIN_CC_WFA_MEASUREMENT_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_WRAPPER_H_
#define SRC_MAIN_CC_WFA_MEASUREMENT_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_WRAPPER_H_
#ifndef SRC_MAIN_CC_WFA_MEASUREMENT_INTERNAL_DUCHY_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_WRAPPER_H_
#define SRC_MAIN_CC_WFA_MEASUREMENT_INTERNAL_DUCHY_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_WRAPPER_H_

#include <string>

Expand All @@ -23,7 +23,7 @@
// The only functionality of these methods are converting between proto messages
// and their corresponding serialized strings, and then calling into the
// liquid_legions_v2_encryption_utility methods.
namespace wfa::measurement::protocol::liquid_legions_v2 {
namespace wfa::measurement::internal::duchy::protocol::liquid_legions_v2 {

absl::StatusOr<std::string> CompleteSetupPhase(
const std::string& serialized_request);
Expand All @@ -46,6 +46,6 @@ absl::StatusOr<std::string> CompleteExecutionPhaseThree(
absl::StatusOr<std::string> CompleteExecutionPhaseThreeAtAggregator(
const std::string& serialized_request);

} // namespace wfa::measurement::protocol::liquid_legions_v2
} // namespace wfa::measurement::internal::duchy::protocol::liquid_legions_v2

#endif // SRC_MAIN_CC_WFA_MEASUREMENT_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_WRAPPER_H_
#endif // SRC_MAIN_CC_WFA_MEASUREMENT_INTERNAL_DUCHY_PROTOCOL_LIQUID_LEGIONS_V2_LIQUID_LEGIONS_V2_ENCRYPTION_UTILITY_WRAPPER_H_
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
package org.wfanet.measurement.duchy

import org.wfanet.measurement.internal.duchy.ComputationStage
import org.wfanet.measurement.protocol.LiquidLegionsSketchAggregationV2
import org.wfanet.measurement.internal.duchy.protocol.LiquidLegionsSketchAggregationV2
import org.wfanet.measurement.system.v1alpha.GlobalComputationStatusUpdate.MpcAlgorithm

val ComputationStage.name: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ kt_jvm_library(
"//src/main/kotlin/org/wfanet/measurement/duchy/db/computation",
"//src/main/proto/wfa/measurement/internal/duchy:computations_service_kt_jvm_grpc",
"//src/main/proto/wfa/measurement/internal/duchy/config:protocols_setup_config_java_proto",
"//src/main/proto/wfa/measurement/protocol:requisition_java_proto",
"//src/main/proto/wfa/measurement/internal/duchy/protocol:requisition_java_proto",
"//src/main/proto/wfa/measurement/system/v1alpha:global_computation_service_kt_jvm_grpc",
],
)
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import org.wfanet.measurement.duchy.service.internal.computation.toGetTokenReque
import org.wfanet.measurement.internal.duchy.ComputationDetails
import org.wfanet.measurement.internal.duchy.ComputationsGrpcKt.ComputationsCoroutineStub
import org.wfanet.measurement.internal.duchy.config.ProtocolsSetupConfig
import org.wfanet.measurement.protocol.RequisitionKey
import org.wfanet.measurement.internal.duchy.protocol.RequisitionKey
import org.wfanet.measurement.system.v1alpha.GlobalComputation
import org.wfanet.measurement.system.v1alpha.GlobalComputation.State
import org.wfanet.measurement.system.v1alpha.GlobalComputationsGrpcKt.GlobalComputationsCoroutineStub
Expand Down Expand Up @@ -186,8 +186,8 @@ class Herald(
private suspend fun startAttempt(globalId: String) {
logger.info("[id=$globalId]: Starting Computation")
val token = computationStorageClient.getComputationToken(globalId.toGetTokenRequest()).token
when (token.computationDetails.detailsCase) {
ComputationDetails.DetailsCase.LIQUID_LEGIONS_V2 ->
when (token.computationDetails.protocolCase) {
ComputationDetails.ProtocolCase.LIQUID_LEGIONS_V2 ->
LiquidLegionsV2Starter.startComputation(
token,
computationStorageClient,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import org.wfanet.measurement.internal.duchy.ComputationTypeEnum
import org.wfanet.measurement.internal.duchy.ComputationsGrpcKt.ComputationsCoroutineStub
import org.wfanet.measurement.internal.duchy.CreateComputationRequest
import org.wfanet.measurement.internal.duchy.config.ProtocolsSetupConfig
import org.wfanet.measurement.protocol.LiquidLegionsSketchAggregationV2.Stage
import org.wfanet.measurement.internal.duchy.protocol.LiquidLegionsSketchAggregationV2.Stage
import org.wfanet.measurement.system.v1alpha.GlobalComputation

object LiquidLegionsV2Starter : ProtocolStarter {
Expand Down Expand Up @@ -88,10 +88,12 @@ object LiquidLegionsV2Starter : ProtocolStarter {
}

// For past stages, we throw.
Stage.CONFIRM_REQUISITIONS_PHASE -> {
Stage.INITIALIZATION_PHASE,
Stage.WAIT_REQUISITIONS_AND_KEY_SET,
Stage.CONFIRMATION_PHASE -> {
error(
"[id=${token.globalComputationId}]: cannot start a computation still" +
" in state CONFIRM_REQUISITIONS_PHASE"
" in state ${stage.name}"
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ kt_jvm_library(
"//src/main/proto/wfa/measurement/internal/duchy:computation_token_java_proto",
"//src/main/proto/wfa/measurement/internal/duchy:metric_value_java_proto",
"//src/main/proto/wfa/measurement/internal/duchy:metric_values_service_kt_jvm_grpc",
"//src/main/proto/wfa/measurement/protocol:requisition_java_proto",
"//src/main/proto/wfa/measurement/internal/duchy/protocol:requisition_java_proto",
"//src/main/proto/wfa/measurement/system/v1alpha:computation_control_service_kt_jvm_grpc",
"//src/main/proto/wfa/measurement/system/v1alpha:global_computation_service_kt_jvm_grpc",
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ import org.wfanet.measurement.internal.duchy.GetMetricValueRequest
import org.wfanet.measurement.internal.duchy.MetricValue.ResourceKey
import org.wfanet.measurement.internal.duchy.MetricValuesGrpcKt
import org.wfanet.measurement.internal.duchy.StreamMetricValueRequest
import org.wfanet.measurement.protocol.RequisitionKey
import org.wfanet.measurement.internal.duchy.protocol.RequisitionKey
import org.wfanet.measurement.system.v1alpha.AdvanceComputationRequest
import org.wfanet.measurement.system.v1alpha.ComputationControlGrpcKt.ComputationControlCoroutineStub
import org.wfanet.measurement.system.v1alpha.CreateGlobalComputationStatusUpdateRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ kt_jvm_library(
"//src/main/kotlin/org/wfanet/measurement/duchy/service/system/v1alpha:advance_computation_request_headers",
"//src/main/proto/wfa/measurement/internal/duchy:metric_values_service_kt_jvm_grpc",
"//src/main/proto/wfa/measurement/internal/duchy/config:protocols_setup_config_java_proto",
"//src/main/proto/wfa/measurement/protocol:liquid_legions_v2_java_proto",
"//src/main/proto/wfa/measurement/protocol/crypto:liquid_legions_v2_encryption_methods_java_proto",
"//src/main/proto/wfa/measurement/protocol/crypto:liquid_legions_v2_noise_config_java_proto",
"//src/main/proto/wfa/measurement/internal/duchy/protocol:liquid_legions_v2_encryption_methods_java_proto",
"//src/main/proto/wfa/measurement/internal/duchy/protocol:liquid_legions_v2_java_proto",
"//src/main/proto/wfa/measurement/internal/duchy/protocol:liquid_legions_v2_noise_config_java_proto",
"//src/main/proto/wfa/measurement/system/v1alpha:computation_control_service_kt_jvm_grpc",
"//src/main/proto/wfa/measurement/system/v1alpha:global_computation_service_kt_jvm_grpc",
"//src/main/swig/protocol/liquidlegionsv2:liquid_legions_v2_encryption_utility",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,23 @@ import org.wfanet.measurement.internal.duchy.MetricValuesGrpcKt.MetricValuesCoro
import org.wfanet.measurement.internal.duchy.UpdateComputationDetailsRequest
import org.wfanet.measurement.internal.duchy.config.LiquidLegionsV2SetupConfig.RoleInComputation.AGGREGATOR
import org.wfanet.measurement.internal.duchy.config.LiquidLegionsV2SetupConfig.RoleInComputation.NON_AGGREGATOR
import org.wfanet.measurement.protocol.CompleteExecutionPhaseOneAtAggregatorRequest
import org.wfanet.measurement.protocol.CompleteExecutionPhaseOneAtAggregatorResponse
import org.wfanet.measurement.protocol.CompleteExecutionPhaseOneRequest
import org.wfanet.measurement.protocol.CompleteExecutionPhaseOneResponse
import org.wfanet.measurement.protocol.CompleteExecutionPhaseThreeAtAggregatorRequest
import org.wfanet.measurement.protocol.CompleteExecutionPhaseThreeAtAggregatorResponse
import org.wfanet.measurement.protocol.CompleteExecutionPhaseThreeRequest
import org.wfanet.measurement.protocol.CompleteExecutionPhaseThreeResponse
import org.wfanet.measurement.protocol.CompleteExecutionPhaseTwoAtAggregatorRequest
import org.wfanet.measurement.protocol.CompleteExecutionPhaseTwoAtAggregatorResponse
import org.wfanet.measurement.protocol.CompleteExecutionPhaseTwoRequest
import org.wfanet.measurement.protocol.CompleteExecutionPhaseTwoResponse
import org.wfanet.measurement.protocol.CompleteSetupPhaseRequest
import org.wfanet.measurement.protocol.CompleteSetupPhaseResponse
import org.wfanet.measurement.protocol.FlagCountTupleNoiseGenerationParameters
import org.wfanet.measurement.protocol.LiquidLegionsSketchAggregationV2.Stage
import org.wfanet.measurement.protocol.LiquidLegionsV2NoiseConfig
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseOneAtAggregatorRequest
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseOneAtAggregatorResponse
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseOneRequest
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseOneResponse
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseThreeAtAggregatorRequest
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseThreeAtAggregatorResponse
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseThreeRequest
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseThreeResponse
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseTwoAtAggregatorRequest
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseTwoAtAggregatorResponse
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseTwoRequest
import org.wfanet.measurement.internal.duchy.protocol.CompleteExecutionPhaseTwoResponse
import org.wfanet.measurement.internal.duchy.protocol.CompleteSetupPhaseRequest
import org.wfanet.measurement.internal.duchy.protocol.CompleteSetupPhaseResponse
import org.wfanet.measurement.internal.duchy.protocol.FlagCountTupleNoiseGenerationParameters
import org.wfanet.measurement.internal.duchy.protocol.LiquidLegionsSketchAggregationV2.Stage
import org.wfanet.measurement.internal.duchy.protocol.LiquidLegionsV2NoiseConfig
import org.wfanet.measurement.system.v1alpha.ComputationControlGrpcKt.ComputationControlCoroutineStub
import org.wfanet.measurement.system.v1alpha.ConfirmGlobalComputationRequest
import org.wfanet.measurement.system.v1alpha.FinishGlobalComputationRequest
Expand Down Expand Up @@ -131,8 +131,8 @@ class LiquidLegionsV2Mill(

private val actions =
mapOf(
Pair(Stage.CONFIRM_REQUISITIONS_PHASE, AGGREGATOR) to ::confirmRequisitions,
Pair(Stage.CONFIRM_REQUISITIONS_PHASE, NON_AGGREGATOR) to ::confirmRequisitions,
Pair(Stage.CONFIRMATION_PHASE, AGGREGATOR) to ::confirmRequisitions,
Pair(Stage.CONFIRMATION_PHASE, NON_AGGREGATOR) to ::confirmRequisitions,
Pair(Stage.SETUP_PHASE, AGGREGATOR) to ::completeSetupPhaseAtAggregator,
Pair(Stage.SETUP_PHASE, NON_AGGREGATOR) to ::completeSetupPhaseAtNonAggregator,
Pair(Stage.EXECUTION_PHASE_ONE, AGGREGATOR) to ::completeExecutionPhaseOneAtAggregator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ kt_jvm_library(
deps = [
"//imports/java/com/google/protobuf",
"//src/main/kotlin/org/wfanet/measurement/common",
"//src/main/proto/wfa/measurement/protocol/crypto:liquid_legions_v2_encryption_methods_java_proto",
"//src/main/proto/wfa/measurement/internal/duchy/protocol:liquid_legions_v2_encryption_methods_java_proto",
"//src/main/swig/protocol/liquidlegionsv2:liquid_legions_v2_encryption_utility",
],
)
Loading

0 comments on commit 3dec704

Please sign in to comment.