Skip to content

Commit 6fd4fb2

Browse files
committed
fix: store generated salt in already instantiated UserClient before returning
1 parent 87f0334 commit 6fd4fb2

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

src/Wowemu/SRP/UserClient.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private function computeVerifier(BigInteger $x): BigInteger
115115
*/
116116
public function generateSalt(): string
117117
{
118-
return $this->getRandomNumber(32);
118+
return $this->salt = $this->getRandomNumber(32);
119119
}
120120

121121
/**

tests/UserClientTest.php

+27-1
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,37 @@ public function dataProvider(): array
3636
/**
3737
* @param $username
3838
* @param $password
39-
* @param $salt
39+
* @param $expectedSalt
4040
* @param $expectedVerifier
4141
*
42+
* @throws Exception
4243
* @dataProvider dataProvider
44+
*/
45+
public function testNewAccountGeneration($username, $password, $expectedSalt, $expectedVerifier): void
46+
{
47+
// Create a client mock for this test case (equivalent of new UserClient($username)
48+
$client = $this->getMockBuilder(UserClient::class)
49+
->setConstructorArgs([$username])
50+
->setMethods(['getRandomNumber'])
51+
->getMock();
52+
53+
$client->method('getRandomNumber')->willReturn($expectedSalt);
54+
55+
$salt = $client->generateSalt();
56+
$verifier = $client->generateVerifier($password);
57+
58+
$this->assertEquals($expectedSalt, $salt);
59+
$this->assertEquals($expectedVerifier, $verifier);
60+
}
61+
62+
/**
63+
* @param $username
64+
* @param $password
65+
* @param $salt
66+
* @param $expectedVerifier
67+
*
4368
* @throws Exception
69+
* @dataProvider dataProvider
4470
*/
4571
public function testGenerateVerifierAgainstExistingData($username, $password, $salt, $expectedVerifier): void
4672
{

0 commit comments

Comments
 (0)