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 |
---|---|---|
| HIGH | Jailbroken device |
| HIGH | The SDK has been tempered |
| HIGH | An emulator is being used to run the app |
| MEDIUM | Debugger is attached |
| 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 |
---|---|
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:
ButtonCustomization
- let’s to customize the UI of buttons on the challenge screenTextBoxCustomization
- customize text fieldsToolbarCustomization
- the toolbarLabelCustomization
- labels.
Each of the customizations have their own properties, it is recommended to inspect the classes to see their structures.