ASAuthorizationController assert request with "webauth.create" type

Hi,

I'm playing with the new improvements to the ASAuthorizationController allowing to leverage WebAuthn API (e.g. ASAuthorizationPlatformPublicKeyCredentialRegistration and ASAuthorizationPlatformPublicKeyCredentialAssertion).

I've spotted an odd behaviour when validating assert requests.

Here is a small snippet of what's happening in my app:

// requesting assertion
        let publicKeyCredentialProvider = ASAuthorizationPlatformPublicKeyCredentialProvider(

            relyingPartyIdentifier: response.rp.id

        )



        let assertionRequest = publicKeyCredentialProvider.createCredentialAssertionRequest(challenge: response.challenge)

...

// in delegate `assertRequest` is being sent to the server
            let assertRequest = AssertRequest(

                user: user,

                signature: credentialAssertion.signature,

                authData: credentialAssertion.rawAuthenticatorData,

                clientData: credentialAssertion.rawClientDataJSON,

                userId: credentialAssertion.userID

            )

According to "5.1.4 Use an Existing Credential to Make an Assertion - PublicKeyCredential’s [[Get]] Method" of the WebAuthn spec, the ClientData field should contain type "webauthn.get", but looks it always has "webauthn.create" value and fails my validation.

Has anyone else experienced similar issue? I was testing my app on the latest Xcode 13 beta2 and running the app on iOS 15 beta2.

ASAuthorizationController assert request with "webauth.create" type
 
 
Q