Skip to content

Commit 679dba1

Browse files
committed
Rename getBytesFromAlphabet to getBytesFromString
1 parent 9bc80a8 commit 679dba1

8 files changed

+60
-60
lines changed

ext/random/random.stub.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public function getInt(int $min, int $max): int {}
137137

138138
public function getBytes(int $length): string {}
139139

140-
public function getBytesFromAlphabet(string $alphabet, int $length): string {}
140+
public function getBytesFromString(string $string, int $length): string {}
141141

142142
public function shuffleArray(array $array): array {}
143143

ext/random/random_arginfo.h

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ext/random/randomizer.c

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -258,22 +258,22 @@ PHP_METHOD(Random_Randomizer, pickArrayKeys)
258258
}
259259
/* }}} */
260260

261-
/* {{{ Get Random Bytes for Alphabet */
262-
PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
261+
/* {{{ Get Random Bytes for String */
262+
PHP_METHOD(Random_Randomizer, getBytesFromString)
263263
{
264264
php_random_randomizer *randomizer = Z_RANDOM_RANDOMIZER_P(ZEND_THIS);
265265
zend_long length;
266-
zend_string *alphabet, *retval;
266+
zend_string *source, *retval;
267267
size_t total_size = 0;
268268

269269
ZEND_PARSE_PARAMETERS_START(2, 2);
270-
Z_PARAM_STR(alphabet)
270+
Z_PARAM_STR(source)
271271
Z_PARAM_LONG(length)
272272
ZEND_PARSE_PARAMETERS_END();
273273

274-
const size_t alphabet_length = ZSTR_LEN(alphabet);
274+
const size_t source_length = ZSTR_LEN(source);
275275

276-
if (alphabet_length < 1) {
276+
if (source_length < 1) {
277277
zend_argument_value_error(1, "cannot be empty");
278278
RETURN_THROWS();
279279
}
@@ -285,26 +285,26 @@ PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
285285

286286
retval = zend_string_alloc(length, 0);
287287

288-
if (alphabet_length > 0xFF) {
288+
if (source_length > 0xFF) {
289289
while (total_size < length) {
290-
uint64_t offset = randomizer->algo->range(randomizer->status, 0, alphabet_length - 1);
290+
uint64_t offset = randomizer->algo->range(randomizer->status, 0, source_length - 1);
291291

292292
if (EG(exception)) {
293293
zend_string_free(retval);
294294
RETURN_THROWS();
295295
}
296296

297-
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(alphabet)[offset];
297+
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(source)[offset];
298298
}
299299
} else {
300300
uint64_t mask = 0xFF;
301-
if (alphabet_length <= 0x7F) mask = 0x7F;
302-
if (alphabet_length <= 0x3F) mask = 0x3F;
303-
if (alphabet_length <= 0x1F) mask = 0x1F;
304-
if (alphabet_length <= 0xF) mask = 0xF;
305-
if (alphabet_length <= 0x7) mask = 0x7;
306-
if (alphabet_length <= 0x3) mask = 0x3;
307-
if (alphabet_length <= 0x1) mask = 0x1;
301+
if (source_length <= 0x7F) mask = 0x7F;
302+
if (source_length <= 0x3F) mask = 0x3F;
303+
if (source_length <= 0x1F) mask = 0x1F;
304+
if (source_length <= 0xF) mask = 0xF;
305+
if (source_length <= 0x7) mask = 0x7;
306+
if (source_length <= 0x3) mask = 0x3;
307+
if (source_length <= 0x1) mask = 0x1;
308308

309309
int failures = 0;
310310
while (total_size < length) {
@@ -317,7 +317,7 @@ PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
317317
for (size_t i = 0; i < randomizer->status->last_generated_size; i++) {
318318
uint64_t offset = (result >> (i * 8)) & mask;
319319

320-
if (offset >= alphabet_length) {
320+
if (offset >= source_length) {
321321
if (++failures > PHP_RANDOM_RANGE_ATTEMPTS) {
322322
zend_string_free(retval);
323323
zend_throw_error(random_ce_Random_BrokenRandomEngineError, "Failed to generate an acceptable random number in %d attempts", PHP_RANDOM_RANGE_ATTEMPTS);
@@ -329,7 +329,7 @@ PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
329329

330330
failures = 0;
331331

332-
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(alphabet)[offset];
332+
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(source)[offset];
333333
if (total_size >= length) {
334334
break;
335335
}

ext/random/tests/03_randomizer/engine_unsafe_biased.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ try {
5050
}
5151

5252
try {
53-
var_dump(randomizer()->getBytesFromAlphabet('123', 10));
53+
var_dump(randomizer()->getBytesFromString('123', 10));
5454
} catch (Random\BrokenRandomEngineError $e) {
5555
echo $e->getMessage(), PHP_EOL;
5656
}
5757

5858
try {
59-
var_dump(randomizer()->getBytesFromAlphabet(str_repeat('a', 500), 10));
59+
var_dump(randomizer()->getBytesFromString(str_repeat('a', 500), 10));
6060
} catch (Random\BrokenRandomEngineError $e) {
6161
echo $e->getMessage(), PHP_EOL;
6262
}

ext/random/tests/03_randomizer/engine_unsafe_empty_string.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ try {
5050
}
5151

5252
try {
53-
var_dump(randomizer()->getBytesFromAlphabet('123', 10));
53+
var_dump(randomizer()->getBytesFromString('123', 10));
5454
} catch (Random\BrokenRandomEngineError $e) {
5555
echo $e->getMessage(), PHP_EOL;
5656
}
5757

5858
try {
59-
var_dump(randomizer()->getBytesFromAlphabet(str_repeat('a', 500), 10));
59+
var_dump(randomizer()->getBytesFromString(str_repeat('a', 500), 10));
6060
} catch (Random\BrokenRandomEngineError $e) {
6161
echo $e->getMessage(), PHP_EOL;
6262
}

ext/random/tests/03_randomizer/methods/getBytesFromAlphabet_error.phpt

Lines changed: 0 additions & 28 deletions
This file was deleted.

ext/random/tests/03_randomizer/methods/getBytesFromAlphabet.phpt renamed to ext/random/tests/03_randomizer/methods/getBytesFromString.phpt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
--TEST--
2-
Random: Randomizer: getBytesFromAlphabet(): Basic functionality
2+
Random: Randomizer: getBytesFromString(): Basic functionality
33
--FILE--
44
<?php
55

@@ -25,11 +25,11 @@ foreach ($engines as $engine) {
2525
echo $engine::class, PHP_EOL;
2626

2727
$randomizer = new Randomizer($engine);
28-
var_dump($randomizer->getBytesFromAlphabet('a', 10));
29-
var_dump($randomizer->getBytesFromAlphabet(str_repeat('a', 256), 5));
28+
var_dump($randomizer->getBytesFromString('a', 10));
29+
var_dump($randomizer->getBytesFromString(str_repeat('a', 256), 5));
3030

3131
for ($i = 1; $i < 250; $i++) {
32-
$output = $randomizer->getBytesFromAlphabet(str_repeat('ab', $i), 500);
32+
$output = $randomizer->getBytesFromString(str_repeat('ab', $i), 500);
3333

3434
// This check can theoretically fail with a chance of 0.5**500.
3535
if (!str_contains($output, 'a') || !str_contains($output, 'b')) {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--TEST--
2+
Random: Randomizer: getBytesFromString(): Parameters are correctly validated
3+
--FILE--
4+
<?php
5+
6+
use Random\Randomizer;
7+
8+
function randomizer(): Randomizer
9+
{
10+
return new Randomizer();
11+
}
12+
13+
try {
14+
var_dump(randomizer()->getBytesFromString("", 2));
15+
} catch (ValueError $e) {
16+
echo $e->getMessage(), PHP_EOL;
17+
}
18+
19+
try {
20+
var_dump(randomizer()->getBytesFromString("abc", 0));
21+
} catch (ValueError $e) {
22+
echo $e->getMessage(), PHP_EOL;
23+
}
24+
25+
?>
26+
--EXPECTF--
27+
Random\Randomizer::getBytesFromString(): Argument #1 ($string) cannot be empty
28+
Random\Randomizer::getBytesFromString(): Argument #2 ($length) must be greater than 0

0 commit comments

Comments
 (0)