diff options
author | Ganesh Deva <ganesh.deva_1@nxp.com> | 2019-04-29 14:32:11 +0530 |
---|---|---|
committer | nxf35421 <sangeetha.agarwal@nxp.com> | 2019-05-28 15:09:24 +0530 |
commit | 2c7c6f76958e2d33e31f925e7c4b6543ecfb65be (patch) | |
tree | 6a636481c7836029b8ba722a3e3d73a167260236 /src | |
parent | 316ea119a70b54a340eafdb3141a9eb8b178ce6b (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.java | 18 |
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()); |