diff --git a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.kt b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.kt index 22bf7ed..959eac8 100644 --- a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.kt +++ b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/DownloadProfileWorker.kt @@ -74,7 +74,6 @@ internal class DownloadProfileWorker( ) authenticatingPhaseWorker.initiateAuthentication( initialAuthenticationKeys, - matchingId, imei ) downloadAndInstallProfilePackage( diff --git a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.kt b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.kt index 6608923..6bc3615 100644 --- a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.kt +++ b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/ApduTransmitter.kt @@ -39,6 +39,10 @@ class ApduTransmitter(private val apduChannel: ApduChannel) { ) } + if (apduResponse.length < 4) { + throw RuntimeException("APDU response should at least contain a status code") + } + // Last 2 bytes are the status code (should be 0x9000) // TODO: Do this properly return apduResponse.substring(0, apduResponse.length - 4) @@ -57,6 +61,10 @@ class ApduTransmitter(private val apduChannel: ApduChannel) { ) } + if (apduResponse.length < 4) { + throw RuntimeException("APDU response should at least contain a status code") + } + // Last 2 bytes are the status code (should be 0x9000) // TODO: Do this properly return apduResponse.substring(0, apduResponse.length - 4) diff --git a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/AuthenticatingPhaseWorker.java b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/AuthenticatingPhaseWorker.java index b604df2..e7a6a37 100644 --- a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/AuthenticatingPhaseWorker.java +++ b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/AuthenticatingPhaseWorker.java @@ -125,7 +125,7 @@ public class AuthenticatingPhaseWorker { } } - public void initiateAuthentication(InitialAuthenticationKeys initialAuthenticationKeys, String matchingId, String imei) { + public void initiateAuthentication(InitialAuthenticationKeys initialAuthenticationKeys, String imei) { progress.stepExecuted(DOWNLOAD_PROFILE_INITIATE_AUTHENTICATION, "initiateAuthentication retrieving..."); @@ -141,14 +141,14 @@ public class AuthenticatingPhaseWorker { setServerCertificate(initialAuthenticationKeys, initiateAuthenticationResp); setTransactionId(initialAuthenticationKeys, initiateAuthenticationResp); setMatchingId(initialAuthenticationKeys); - setCtxParams1(initialAuthenticationKeys, matchingId, imei); + setCtxParams1(initialAuthenticationKeys, imei); progress.stepExecuted(DOWNLOAD_PROFILE_INITIATED_AUTHENTICATION, "initiateAuthentication initiated..."); } - private void setCtxParams1(InitialAuthenticationKeys initialAuthenticationKeys, String matchingId, String imei) { + private void setCtxParams1(InitialAuthenticationKeys initialAuthenticationKeys, String imei) { - initialAuthenticationKeys.setCtxParams1(ApduUtils.generateCtxParams1(matchingId, imei)); + initialAuthenticationKeys.setCtxParams1(ApduUtils.generateCtxParams1(initialAuthenticationKeys.getMatchingId(), imei)); if (LogStub.getInstance().isDebugEnabled()) { LogStub.getInstance().logDebug(LOG, LogStub.getInstance().getTag() + " - ctxParams1: " + initialAuthenticationKeys.getCtxParams1()); diff --git a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/InstallationPhaseWorker.java b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/InstallationPhaseWorker.java index eb4c57c..d18ccc2 100644 --- a/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/InstallationPhaseWorker.java +++ b/libs/lpad-sm-dp-plus-connector/src/main/java/com/truphone/lpa/impl/download/InstallationPhaseWorker.java @@ -98,10 +98,8 @@ public class InstallationPhaseWorker { String profileInstallationResult = apduTransmitter.transmitApdus(sbpp); - if (StringUtils.isNotBlank(profileInstallationResult) && profileInstallationResult.length() > 4) { + if (StringUtils.isNotBlank(profileInstallationResult)) { checkProfileInstallationResult(profileInstallationResult); - } else { - throw new RuntimeException("Unexpected response on loadBoundProfilePackage"); } } @@ -112,12 +110,8 @@ public class InstallationPhaseWorker { String profileInstallationResult = apduTransmitter.transmitApdus(sbpp); - if (profileInstallationResult.compareTo("9000") != 0) { - if (StringUtils.isNotBlank(profileInstallationResult) && profileInstallationResult.length() > 4) { - checkProfileInstallationResult(profileInstallationResult); - } else { - throw new RuntimeException("Unexpected response on loadStoreMetadata"); - } + if (StringUtils.isNotBlank(profileInstallationResult)) { + checkProfileInstallationResult(profileInstallationResult); } } @@ -128,12 +122,8 @@ public class InstallationPhaseWorker { String profileInstallationResult = apduTransmitter.transmitApdus(sbpp); - if (profileInstallationResult.compareTo("9000") != 0) { - if (StringUtils.isNotBlank(profileInstallationResult) && profileInstallationResult.length() > 4) { - checkProfileInstallationResult(profileInstallationResult); - } else { - throw new RuntimeException("Unexpected response on loadConfigureIsdpa"); - } + if (StringUtils.isNotBlank(profileInstallationResult)) { + checkProfileInstallationResult(profileInstallationResult); } } @@ -144,12 +134,8 @@ public class InstallationPhaseWorker { String profileInstallationResult = apduTransmitter.transmitApdus(sbpp); - if (profileInstallationResult.compareTo("9000") != 0) { - if (StringUtils.isNotBlank(profileInstallationResult) && profileInstallationResult.length() > 4) { - checkProfileInstallationResult(profileInstallationResult); - } else { - throw new RuntimeException("Unexpected response on loadInitialiseSecureChannel"); - } + if (StringUtils.isNotBlank(profileInstallationResult)) { + checkProfileInstallationResult(profileInstallationResult); } } @@ -237,13 +223,8 @@ public class InstallationPhaseWorker { "loadReplaceSessionsKeys..."); String profileInstallationResult = apduTransmitter.transmitApdus(sbpp); - - if (profileInstallationResult.compareTo("9000") != 0) { - if (StringUtils.isNotBlank(profileInstallationResult) && profileInstallationResult.length() > 4) { - checkProfileInstallationResult(profileInstallationResult); - } else { - throw new RuntimeException("Unexpected response on loadReplaceSessionsKeys"); - } + if (StringUtils.isNotBlank(profileInstallationResult)) { + checkProfileInstallationResult(profileInstallationResult); } } }