summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGanesh Deva <ganesh.deva_1@nxp.com>2019-04-29 14:32:11 +0530
committernxf35421 <sangeetha.agarwal@nxp.com>2019-05-28 15:09:24 +0530
commit2c7c6f76958e2d33e31f925e7c4b6543ecfb65be (patch)
tree6a636481c7836029b8ba722a3e3d73a167260236 /src
parent316ea119a70b54a340eafdb3141a9eb8b178ce6b (diff)
{Q-DP2}: Fix mNFCEventAllowed=UNDEFINED
When mNFCEventAllowed=UNDEFINED it must be updated accordingto GP in all search rules. This was already done in A & C but not fixed in B & D.
Diffstat (limited to 'src')
-rw-r--r--src/com/android/se/security/AccessRuleCache.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/com/android/se/security/AccessRuleCache.java b/src/com/android/se/security/AccessRuleCache.java
index 1a4f2eb..8e93e58 100644
--- a/src/com/android/se/security/AccessRuleCache.java
+++ b/src/com/android/se/security/AccessRuleCache.java
@@ -310,6 +310,15 @@ public class AccessRuleCache {
ref_do = new REF_DO(aid_ref_do, hash_ref_do);
if (mRuleCache.containsKey(ref_do)) {
+ // let's take care about the undefined rules, according to the GP specification:
+ ChannelAccess ca = mRuleCache.get(ref_do);
+ if (ca.getApduAccess() == ChannelAccess.ACCESS.UNDEFINED) {
+ ca.setApduAccess(ChannelAccess.ACCESS.DENIED);
+ }
+ if ((ca.getNFCEventAccess() == ChannelAccess.ACCESS.UNDEFINED)
+ && (ca.getApduAccess() != ChannelAccess.ACCESS.UNDEFINED)) {
+ ca.setNFCEventAccess(ca.getApduAccess());
+ }
if (DEBUG) {
Log.i(mTag, "findAccessRule() " + ref_do.toString() + ", "
+ mRuleCache.get(ref_do).toString());
@@ -367,6 +376,15 @@ public class AccessRuleCache {
ref_do = new REF_DO(aid_ref_do, hash_ref_do);
if (mRuleCache.containsKey(ref_do)) {
+ // let's take care about the undefined rules, according to the GP specification:
+ ChannelAccess ca = mRuleCache.get(ref_do);
+ if (ca.getApduAccess() == ChannelAccess.ACCESS.UNDEFINED) {
+ ca.setApduAccess(ChannelAccess.ACCESS.DENIED);
+ }
+ if ((ca.getNFCEventAccess() == ChannelAccess.ACCESS.UNDEFINED)
+ && (ca.getApduAccess() != ChannelAccess.ACCESS.UNDEFINED)) {
+ ca.setNFCEventAccess(ca.getApduAccess());
+ }
if (DEBUG) {
Log.i(mTag, "findAccessRule() " + ref_do.toString() + ", "
+ mRuleCache.get(ref_do).toString());