]> granicus.if.org Git - php/commitdiff
MFH'd crypt() tests - renamed to fit phpt schema, tests for DES-fallback,
authorJoey Smith <joey@php.net>
Tue, 23 Feb 2010 21:14:51 +0000 (21:14 +0000)
committerJoey Smith <joey@php.net>
Tue, 23 Feb 2010 21:14:51 +0000 (21:14 +0000)
 use b'' on strings.

ext/standard/tests/strings/bug51059.phpt
ext/standard/tests/strings/crypt_blowfish_invalid_rounds.phpt [deleted file]
ext/standard/tests/strings/crypt_blowfish_variation1.phpt [new file with mode: 0644]
ext/standard/tests/strings/crypt_blowfish_variation2.phpt [new file with mode: 0644]

index f2cbe9deff899b7a01ff971d52668dc70a0531f2..bdc56f1762db38ad8fd1abf89a2f77083959f688 100644 (file)
@@ -2,8 +2,8 @@
 Bug #51059 crypt() segfaults on certain salts
 --FILE--
 <?php
-$res = crypt('a', '_');
-if ($res == '*0' || $res == '*1') echo 'OK';
+$res = crypt(b'a', b'_');
+if ($res === b'*0' || $res === b'*1') echo 'OK';
 else echo 'Not OK';
 
 ?>
diff --git a/ext/standard/tests/strings/crypt_blowfish_invalid_rounds.phpt b/ext/standard/tests/strings/crypt_blowfish_invalid_rounds.phpt
deleted file mode 100644 (file)
index 6d40b07..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-Test Blowfish crypt() with invalid rounds
---FILE--
-<?php
-
-foreach(range(32, 38) as $i) {
-  if (crypt('U*U', '$2a$'.$i.'$CCCCCCCCCCCCCCCCCCCCCC$') === FALSE) {
-    echo "$i. OK\n";
-  } else {
-    echo "$i. Not OK\n";
-  }
-}
-
-?>
---EXPECT--
-32. OK
-33. OK
-34. OK
-35. OK
-36. OK
-37. OK
-38. OK
diff --git a/ext/standard/tests/strings/crypt_blowfish_variation1.phpt b/ext/standard/tests/strings/crypt_blowfish_variation1.phpt
new file mode 100644 (file)
index 0000000..1592cfe
--- /dev/null
@@ -0,0 +1,37 @@
+--TEST--
+Test Blowfish crypt() with invalid rounds
+--SKIPIF--
+<?php
+if (!function_exists('crypt') || !defined("CRYPT_BLOWFISH")) {
+    die("SKIP crypt()-blowfish is not available");
+}
+?>
+--FILE--
+<?php
+
+$salts = array(b'32' => b'$2a$32$CCCCCCCCCCCCCCCCCCCCCC$',
+               b'33' => b'$2a$33$CCCCCCCCCCCCCCCCCCCCCC$',
+               b'34' => b'$2a$34$CCCCCCCCCCCCCCCCCCCCCC$',
+               b'35' => b'$2a$35$CCCCCCCCCCCCCCCCCCCCCC$',
+               b'36' => b'$2a$36$CCCCCCCCCCCCCCCCCCCCCC$',
+               b'37' => b'$2a$37$CCCCCCCCCCCCCCCCCCCCCC$',
+               b'38' => b'$2a$38$CCCCCCCCCCCCCCCCCCCCCC$',);
+
+foreach($salts as $i=>$salt) {
+  $crypt = crypt(b'U*U', $salt);
+  if ($crypt === b'*0' || $crypt === b'*1') {
+    echo "$i. OK\n";
+  } else {
+    echo "$i. Not OK\n";
+  }
+}
+
+?>
+--EXPECT--
+32. OK
+33. OK
+34. OK
+35. OK
+36. OK
+37. OK
+38. OK
diff --git a/ext/standard/tests/strings/crypt_blowfish_variation2.phpt b/ext/standard/tests/strings/crypt_blowfish_variation2.phpt
new file mode 100644 (file)
index 0000000..21bedc1
--- /dev/null
@@ -0,0 +1,14 @@
+--TEST--
+Test Blowfish crypt() falls back to DES when rounds are not specified,
+or Blowfish is not available.
+--FILE--
+<?php
+$crypt = crypt(b'U*U', b'$2a$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW');
+if ($crypt===b'$2SHYF.wPGyfE') {
+    echo "OK\n";
+} else {
+    echo "Not OK\n";
+}
+?>
+--EXPECT--
+OK