/
TpmStatementVerifierTest.php
42 lines (33 loc) · 1.37 KB
/
TpmStatementVerifierTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
namespace MadWizard\WebAuthn\Tests\Attestation;
use MadWizard\WebAuthn\Attestation\AttestationType;
use MadWizard\WebAuthn\Attestation\AuthenticatorData;
use MadWizard\WebAuthn\Attestation\Statement\TpmAttestationStatement;
use MadWizard\WebAuthn\Attestation\Verifier\TpmAttestationVerifier;
use MadWizard\WebAuthn\Format\Base64UrlEncoding;
use MadWizard\WebAuthn\Tests\Helper\FixtureHelper;
class TpmStatementVerifierTest extends VerifierTest
{
/**
* @var TpmAttestationVerifier
*/
private $verifier;
protected function setUp(): void
{
$this->verifier = new TpmAttestationVerifier();
}
public function testTpm()
{
$plain = FixtureHelper::getFidoTestPlain('challengeResponseAttestationTpmB64UrlMsg');
$attObj = FixtureHelper::getFidoTestObject('challengeResponseAttestationTpmB64UrlMsg');
$hash = hash('sha256', Base64UrlEncoding::decode($plain['response']['clientDataJSON']), true);
$statement = new TpmAttestationStatement($attObj);
$result = $this->verifier->verify($statement, new AuthenticatorData($attObj->getAuthenticatorData()), $hash);
self::assertSame(AttestationType::ATT_CA, $result->getAttestationType());
// TODO: check trust path
}
public function testCreateFormat()
{
$this->checkFormat($this->verifier, TpmAttestationStatement::class);
}
}