summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2022-04-01 13:45:29 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-01 13:45:29 +0000
commitb21987545dd981b45bcac9a7decc22c2dcef4265 (patch)
treed3abeba6cdb18a0470a717e4df5d0cbaede79121
parentd9e6cb29bbab600b07f93e781d4525238ff729fd (diff)
parentfb69864e38f101581a8c4efbf95e204f22e5e297 (diff)
downloadSecureElement-b21987545dd981b45bcac9a7decc22c2dcef4265.tar.gz
Merge "Fix CLA byte encoded with wrong SM bit" am: 3da2113708 am: 2dd3e0965d am: a595f9753f am: 6674359573 am: fb69864e38
Original change: https://android-review.googlesource.com/c/platform/packages/apps/SecureElement/+/1937329 Change-Id: Ied15269a0977a19e16ab7c8eb6dbc643bda4005d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rwxr-xr-x[-rw-r--r--]src/com/android/se/Channel.java2
-rwxr-xr-xsrc/com/android/se/internal/Util.java2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/com/android/se/Channel.java b/src/com/android/se/Channel.java
index d6df415..33327ed 100644..100755
--- a/src/com/android/se/Channel.java
+++ b/src/com/android/se/Channel.java
@@ -213,7 +213,7 @@ public class Channel implements IBinder.DeathRecipient {
cla = (byte) ((cla & 0xBC) | channelNumber);
} else if (channelNumber < 20) {
// b7 = 1 indicates the further interindustry class byte coding
- boolean isSm = (cla & 0x0C) != 0;
+ boolean isSm = (((cla & 0x40) == 0x00) && ((cla & 0x0C) != 0));
cla = (byte) ((cla & 0xB0) | 0x40 | (channelNumber - 4));
if (isSm) {
cla |= 0x20;
diff --git a/src/com/android/se/internal/Util.java b/src/com/android/se/internal/Util.java
index 8e9cfe3..8a52962 100755
--- a/src/com/android/se/internal/Util.java
+++ b/src/com/android/se/internal/Util.java
@@ -135,7 +135,7 @@ public class Util {
cla = (byte) ((cla & 0xBC) | channelNumber);
} else if (channelNumber < 20) {
// b7 = 1 indicates the further interindustry class byte coding
- boolean isSM = (cla & 0x0C) != 0;
+ boolean isSM = (((cla & 0x40) == 0x00) && ((cla & 0x0C) != 0));
cla = (byte) ((cla & 0xB0) | 0x40 | (channelNumber - 4));
if (isSM) {
cla |= 0x20;