diff --git a/index.html b/index.html index c3327c3..f562470 100644 --- a/index.html +++ b/index.html @@ -2272,7 +2272,7 @@ const LIFECYCLE_MAP = { }; const PRIVILEGE_NAMES = [ - ['Security Domain', 'DAP Verification', 'Delegated Management', 'Card Lock', 'Card Terminate', 'Card Reset', 'CVM Management', 'Mandated DAP Verification'], + ['Security Domain', 'DAP Verification', null, 'Delegated Management', 'Card Lock', 'Card Terminate', 'Card Reset', 'CVM Management', 'Mandated DAP Verification'], ['Trusted Path', 'Authorized Management', 'Token Verification', 'Global Delete', 'Global Lock', 'Global Registry', 'Final Application', 'Global Service'], ['Receipt Generation', 'Ciphered Load File Data Block', 'Contactless Activation', 'Contactless Self-Activation'], ]; @@ -2432,12 +2432,11 @@ function decodePrivileges(hex) { const bytes = []; for (let i = 0; i < hex.length; i += 2) bytes.push(parseInt(hex.substr(i,2),16)); const names = []; - for (let b = 0; b < Math.min(bytes.length, 3); b++) { - for (let bit = 0; bit < 8; bit++) { + for (let b = 0; b < Math.min(bytes.length, PRIVILEGE_NAMES.length); b++) { + const byteNames = PRIVILEGE_NAMES[b] || []; + for (let bit = 0; bit < byteNames.length; bit++) { if (bytes[b] & (0x80 >> bit)) { - if (b < PRIVILEGE_NAMES.length && bit < PRIVILEGE_NAMES[b].length) { - names.push(PRIVILEGE_NAMES[b][bit]); - } + if (byteNames[bit]) names.push(byteNames[bit]); } } }