[viff-devel] [PATCH 12 of 12] importeret rettelse triple_test.patch
Janus Dam Nielsen
janus.nielsen at alexandra.dk
Fri Jun 19 02:32:24 PDT 2009
# HG changeset patch
# User Janus Dam Nielsen <janus.nielsen at alexandra.dk>
# Date 1245395107 -7200
# Node ID 57f6d76d82e375b77293bcc6d54eeb6242686079
# Parent 4c46e8eeb719682da1a91b7ad96e7e902363e204
importeret rettelse triple_test.patch
diff --git a/viff/orlandi.py b/viff/orlandi.py
--- a/viff/orlandi.py
+++ b/viff/orlandi.py
@@ -932,7 +932,39 @@
self.schedule_callback(result, step2ab, ai, (r1, r2))
result.addErrback(self.error_handler)
return result
-
+
+ def triple_test(self, field):
+ triple1 = self.triple_gen(field)
+ triple2 = self.triple_gen(field)
+ r = self.open(self.random_share(field))
+
+ def check((v, oa, ob, oc, ox, oy, oz), a, b, c):
+ if v is 0:
+ return None
+ return (a, b, c)
+
+ def compute_value(((a, b, c), (x, y, z), r)):
+ oa = self.open(a)
+ ob = self.open(b)
+ oc = self.open(c)
+ ox = self.open(x)
+ oy = self.open(y)
+ oz = self.open(z)
+ l = self._cmul(r, x, field)
+ m = self._cmul(r, y, field)
+ n = self._cmul(r*r, z, field)
+ d = c - self._basic_multiplication(a, b, l, m, n)
+ r = gather_shares([d, oa, ob, oc, ox, oy, oz])
+ r.addCallbacks(check, self.error_handler, callbackArgs=(a, b, c))
+ return r
+
+ result = gatherResults([triple1, triple2, r])
+ result.addCallbacks(compute_value, self.error_handler)
+
+ # do actual communication
+ self.activate_reactor()
+
+ return result
def error_handler(self, ex):
print "Error: ", ex
diff --git a/viff/test/test_orlandi_runtime.py b/viff/test/test_orlandi_runtime.py
--- a/viff/test/test_orlandi_runtime.py
+++ b/viff/test/test_orlandi_runtime.py
@@ -494,4 +494,21 @@
d = gatherResults([t1, t2])
d.addCallbacks(open, runtime.error_handler)
return d
-
+
+ @protocol
+ def test_tripleTest(self, runtime):
+ """Test the triple_test command."""
+
+ def check((a, b, c)):
+ self.assertEquals(c, a * b)
+
+ def open((a, b, c)):
+ d1 = runtime.open(a)
+ d2 = runtime.open(b)
+ d3 = runtime.open(c)
+ d = gatherResults([d1, d2, d3])
+ d.addCallback(check)
+ return d
+ d = runtime.triple_test(self.Zp)
+ d.addCallbacks(open, runtime.error_handler)
+ return d
More information about the viff-devel
mailing list