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
};
});