-
Notifications
You must be signed in to change notification settings - Fork 548
Expand file tree
/
Copy pathsecret_addition_complete.py
More file actions
38 lines (30 loc) · 1.6 KB
/
secret_addition_complete.py
File metadata and controls
38 lines (30 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from nada_dsl import *
def nada_main():
# Define three parties
party1 = Party(name="Party1")
party2 = Party(name="Party2")
party3 = Party(name="Party3")
# Define secret integers for each party
my_int1_party1 = SecretInteger(Input(name="my_int1_party1", party=party1))
my_int2_party1 = SecretInteger(Input(name="my_int2_party1", party=party1))
my_int3_party1 = SecretInteger(Input(name="my_int3_party1", party=party1))
my_int1_party2 = SecretInteger(Input(name="my_int1_party2", party=party2))
my_int2_party2 = SecretInteger(Input(name="my_int2_party2", party=party2))
my_int3_party2 = SecretInteger(Input(name="my_int3_party2", party=party2))
my_int1_party3 = SecretInteger(Input(name="my_int1_party3", party=party3))
my_int2_party3 = SecretInteger(Input(name="my_int2_party3", party=party3))
my_int3_party3 = SecretInteger(Input(name="my_int3_party3", party=party3))
# Perform complex operation involving all parties
intermediate_result1 = my_int1_party1 * my_int2_party2
intermediate_result2 = my_int2_party1 + my_int3_party2
intermediate_result3 = my_int3_party1 - my_int1_party2
final_result_party1 = intermediate_result1 + intermediate_result2
final_result_party2 = intermediate_result2 * intermediate_result3
final_result_party3 = intermediate_result3 + intermediate_result1
# Define outputs for each party
outputs = [
Output(final_result_party1, "output_party1", party1),
Output(final_result_party2, "output_party2", party2),
Output(final_result_party3, "output_party3", party3)
]
return outputs