LDAPAccountManager/lam/lib/3rdParty/composer/web-auth/metadata-service/src/MetadataTOCPayloadEntry.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;
}
}