From b5b035655697db4e03317b718a7ce6d6e5e8e44e Mon Sep 17 00:00:00 2001
From: Ben Adida <ben@adida.net>
Date: Thu, 22 Dec 2011 08:21:58 -0800
Subject: [PATCH] Added server randomness for keygen, in case client-side is
 not enough

---
 helios/templates/election_keygenerator.html | 16 ++++++++++++----
 helios/views.py                             |  2 +-
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/helios/templates/election_keygenerator.html b/helios/templates/election_keygenerator.html
index 946533d..33da0dd 100644
--- a/helios/templates/election_keygenerator.html
+++ b/helios/templates/election_keygenerator.html
@@ -27,13 +27,21 @@ function reuse_key(secret_key_text) {
     show_pk();
 }
 
+// start collecting some local randomness
+sjcl.random.startCollectors();
+
 $(document).ready(function() {
     clear_keys();
     $('#generator').hide();
-    BigInt.setup(function() {
-        ELGAMAL_PARAMS = ElGamal.Params.fromJSONObject({{eg_params_json|safe}});
-        $('#waiting_message').hide();
-        $('#generator').show();
+
+    // get some more server-side randomness for keygen
+    $.getJSON('../../get-randomness', function(result) {
+       sjcl.random.addEntropy(result.randomness);
+       BigInt.setup(function() {
+          ELGAMAL_PARAMS = ElGamal.Params.fromJSONObject({{eg_params_json|safe}});
+          $('#waiting_message').hide();
+          $('#generator').show();
+       });
     });
 });
 
diff --git a/helios/views.py b/helios/views.py
index ebdc81f..5721f20 100644
--- a/helios/views.py
+++ b/helios/views.py
@@ -508,7 +508,7 @@ def trustee_upload_pk(request, election, trustee):
 ##
 
 @json
-@election_view(frozen=True)
+@election_view()
 def get_randomness(request, election):
   """
   get some randomness to sprinkle into the sjcl entropy pool
-- 
GitLab