/n software 3-D Secure 3DS SDK Changelog

This document provides high-level information about new features, fixes, and functionality changes between minor version releases of the /n software 3-D Secure SDKs. For more details or if you have any questions please contact support@nsoftware.com


Legend:
[FIX] - An issue was fixed.
[NEW] - New feature or functionality added.
[IMPORTANT] - A change which requires attention.


Version: 2.3.8863
Date: Mar 20, 2024

  • [FIX] In some exceptional cases, Android may kill an application that is moved to the background, especially when memory is running low on the device. A workaround was added to the Android 3DS SDK to help with recovering from this type of situation. The SDK will restart the main activity if the applicaion was killed in the background during a challenge. The application can know the app was restarted by checking the 3ds_transaction_killed Extra. For instance:
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      Intent intent = getIntent();
      boolean restart = intent.getBooleanExtra("3ds_transaction_killed", false);
      if (restart) {
        Toast.makeText(this, "RESTART", Toast.LENGTH_LONG).show();
      }


Version: 2.3.8845
Date: Mar 20, 2024

  • [IMPORTANT] MasterCard has issued a new encryption certificate, which is used by the SDK to encrypt the device information. This affects the DirectoryServerInfo values specified for communication with MasterCard. The previous encryption certificate was set to expire on June 15th, 2024; the new certificate expires on July 15th, 2026. The /n software 3DS SDKs preconfigured certificate values have been updated for MasterCard (DS ID: A000000004).

Version: 2.3.8836
Date: Mar 11, 2024

  • [IMPORTANT] Visa has issued a new encryption certificate, which is used by the SDK to encrypt the device information. This affects the DirectoryServerInfo values specified for communication with Visa. The previous encryption certificate was set to expire on August 22th, 2024; the new certificate expires on February 26th, 2027. The /n software 3DS SDKs preconfigured certificate values have been updated for Visa (DS ID: A000000003).

Version: 2.3.8788
Date: Jan 23, 2023

  • [NEW] Overloaded DirectoryServerInfo (Android and iOS) and ConfigParametersBuilder (iOS) constructors for backwards compatibility. The DirectoryServerInfo constructor now supports an optional KID parameter for message version 2.3.1.1. The ConfigParametersBuilder constructor supports an optional OOBAppURLSupported parameter for message version 2.3.1.1. See the product documentation for more information.

Version: 2.3.8781
Date: Jan 16, 2024

  • [IMPORTANT] (iOS) Updated signature for the xcframeworks per Apple's requirements. Please ensure the Signature matches the following when viewed in Xcode: Team Name: n software, Inc. Team Id: 74N8742JFG Kind: Apple Developer Program

Status: Verification succeeded

Version: 2.3.8767
Date: Jan 2, 2024

  • [IMPORTANT] (iOS) Added Privacy Manifest for the iOS SDK.

Version: 2.3.8738
Date: Dec 4, 2023

  • [IMPORTANT] A new LOA has been granted by EMVCo for the iOS SDK.
    The value for the iOS SDK is 3DS_LOA_SDK_NSOF_020301_00817 and expires on November 29th, 2025.

Version: 2.3.8718
Date: Nov 14, 2023

  • [IMPORTANT] A new LOA has been granted by EMVCo for the Android SDK. The value for the Android SDK is 3DS_LOA_SDK_NSOF_020301_00804 and expires on November 6th, 2025.

Version: 2.2.8718
Date: Nov 14, 2023

  • [FIX] (iOS) Removed deprecated bitcode support for the iOS frameworks.

Version: 2.2.8680
Date: Oct 7, 2023

  • [FIX] (iOS) Fixed issue loading certificate data when using iOS 17.

Version: 2.2.8663
Date: Sept 20, 2023

  • [NEW] Added support for Android 14.

Version: 2.2.8658
Date: Sept 15, 2023

  • [FIX] (iOS) Fixed issue in 2.1.0 challenge flow where the UI was not automatically updated after returning from a different app.

Version: 2.2.8637
Date: Aug 24, 2023

  • [FIX] (Android) Fixed issue where the UI was not updated with challengeAddInfo after returning from the background.

Version: 2.2.8591
Date: July 10, 2023

  • [IMPORTANT] American Express has issued a new encryption certificate, which is used by the SDK to encrypt the device information. This affects the DirectoryServerInfo values specified for communication with AMEX. The previous encryption certificate was set to expire on August 18th, 2023; the new certificate expires on May 23rd of 2025. The /n software 3DS SDKs preconfigured certificate values have been updated for AMEX (DS ID: A000000025). The new certificate can also be obtained from American Express directly through their AMEX Enabled dashboard.

Version: 2.2.8546
Date: May 26, 2023

  • [FIX] (Android) Fixed issue related to synchronization when using the R8 compiler.

Version: 2.2.8545
Date: May 25, 2023

  • [FIX] (Android) Added the required BROWSABLE category to the manifest for OOB challenge listener intent filter.

Version: 2.2.8444
Date: Feb 14, 2023

  • [FIX] (Android) Fixed issue where SDK would crash when trying to dismiss activity during a challenge.

Version: 2.2.8420
Date: Jan 21, 2023

  • [NEW] (Android) Add support for Parcelable interface.

Version: 2.2.8376
Date: Dec 8, 2022

  • [NEW] Added support for Android 13.

Version: 2.2.8284
Date: Sept 6, 2022

  • [FIX] (iOS/Android) Fixed issue where the ThreeDSRequestorAppURL was not added to 2.2.0 CReq messages.
  • [FIX] (Android) Fixed issue for OOB flow where the CReq was not automatically posted when the requestor app was moved to the foreground.

Version: 2.2.8235
Date: July 19, 2022

  • [NEW] Pre-configured 3DS SDK encryption certificate value has been updated for UnionPay.

Version: 2.2.8152
Date: April 28, 2022

  • [FIX] (Android) Added a ProGuard configuration file to our Android SDK so no obfuscation rules would need to be manually specified by our customers that also use obfuscation.

Version: 2.2.8147
Date: April 22, 2022

  • [FIX] (Android) Fixed a bug where the BLUETOOTH_CONNECT permission was required for Android 12 and up. If this permission has not been granted, device parameter C009 will not be collected and will instead be listed in the Device Parameter Not Available section with a value of RE03 (indicating permissions not granted).

Version: 2.2.8070
Date: February 4, 2022

  • [FIX] (Android) Fixed challengeDataEntry and challengeHTMLDataEntry formatting in CReq.

Version: 2.2.8047
Date: January 12, 2022

  • [IMPORTANT] The Android SDK is now built with AndroidX which replaces the original Android Support Library. Please ensure your project is also using AndroidX instead of the older Android Support Library.

Before migrating, it is recommended to update your project to use the final version of the support library: version 28.0.0.

With Android Studio 3.2 and higher, you can migrate an existing project to AndroidX by selecting Refactor > Migrate to AndroidX from the menu bar.


Version: 2.2.8045
Date: January 11, 2022

  • [IMPORTANT] New LOAs have been granted and both SDKs have been updated to the latest ones issued to /n software by EMVCo. The value for the Android SDK is 3DS_LOA_SER_NSOF_020200_00492 and expires on November 25th, 2023. The value for the iOS SDK is 3DS_LOA_SER_NSOF_020200_00489 and expires on December 3rd, 2023.

Version: 2.2.8045
Date: January 11, 2022

  • [FIX] Implemented SDKMaxTimeout. SDK will now close the transaction UI when a timeout occurs.

Version: 2.2.8013
Date: December 9, 2021

  • [FIX] (iOS) Fix an issue where the Challenge UI is not closed when the close method is called in protocolError.
  • [FIX] (Android) Fix an issue where the Challenge UI is not closed if there is a protocolError when clicking the resend button.
  • [FIX] (iOS) Fix an issue where both cancel and protocolError fire if the ACS returns an error during cancel. In this case, only protocolError should fire.

Version: 2.2.7955
Date: October 12, 2021

  • [NEW] Pre-configured 3DS SDK certificate values have been added/updated for JCB and UnionPay.

Version: 2.2.7943
Date: September 30, 2021

  • [IMPORTANT] American Express has issued a new encryption certificate (used by the SDK to encrypt the device information). Similar to the Visa change at build 2.0.7930, this affects the DirectoryServerInfo values specified for communication with Amex. A new encryption certificate can be obtained from Amex directly though their AMEX Enabled dashboard, or from /n software. We have updated our pre-configured values for Amex to reflect the new certificate.
  • [NEW] Pre-configured 3DS SDK certificate values have been added for Discover.

Version: 2.2.7935
Date: September 22, 2021

  • [IMPORTANT] MasterCard has issued a new encryption certificate (used by the SDK to encrypt the device information). Similar to the Visa change at build 2.0.7930, this affects the DirectoryServerInfo values specified for communication with MasterCard. A new encryption certificate can be obtained from MasterCard directly, or from /n software. We have updated our pre-configured values for MasterCard to reflect the new certificate.

Version: 2.2.7930
Date: September 17, 2021

  • [IMPORTANT] Visa is rolling out a new eCommerce G2 root CA certificate, and a new encryption certificate and chain will need to be configured in the 3DS SDKs in order to continue communication with Visa after October 31st, 2021. This affects the DirectoryServerInfo values specified for communication with Visa. New certificates can be obtained from Visa directly, or from /n software. We have updated our pre-configured values for Visa to reflect the new certificates.

Version: 2.2.7859
Date: July 8, 2021

  • [FIX] A change to the way signature algorithms are presented to the server during SSL negotiation (in the Client Hello packet). Some servers seem to require these algorithms to be listed with the most secure algorithms first.

Version: 2.0.7809
Date: May 19, 2021

  • [FIX] The Android edition of the SDK previously used hardcoded colors which could only be modified by creating an nsoftware.3ds.Theme. The default colors have been removed. The challenge pages will now use the color theme specified for the app (colorPrimary/colorPrimaryDark in colors.xml), or the system default colors if no app-level themes are defined.

Version: 2.0.7802
Date: May 12, 2021

  • [FIX] Fixed an issue with the OOB UI type where cancelling after a previous submit resulted in the challengeCancel field being sent alongside the oobContinue field, which should not be the case. This issue affected both the Android and iOS SDKs.

Version: 2.0.7796
Date: May 6, 2021

  • [FIX] Fixed an issue where the challenge text field and submit button during certain flows would be covered up by the keyboard in the iOS SDK. The result is that challenge data could not be submitted. The keyboard type has also been changed to done so when the "done" button is pressed, the keyboard will hide again.

Version: 2.0.7783
Date: April 23, 2021

  • [NEW] Added logging of security warning details to the Log event in the Android 3DS SDK. This matches the iOS feature from the previous change. When the logType is SW, the message parameter will contain a code pointing to a reason why the warning was raised.

Version: 2.0.7747
Date: March 18, 2021

  • [NEW] Added an AppBundleID config parameter to the iOS 3DS SDK. This should be retrieved from a server and set at runtime when initializing the SDK. This is then verified throughout the 3DS process to verify that the app's Bundle ID matches the value specified.
  • [NEW] Added logging of security warning details to the Log event in the iOS 3DS SDK. When the logType is SW, the message parameter will contain a code pointing to a reason why the warning was raised.

Version: 2.0.7739
Date: March 10, 2021

  • [NEW] Added setBrandingZoneLogoGap function to the UICustomization class for the iOS 3DS SDK. This allows specifying the gap between the psImage and issuerImage displayed in the "branding zone" (between the header and challenge data). The default value is 8.

Version: 2.0.7705
Date: February 2, 2021

  • [NEW] Added UseDefaultTrustedAppStoreList config setting for the Android 3DS SDK. By default, the Android 3DS SDK will trust the Google Play Store (com.android.vending). Setting this config to "false" will cause the SDK to only trust stores explicitly specified during initialization (via the TrustedAppStores Config Parameters). The default value is "true."

Version: 2.0.7695
Date: January, 25 2021

  • [FIX] Ignore extra fields (not defined in the specification) sent by the ACS in the final CRes packet.

Version: 2.0.7684
Date: January, 14 2021

  • [NEW] Added FireChallengeStatusFirst config setting for the iOS SDK. By default, the challenge is complete or cancelled, the SDK will raise the relevant ChallengeStatusReceiver events after the challenge UI is closed. Setting this new config to "true" causes the completed, cancelled, or protocolError events to be fired before the UI is closed. This allows the view to be changed, if desired. This is helpful if navigating to a new view (different from the pre-challenge view) when the challenge is complete/cancelled. The default value is "false."

Version: 2.0.7683
Date: January, 13 2021

  • [FIX] Resolved an issue related to UTF-8 character decoding in the iOS 3DS SDK. This bug resulted in UTF-8 characters not being counted properly, which could cause issues if the field containing these characters was at or near the max length, resulting in a "data element not in the required format" error.

Download Changelog