From 9118f43c1d5186ef286ccb11ae4279a18fa7551b Mon Sep 17 00:00:00 2001
From: Jaime Perez Crespo <jaime.perez@uninett.no>
Date: Thu, 16 Apr 2015 15:16:25 +0200
Subject: [PATCH] Schedule SimpleSAML_Utilities::generateRandomBytes() for
removal. Deprecate and stop using it.
---
lib/SimpleSAML/Error/Error.php | 2 +-
lib/SimpleSAML/Session.php | 2 +-
lib/SimpleSAML/SessionHandlerCookie.php | 2 +-
lib/SimpleSAML/SessionHandlerPHP.php | 2 +-
lib/SimpleSAML/Stats.php | 2 +-
lib/SimpleSAML/Utilities.php | 12 +++---------
lib/SimpleSAML/Utils/Crypto.php | 4 ++--
lib/SimpleSAML/XHTML/EMail.php | 2 +-
.../saml/lib/Auth/Process/SQLPersistentNameID.php | 2 +-
9 files changed, 12 insertions(+), 18 deletions(-)
diff --git a/lib/SimpleSAML/Error/Error.php b/lib/SimpleSAML/Error/Error.php
index a08ffddcd..402eeeaef 100644
--- a/lib/SimpleSAML/Error/Error.php
+++ b/lib/SimpleSAML/Error/Error.php
@@ -202,7 +202,7 @@ class SimpleSAML_Error_Error extends SimpleSAML_Error_Exception {
$emsg = array_shift($data);
$etrace = implode("\n", $data);
- $reportId = SimpleSAML_Utilities::stringToHex(SimpleSAML_Utilities::generateRandomBytes(4));
+ $reportId = SimpleSAML_Utilities::stringToHex(openssl_random_pseudo_bytes(4));
SimpleSAML_Logger::error('Error report with id ' . $reportId . ' generated.');
$config = SimpleSAML_Configuration::getInstance();
diff --git a/lib/SimpleSAML/Session.php b/lib/SimpleSAML/Session.php
index 3f2af27c8..dbe899f5d 100644
--- a/lib/SimpleSAML/Session.php
+++ b/lib/SimpleSAML/Session.php
@@ -137,7 +137,7 @@ class SimpleSAML_Session
$sh = SimpleSAML_SessionHandler::getSessionHandler();
$this->sessionId = $sh->newSessionId();
- $this->trackid = SimpleSAML_Utilities::stringToHex(SimpleSAML_Utilities::generateRandomBytes(5));
+ $this->trackid = SimpleSAML_Utilities::stringToHex(openssl_random_pseudo_bytes(5));
$this->dirty = true;
diff --git a/lib/SimpleSAML/SessionHandlerCookie.php b/lib/SimpleSAML/SessionHandlerCookie.php
index 60b033ab8..86486fd6e 100644
--- a/lib/SimpleSAML/SessionHandlerCookie.php
+++ b/lib/SimpleSAML/SessionHandlerCookie.php
@@ -93,7 +93,7 @@ extends SimpleSAML_SessionHandler {
* A random session id.
*/
private static function createSessionID() {
- return SimpleSAML_Utilities::stringToHex(SimpleSAML_Utilities::generateRandomBytes(16));
+ return SimpleSAML_Utilities::stringToHex(openssl_random_pseudo_bytes(16));
}
diff --git a/lib/SimpleSAML/SessionHandlerPHP.php b/lib/SimpleSAML/SessionHandlerPHP.php
index afb62a633..2fe63c390 100644
--- a/lib/SimpleSAML/SessionHandlerPHP.php
+++ b/lib/SimpleSAML/SessionHandlerPHP.php
@@ -77,7 +77,7 @@ class SimpleSAML_SessionHandlerPHP extends SimpleSAML_SessionHandler {
}
/* Generate new (secure) session id. */
- $sessionId = SimpleSAML_Utilities::stringToHex(SimpleSAML_Utilities::generateRandomBytes(16));
+ $sessionId = SimpleSAML_Utilities::stringToHex(openssl_random_pseudo_bytes(16));
SimpleSAML_Session::createSession($sessionId);
if (session_id() !== '') {
diff --git a/lib/SimpleSAML/Stats.php b/lib/SimpleSAML/Stats.php
index ec76a3f83..acaf1d80d 100644
--- a/lib/SimpleSAML/Stats.php
+++ b/lib/SimpleSAML/Stats.php
@@ -80,7 +80,7 @@ class SimpleSAML_Stats {
/* The ID generation is designed to cluster IDs related in time close together. */
$int_t = (int)$data['time'];
- $hd = SimpleSAML_Utilities::generateRandomBytes(16);
+ $hd = openssl_random_pseudo_bytes(16);
$data['_id'] = sprintf('%016x%s', $int_t, bin2hex($hd));
foreach (self::$outputs as $out) {
diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php
index f5d877b57..e22fea3ed 100644
--- a/lib/SimpleSAML/Utilities.php
+++ b/lib/SimpleSAML/Utilities.php
@@ -382,7 +382,7 @@ class SimpleSAML_Utilities {
public static function generateID() {
- return '_' . self::stringToHex(self::generateRandomBytes(21));
+ return '_' . self::stringToHex(openssl_random_pseudo_bytes(21));
}
@@ -957,18 +957,12 @@ class SimpleSAML_Utilities {
/**
- * This function generates a binary string containing random bytes.
- *
- * It is implemented as a wrapper of the openssl_random_pseudo_bytes function,
- * available since PHP 5.3.0.
- *
- * @param int $length The number of random bytes to return.
- * @return string A string of $length random bytes.
+ * @deprecated This function will be removed in SSP 2.0. Please use openssl_random_pseudo_bytes() instead.
*/
public static function generateRandomBytes($length) {
assert('is_int($length)');
- return openssl_random_pseudo_bytes($length);
+ return openssl_random_pseudo_bytes($length);
}
diff --git a/lib/SimpleSAML/Utils/Crypto.php b/lib/SimpleSAML/Utils/Crypto.php
index 565c93e0a..c3090e18b 100644
--- a/lib/SimpleSAML/Utils/Crypto.php
+++ b/lib/SimpleSAML/Utils/Crypto.php
@@ -82,7 +82,7 @@ class SimpleSAML_Utils_Crypto
$numpad = $blockSize - ($len % $blockSize);
$data = str_pad($data, $len + $numpad, chr($numpad));
- $iv = SimpleSAML_Utilities::generateRandomBytes($ivSize);
+ $iv = openssl_random_pseudo_bytes($ivSize);
$data = mcrypt_encrypt($enc, $key, $data, $mode, $iv);
@@ -257,7 +257,7 @@ class SimpleSAML_Utils_Crypto
if (!$salt) { // no salt provided, generate one
// default 8 byte salt, but 4 byte for LDAP SHA1 hashes
$bytes = ($algorithm == 'SSHA1') ? 4 : 8;
- $salt = SimpleSAML_Utilities::generateRandomBytes($bytes);
+ $salt = openssl_random_pseudo_bytes($bytes);
}
if ($algorithm[0] == 'S' && in_array(substr(strtolower($algorithm), 1), hash_algos())) {
diff --git a/lib/SimpleSAML/XHTML/EMail.php b/lib/SimpleSAML/XHTML/EMail.php
index 67989b121..761f5de77 100644
--- a/lib/SimpleSAML/XHTML/EMail.php
+++ b/lib/SimpleSAML/XHTML/EMail.php
@@ -65,7 +65,7 @@ pre {
if ($this->subject == NULL) throw new Exception('EMail field [subject] is required and not set.');
if ($this->body == NULL) throw new Exception('EMail field [body] is required and not set.');
- $random_hash = SimpleSAML_Utilities::stringToHex(SimpleSAML_Utilities::generateRandomBytes(16));
+ $random_hash = SimpleSAML_Utilities::stringToHex(openssl_random_pseudo_bytes(16));
if (isset($this->from))
$this->headers[]= 'From: ' . $this->from;
diff --git a/modules/saml/lib/Auth/Process/SQLPersistentNameID.php b/modules/saml/lib/Auth/Process/SQLPersistentNameID.php
index 9a0ad3639..ebfab8eef 100644
--- a/modules/saml/lib/Auth/Process/SQLPersistentNameID.php
+++ b/modules/saml/lib/Auth/Process/SQLPersistentNameID.php
@@ -81,7 +81,7 @@ class sspmod_saml_Auth_Process_SQLPersistentNameID extends sspmod_saml_BaseNameI
throw new sspmod_saml_Error(SAML2_Const::STATUS_RESPONDER, 'urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy');
}
- $value = SimpleSAML_Utilities::stringToHex(SimpleSAML_Utilities::generateRandomBytes(20));
+ $value = SimpleSAML_Utilities::stringToHex(openssl_random_pseudo_bytes(20));
SimpleSAML_Logger::debug('SQLPersistentNameID: Created persistent NameID ' . var_export($value, TRUE) . ' for user ' . var_export($uid, TRUE) . '.');
sspmod_saml_IdP_SQLNameID::add($idpEntityId, $spEntityId, $uid, $value);
--
GitLab