Browse Source

Fixing autoload and bootstrapping now that we have a runtime dependency; Making PHP version requirements consistent

Curtis Farnham 8 years ago
parent
commit
62f5bc002f
10 changed files with 28 additions and 71 deletions
  1. 1 2
      .travis.yml
  2. 0 2
      autoload.php
  3. 1 1
      composer.json
  4. 1 1
      examples/decrypt.php
  5. 1 1
      examples/encrypt.php
  6. 0 51
      functions.php
  7. 0 4
      lib/bootstrap.php
  8. 22 0
      phpunit-coverage-html.xml
  9. 0 5
      phpunit.xml
  10. 2 4
      tests/bootstrap.php

+ 1 - 2
.travis.yml

@@ -1,8 +1,7 @@
 language: php
 php:
-  - 5.4
   - 5.5
   - 5.6
   - 7.0
   - hhvm
-script: phpunit --coverage-text
+script: phpunit

+ 0 - 2
autoload.php

@@ -10,5 +10,3 @@
 require __DIR__.'/lib/RNCryptor/Autoloader.php';
 
 RNCryptor\Autoloader::register();
-
-require_once __DIR__ . '/functions.php';

+ 1 - 1
composer.json

@@ -20,7 +20,7 @@
         }
     ],
     "require": {
-        "php": ">=5.4.0",
+        "php": ">=5.5.0",
         "ext-mcrypt": "*",
 		"sarciszewski/php-future": "0.4.*"
     },

+ 1 - 1
examples/decrypt.php

@@ -1,6 +1,6 @@
 <?php
 
-require __DIR__.'/../autoload.php';
+require __DIR__ . '/../vendor/autoload.php';
 
 $password = "myPassword";
 $base64Encrypted = "AgGXutvFqW9RqQuokYLjehbfM7F+8OO/2sD8g3auA+oNCQFoarRmc59qcKJve7FHyH9MkyJWZ4Cj6CegDU+UbtpXKR0ND6UlfwaZncRUNkw53jy09cgUkHRJI0gCfOsS4rXmRdiaqUt+ukkkaYfAJJk/o3HBvqK/OI4qttyo+kdiLbiAop5QQwWReG2LMQ08v9TAiiOQgFWhd1dc+qFEN7Cv";

+ 1 - 1
examples/encrypt.php

@@ -1,6 +1,6 @@
 <?php
 
-require __DIR__.'/../autoload.php';
+require __DIR__ . '/../vendor/autoload.php';
 
 $password = "myPassword";
 $plaintext = "Here is my test vector. It's not too long, but more than a block and needs padding.";

+ 0 - 51
functions.php

@@ -1,51 +0,0 @@
-<?php
-
-if (!function_exists('hash_pbkdf2')) {
-
-	/**
-	 * Based on pbkdf2() from https://defuse.ca/php-pbkdf2.htm. Made signature-compatible with hash_pbkdf2() in PHP5.5
-	 *
-	 * PBKDF2 key derivation function as defined by RSA's PKCS #5: https://www.ietf.org/rfc/rfc2898.txt
-	 * $algorithm - The hash algorithm to use. Recommended: SHA256
-	 * $password - The password.
-	 * $salt - A salt that is unique to the password.
-	 * $count - Iteration count. Higher is better, but slower. Recommended: At least 1000.
-	 * $key_length - The length of the derived key in bytes.
-	 * $raw_output - If true, the key is returned in raw binary format. Hex encoded otherwise.
-	 * Returns: A $key_length-byte key derived from the password and salt.
-	 *
-	 * Test vectors can be found here: https://www.ietf.org/rfc/rfc6070.txt
-	 *
-	 * This implementation of PBKDF2 was originally created by https://defuse.ca
-	 * With improvements by http://www.variations-of-shadow.com
-	 */
-	function hash_pbkdf2($algorithm, $password, $salt, $count, $key_length = 0, $raw_output = false)
-	{
-	  $algorithm = strtolower($algorithm);
-	  if(!in_array($algorithm, hash_algos(), true))
-	    die('PBKDF2 ERROR: Invalid hash algorithm.');
-	  if($count <= 0 || $key_length <= 0)
-	    die('PBKDF2 ERROR: Invalid parameters.');
-	
-	  $hash_length = strlen(hash($algorithm, "", true));
-	  $block_count = ceil($key_length / $hash_length);
-	
-	  $output = "";
-	  for($i = 1; $i <= $block_count; $i++) {
-	        // $i encoded as 4 bytes, big endian.
-	    $last = $salt . pack("N", $i);
-	        // first iteration
-	    $last = $xorsum = hash_hmac($algorithm, $last, $password, true);
-	        // perform the other $count - 1 iterations
-	    for ($j = 1; $j < $count; $j++) {
-	      $xorsum ^= ($last = hash_hmac($algorithm, $last, $password, true));
-	    }
-	    $output .= $xorsum;
-	  }
-	
-	  if($raw_output)
-	    return substr($output, 0, $key_length);
-	  else
-	    return bin2hex(substr($output, 0, $key_length));
-	}
-}

+ 0 - 4
lib/bootstrap.php

@@ -1,4 +0,0 @@
-<?php
-
-require dirname(__FILE__) . '/RNCryptor/Autoloader.php';
-RNCryptor_Autoloader::register();

+ 22 - 0
phpunit-coverage-html.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<phpunit bootstrap="tests/bootstrap.php"
+         colors="true" 
+>
+    <testsuites>
+        <testsuite name="RNCryptor Test Suite">
+            <directory>tests/RNCryptor/</directory>
+        </testsuite>
+    </testsuites>
+
+    <filter>
+        <whitelist>
+            <directory suffix=".php">lib/RNCryptor/</directory>
+        </whitelist>
+    </filter>
+    
+    <logging>
+        <log type="coverage-html" target="./tests/coverage" charset="UTF-8"
+             yui="true" highlight="false" lowUpperBound="35" highLowerBound="70" />
+    </logging>
+</phpunit>

+ 0 - 5
phpunit.xml

@@ -14,9 +14,4 @@
             <directory suffix=".php">lib/RNCryptor/</directory>
         </whitelist>
     </filter>
-    
-    <logging>
-        <log type="coverage-html" target="./tests/coverage" charset="UTF-8"
-             yui="true" highlight="false" lowUpperBound="35" highLowerBound="70" />
-    </logging>
 </phpunit>

+ 2 - 4
tests/bootstrap.php

@@ -7,8 +7,8 @@
  * file that was distributed with this source code.
  */
 
-if (file_exists(__DIR__.'/../autoload.php')) {
-    require __DIR__.'/../autoload.php';
+if (file_exists(__DIR__.'/../vendor/autoload.php')) {
+    require __DIR__.'/../vendor/autoload.php';
 
 } else if (@include('RNCryptor/Autoloader.php')) {
     RNCryptor\Autoloader::register();
@@ -16,5 +16,3 @@ if (file_exists(__DIR__.'/../autoload.php')) {
 } else {
     die('ERROR: Unable to find a suitable mean to register RNCryptor\Autoloader.');
 }
-
-require_once __DIR__ . '/functions.php';