Joomla CMS
4.2.2
Documentation des API du CMS Joomla en version 4.2.2
|
Fonctions membres publiques | |
__construct (?Decoder $decoder=null, ?MetadataStatementRepository $metadataStatementRepository=null) | |
name () | |
load (array $attestation) | |
isValid (string $clientDataJSONHash, AttestationStatement $attestationStatement, AuthenticatorData $authenticatorData) | |
Fonctions membres privées | |
checkCertificateAndGetPublicKey (string $certificate, string $clientDataHash, AuthenticatorData $authenticatorData) | |
Attributs privés | |
$decoder | |
$metadataStatementRepository | |
We had to fork the key attestation support object from the WebAuthn server package to address an issue with PHP 8.
We are currently using an older version of the WebAuthn library (2.x) which was written before PHP 8 was developed. We cannot upgrade the WebAuthn library to a newer major version because of Joomla's Semantic Versioning promise.
The AndroidKeyAttestationStatementSupport class forces an assertion on the result of the openssl_pkey_get_public() function, assuming it will return a resource. However, starting with PHP 8.0 this function returns an OpenSSLAsymmetricKey object and the assertion fails. As a result, you cannot use Android or FIDO U2F keys with WebAuthn.
The assertion check is in a private method, therefore we have to fork both attestation support class to change the assertion. The assertion takes place through a third party library we cannot (and should not!) modify.
__construct | ( | ?Decoder | $decoder = null , |
?MetadataStatementRepository | $metadataStatementRepository = null |
||
) |
Decoder | null | $decoder | Obvious |
MetadataStatementRepository | null | $metadataStatementRepository | Obvious |
Références null.
|
private |
string | $certificate | Obvious |
string | $clientDataHash | Obvious |
AuthenticatorData | $authenticatorData | Obvious |
PhpElementIsNotAvailableInCurrentPhpVersionInspection
Références $extension, class, Key\createFromData(), Assertion\eq(), ASNObject\fromBinary(), AuthenticatorData\getAttestedCredentialData(), Assertion\isArray(), Assertion\isInstanceOf(), Assertion\isResource(), Assertion\keyExists(), Assertion\notNull(), et Assertion\true().
isValid | ( | string | $clientDataJSONHash, |
AttestationStatement | $attestationStatement, | ||
AuthenticatorData | $authenticatorData | ||
) |
string | $clientDataJSONHash | Obvious |
AttestationStatement | $attestationStatement | Obvious |
AuthenticatorData | $authenticatorData | Obvious |
Implémente AttestationStatementSupport.
Références CertificateToolbox\checkAttestationMedata(), class, AttestationStatement\get(), AuthenticatorData\getAttestedCredentialData(), AuthenticatorData\getAuthData(), Algorithms\getOpensslAlgorithmFor(), AttestationStatement\getTrustPath(), Assertion\isInstanceOf(), et null.
load | ( | array | $attestation | ) |
array | $attestation | Obvious |
Implémente AttestationStatementSupport.
Références $key, CertificateToolbox\convertAllDERToPEM(), AttestationStatement\createBasic(), Assertion\greaterThan(), Assertion\isArray(), et Assertion\keyExists().
name | ( | ) |
|
private |
|
private |