encryptogroup / tasty

Tool for Automating efficient Secure Two-partY computation protocols
10 stars 5 forks source link

Conversion to GarbledVec is broken #7

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Try to run:
Protocol:
    # input of client
    client.v = UnsignedVec(bitlen=8, dim=2)
    client.v.input(desc="enter values for v")
    # convert unsigned to garbled vector
    client.gv = GarbledVec(val=client.v)

You'll get:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/bin/tasty", line 8, in <module>
    load_entry_point('Tasty==Binary', 'console_scripts', 'tasty')()
  File "tasty/scripts/main.py", line 36, in start
  File "tasty/protocol_mode.py", line 137, in process_server_mode
  File "tasty/tastyc/tastyc.py", line 249, in compiler_start
  File "tasty/tastyc/analyze_costs.py", line 217, in analyze_costs
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 243, in visit
    return visitor(node)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 251, in generic_visit
    self.visit(item)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 243, in visit
    return visitor(node)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 251, in generic_visit
    self.visit(item)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 243, in visit
    return visitor(node)
  File "tasty/tastyc/analyze_costs.py", line 138, in visit_Assign
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 243, in visit
    return visitor(node)
  File "tasty/tastyc/analyze_costs.py", line 185, in visit_Call
  File "tasty/tastyc/analyze_costs.py", line 146, in visit_constructor
  File "tasty/tastyc/analyze_costs.py", line 210, in check_costs
  File "tasty/types/__init__.py", line 2197, in calc_costs

NotImplementedError: calc_costs() not implemented for 
GarbledVec.GarbledVec([<class 'tasty.types.UnsignedVec'>])

Same with SignedVec and ModularVec to GarbledVec.
I'm running Tasty 0.1.3 on MacOSX 10.6.8 with Python 2.7.1

P.S. All but one testcases in tasty/tests/functional/conversion_tests.py are 
commented out.

Original issue reported on code.google.com by nullacht...@gmx.li on 5 Jul 2011 at 12:40

GoogleCodeExporter commented 9 years ago
Conversions are done with the TASTY operator, i.e., 
client.gv <<= GarbledVec(val=client.v)
instead of
client.gy = GarbledVec(val=client.v)

In the next version of TASTY, we'll throw a more meaningful Error message which 
includes this hint.

Original comment by thomasch...@gmail.com on 7 Jul 2011 at 12:47