mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-10 07:08:05 -05:00
33 lines
824 B
Python
33 lines
824 B
Python
load('../mpc/share.sage')
|
|
|
|
def countZeros(x):
|
|
total_bits = 32
|
|
res = 0
|
|
count = 0
|
|
while ((x & (1 << (total_bits - 1))) == 0) and count < 32:
|
|
x = (x << 1)
|
|
res += 1
|
|
count += 1
|
|
return res
|
|
|
|
def sum_shares(shares, source, party_id):
|
|
zero_share = AuthenticatedShare(0, source, party_id)
|
|
for share in shares:
|
|
zero_share += share
|
|
return zero_share
|
|
|
|
def sum_ec_shares(shares):
|
|
zero_share = ECAuthenticatedShare(0)
|
|
for share in shares:
|
|
zero_share += share
|
|
return zero_share
|
|
|
|
def shares_mul(my_shares, peer_shares):
|
|
return sum([my_share * peer_share for my_share, peer_share in zip(my_shares, peer_shares)])
|
|
|
|
def to_ec_shares(ec):
|
|
return ECAuthenticatedShare(ec)
|
|
|
|
def to_ec_shares_list (ec_list):
|
|
return [to_ec_shares(ec) for ec in ec_list]
|