We are implementing a 3rd party Passkeys Manager app for ios. In the ios app in the CredentialProviderViewController I've implemented:
func prepareCredentialList(
for serviceIdentifiers: [ASCredentialServiceIdentifier]
)
func provideCredentialWithoutUserInteraction(
for credentialRequest: ASCredentialRequest
)
func prepareInterfaceToProvideCredential(
for credentialRequest: ASCredentialRequest
)
func prepareInterface(
forPasskeyRegistration registrationRequest: ASCredentialRequest
)
When testing on webpages like webauthn.io and webauthn.me , our app shows up as one of the options for creating a passkey.
We are getting the calls in prepareInterface() and handling it as advised here https://developer.apple.com/documentation/authenticationservices/ascredentialproviderviewcontroller/4172626-prepareinterface/
However the registration is failing. I understand that in this function, we need to create a passkey using a crypto library and then call completeRegistrationRequest(using:completionHandler:)
The documentation on this is scant so it is hard to debug for this reason.
- Need help fixing this issue. What could we be missing?
- Is there any sample code for overriding these functions?
- Any recommendations on the crypto library for generating passkeys
- When the passkeys have been generated, how do we pass it back to the system?
Thank you, Jaydip.