Skip to content

Commit b56f3f7

Browse files
committed
Rename getBytesFromAlphabet to getBytesFromString
1 parent 397050c commit b56f3f7

File tree

8 files changed

+60
-60
lines changed

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
@@ -243,22 +243,22 @@ PHP_METHOD(Random_Randomizer, pickArrayKeys)
243243
}
244244
/* }}} */
245245

246-
/* {{{ Get Random Bytes for Alphabet */
247-
PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
246+
/* {{{ Get Random Bytes for String */
247+
PHP_METHOD(Random_Randomizer, getBytesFromString)
248248
{
249249
php_random_randomizer *randomizer = Z_RANDOM_RANDOMIZER_P(ZEND_THIS);
250250
zend_long length;
251-
zend_string *alphabet, *retval;
251+
zend_string *source, *retval;
252252
size_t total_size = 0;
253253

254254
ZEND_PARSE_PARAMETERS_START(2, 2);
255-
Z_PARAM_STR(alphabet)
255+
Z_PARAM_STR(source)
256256
Z_PARAM_LONG(length)
257257
ZEND_PARSE_PARAMETERS_END();
258258

259-
const size_t alphabet_length = ZSTR_LEN(alphabet);
259+
const size_t source_length = ZSTR_LEN(source);
260260

261-
if (alphabet_length < 1) {
261+
if (source_length < 1) {
262262
zend_argument_value_error(1, "cannot be empty");
263263
RETURN_THROWS();
264264
}
@@ -270,26 +270,26 @@ PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
270270

271271
retval = zend_string_alloc(length, 0);
272272

273-
if (alphabet_length > 0xFF) {
273+
if (source_length > 0xFF) {
274274
while (total_size < length) {
275-
uint64_t offset = randomizer->algo->range(randomizer->status, 0, alphabet_length - 1);
275+
uint64_t offset = randomizer->algo->range(randomizer->status, 0, source_length - 1);
276276

277277
if (EG(exception)) {
278278
zend_string_free(retval);
279279
RETURN_THROWS();
280280
}
281281

282-
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(alphabet)[offset];
282+
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(source)[offset];
283283
}
284284
} else {
285285
uint64_t mask = 0xFF;
286-
if (alphabet_length <= 0x7F) mask = 0x7F;
287-
if (alphabet_length <= 0x3F) mask = 0x3F;
288-
if (alphabet_length <= 0x1F) mask = 0x1F;
289-
if (alphabet_length <= 0xF) mask = 0xF;
290-
if (alphabet_length <= 0x7) mask = 0x7;
291-
if (alphabet_length <= 0x3) mask = 0x3;
292-
if (alphabet_length <= 0x1) mask = 0x1;
286+
if (source_length <= 0x7F) mask = 0x7F;
287+
if (source_length <= 0x3F) mask = 0x3F;
288+
if (source_length <= 0x1F) mask = 0x1F;
289+
if (source_length <= 0xF) mask = 0xF;
290+
if (source_length <= 0x7) mask = 0x7;
291+
if (source_length <= 0x3) mask = 0x3;
292+
if (source_length <= 0x1) mask = 0x1;
293293

294294
int failures = 0;
295295
while (total_size < length) {
@@ -302,7 +302,7 @@ PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
302302
for (size_t i = 0; i < randomizer->status->last_generated_size; i++) {
303303
uint64_t offset = (result >> (i * 8)) & mask;
304304

305-
if (offset >= alphabet_length) {
305+
if (offset >= source_length) {
306306
if (++failures > PHP_RANDOM_RANGE_ATTEMPTS) {
307307
zend_string_free(retval);
308308
zend_throw_error(random_ce_Random_BrokenRandomEngineError, "Failed to generate an acceptable random number in %d attempts", PHP_RANDOM_RANGE_ATTEMPTS);
@@ -314,7 +314,7 @@ PHP_METHOD(Random_Randomizer, getBytesFromAlphabet)
314314

315315
failures = 0;
316316

317-
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(alphabet)[offset];
317+
ZSTR_VAL(retval)[total_size++] = ZSTR_VAL(source)[offset];
318318
if (total_size >= length) {
319319
break;
320320
}

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)