PolicyResponse
in package
implements
JsonSerializable
`GET` response: the stored policy plus the unknown-AAGUID action it currently *resolves to*.
unknown_aaguid is nullable, where null means "use this mode's default" (deny under
direct_required, allow otherwise). A client that only saw the stored null would have to
re-derive that rule itself to display what the policy actually does — and a security rule
implemented twice is a security rule that will eventually disagree with itself. So the
server resolves it once, here, and reports both: the admin's stored intent and its effect.
Table of Contents
Interfaces
- JsonSerializable
Properties
- $allowedAaguids : array<string|int, mixed>|null
- $blockedAaguids : array<string|int, mixed>|null
- $blockRevokedStatus : bool
- $effectiveUnknownAaguid : UnknownAaguidAction
- $minCertification : CertificationLevel|null
- $mode : AttestationMode
- $requireFidoCertified : bool
- $unknownAaguid : UnknownAaguidAction|null
Methods
- __construct() : mixed
- Constructs a PolicyResponse.
- fromArray() : self
- Rebuilds a PolicyResponse from one decoded JSON object.
- jsonSerialize() : array<string, mixed>
- Renders this object for `json_encode()`.
- toArray() : array<string, mixed>
- Renders this object back to its wire form.
Properties
$allowedAaguids read-only
public
array<string|int, mixed>|null
$allowedAaguids
= null
$blockedAaguids read-only
public
array<string|int, mixed>|null
$blockedAaguids
= null
$blockRevokedStatus read-only
public
bool
$blockRevokedStatus
$effectiveUnknownAaguid read-only
public
UnknownAaguidAction
$effectiveUnknownAaguid
$minCertification read-only
public
CertificationLevel|null
$minCertification
= null
$mode read-only
public
AttestationMode
$mode
$requireFidoCertified read-only
public
bool
$requireFidoCertified
$unknownAaguid read-only
public
UnknownAaguidAction|null
$unknownAaguid
= null
Methods
__construct()
Constructs a PolicyResponse.
public
__construct(bool $blockRevokedStatus, AttestationMode $mode, bool $requireFidoCertified, UnknownAaguidAction $effectiveUnknownAaguid[, array<int, string>|null $allowedAaguids = null ][, array<int, string>|null $blockedAaguids = null ][, CertificationLevel|null $minCertification = null ][, UnknownAaguidAction|null $unknownAaguid = null ]) : mixed
Parameters
- $blockRevokedStatus : bool
-
Deny registration if the MDS entry has ever reported
REVOKEDor any*_COMPROMISEstatus (sticky — D8 step 7). - $mode : AttestationMode
-
the server's
modefield - $requireFidoCertified : bool
-
Require some
FIDO_CERTIFIED*status, any level. Independent of (and checked before)min_certification. - $effectiveUnknownAaguid : UnknownAaguidAction
-
The action actually applied to an AAGUID with no MDS metadata, with
unknown_aaguid: nullresolved againstmode. Read-only —PUTignores it. - $allowedAaguids : array<int, string>|null = null
-
None= every AAGUID is allowed exceptblocked_aaguids.Some(vec![])is a deliberate "nothing may register" policy and is accepted as such:evaluatedenies every AAGUID against an empty allow-list. Nothing rejects it, precisely because the failure direction is safe — a client that sends[]when it meantnullgets a locked-down tenant, which is visible immediately, rather than an open one, which is not. (optional) - $blockedAaguids : array<int, string>|null = null
-
the server's
blocked_aaguidsfield (optional) - $minCertification : CertificationLevel|null = null
-
the server's
min_certificationfield (optional) - $unknownAaguid : UnknownAaguidAction|null = null
-
the server's
unknown_aaguidfield (optional)
fromArray()
Rebuilds a PolicyResponse from one decoded JSON object.
public
static fromArray(array<string, mixed> $data) : self
Parameters
- $data : array<string, mixed>
-
The raw wire object.
Return values
selfjsonSerialize()
Renders this object for `json_encode()`.
public
jsonSerialize() : array<string, mixed>
Any Sensitive it carries stays WRAPPED here, so a log line or a
json_encode($model) in application code prints [SENSITIVE]. The one place a secret
is revealed is ManagementTransport, on the way to the wire
and nowhere else (§27.5).
Return values
array<string, mixed>toArray()
Renders this object back to its wire form.
public
toArray() : array<string, mixed>
§27.4 rule 5: a null property is OMITTED, not emitted as null. On a sparse update those two say opposite things — "leave this alone" versus "set this to nothing" — and only omission means the first.