utils.sage 824 B

1234567891011121314151617181920212223242526272829303132
  1. load('../mpc/share.sage')
  2. def countZeros(x):
  3. total_bits = 32
  4. res = 0
  5. count = 0
  6. while ((x & (1 << (total_bits - 1))) == 0) and count < 32:
  7. x = (x << 1)
  8. res += 1
  9. count += 1
  10. return res
  11. def sum_shares(shares, source, party_id):
  12. zero_share = AuthenticatedShare(0, source, party_id)
  13. for share in shares:
  14. zero_share += share
  15. return zero_share
  16. def sum_ec_shares(shares):
  17. zero_share = ECAuthenticatedShare(0)
  18. for share in shares:
  19. zero_share += share
  20. return zero_share
  21. def shares_mul(my_shares, peer_shares):
  22. return sum([my_share * peer_share for my_share, peer_share in zip(my_shares, peer_shares)])
  23. def to_ec_shares(ec):
  24. return ECAuthenticatedShare(ec)
  25. def to_ec_shares_list (ec_list):
  26. return [to_ec_shares(ec) for ec in ec_list]