Browse Source

Basic test of PBKDF2. Way too slow to use.

Rob Napier 10 years ago
parent
commit
5261612eb2
4 changed files with 17 additions and 4 deletions
  1. 1 1
      Spec
  2. 8 0
      rncryptor.js
  3. 3 0
      tests/rncryptor-test.html
  4. 5 3
      tests/rncryptor-test.js

+ 1 - 1
Spec

@@ -1 +1 @@
-Subproject commit 3b4d4f70f8ff87a8f892562060b58df195d9305a
+Subproject commit f7527b3fd8ae5ab45c56e0ef46d0dec60c136ce0

+ 8 - 0
rncryptor.js

@@ -0,0 +1,8 @@
+var RNCryptor = {};
+
+/*
+    Takes password string and salt WordArray
+*/
+RNCryptor.KeyForPassword = function(password, salt) {
+    return CryptoJS.PBKDF2(password, salt, { keySize: 256/32, iterations: 10000 });
+}

+ 3 - 0
tests/rncryptor-test.html

@@ -9,6 +9,9 @@
   <div id="qunit"></div>
   <div id="qunit-fixture"></div>
   <script src="http://code.jquery.com/qunit/qunit-1.13.0.js"></script>
+  <!-- <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha1.js"></script> -->
+  <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/pbkdf2.js"></script>
+  <script src="../rncryptor.js"></script>
   <script src="rncryptor-test.js"></script>
 </body>
 </html>

+ 5 - 3
tests/rncryptor-test.js

@@ -1,3 +1,5 @@
-test( "hello test", function() {
-  ok( 1 == "1", "Passed!" );
-});
+test("KDF: One byte", function() {
+  var key = RNCryptor.KeyForPassword("a", CryptoJS.enc.Hex.parse("0102030405060708"));
+  equal(key.toString(), "fc632b0c a6b23eff 9a9dc3e0 e585167f 5a328916 ed19f835 58be3ba9 828797cd".replace(/\s/g,''));
+});
+