A mobile application can embed a FIDO ASM in addition to a local FIDO Client to address legacy devices without FIDO capabilities.

To embed a FIDO ASM implementation into a mobile application, additional dependencies must be added to the mobile application project.

Embeddable ASM libraries and dependencies will be delivered by an authenticator vendor as AAR libraries packaged in Maven repositories for Android Studio. The instructions below explain how to embed FIDO ASMs into your mobile application.

Embedding an Authenticator—Required Descriptors and Libraries lists the descriptor class name and ASM library name you must provide when you embed Presence, PIN, Password, and Native Biometric Authentication.

Embedding an Authenticator—Required Descriptors and Libraries
Descriptor Class Name ASM Library Name
Presence authenticator
com.vasco.fido.uaf.asm.presence.PresenceASMDescriptor FIDOUAFPresenceASM.aar
PIN authenticator
com.vasco.fido.uaf.asm.userinput.PinASMDescriptor FIDOUAFUserInputASM.aar
Password authenticator
com.vasco.fido.uaf.asm.userinput.PasswordASMDescriptor FIDOUAFUserInputASM.aar
Native Biometric Authentication authenticator
com.vasco.fido.uaf.asm.biometric.NativeBiometric
AuthenticationASMDescriptor
FIDOUAFNativeBiometric
AuthenticationASM.aar

Add a descriptor

To add a descriptor, create a file named asmdescriptors.json and place it in a res/raw subfolder.

For example, here is what the file would look like to embed the PIN-, Native Biometric-, and Yes/No-based modules:

{
    "descriptorclass":[
     "com.vasco.fido.uaf.asm.presence.PresenceASMDescriptor",
     "com.vasco.fido.uaf.asm.userinput.PinASMDescriptor",
     "com.vasco.fido.uaf.asm.biometric.NativeBiometricAuthenticationASMDescriptor"
  ]
}

Add activities to your manifest

Android Studio automatically merges the activities from the various AndroidManifest.xml files within library projects. All activities should therefore be declared only within individual library projects.

Add an authenticator

The steps below outline an example of how to integrate the Presence ASM.

You may see errors regarding Swift symbols when using the ASM provided by OneSpan with the Objective-C version of NokNok_app_tutorial_plus_iOS app from Nok Nok package v7.0.2. To correct the issue, add an empty Swift file to the project and when Xcode offers to create a bridging header, choose YES.

To integrate the Presence ASM with C++

  1. Include the corresponding header file:

    #import <FIDOUAFPresenceASM/FIDOPresenceASMInstanceCreator.hpp>

  2. Open the AppDelegate.m file and add the following code in: (UIApplication *)application didFinishLaunchingWithOptions method to embed an authenticator:

    asmcore::ASMFactory::addAuthenticator
    (FIDOPresenceASMInstanceCreator::createInstance());

To integrate the Presence ASM with Swift/Objective-C

  1. Include the corresponding header file:

    import FIDOUAFPresenceASM

  2. Open the AppDelegate.swift file and add the following code in application:didFinishLaunchingWithOptions method to embed an authenticator:

    // Add presence authenticator to ASM
    FIDOPresenceASM.registerPresenceAuthenticator()

Embeddable ASM components are delivered as an iOS xcframework for Xcode. The instructions below explain how to embed a sample ASM into your mobile application.

Embed an authenticator with Xcode

The embeddable authenticator is delivered as an iOS xcframework. The steps below describe how to embed the Presence ASM.To embed an authenticator on iOSIn your app, open the General properties tab.Add FIDOUAFPresenceASM.xcframework to the Linked Frameworks and Libraries section.In your app, open the Build Phases properties tab.Add FIDOUAFPresenceASMResources.bundle to the Copy Bundle Resources section.