<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.cryptography.viff.scm">
    <title>gmane.comp.cryptography.viff.scm</title>
    <link>http://blog.gmane.org/gmane.comp.cryptography.viff.scm</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/438"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/437"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/436"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/435"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/434"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/433"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/432"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/431"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/430"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/429"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/428"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/427"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/426"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/425"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/424"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/423"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/422"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/421"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/420"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/419"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/438">
    <title>viff: prss: Fixed bug in PRSS zero sharing.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/438</link>
    <description>&lt;pre&gt;/rev/6d2179a15b42
changeset: 1381:6d2179a15b42
user:      Marcel Keller &amp;lt;mkeller&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Wed Nov 04 12:43:18 2009 +0100
summary:   prss: Fixed bug in PRSS zero sharing.

j**i was not be computed correctly if the field was GF256 and the
threshold was higher than 1.

diffstat:

 viff/prss.py |  3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diffs (13 lines):

diff -r a466288e9280 -r 6d2179a15b42 viff/prss.py
--- a/viff/prss.pyWed Nov 04 12:28:53 2009 +0100
+++ b/viff/prss.pyWed Nov 04 12:43:18 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -201,6 +201,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     all = frozenset(range(1, n+1))
     modulus = field.modulus
 
+    # This is needed for correct exponentiation.
+    j = field(j)
+
     for subset, shares in rep_shares:
         try:
             f_in_j = _f_in_j_cache[(field, n, j, subset)]
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-11-04T11:44:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/437">
    <title>viff: apps/aes: Determine the threshold from PRSSkeys in the co...</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/437</link>
    <description>&lt;pre&gt;/rev/a466288e9280
changeset: 1380:a466288e9280
user:      Marcel Keller &amp;lt;mkeller&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Wed Nov 04 12:28:53 2009 +0100
summary:   apps/aes: Determine the threshold from PRSS keys in the config file.

diffstat:

 apps/aes.py |  9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diffs (26 lines):

diff -r a084a491dff7 -r a466288e9280 apps/aes.py
--- a/apps/aes.pyWed Nov 04 12:26:18 2009 +0100
+++ b/apps/aes.pyWed Nov 04 12:28:53 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -23,6 +23,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 import time
 from optparse import OptionParser
 from pprint import pformat
+import sys
 
 import viff.reactor
 viff.reactor.install()
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -178,7 +179,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     from viff.passive import PassiveRuntime
     runtime_class = PassiveRuntime
 
-rt = create_runtime(id, players, 1, options, runtime_class)
+try:
+    threshold = len(players) - len(players[id].keys.keys()[0])
+except IndexError:
+    print &amp;gt;&amp;gt;sys.stderr, "PRSS keys in config file missing."
+    sys.exit(1)
+
+rt = create_runtime(id, players, threshold, options, runtime_class)
 
 if options.preproc:
     rt.addCallback(preprocess)
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-11-04T11:44:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/436">
    <title>viff: passive: Check threshold of PRSS functionsagainst runtime.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/436</link>
    <description>&lt;pre&gt;/rev/a084a491dff7
changeset: 1379:a084a491dff7
user:      Marcel Keller &amp;lt;mkeller&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Wed Nov 04 12:26:18 2009 +0100
summary:   passive: Check threshold of PRSS functions against runtime.

open() and mul() expect the threshold of shares to be at most the
threshold of the runtime, which is not true for shares generated by
PRSS functions with higher threshold.

diffstat:

 viff/passive.py |  9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diffs (19 lines):

diff -r 57b5234df725 -r a084a491dff7 viff/passive.py
--- a/viff/passive.pyMon Nov 02 13:45:36 2009 +0100
+++ b/viff/passive.pyWed Nov 04 12:26:18 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -250,6 +250,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         starting program counter. This ensures that consequetive calls
         to PRSS-related methods will use unique program counters.
         """
+
+        # This is called by every function using PRSS, so do it here.
+        # If the assertion is not met, things go wrong, i.e. the PRSS
+        # functions generate shares with higher degrees than what
+        # open() and mul() expect.
+        assert self.threshold &amp;gt;= \
+               len(self.players) - len(self.players[self.id].keys.keys()[0]), \
+               "PRSS functions have higher threshold than the runtime."
+
         self.increment_pc()
         return tuple(self.program_counter)
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-11-04T11:44:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/435">
    <title>viff: benchmark: better argument name</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/435</link>
    <description>&lt;pre&gt;/rev/98059854fc52
changeset: 1376:98059854fc52
user:      Martin Geisler &amp;lt;mg&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Tue Oct 27 15:32:47 2009 +0100
summary:   benchmark: better argument name

diffstat:

 apps/benchutil.py |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (17 lines):

diff -r 3f6c65d4c9c1 -r 98059854fc52 apps/benchutil.py
--- a/apps/benchutil.pyTue Oct 27 14:54:54 2009 +0100
+++ b/apps/benchutil.pyTue Oct 27 15:32:47 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -80,11 +80,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         self.rt.schedule_callback(d, self.finished, termination_function)
         return d
 
-    def sync_test(self, x):
+    def sync_test(self, preprocessed_data):
         print "Synchronizing test start."
         sys.stdout.flush()
         sync = self.rt.synchronize()
-        self.rt.schedule_callback(sync, lambda y: x)
+        self.rt.schedule_callback(sync, lambda _: preprocessed_data)
         return sync
 
     def run_test(self, _):
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-11-02T12:46:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/434">
    <title>viff: Merged.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/434</link>
    <description>&lt;pre&gt;/rev/57b5234df725
changeset: 1378:57b5234df725
user:      Martin Geisler &amp;lt;mg&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Mon Nov 02 13:45:36 2009 +0100
summary:   Merged.

diffstat:

 apps/benchmark.py |  6 ++++--
 apps/benchutil.py |  4 ++--
 viff/runtime.py   |  8 +++++---
 3 files changed, 11 insertions(+), 7 deletions(-)

diffs (51 lines):

diff -r 8144c02c12f6 -r 57b5234df725 apps/benchmark.py
--- a/apps/benchmark.pyFri Oct 30 12:23:46 2009 +0100
+++ b/apps/benchmark.pyMon Nov 02 13:45:36 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -87,8 +87,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 last_timestamp = time.time()
 
 operations = {"mul"       : ("mul", [], BinaryOperation),
-              "compToft05": ("ge", [ComparisonToft05Mixin], BinaryOperation),
-              "compToft07": ("ge", [ComparisonToft07Mixin], BinaryOperation),
+              "compToft05": ("greater_than_equal",
+                             [ComparisonToft05Mixin], BinaryOperation),
+              "compToft07": ("greater_than_equal",
+                             [ComparisonToft07Mixin], BinaryOperation),
               "eq"        : ("eq", [ProbabilisticEqualityMixin], BinaryOperation),
               "triple_gen": ("triple_gen", [], NullaryOperation)}
 
diff -r 8144c02c12f6 -r 57b5234df725 apps/benchutil.py
--- a/apps/benchutil.pyFri Oct 30 12:23:46 2009 +0100
+++ b/apps/benchutil.pyMon Nov 02 13:45:36 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -80,11 +80,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         self.rt.schedule_callback(d, self.finished, termination_function)
         return d
 
-    def sync_test(self, x):
+    def sync_test(self, preprocessed_data):
         print "Synchronizing test start."
         sys.stdout.flush()
         sync = self.rt.synchronize()
-        self.rt.schedule_callback(sync, lambda y: x)
+        self.rt.schedule_callback(sync, lambda _: preprocessed_data)
         return sync
 
     def run_test(self, _):
diff -r 8144c02c12f6 -r 57b5234df725 viff/runtime.py
--- a/viff/runtime.pyFri Oct 30 12:23:46 2009 +0100
+++ b/viff/runtime.pyMon Nov 02 13:45:36 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -940,9 +940,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     if mixins is None:
         return runtime_class
     else:
-        # We must include at least one new-style class in bases. We
-        # include it last to avoid overriding __init__ from the other
-        # base classes.
+        # The order is important: we want the most specific classes to
+        # go first so that they can override methods from later
+        # classes. We must also include at least one new-style class
+        # in bases -- we include it last to avoid overriding __init__
+        # from the other base classes.
         bases = tuple(mixins) + (runtime_class, object)
         return type("ExtendedRuntime", bases, {})
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-11-02T12:46:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/433">
    <title>viff: benchmark: fix compToft05 and compToft07benchmarks</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/433</link>
    <description>&lt;pre&gt;/rev/3f6c65d4c9c1
changeset: 1375:3f6c65d4c9c1
user:      Martin Geisler &amp;lt;mg&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Tue Oct 27 14:54:54 2009 +0100
summary:   benchmark: fix compToft05 and compToft07 benchmarks

diffstat:

 apps/benchmark.py |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (16 lines):

diff -r 568f9c696979 -r 3f6c65d4c9c1 apps/benchmark.py
--- a/apps/benchmark.pyTue Oct 27 11:43:37 2009 +0100
+++ b/apps/benchmark.pyTue Oct 27 14:54:54 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -87,8 +87,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 last_timestamp = time.time()
 
 operations = {"mul"       : ("mul", [], BinaryOperation),
-              "compToft05": ("ge", [ComparisonToft05Mixin], BinaryOperation),
-              "compToft07": ("ge", [ComparisonToft07Mixin], BinaryOperation),
+              "compToft05": ("greater_than_equal",
+                             [ComparisonToft05Mixin], BinaryOperation),
+              "compToft07": ("greater_than_equal",
+                             [ComparisonToft07Mixin], BinaryOperation),
               "eq"        : ("eq", [ProbabilisticEqualityMixin], BinaryOperation),
               "triple_gen": ("triple_gen", [], NullaryOperation)}
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-11-02T12:46:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/432">
    <title>viff: runtime: correct base class order</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/432</link>
    <description>&lt;pre&gt;/rev/73a79bf6c5d0
changeset: 1377:73a79bf6c5d0
user:      Martin Geisler &amp;lt;mg&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Tue Oct 27 15:35:18 2009 +0100
summary:   runtime: correct base class order

diffstat:

 viff/runtime.py |  10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diffs (20 lines):

diff -r 98059854fc52 -r 73a79bf6c5d0 viff/runtime.py
--- a/viff/runtime.pyTue Oct 27 15:32:47 2009 +0100
+++ b/viff/runtime.pyTue Oct 27 15:35:18 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -947,10 +947,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     if mixins is None:
         return runtime_class
     else:
-        # We must include at least one new-style class in bases. We
-        # include it last to avoid overriding __init__ from the other
-        # base classes.
-        bases = (runtime_class,) + tuple(mixins) + (object,)
+        # The order is important: we want the most specific classes to
+        # go first so that they can override methods from later
+        # classes. We must also include at least one new-style class
+        # in bases -- we include it last to avoid overriding __init__
+        # from the other base classes.
+        bases = tuple(mixins) + (runtime_class, object)
         return type("ExtendedRuntime", bases, {})
 
 def create_runtime(id, players, threshold, options=None, runtime_class=None):
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-11-02T12:46:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/431">
    <title>viff: Orlandi: Increased timeout,and removed debug info.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/431</link>
    <description>&lt;pre&gt;/rev/8a4d4e8e99eb
changeset: 1373:8a4d4e8e99eb
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Fri Oct 30 12:22:46 2009 +0100
summary:   Orlandi: Increased timeout, and removed debug info.

diffstat:

 viff/test/test_orlandi_runtime.py |  3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diffs (20 lines):

diff -r 62c4034a06a3 -r 8a4d4e8e99eb viff/test/test_orlandi_runtime.py
--- a/viff/test/test_orlandi_runtime.pyThu Oct 29 14:43:25 2009 +0100
+++ b/viff/test/test_orlandi_runtime.pyFri Oct 30 12:22:46 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -269,7 +269,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
     runtime_class = OrlandiRuntime
 
-    timeout = 25
+    timeout = 700
 
     def generate_configs(self, *args):
         global keys
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -638,7 +638,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
     def generate_configs(self, *args):
         global keys
-        print "AAA"
         if not keys:
             keys = generate_configs(paillier=NaClPaillier(1024), *args)
         return keys
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-30T11:20:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/430">
    <title>viff: Merged with Marcel.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/430</link>
    <description>&lt;pre&gt;/rev/8144c02c12f6
changeset: 1374:8144c02c12f6
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Fri Oct 30 12:23:46 2009 +0100
summary:   Merged with Marcel.

diffstat:

 viff/runtime.py |  11 ++---------
 1 files changed, 2 insertions(+), 9 deletions(-)

diffs (28 lines):

diff -r 8a4d4e8e99eb -r 8144c02c12f6 viff/runtime.py
--- a/viff/runtime.pyFri Oct 30 12:22:46 2009 +0100
+++ b/viff/runtime.pyFri Oct 30 12:23:46 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -804,14 +804,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         example of a method fulfilling this interface.
         """
 
-        def update(results, program_counters, start_time, count, what):
-            stop = time.time()
-
-            print
-            print "Total time used: %.3f sec" % (stop - start_time)
-            print "Time per %s operation: %.0f ms" % (what, 1000*(stop - start_time) / count)
-            print "*" * 6
-
+        def update(results, program_counters):
             # Update the pool with pairs of program counter and data.
             self._pool.update(zip(program_counters, results))
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -831,7 +824,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
                 results = func(quantity=len(program_counters), *args)
                 self.unfork_pc()
                 ready = gatherResults(results)
-                ready.addCallback(update, program_counters[:len(results)], start_time, count, generator)
+                ready.addCallback(update, program_counters[:len(results)])
                 del program_counters[:len(results)]
                 wait_list.append(ready)
             self.unfork_pc()
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-30T11:20:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/429">
    <title>viff: runtime: Removed timing output inpreprocessing.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/429</link>
    <description>&lt;pre&gt;/rev/151d4f58ff49
changeset: 1372:151d4f58ff49
user:      Marcel Keller &amp;lt;mkeller&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Thu Oct 29 15:42:26 2009 +0100
summary:   runtime: Removed timing output in preprocessing.

diffstat:

 viff/runtime.py |  11 ++---------
 1 files changed, 2 insertions(+), 9 deletions(-)

diffs (28 lines):

diff -r 62c4034a06a3 -r 151d4f58ff49 viff/runtime.py
--- a/viff/runtime.pyThu Oct 29 14:43:25 2009 +0100
+++ b/viff/runtime.pyThu Oct 29 15:42:26 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -804,14 +804,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         example of a method fulfilling this interface.
         """
 
-        def update(results, program_counters, start_time, count, what):
-            stop = time.time()
-
-            print
-            print "Total time used: %.3f sec" % (stop - start_time)
-            print "Time per %s operation: %.0f ms" % (what, 1000*(stop - start_time) / count)
-            print "*" * 6
-
+        def update(results, program_counters):
             # Update the pool with pairs of program counter and data.
             self._pool.update(zip(program_counters, results))
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -831,7 +824,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
                 results = func(quantity=len(program_counters), *args)
                 self.unfork_pc()
                 ready = gatherResults(results)
-                ready.addCallback(update, program_counters[:len(results)], start_time, count, generator)
+                ready.addCallback(update, program_counters[:len(results)])
                 del program_counters[:len(results)]
                 wait_list.append(ready)
             self.unfork_pc()
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-29T14:45:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/428">
    <title>viff: Orlandi: Fix Python 2.4 issue.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/428</link>
    <description>&lt;pre&gt;/rev/62c4034a06a3
changeset: 1371:62c4034a06a3
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Thu Oct 29 14:43:25 2009 +0100
summary:   Orlandi: Fix Python 2.4 issue.

diffstat:

 viff/test/test_orlandi_runtime.py |  5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diffs (23 lines):

diff -r d93acdb61f34 -r 62c4034a06a3 viff/test/test_orlandi_runtime.py
--- a/viff/test/test_orlandi_runtime.pyThu Oct 29 13:46:21 2009 +0100
+++ b/viff/test/test_orlandi_runtime.pyThu Oct 29 14:43:25 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -274,7 +274,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     def generate_configs(self, *args):
         global keys
         if not keys:
-            keys = generate_configs(*args, paillier=NaClPaillier(1024))
+            keys = generate_configs(paillier=NaClPaillier(1024), *args)
         return keys
         
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -638,8 +638,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
     def generate_configs(self, *args):
         global keys
+        print "AAA"
         if not keys:
-            keys = generate_configs(*args, paillier=NaClPaillier(1024))
+            keys = generate_configs(paillier=NaClPaillier(1024), *args)
         return keys
 
     &amp;lt; at &amp;gt;protocol
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-29T13:38:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/427">
    <title>viff: Orlandi: Uniform format for Paillier keys.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/427</link>
    <description>&lt;pre&gt;/rev/7115ba16f72a
changeset: 1369:7115ba16f72a
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Thu Oct 29 13:46:21 2009 +0100
summary:   Orlandi: Uniform format for Paillier keys.

diffstat:

 viff/orlandi.py      |  10 +++++-----
 viff/paillier.py     |  17 +++++++++++------
 viff/paillierutil.py |   3 ---
 3 files changed, 16 insertions(+), 14 deletions(-)

diffs (82 lines):

diff -r 4306568ab9c6 -r 7115ba16f72a viff/orlandi.py
--- a/viff/orlandi.pyThu Oct 29 13:46:21 2009 +0100
+++ b/viff/orlandi.pyThu Oct 29 13:46:21 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -877,7 +877,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
             pc = tuple(self.program_counter)
             p3 = field.modulus**3
             for pi in self.players.keys():
-                n = self.players[pi].pubkey[0]
+                n = self.players[pi].pubkey['n']
                 nsq = n * n
                 # choose random d_i,j in Z_p^3
                 dij = random_number(p3)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -915,9 +915,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         r2 = random_number(field.modulus)
 
         # compute alpha_i = Enc_eki(a_i)
-        n, g = self.players[self.id].pubkey
-        alpha_randomness = rand.randint(1, long(n))
-        alphai = encrypt_r(ai.value, alpha_randomness, (n, g))
+        pubkey = self.players[self.id].pubkey
+        alpha_randomness = rand.randint(1, long(pubkey['n']))
+        alphai = encrypt_r(ai.value, alpha_randomness, pubkey)
         # and A_i = Com_ck(a_i, r_i).
         Ai = commitment.commit(ai.value, r1.value, r2.value)
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1136,7 +1136,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
                 # 3) the gammaij he received is equal to the gammaij
                 # he now computes based on the values he reveives
                 for j in xrange(len(ais)):
-                    n = self.players[self.id].pubkey[0]
+                    n = self.players[self.id].pubkey['n']
                     nsq = n * n
                     dij = dijs[j]
                     # 5) ... and dij &amp;lt; p^3.
diff -r 4306568ab9c6 -r 7115ba16f72a viff/paillier.py
--- a/viff/paillier.pyThu Oct 29 13:46:21 2009 +0100
+++ b/viff/paillier.pyThu Oct 29 13:46:21 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -52,20 +52,25 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         g = rand.randint(1, long(nsq))
         if gmpy.gcd(L(pow(g, lm, nsq), n), n) == 1: break
 
-    return (n, g), (n, g, lm)
+    return {'n':n, 'g': g}, {'n': n, 'g': g, 'lm': lm}
 
-def encrypt(m, (n, g)):
-    r = rand.randint(1, long(n))
-    return encrypt_r(m, r, (n, g))
+def encrypt(m, pubkey):
+    r = rand.randint(1, long(pubkey['n']))
+    return encrypt_r(m, r, pubkey)
 
-def encrypt_r(m, r, (n, g)):
+def encrypt_r(m, r, pubkey):
+    n = pubkey['n']
+    g = pubkey['g']
     nsq = n*n
     return (pow(g, m, nsq)*pow(r, n, nsq)) % nsq
 
 #: Cache for ciphertext-independent factors.
 _decrypt_factors = {}
 
-def decrypt(c, (n, g, lm)):
+def decrypt(c, seckey):
+    n = seckey['n']
+    g = seckey['g']
+    lm = seckey['lm']
     numer = L(pow(c, lm, n*n), n)
     key = (n, g, lm)
     try:
diff -r 4306568ab9c6 -r 7115ba16f72a viff/paillierutil.py
--- a/viff/paillierutil.pyThu Oct 29 13:46:21 2009 +0100
+++ b/viff/paillierutil.pyThu Oct 29 13:46:21 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -53,9 +53,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     
 
 def deserializer(paillier_type, str):
-    if paillier_type == "viff":
-        return tuple(map(long, str))
-    if paillier_type == "nacl":
         d = {}
         for k, v in str.items():
             d[k] = long(v)
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-29T12:41:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/426">
    <title>viff: Paillierutil: return a dict of longs.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/426</link>
    <description>&lt;pre&gt;/rev/4306568ab9c6
changeset: 1368:4306568ab9c6
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Thu Oct 29 13:46:21 2009 +0100
summary:   Paillierutil: return a dict of longs.

diffstat:

 viff/paillierutil.py |  5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diffs (13 lines):

diff -r 59b9e1161c2c -r 4306568ab9c6 viff/paillierutil.py
--- a/viff/paillierutil.pyThu Oct 29 10:52:13 2009 +0100
+++ b/viff/paillierutil.pyThu Oct 29 13:46:21 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -56,5 +56,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     if paillier_type == "viff":
         return tuple(map(long, str))
     if paillier_type == "nacl":
-        return str.dict()
+        d = {}
+        for k, v in str.items():
+            d[k] = long(v)
+        return d
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-29T12:41:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/425">
    <title>viff: Orlandi: Use NaCl Paillier, if available.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/425</link>
    <description>&lt;pre&gt;/rev/d93acdb61f34
changeset: 1370:d93acdb61f34
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Thu Oct 29 13:46:21 2009 +0100
summary:   Orlandi: Use NaCl Paillier, if available.

diffstat:

 viff/orlandi.py                   |   6 +++++-
 viff/test/test_orlandi_runtime.py |  21 ++++++++++++++++++++-
 viff/test/util.py                 |   5 ++++-
 3 files changed, 29 insertions(+), 3 deletions(-)

diffs (97 lines):

diff -r 7115ba16f72a -r d93acdb61f34 viff/orlandi.py
--- a/viff/orlandi.pyThu Oct 29 13:46:21 2009 +0100
+++ b/viff/orlandi.pyThu Oct 29 13:46:21 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -28,6 +28,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 from hash_broadcast import HashBroadcastMixin
 
 try:
+    from pypaillier import encrypt_r, decrypt
     import commitment
     commitment.set_reference_string(23434347834783478783478L,
                                     489237823478234783478020L)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -36,7 +37,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     # import to work. Catching the ImportError here allows the
     # benchmark and tests to import viff.orlandi without blowing up.
     # It is only if the OrlandiRuntime is used that things blow up.
-    pass
+
+    # The pypaillier module is not released yet, so we cannot expect
+    # the import to work.
+    from viff.paillier import encrypt_r, decrypt
 
 # import logging
 # LOG_FILENAME = 'logging_example.out'
diff -r 7115ba16f72a -r d93acdb61f34 viff/test/test_orlandi_runtime.py
--- a/viff/test/test_orlandi_runtime.pyThu Oct 29 13:46:21 2009 +0100
+++ b/viff/test/test_orlandi_runtime.pyThu Oct 29 13:46:21 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -19,6 +19,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 from viff.test.util import RuntimeTestCase, protocol
 from viff.runtime import gather_shares, Share
+from viff.paillierutil import NaClPaillier
+from viff.config import generate_configs
+
 try:
     from viff.orlandi import OrlandiRuntime, OrlandiShare
     import commitment
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -255,6 +258,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         return d
 
 
+keys = None
+
+
 class OrlandiAdvancedCommandsTest(RuntimeTestCase):
     """Test for advanced commands."""
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -263,7 +269,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
     runtime_class = OrlandiRuntime
 
-    timeout = 700
+    timeout = 25
+
+    def generate_configs(self, *args):
+        global keys
+        if not keys:
+            keys = generate_configs(*args, paillier=NaClPaillier(1024))
+        return keys
+        
 
     &amp;lt; at &amp;gt;protocol
     def test_shift(self, runtime):
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -623,6 +636,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
     timeout = 1600
 
+    def generate_configs(self, *args):
+        global keys
+        if not keys:
+            keys = generate_configs(*args, paillier=NaClPaillier(1024))
+        return keys
+
     &amp;lt; at &amp;gt;protocol
     def test_tripleGen(self, runtime):
         """Test the triple_gen command."""
diff -r 7115ba16f72a -r d93acdb61f34 viff/test/util.py
--- a/viff/test/util.pyThu Oct 29 13:46:21 2009 +0100
+++ b/viff/test/util.pyThu Oct 29 13:46:21 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -111,6 +111,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
             msg = "Type should be %s, but is %s" % (wanted_type, var.__class__)
             raise self.failureException(msg)
 
+    def generate_configs(self, *args):
+        return generate_configs(*args)
+
     def setUp(self):
         """Configure and connect three Runtimes.
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -123,7 +126,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         # Our standard 65 bit Blum prime
         self.Zp = GF(30916444023318367583)
 
-        configs = generate_configs(self.num_players, self.threshold)
+        configs = self.generate_configs(self.num_players, self.threshold)
         self.protocols = {}
 
         # initialize the dictionary of random generators
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-29T12:41:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/424">
    <title>viff: Generate_config_files: Using append.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/424</link>
    <description>&lt;pre&gt;/rev/fd9867d4dc8c
changeset: 1366:fd9867d4dc8c
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Thu Oct 29 10:51:46 2009 +0100
summary:   Generate_config_files: Using append.

diffstat:

 apps/generate-config-files.py |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diffs (12 lines):

diff -r 04a696700b3f -r fd9867d4dc8c apps/generate-config-files.py
--- a/apps/generate-config-files.pyWed Oct 28 20:52:45 2009 +0100
+++ b/apps/generate-config-files.pyThu Oct 29 10:51:46 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -65,7 +65,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 paillier_choices = ['viff']
 
 if pypaillier:
-    paillier_choices += ['nacl']
+    paillier_choices.append('nacl')
 
 parser = OptionParser()
 parser.add_option("-p", "--prefix",
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-29T10:13:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/423">
    <title>viff: Generate_config_files: Reorder if statement.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/423</link>
    <description>&lt;pre&gt;/rev/59b9e1161c2c
changeset: 1367:59b9e1161c2c
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Thu Oct 29 10:52:13 2009 +0100
summary:   Generate_config_files: Reorder if statement.

diffstat:

 apps/generate-config-files.py |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (15 lines):

diff -r fd9867d4dc8c -r 59b9e1161c2c apps/generate-config-files.py
--- a/apps/generate-config-files.pyThu Oct 29 10:51:46 2009 +0100
+++ b/apps/generate-config-files.pyThu Oct 29 10:52:13 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -90,9 +90,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 (options, args) = parser.parse_args()
 
-paillier = ViffPaillier(options.keysize)
 if "nacl" == options.paillier:
     paillier = NaClPaillier(options.keysize)
+else:
+    paillier = ViffPaillier(options.keysize)
 
 if len(args) != options.n:
     parser.error("must supply a hostname:port argument for each player")
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-29T10:13:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/422">
    <title>viff: apps/aes: Adapted program counters.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/422</link>
    <description>&lt;pre&gt;/rev/f441d4776bcc
changeset: 1364:f441d4776bcc
user:      Marcel Keller &amp;lt;mkeller&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Wed Oct 28 20:24:18 2009 +0100
summary:   apps/aes: Adapted program counters.

diffstat:

 apps/aes.py |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (32 lines):

diff -r 73a40d45008f -r f441d4776bcc apps/aes.py
--- a/apps/aes.pyWed Oct 28 20:23:26 2009 +0100
+++ b/apps/aes.pyWed Oct 28 20:24:18 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -122,6 +122,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 def preprocess(rt):
     start = time.time()
     program_desc = {}
+    online_phase = 2
 
     if options.active:
         if options.exponentiation is False:
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -139,7 +140,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
             pcs = [(2, 1 + i, 2 + 3 * j)
                    for i in range(10 * options.count)
                    for j in range(140)] + \
-                  [(3, 18, k) + (121,) * i + (4 + 6 * j, 1 + 3 * l)
+                  [(3, 18, k) + (101,) * i + (3 + 5 * j, 1 + 3 * l)
                    for k in range(1, options.count + 1)
                    for i in range(10)
                    for j in range(20)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -150,9 +151,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
                    for i in range(10)
                    for j in js]
         program_desc[("generate_triples", (GF256,))] = pcs
+        online_phase = 3
 
     if options.exponentiation == 4:
-        pcs = [(3, 18, k) + (121,) * i + (1 + j * 6,)
+        pcs = [(online_phase, 18, k) + (101,) * i + (1 + j * 5,)
                for k in range(1, options.count + 1)
                for i in range(10)
                for j in range(20)]
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-28T19:53:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/421">
    <title>viff: aes: Simplified callbacks in maskedexponentiation.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/421</link>
    <description>&lt;pre&gt;/rev/73a40d45008f
changeset: 1363:73a40d45008f
user:      Marcel Keller &amp;lt;mkeller&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Wed Oct 28 20:23:26 2009 +0100
summary:   aes: Simplified callbacks in masked exponentiation.

diffstat:

 viff/aes.py |  7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diffs (25 lines):

diff -r 361aeb2668fc -r 73a40d45008f viff/aes.py
--- a/viff/aes.pyWed Oct 28 15:17:24 2009 +0100
+++ b/viff/aes.pyWed Oct 28 20:23:26 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -155,7 +155,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         return result
 
     def invert_by_masked_exponentiation(self, byte):
-        def add_and_multiply(masked_powers, random_powers, prep):
+        def add_and_multiply(masked_byte, random_powers, prep):
+            masked_powers = self.runtime.powerchain(masked_byte, 7)
             byte_powers = map(operator.add, masked_powers, random_powers)[1:]
             if prep:
                 byte_powers = [Share(self.runtime, GF256, value)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -166,10 +167,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
         random_powers, prep = self.runtime.prss_powerchain()
         masked_byte = self.runtime.open(byte + random_powers[0])
-        masked_powers = self.runtime.schedule_callback(masked_byte,
-            lambda masked_byte: self.runtime.powerchain(masked_byte, 7))
         return self.runtime.schedule_callback(
-            masked_powers, add_and_multiply, random_powers, prep)
+            masked_byte, add_and_multiply, random_powers, prep)
 
     def invert_by_exponentiation(self, byte):
         byte_2 = byte * byte
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-28T19:53:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/420">
    <title>viff: config: Accept old config files.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/420</link>
    <description>&lt;pre&gt;/rev/04a696700b3f
changeset: 1365:04a696700b3f
user:      Marcel Keller &amp;lt;mkeller&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
date:      Wed Oct 28 20:52:45 2009 +0100
summary:   config: Accept old config files.

VIFF crashed on config files generated previously to the change
allowing several Paillier key formats.

diffstat:

 viff/config.py |  20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diffs (32 lines):

diff -r f441d4776bcc -r 04a696700b3f viff/config.py
--- a/viff/config.pyWed Oct 28 20:24:18 2009 +0100
+++ b/viff/config.pyWed Oct 28 20:52:45 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -130,13 +130,23 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         id = p_unstr(player)
         host = config[player]['host']
         port = int(config[player]['port'])
-        paillier_type = config[player]['paillier']['type']
-        pub_key = config[player]['paillier']['pubkey']
-        pubkey = paillierutil.deserializer(paillier_type, pub_key)
+
+        if 'paillier' in config[player]:
+            paillier_type = config[player]['paillier']['type']
+            pub_key = config[player]['paillier']['pubkey']
+            pubkey = paillierutil.deserializer(paillier_type, pub_key)
+        else:
+            # old format
+            pubkey = tuple(map(long, config[player]['pubkey']))
 
         if 'prss_keys' in config[player]:
-            sec_key = config[player]['paillier']['seckey']
-            seckey = paillierutil.deserializer(paillier_type, sec_key)
+            if 'paillier' in config[player]:
+                sec_key = config[player]['paillier']['seckey']
+                seckey = paillierutil.deserializer(paillier_type, sec_key)
+            else:
+                # old format
+                seckey = tuple(map(long, config[player]['seckey']))
+
             keys = {}
             for subset in config[player]['prss_keys']:
                 keys[s_unstr(subset)] = config[player]['prss_keys'][subset]
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-28T19:53:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/419">
    <title>viff: Removed unused import.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/419</link>
    <description>&lt;pre&gt;/rev/361aeb2668fc
changeset: 1362:361aeb2668fc
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Wed Oct 28 15:17:24 2009 +0100
summary:   Removed unused import.

diffstat:

 viff/orlandi.py |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diffs (12 lines):

diff -r 736ad1d97024 -r 361aeb2668fc viff/orlandi.py
--- a/viff/orlandi.pyWed Oct 28 14:53:51 2009 +0100
+++ b/viff/orlandi.pyWed Oct 28 15:17:24 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -19,7 +19,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 from twisted.internet.defer import Deferred, gatherResults, succeed
 
-from viff.runtime import Runtime, Share, ShareList, gather_shares, preprocess
+from viff.runtime import Runtime, Share, gather_shares, preprocess
 from viff.util import rand
 from viff.constants import TEXT, PAILLIER
 from viff.field import FieldElement
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-28T14:12:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/418">
    <title>viff: Generate_config_files:Extracted Paillier keygeneration.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.scm/418</link>
    <description>&lt;pre&gt;/rev/27396792038d
changeset: 1359:27396792038d
user:      Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
date:      Wed Oct 28 14:24:49 2009 +0100
summary:   Generate_config_files:Extracted Paillier key generation.

diffstat:

 apps/generate-config-files.py |  3 ++-
 viff/config.py                |  5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diffs (42 lines):

diff -r 712cbf4c2e1b -r 27396792038d apps/generate-config-files.py
--- a/apps/generate-config-files.pyWed Oct 28 11:01:57 2009 +0100
+++ b/apps/generate-config-files.pyWed Oct 28 14:24:49 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -55,6 +55,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 from optparse import OptionParser
 
 from viff.config import generate_configs
+from viff import paillier
 
 parser = OptionParser()
 parser.add_option("-p", "--prefix",
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -81,7 +82,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     parser.error("must supply a hostname:port argument for each player")
 
 addresses = [arg.split(':', 1) for arg in args]
-configs = generate_configs(options.n, options.t, options.keysize, addresses,
+configs = generate_configs(options.n, options.t, lambda: paillier.generate_keys(options.keysize), addresses,
                            options.prefix, options.skip_prss)
 
 for config in configs.itervalues():
diff -r 712cbf4c2e1b -r 27396792038d viff/config.py
--- a/viff/config.pyWed Oct 28 11:01:57 2009 +0100
+++ b/viff/config.pyWed Oct 28 14:24:49 2009 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -156,7 +156,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     return owner_id, players
 
 
-def generate_configs(n, t, keysize=1024, addresses=None, prefix=None, skip_prss=False):
+def generate_configs(n, t, paillier_key_generator=lambda: paillier.generate_keys(1024),
+                     addresses=None, prefix=None, skip_prss=False):
     """Generate player configurations.
 
     Generates *n* configuration objects with a threshold of *t*. The
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -192,7 +193,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         """Convert a dealer ID to a string."""
         return "Dealer " + str(dealer)
 
-    key_pairs = dict([(p, paillier.generate_keys(keysize)) for p in players])
+    key_pairs = dict([(p, paillier_key_generator()) for p in players])
 
     configs = {}
     for p in players:
&lt;/pre&gt;</description>
    <dc:creator>viff-devel&lt; at &gt;viff.dk</dc:creator>
    <dc:date>2009-10-28T14:05:14</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.cryptography.viff.scm">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.cryptography.viff.scm</link>
  </textinput>
</rdf:RDF>

