<?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://permalink.gmane.org/gmane.comp.cryptography.viff.patches">
    <title>gmane.comp.cryptography.viff.patches</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches</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.patches/161"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/160"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/159"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/158"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/157"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/156"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/155"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/154"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/153"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/152"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/151"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/150"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/149"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/148"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/147"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/146"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/145"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/144"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/143"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/142"/>
      </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.patches/161">
    <title>[Fwd: [PATCH 1 of 1] Added computation-id option]</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/161</link>
    <description>&lt;pre&gt;

-------- Original Message --------
Subject: [PATCH 1 of 1] Added computation-id option
Date: Wed, 04 Aug 2010 12:17:43 -0000
From: Thomas P Jakobsen &amp;lt;tpj&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
To: mkeller&amp;lt; at &amp;gt;cs.au.dk
CC: ttoft&amp;lt; at &amp;gt;cs.au.dk
References: &amp;lt;patchbomb.1280924262&amp;lt; at &amp;gt;dhcp-11-67-32.daimi.au.dk&amp;gt;

# HG changeset patch
# User Tomas Toft &amp;lt;ttoft&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
# Date 1280227043 -7200
# Node ID 7c45463151f482ff75bbd877dad3509e8f9cb3c9
# Parent  e7b2fe7eb75319e2f60cc292b0d68fe568d394ab
Added computation-id option.

This changeset adds a command line option to VIFF allowing users to
specify a computation id.

Prior to this changeset, any computation involving pseudo-random
secret sharing (which for the time being boils down to computations
done with the PassiveRuntime) could only be run one time using the
same set of VIFF player configuration files. If more than one
computation was executed with the same set of configuration files, the
security of the system would be broken.

With this changeset, multiple computations can be run securely with
the sa&lt;/pre&gt;</description>
    <dc:creator>Marcel Keller</dc:creator>
    <dc:date>2010-08-04T12:28:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/160">
    <title>[PATCH 1 of 1] Added command line option for playerhost and port</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/160</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Thomas P Jakobsen &amp;lt;tpj&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
# Date 1271181869 -7200
# Node ID 4a6c97b250725bb5a2bdf219ae00aa8e85b0d083
# Parent  6d838b2d24a22835782d71704c9ab5c7f22eac06
Added command line option for player host and port.

Sometimes it is more convenient to specify host and port numbers of
the players as command line arguments when running VIFF itself, rather
than by editing the configuration files.

This revision enables users to override host and port numbers
specified in the configuration files by command line arguments.

diff -r 6d838b2d24a2 -r 4a6c97b25072 viff/runtime.py
--- a/viff/runtime.pyTue Mar 30 11:34:39 2010 +0200
+++ b/viff/runtime.pyTue Apr 13 20:04:29 2010 +0200
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -530,6 +530,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         group.add_option("--no-socket-retry", action="store_true",
                          default=False, help="Fail rather than keep retrying "
                          "to connect if port is already in use.")
+        group.add_option("--host", metavar="HOST:PORT", action="append",
+     &lt;/pre&gt;</description>
    <dc:creator>Thomas P Jakobsen</dc:creator>
    <dc:date>2010-04-13T18:15:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/159">
    <title>[PATCH 0 of 1] Command line arguments for host andport.</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/159</link>
    <description>&lt;pre&gt;Here's a patch that allows users to specify player host and port
numbers via the command line.

If theres no objections, I'll push this change into VIFF in a couple
of days.

Regards,
Thomas
&lt;/pre&gt;</description>
    <dc:creator>Thomas P Jakobsen</dc:creator>
    <dc:date>2010-04-13T18:15:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/158">
    <title>Re: [PATCH] Added option to avoid retrying toconnect if socket isalready in use</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/158</link>
    <description>&lt;pre&gt;

Nice, please put it in yourself! :-)

&lt;/pre&gt;</description>
    <dc:creator>Martin Geisler</dc:creator>
    <dc:date>2010-01-20T11:26:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/157">
    <title>[PATCH] Added option to avoid retrying to connect ifsocket isalready in use</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/157</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Thomas P Jakobsen &amp;lt;tpj&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
# Date 1263974081 -3600
# Node ID 2324d01c74e2c35b5bb6cb4d7bda1304a376b066
# Parent  efa1983063d62a8115949a7e63d5ad4e5a23a791
Added option to avoid retrying to connect if socket is already in use.

In some situations it turns out to be more convenient to have VIFF
throw an exception rather than keep retrying to connect to a socket
with exponentially increasing delays. This is now possible using the
new command line parameter --no-socket-retry.

diff -r efa1983063d6 -r 2324d01c74e2 viff/runtime.py
--- a/viff/runtime.pyThu Jan 14 11:36:13 2010 +0100
+++ b/viff/runtime.pyWed Jan 20 08:54:41 2010 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -525,6 +525,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
                          help="Collect and print profiling information.")
         group.add_option("--track-memory", action="store_true",
                          help="Track memory usage over time.")
+        group.add_option("--no-socket-retry", action="store_true",
+                         default=False, help="Fail rather tha&lt;/pre&gt;</description>
    <dc:creator>Thomas P Jakobsen</dc:creator>
    <dc:date>2010-01-20T07:56:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/156">
    <title>Re: [PATCH] Added option to avoid retrying toconnect if socket is already in use</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/156</link>
    <description>&lt;pre&gt;
You're right. I'll send a modified patch soon.

Regards,
Thomas
&lt;/pre&gt;</description>
    <dc:creator>Thomas P Jakobsen</dc:creator>
    <dc:date>2010-01-20T07:56:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/155">
    <title>Re: [PATCH] Added option to avoid retrying toconnect if socket isalready in use</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/155</link>
    <description>&lt;pre&gt;_______________________________________________
viff-patches mailing list
viff-patches&amp;lt; at &amp;gt;viff.dk
http://lists.viff.dk/listinfo.cgi/viff-patches-viff.dk
&lt;/pre&gt;</description>
    <dc:creator>Martin Geisler</dc:creator>
    <dc:date>2010-01-19T23:11:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/154">
    <title>[PATCH] Added option to avoid retrying to connect ifsocket isalready in use</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/154</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Thomas P Jakobsen &amp;lt;tpj&amp;lt; at &amp;gt;cs.au.dk&amp;gt;
# Date 1263939336 -3600
# Node ID 0b1e6cf3f57efe5a3b320897da636a6e2ebb2bdf
# Parent  efa1983063d62a8115949a7e63d5ad4e5a23a791
Added option to avoid retrying to connect if socket is already in use.

In some situations it turns out to be more convenient to have VIFF
throw an exception rather than keep retrying to connect to a socket
with exponentially increasing delays. This is now possible using the
new command line parameter --no-socket-retry.

diff -r efa1983063d6 -r 0b1e6cf3f57e viff/runtime.py
--- a/viff/runtime.pyThu Jan 14 11:36:13 2010 +0100
+++ b/viff/runtime.pyTue Jan 19 23:15:36 2010 +0100
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -525,6 +525,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
                          help="Collect and print profiling information.")
         group.add_option("--track-memory", action="store_true",
                          help="Track memory usage over time.")
+        group.add_option("--no-socket-retry", action="store_false",
+                         dest="socket_retry", default=True,&lt;/pre&gt;</description>
    <dc:creator>Thomas P Jakobsen</dc:creator>
    <dc:date>2010-01-19T22:18:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/153">
    <title>[PATCH 16 of 20] importeret rettelsetriple_combiner.patch</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/153</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID abe7f8ef29b1620b69666ff34bae3e8cdb469f8a
# Parent  04d228359cee302716040a5eebee38c46980a1b3
importeret rettelse triple_combiner.patch

diff --git a/viff/orlandi.py b/viff/orlandi.py
--- a/viff/orlandi.py
+++ b/viff/orlandi.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -55,6 +55,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     """
 
     def __init__(self, runtime, field, value=None, rho=None, commitment=None):
+        self.share = value
+        self.rho = rho
+        self.commitment = commitment
         Share.__init__(self, runtime, field, (value, rho, commitment))
 
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -81,6 +84,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         """Initialize runtime."""
         Runtime.__init__(self, player, threshold, options)
         self.threshold = self.num_players - 1
+        self.s = 1
+        self.d = 0
+        self.s_lambda = 1
 
     def compute_delta(self, d):
         def product(j):
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1005,6 +1011,293 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
         return result
 
+    def random_triple(self, field):
+        """Generate a list of triples&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:10:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/152">
    <title>[PATCH 20 of 20] importeret rettelseautopreprocessing.patch</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/152</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID dd15e514cbb0a59f8cf06caa55064cccde3f9b41
# Parent  2dabe8c91e557603cbfeb84d39f892f6bf4e773f
importeret rettelse autopreprocessing.patch

diff --git a/apps/benchmark.py b/apps/benchmark.py
--- a/apps/benchmark.py
+++ b/apps/benchmark.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -63,6 +63,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 import viff.reactor
 viff.reactor.install()
 from twisted.internet import reactor
+from twisted.internet.defer import Deferred
 
 from viff.field import GF, GF256, FakeGF
 from viff.runtime import Runtime, create_runtime, gather_shares, \
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -87,12 +88,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
     print "Started", what
 
 
-def record_stop(_, what):
+def record_stop(x, what):
     stop = time.time()
     print
     print "Total time used: %.3f sec" % (stop-start)
     print "Time per %s operation: %.0f ms" % (what, 1000*(stop-start) / count)
     print "*" * 6
+    return x
 
 operations = {"mul": (operator.mul,[]),
               "compToft05": (operator.ge, [ComparisonToft05Mixin]),
&amp;lt; at &amp;gt;&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:10:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/151">
    <title>[PATCH 14 of 20] Implementation of the TripleGenprotocol</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/151</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID db2d970885f44d2cf18608c81f8422e87d97af8c
# Parent  86e0c7d54f2220bf03da45cf4269c88a7e6b777c
Implementation of the TripleGen protocol.

diff --git a/viff/orlandi.py b/viff/orlandi.py
--- a/viff/orlandi.py
+++ b/viff/orlandi.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -19,8 +19,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
 from viff.runtime import Runtime, Share, ShareList, gather_shares
 from viff.util import rand
-from viff.constants import TEXT
+from viff.constants import TEXT, PAILLIER
 from viff.field import FieldElement
+from viff.paillier import encrypt_r, decrypt
 
 from hash_broadcast import HashBroadcastMixin
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -771,6 +772,200 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
         return result
 
+    def triple_gen(self, field):
+        """Generate a triple ``a, b, c`` s.t. ``c = a * b``.
+
+        1) Every party ``P_i`` chooses random values ``a_i, r_i in Z_p X (Z_p)^2``,
+        compute ``alpha_i = Enc_eki(a_i)`` and ``Ai = Com_ck(a_i, r_i)``, and
+        broadcast them.
+
+        2) Every party `&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:10:04</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/150">
    <title>[PATCH 12 of 20] Implementation of the basicmultiplication command</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/150</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID eb0443115206dc4a50bfea300c5582613d26326a
# Parent  a62e12c9947a9499dd293e2dce91992950505fee
Implementation of the basic multiplication command.

diff --git a/viff/orlandi.py b/viff/orlandi.py
--- a/viff/orlandi.py
+++ b/viff/orlandi.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -459,6 +459,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
              return results[0]
         return results       
 
+    def mul(self, share_x, share_y):
+        """Multiplication of shares.
+
+        Communication cost: ???.
+        """
+        # TODO: Communication cost?
+        assert isinstance(share_x, Share) or isinstance(share_y, Share), \
+            "At least one of share_x and share_y must be a Share."
+
+        self.program_counter[-1] += 1
+
+        field = getattr(share_x, "field", getattr(share_y, "field", None))
+
+        a, b, c = self._get_triple(field)
+        return self._basic_multiplication(share_x, share_y, a, b, c)
+
     def _additive_constant(self, zero, field_elem&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:10:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/149">
    <title>[PATCH 17 of 20] Replace the current implementationof _get_triplewith a call to random triple</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/149</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID 2704f20bab087cc127acb0961acba98768a0123c
# Parent  abe7f8ef29b1620b69666ff34bae3e8cdb469f8a
Replace the current implementation of _get_triple with a call to random triple.

Implement the preprocessing interface.

diff --git a/viff/orlandi.py b/viff/orlandi.py
--- a/viff/orlandi.py
+++ b/viff/orlandi.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -495,8 +495,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 
         field = getattr(share_x, "field", getattr(share_y, "field", None))
 
-        a, b, c = self._get_triple(field)
-        return self._basic_multiplication(share_x, share_y, a, b, c)
+        def finish_mul((a, b, c)):
+            return self._basic_multiplication(share_x, share_y, a, b, c)
+
+        # This will be the result, a Share object.
+        result = Share(self, share_x.field)
+        # This is the Deferred we will do processing on.
+        triple = self._get_triple(field)
+        triple = self.schedule_complex_callback(triple, finish_mul)
+        # We add &lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:10:07</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/148">
    <title>[PATCH 05 of 20] Boilerplate code for theimplementation of theOrlandi runtime</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/148</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID 7fe8f5835b61c495be6eb807cae043f6aa1fd908
# Parent  53d198cdf14cb85d81d6e6cf1ec75a16773dfbec
Boilerplate code for the implementation of the Orlandi runtime.

diff --git a/viff/orlandi.py b/viff/orlandi.py
new file mode 100644
--- /dev/null
+++ b/viff/orlandi.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,69 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+# Copyright 2009 VIFF Development Team.
+#
+# This file is part of VIFF, the Virtual Ideal Functionality Framework.
+#
+# VIFF is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License (LGPL) as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# VIFF is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
+# Public License for more details.
+#
+# You s&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:09:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/147">
    <title>[PATCH 06 of 20] Implemented secret sharing command</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/147</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID 42d95e56edf626b2a2c8535e5bfbe856a1e82a3b
# Parent  7fe8f5835b61c495be6eb807cae043f6aa1fd908
Implemented secret sharing command.

diff --git a/viff/orlandi.py b/viff/orlandi.py
--- a/viff/orlandi.py
+++ b/viff/orlandi.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -15,8 +15,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 # You should have received a copy of the GNU Lesser General Public
 # License along with VIFF. If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.
 
+from twisted.internet.defer import Deferred
+
 from viff.runtime import Runtime, Share, ShareList, gather_shares
 from viff.util import rand
+from viff.constants import TEXT
+
+import commitment
+commitment.set_reference_string(23434347834783478783478L, 489237823478234783478020L)
+
+# import logging
+# LOG_FILENAME = 'logging_example.out'
+# logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG,)
 
 class OrlandiException(Exception):
     pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -67,3 +77,115 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         """Initialize runtime."""
         Runtime.__in&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:09:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/146">
    <title>[PATCH 11 of 20] Implementation of input and shiftcommands</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/146</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID a62e12c9947a9499dd293e2dce91992950505fee
# Parent  5636b02c6beffac287fc05f62b87b3b03c01e116
Implementation of input and shift commands.

diff --git a/viff/hash_broadcast.py b/viff/hash_broadcast.py
--- a/viff/hash_broadcast.py
+++ b/viff/hash_broadcast.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -96,7 +96,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
             self._expect_data_with_pc(unique_pc, peer_id, HASH, d_hash)
             d_signal = Deferred().addCallbacks(signal_received, 
                                                self.error_handler, 
-                                               callbackArgs=(peer_id, message, len(receivers), g_hashes, signals))
+                                               callbackArgs=(peer_id, message, len(receivers), 
+                                                             g_hashes, signals))
             self._expect_data_with_pc(unique_pc, peer_id, SIGNAL, d_signal)
 
         # Set up receiving of the message.
diff --git a/v&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:10:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/145">
    <title>[PATCH 02 of 20] Constants used in communication isrefactored to anew file</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/145</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816276 -7200
# Node ID 8a5eb65501118b57550a57504450ea6ae406d077
# Parent  c43b0e520aba3d9c7de29e494e0ff16d0f66cd37
Constants used in communication is refactored to a new file.

diff --git a/viff/active.py b/viff/active.py
--- a/viff/active.py
+++ b/viff/active.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -28,7 +28,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 from viff.matrix import Matrix, hyper
 from viff.passive import PassiveRuntime
 from viff.runtime import Share, preprocess, gather_shares
-from viff.runtime import ECHO, READY, SEND
+from viff.constants import ECHO, READY, SEND
 
 
 class BrachaBroadcastMixin:
diff --git a/viff/constants.py b/viff/constants.py
new file mode 100644
--- /dev/null
+++ b/viff/constants.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,27 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+# -*- coding: utf-8 -*-
+#
+# Copyright 2009 VIFF Development Team.
+#
+# This file is part of VIFF, the Virtual Ideal Functionality Framework.
+#
+# VIFF is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:09:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/144">
    <title>[PATCH 13 of 20] Implementation of the leak tolerantmultiplicationcommand</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/144</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID 86e0c7d54f2220bf03da45cf4269c88a7e6b777c
# Parent  eb0443115206dc4a50bfea300c5582613d26326a
Implementation of the leak tolerant multiplication command.

diff --git a/viff/orlandi.py b/viff/orlandi.py
--- a/viff/orlandi.py
+++ b/viff/orlandi.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -81,6 +81,21 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         Runtime.__init__(self, player, threshold, options)
         self.threshold = self.num_players - 1
 
+    def compute_delta(self, d):
+        def product(j):
+            pt = 1
+            pn = 1
+            for k in xrange(1, 2 * d + 2):
+                if k != j:
+                    pt *= k
+                    pn *= k - j
+            return pt // pn
+
+        delta = []
+        for j in xrange(1, 2 * d + 2):
+            delta.append(product(j))
+        return delta
+
     def output(self, share, receivers=None, threshold=None):
         return self.open(share, receivers, threshold)
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -243,8 +258,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
             if Cx&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:10:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/143">
    <title>[PATCH 10 of 20] Implementation of subtractioncommand</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/143</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816324 -7200
# Node ID 5636b02c6beffac287fc05f62b87b3b03c01e116
# Parent  94086392cb3c34db1672660c9711cbd4941c991f
Implementation of subtraction command.

diff --git a/viff/orlandi.py b/viff/orlandi.py
--- a/viff/orlandi.py
+++ b/viff/orlandi.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -350,6 +350,39 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         result.addCallbacks(compute_sums, self.error_handler)
         return result
 
+    def sub(self, share_a, share_b):
+        """Subtraction of shares.
+
+        Communication cost: none.
+
+        Each party ``P_i`` computes:
+        ``[z]_i = [x]_i - [y]_i
+                = (x_i - y_i mod p, rho_x,i - rho_y,i mod p, C_x * C_y)``.
+
+        """
+        def is_share(s, field):
+            if not isinstance(s, Share):
+                if not isinstance(s, FieldElement):
+                    s = field(s)
+                (v, rhov, Cv) = self._additive_constant(field(0), s)
+                return OrlandiShare(self, field, v, rhov, Cv)
+            &lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:10:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/142">
    <title>[PATCH 01 of 20] It is now possible to send data toyour self</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/142</link>
    <description>&lt;pre&gt;# HG changeset patch
# User Janus Dam Nielsen &amp;lt;janus.nielsen&amp;lt; at &amp;gt;alexandra.dk&amp;gt;
# Date 1254816260 -7200
# Node ID c43b0e520aba3d9c7de29e494e0ff16d0f66cd37
# Parent  80125f56beaa186cda5d520c6f4b04da598e71bb
It is now possible to send data to your self.

The sendData and _expect_data primitives now accepts and transmits data send from a player to himself.

diff --git a/viff/runtime.py b/viff/runtime.py
--- a/viff/runtime.py
+++ b/viff/runtime.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -382,6 +382,65 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
         """Disconnect this protocol instance."""
         self.transport.loseConnection()
 
+class SelfShareExchanger(ShareExchanger):
+
+    def __init__(self, id, factory):
+        ShareExchanger.__init__(self)
+        self.peer_id = id
+        self.factory = factory
+
+    def stringReceived(self, program_counter, data_type, data):
+        """Called when a share is received.
+
+        The string received is unpacked into the program counter, and
+        a data part. The data is passed the appropriate Deferred in
+        :class:`self.incoming_&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:09:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/141">
    <title>[PATCH 00 of 20] Implementation of the Orlandiruntime</title>
    <link>http://permalink.gmane.org/gmane.comp.cryptography.viff.patches/141</link>
    <description>&lt;pre&gt;Hi friends of VIFF,

This pathcbomb contains three contributions

1) I have made it possible for a player to send and expect data from him self. This simplifies the implementation of the broadcast protocol I have implemented for the Orlandi runtime

2) An implementation of the Orlandi runtime. I have decided not to include the code for the commitment scheme yet, since it uses propriatary code

3) A refactoring and improvement of the benchmark.py application


Please review the code.

--
Janus
&lt;/pre&gt;</description>
    <dc:creator>Janus Dam Nielsen</dc:creator>
    <dc:date>2009-10-06T08:09:50</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.cryptography.viff.patches">
    <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.patches</link>
  </textinput>
</rdf:RDF>

