Skip to content

Commit 0baf646

Browse files
committed
Rename getBytesFromAlphabet to getBytesFromString
1 parent d69c3c0 commit 0baf646

File tree

8 files changed

+61
-61
lines changed

8 files changed

+61
-61
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: 19 additions & 19 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,34 +285,34 @@ 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;
301-
if (alphabet_length <= 0x1) {
301+
if (source_length <= 0x1) {
302302
mask = 0x0;
303-
} else if (alphabet_length <= 0x2) {
303+
} else if (source_length <= 0x2) {
304304
mask = 0x1;
305-
} else if (alphabet_length <= 0x4) {
305+
} else if (source_length <= 0x4) {
306306
mask = 0x3;
307-
} else if (alphabet_length <= 0x8) {
307+
} else if (source_length <= 0x8) {
308308
mask = 0x7;
309-
} else if (alphabet_length <= 0x10) {
309+
} else if (source_length <= 0x10) {
310310
mask = 0xF;
311-
} else if (alphabet_length <= 0x20) {
311+
} else if (source_length <= 0x20) {
312312
mask = 0x1F;
313-
} else if (alphabet_length <= 0x40) {
313+
} else if (source_length <= 0x40) {
314314
mask = 0x3F;
315-
} else if (alphabet_length <= 0x80) {
315+
} else if (source_length <= 0x80) {
316316
mask = 0x7F;
317317
} else {
318318
mask = 0xFF;
@@ -329,7 +329,7 @@ PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
329329
for (size_t i = 0; i < randomizer->status->last_generated_size; i++) {
330330
uint64_t offset = (result >> (i * 8)) & mask;
331331

332-
if (offset >= alphabet_length) {
332+
if (offset >= source_length) {
333333
if (++failures > PHP_RANDOM_RANGE_ATTEMPTS) {
334334
zend_string_free(retval);
335335
zend_throw_error(random_ce_Random_BrokenRandomEngineError, "Failed to generate an acceptable random number in %d attempts", PHP_RANDOM_RANGE_ATTEMPTS);
@@ -341,7 +341,7 @@ PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
341341

342342
failures = 0;
343343

344-
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(alphabet)[offset];
344+
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(source)[offset];
345345
if (total_size >= length) {
346346
break;
347347
}

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)