Various Topics

Security Warnings

At initialization time the uSDK performs several security checks. As a result it may produce a list of warning for the application to inspect and decide whether it would be safe to perform authentication on the device. The list of warnings is this:

Security Warning

Severity

Description

Security Warning

Severity

Description

SW01

HIGH

Jailbroken device

SW02

HIGH

The SDK has been tempered

SW03

HIGH

An emulator is being used to run the app

SM04

MEDIUM

Debugger is attached

SW05

HIGH

Unsupported OS version

The application calls getWarnings as shown below:

List<Warning> warnings = threeDS2Service.getWarnings(); if (!warnings.isEmpty()) { // got one or more warnings, inspect them: for(Warning warning: warnings) { // use warning.getID() or warning.getSeverity() to inspect } }

Directory servers

The uSDK is bundled with the following directory servers:

DS Identifier (RID)

Provider Name

DS Identifier (RID)

Provider Name

A000000003

Visa

A000000025

American Express

A000000004

Mastercard

A000000152

Discover

A000000065

JCB

The application, can pass additional directory servers to the uSDK.

Android

ConfigParameters configParameters = new ConfigParameters(); DirectoryServer customDs = new DirectoryServer( "DS Identifier", "DS key ID", "DS key", "DS certificate", "DS Name"); customDs.setDsLogo(dsLogo); configParameters.addDirectoryServer(customDs)

The example shows the pure 3DS interface, to do the same using the simplified interface, the ConfigParameters class needs to be prepared as shown above but passed to the uSDK within InitSpec rather.

iOS

var configParams: UConfigParameters { let params = UConfigParameters() let newDS = UDirectoryServer( dsid: "DS Identifier", publicKey: "DS Key", keyID: "DS key ID", dsCACertificate: "DS certificate", providerName: "DS Name", dsLogo: UIImage(name: "DS Logo")) params.add(newDS) return params }

To adjust the code sample to the simplified interface, just pass the UConfigParameters in InitSpec rather.

Customizing the challenge screen

The uSDK lets the app to override the default look and feel of the challenge screen. When needed, the application developer passes an instance of UICustomization class to the uSDK in ConfigParams at initialization time.

UICustomization class is essentially a holder for a set of concrete customizations:

  1. ButtonCustomization - let’s to customize the UI of buttons on the challenge screen

  2. TextBoxCustomization - customize text fields

  3. ToolbarCustomization - the toolbar

  4. LabelCustomization - labels.

Each of the customizations have their own properties, it is recommended to inspect the classes to see their structures.

Simplified interface

Pure 3DS interface