Author: johnh
Date: Thu Feb 24 18:23:21 2011
New Revision: 1074248

URL: http://svn.apache.org/viewvc?rev=1074248&view=rev
Log:
Split off separate feature shindig.sha1 for reusability, and add digestString() 
helper method.


Added:
    shindig/trunk/features/src/main/javascript/features/shindig.sha1/
    shindig/trunk/features/src/main/javascript/features/shindig.sha1/feature.xml
    shindig/trunk/features/src/main/javascript/features/shindig.sha1/sha1.js
      - copied, changed from r1071073, 
shindig/trunk/features/src/main/javascript/features/shindig.random/sha1.js
Removed:
    shindig/trunk/features/src/main/javascript/features/shindig.random/sha1.js
Modified:
    
shindig/trunk/features/src/main/javascript/features/shindig.random/feature.xml
    shindig/trunk/features/src/main/javascript/features/shindig.random/random.js

Modified: 
shindig/trunk/features/src/main/javascript/features/shindig.random/feature.xml
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/shindig.random/feature.xml?rev=1074248&r1=1074247&r2=1074248&view=diff
==============================================================================
--- 
shindig/trunk/features/src/main/javascript/features/shindig.random/feature.xml 
(original)
+++ 
shindig/trunk/features/src/main/javascript/features/shindig.random/feature.xml 
Thu Feb 24 18:23:21 2011
@@ -22,12 +22,17 @@ A JavaScript "more-secure-random" implem
 -->
   <name>shindig.random</name>
   <dependency>globals</dependency>
+  <dependency>shindig.sha1</dependency>
   <gadget>
-    <script src="sha1.js"/>
+    <api>
+      <exports type="js">shindig.random</exports>
+    </api>
     <script src="random.js"/>
   </gadget>
   <container>
-    <script src="sha1.js"/>
+    <api>
+      <exports type="js">shindig.random</exports>
+    </api>
     <script src="random.js"/>
   </container>
 </feature>

Modified: 
shindig/trunk/features/src/main/javascript/features/shindig.random/random.js
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/shindig.random/random.js?rev=1074248&r1=1074247&r2=1074248&view=diff
==============================================================================
--- 
shindig/trunk/features/src/main/javascript/features/shindig.random/random.js 
(original)
+++ 
shindig/trunk/features/src/main/javascript/features/shindig.random/random.js 
Thu Feb 24 18:23:21 2011
@@ -35,17 +35,6 @@ shindig.random = (function() {
   var start = 1;
   var m = ((screen.width * screen.width) + screen.height) * 1e6;
 
-  function sha1(str) {
-    var s = shindig.sha1();
-    s.update(str);
-    var arr = s.digest();
-    var hash = '';
-    for (var i = 0; i < arr.length; i++) {
-      hash += hex.charAt(Math.floor(arr[i] / 16)) + hex.charAt(arr[i] % 16);
-    }
-    return hash;
-  }
-
   var orig_onmousemove = window.onmousemove || function() { return false; };
 
   window.onmousemove = function(e) {
@@ -60,6 +49,12 @@ shindig.random = (function() {
     return orig_onmousemove.call(window, 
Array.prototype.slice.call(arguments));
   };
 
+  function sha1(str) {
+    var sha1 = shindig.sha1();
+    sha1.update(str);
+    return sha1.digestString();
+  }
+
   var seed = sha1(
       document.cookie + '|' + document.location + '|' + (new Date()).getTime() 
+ '|' + oth);
 

Added: 
shindig/trunk/features/src/main/javascript/features/shindig.sha1/feature.xml
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/shindig.sha1/feature.xml?rev=1074248&view=auto
==============================================================================
--- 
shindig/trunk/features/src/main/javascript/features/shindig.sha1/feature.xml 
(added)
+++ 
shindig/trunk/features/src/main/javascript/features/shindig.sha1/feature.xml 
Thu Feb 24 18:23:21 2011
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+-->
+<feature>
+<!--
+A JavaScript sha1 imlementation.
+-->
+  <name>shindig.sha1</name>
+  <dependency>globals</dependency>
+  <gadget>
+    <api>
+      <exports type="js">shindig.sha1.reset</exports>
+      <exports type="js">shindig.sha1.update</exports>
+      <exports type="js">shindig.sha1.digest</exports>
+      <exports type="js">shindig.sha1.digestString</exports>
+    </api>
+    <script src="sha1.js"/>
+  </gadget>
+  <container>
+    <api>
+      <exports type="js">shindig.sha1.reset</exports>
+      <exports type="js">shindig.sha1.update</exports>
+      <exports type="js">shindig.sha1.digest</exports>
+      <exports type="js">shindig.sha1.digestString</exports>
+    </api>
+    <script src="sha1.js"/>
+  </container>
+</feature>

Copied: 
shindig/trunk/features/src/main/javascript/features/shindig.sha1/sha1.js (from 
r1071073, 
shindig/trunk/features/src/main/javascript/features/shindig.random/sha1.js)
URL: 
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/shindig.sha1/sha1.js?p2=shindig/trunk/features/src/main/javascript/features/shindig.sha1/sha1.js&p1=shindig/trunk/features/src/main/javascript/features/shindig.random/sha1.js&r1=1071073&r2=1074248&rev=1074248&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/shindig.random/sha1.js 
(original)
+++ shindig/trunk/features/src/main/javascript/features/shindig.sha1/sha1.js 
Thu Feb 24 18:23:21 2011
@@ -74,6 +74,18 @@ shindig.sha1 = (function() {
   }
 
   /**
+   * @type {number}
+   * @private
+   */
+  var inbuf_;
+
+  /**
+   * @type {number}
+   * @private
+   */
+  var total_;
+
+  /**
    * Resets the internal accumulator.
    */
   function reset() {
@@ -232,11 +244,24 @@ shindig.sha1 = (function() {
     return digest;
   }
 
+  /**
+   * @return {String} Hex-encoded string containing finalized hash.
+   */
+  function digestString() {
+    var arr = digest();
+    var hash = '';
+    for (var i = 0; i < arr.length; i++) {
+      hash += hex.charAt(Math.floor(arr[i] / 16)) + hex.charAt(arr[i] % 16);
+    }
+    return hash;
+  }
+
   reset();
 
   return {
     reset: reset,
     update: update,
-    digest: digest
+    digest: digest,
+    digestString: digestString
   };
 });


Reply via email to