Skip to content

Commit 39212c3

Browse files
committed
Merge pull request #3875 in SW/shopware from sw-15744/5.2/remove-mcrypt to 5.2
* commit 'aae6a2c86242db3896d4a7b7a1fced3e043be78b': SW-15744 - Remove mcrypt usage
2 parents 9b405a5 + aae6a2c commit 39212c3

File tree

1 file changed

+4
-44
lines changed
  • engine/Shopware/Components/Password/Encoder

1 file changed

+4
-44
lines changed

engine/Shopware/Components/Password/Encoder/Sha256.php

Lines changed: 4 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
namespace Shopware\Components\Password\Encoder;
2626

27+
use Shopware\Components\Random;
28+
2729
/**
2830
* Provides a salted + streched sha256
2931
*
@@ -121,53 +123,11 @@ public function isReencodeNeeded($hash)
121123
}
122124

123125
/**
124-
* Generate a salt using the best number generator available
126+
* Generate a salt using the number generator
125127
* @return string
126128
*/
127129
public function getSalt()
128130
{
129-
// todo@all replace with \Shopware\Componenents\Random::getBytes()
130-
$required_salt_len = $this->options['salt_len'];
131-
132-
$buffer = '';
133-
$raw_length = (int) ($required_salt_len * 3 / 4 + 1);
134-
$buffer_valid = false;
135-
if (function_exists('mcrypt_create_iv') && !defined('PHALANGER')) {
136-
$buffer = mcrypt_create_iv($raw_length, MCRYPT_DEV_URANDOM);
137-
if ($buffer) {
138-
$buffer_valid = true;
139-
}
140-
}
141-
if (!$buffer_valid && function_exists('openssl_random_pseudo_bytes')) {
142-
$buffer = openssl_random_pseudo_bytes($raw_length);
143-
if ($buffer) {
144-
$buffer_valid = true;
145-
}
146-
}
147-
if (!$buffer_valid && is_readable('/dev/urandom')) {
148-
$f = fopen('/dev/urandom', 'r');
149-
$read = strlen($buffer);
150-
while ($read < $raw_length) {
151-
$buffer .= fread($f, $raw_length - $read);
152-
$read = strlen($buffer);
153-
}
154-
fclose($f);
155-
if ($read >= $raw_length) {
156-
$buffer_valid = true;
157-
}
158-
}
159-
if (!$buffer_valid || strlen($buffer) < $raw_length) {
160-
$bl = strlen($buffer);
161-
for ($i = 0; $i < $raw_length; $i++) {
162-
if ($i < $bl) {
163-
$buffer[$i] = $buffer[$i] ^ chr(mt_rand(0, 255));
164-
} else {
165-
$buffer .= chr(mt_rand(0, 255));
166-
}
167-
}
168-
}
169-
$salt = str_replace('+', '.', base64_encode($buffer));
170-
171-
return substr($salt, 0, $required_salt_len);
131+
return Random::getAlphanumericString($this->options['salt_len']);
172132
}
173133
}

0 commit comments

Comments
 (0)