146 lines
3.1 KiB
PHP
146 lines
3.1 KiB
PHP
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
/*
|
||
|
* The MIT License (MIT)
|
||
|
*
|
||
|
* Copyright (c) 2014-2019 Spomky-Labs
|
||
|
*
|
||
|
* This software may be modified and distributed under the terms
|
||
|
* of the MIT license. See the LICENSE file for details.
|
||
|
*/
|
||
|
|
||
|
namespace Webauthn\MetadataService;
|
||
|
|
||
|
use Assert\Assertion;
|
||
|
|
||
|
class MetadataTOCPayloadEntry
|
||
|
{
|
||
|
/**
|
||
|
* @var string|null
|
||
|
*/
|
||
|
private $aaid;
|
||
|
|
||
|
/**
|
||
|
* @var string|null
|
||
|
*/
|
||
|
private $aaguid;
|
||
|
|
||
|
/**
|
||
|
* @var string[]
|
||
|
*/
|
||
|
private $attestationCertificateKeyIdentifiers = [];
|
||
|
|
||
|
/**
|
||
|
* @var string|null
|
||
|
*/
|
||
|
private $hash;
|
||
|
|
||
|
/**
|
||
|
* @var string|null
|
||
|
*/
|
||
|
private $url;
|
||
|
|
||
|
/**
|
||
|
* @var BiometricStatusReport[]
|
||
|
*/
|
||
|
private $biometricStatusReports = [];
|
||
|
|
||
|
/**
|
||
|
* @var StatusReport[]
|
||
|
*/
|
||
|
private $statusReports = [];
|
||
|
|
||
|
/**
|
||
|
* @var string
|
||
|
*/
|
||
|
private $timeOfLastStatusChange;
|
||
|
|
||
|
/**
|
||
|
* @var string
|
||
|
*/
|
||
|
private $rogueListURL;
|
||
|
|
||
|
/**
|
||
|
* @var string
|
||
|
*/
|
||
|
private $rogueListHash;
|
||
|
|
||
|
public function getAaid(): ?string
|
||
|
{
|
||
|
return $this->aaid;
|
||
|
}
|
||
|
|
||
|
public function getAaguid(): ?string
|
||
|
{
|
||
|
return $this->aaguid;
|
||
|
}
|
||
|
|
||
|
public function getAttestationCertificateKeyIdentifiers(): array
|
||
|
{
|
||
|
return $this->attestationCertificateKeyIdentifiers;
|
||
|
}
|
||
|
|
||
|
public function getHash(): ?string
|
||
|
{
|
||
|
return $this->hash;
|
||
|
}
|
||
|
|
||
|
public function getUrl(): ?string
|
||
|
{
|
||
|
return $this->url;
|
||
|
}
|
||
|
|
||
|
public function getBiometricStatusReports(): array
|
||
|
{
|
||
|
return $this->biometricStatusReports;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @return StatusReport[]
|
||
|
*/
|
||
|
public function getStatusReports(): array
|
||
|
{
|
||
|
return $this->statusReports;
|
||
|
}
|
||
|
|
||
|
public function getTimeOfLastStatusChange(): string
|
||
|
{
|
||
|
return $this->timeOfLastStatusChange;
|
||
|
}
|
||
|
|
||
|
public function getRogueListURL(): string
|
||
|
{
|
||
|
return $this->rogueListURL;
|
||
|
}
|
||
|
|
||
|
public function getRogueListHash(): string
|
||
|
{
|
||
|
return $this->rogueListHash;
|
||
|
}
|
||
|
|
||
|
public static function createFromArray(array $data): self
|
||
|
{
|
||
|
$object = new self();
|
||
|
$object->aaid = $data['aaid'] ?? null;
|
||
|
$object->aaguid = $data['aaguid'] ?? null;
|
||
|
$object->attestationCertificateKeyIdentifiers = $data['attestationCertificateKeyIdentifiers'] ?? null;
|
||
|
$object->hash = $data['hash'] ?? null;
|
||
|
$object->url = $data['url'] ?? null;
|
||
|
$object->biometricStatusReports = isset($data['biometricStatusReports']) ? BiometricStatusReport::createFromArray($data['biometricStatusReports']) : null;
|
||
|
$object->statusReports = [];
|
||
|
if (isset($data['statusReports'])) {
|
||
|
Assertion::isArray($data['statusReports'], 'Invalid status report');
|
||
|
foreach ($data['statusReports'] as $k => $statusReport) {
|
||
|
$object->statusReports[$k] = StatusReport::createFromArray($statusReport);
|
||
|
}
|
||
|
}
|
||
|
$object->timeOfLastStatusChange = $data['timeOfLastStatusChange'] ?? null;
|
||
|
$object->rogueListURL = $data['rogueListURL'] ?? null;
|
||
|
$object->rogueListHash = $data['rogueListHash'] ?? null;
|
||
|
|
||
|
return $object;
|
||
|
}
|
||
|
}
|