diff options
Diffstat (limited to 'card/FS.py')
-rw-r--r-- | card/FS.py | 303 |
1 files changed, 303 insertions, 0 deletions
diff --git a/card/FS.py b/card/FS.py new file mode 100644 index 0000000..2d51e2b --- /dev/null +++ b/card/FS.py @@ -0,0 +1,303 @@ +""" +card: Library adapted to request (U)SIM cards and other types of telco cards. +Copyright (C) 2010 Benoit Michau + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +""" + +################################# +# 3GPP SIM and USIM File-System # +# see TS 51.11 for SIM # +# see TS 31.102 for USIM # +################################# + +# (U)SIM file-system dictionnaries +# (absolut_file_address) : 'file_name' + +SIM_FS = { +(0x3F, 0x00) : 'MF', +(0x2F, 0xE2) : 'EF_ICCID', +(0x2F, 0x05) : 'EF_ELP', +(0x7F, 0x23) : 'DF_FP-CTS', +(0x7F, 0x22) : 'DF_IS-41', +(0x7F, 0x10) : 'DF_TELECOM', +(0x7F, 0x10, 0x6F, 0x3A) : 'EF_ADN', +(0x7F, 0x10, 0x6F, 0x3B) : 'EF_FDN', +(0x7F, 0x10, 0x6F, 0x3C) : 'EF_SMS', +(0x7F, 0x10, 0x6F, 0x3D) : 'EF_CCP', +(0x7F, 0x10, 0x6F, 0x40) : 'EF_MSISDN', +(0x7F, 0x10, 0x6F, 0x42) : 'EF_SMSP', +(0x7F, 0x10, 0x6F, 0x43) : 'EF_SMSS', +(0x7F, 0x10, 0x6F, 0x44) : 'EF_LND', +(0x7F, 0x10, 0x6F, 0x47) : 'EF_SMSR', +(0x7F, 0x10, 0x6F, 0x49) : 'EF_SDN', +(0x7F, 0x10, 0x6F, 0x4A) : 'EF_EXT1', +(0x7F, 0x10, 0x6F, 0x4B) : 'EF_EXT2', +(0x7F, 0x10, 0x6F, 0x4C) : 'EF_EXT3', +(0x7F, 0x10, 0x6F, 0x4D) : 'EF_BDN', +(0x7F, 0x10, 0x6F, 0x4E) : 'EF_EXT4', +(0x7F, 0x10, 0x6F, 0x58) : 'EF_CMI', +(0x7F, 0x10, 0x6F, 0x4F) : 'EF_ECCP', +(0x7F, 0x10, 0x5F, 0x50) : 'DF_GRAPHICS', +(0x7F, 0x10, 0x5F, 0x50, 0x4F, 0x20) : 'EF_IMG', +(0x7F, 0x20) : 'DF_GSM', +(0x7F, 0x20, 0x5F, 0x3C) : 'DF_MExE', +(0x7F, 0x20, 0x5F, 0x3C, 0x4F, 0x40) : 'EF_MExE-ST', +(0x7F, 0x20, 0x5F, 0x3C, 0x4F, 0x41) : 'EF_ORPK', +(0x7F, 0x20, 0x5F, 0x3C, 0x4F, 0x42) : 'EF_ARPK', +(0x7F, 0x20, 0x5F, 0x3C, 0x4F, 0x43) : 'EF_TPRPK', +(0x7F, 0x20, 0x5F, 0x30) : 'DF_IRIDIUM', +(0x7F, 0x20, 0x5F, 0x31) : 'DF_GLOBST', +(0x7F, 0x20, 0x5F, 0x32) : 'DF_ICO', +(0x7F, 0x20, 0x5F, 0x33) : 'DF_ACeS', +(0x7F, 0x20, 0x5F, 0x40) : 'DF_EIA/TIA-553', +(0x7F, 0x20, 0x5F, 0x60) : 'DF_CTS', +(0x7F, 0x20, 0x5F, 0x70) : 'DF_SoLSA', +(0x7F, 0x20, 0x5F, 0x70, 0x4F, 0x30) : 'EF_SAI', +(0x7F, 0x20, 0x5F, 0x70, 0x4F, 0x31) : 'EF_SLL', +(0x7F, 0x20, 0x6F, 0x05) : 'EF_LP', +(0x7F, 0x20, 0x6F, 0x07) : 'EF_IMSI', +(0x7F, 0x20, 0x6F, 0x20) : 'EF_Kc', +(0x7F, 0x20, 0x6F, 0x2C) : 'EF_DCK', +(0x7F, 0x20, 0x6F, 0x30) : 'EF_PLMNsel', +(0x7F, 0x20, 0x6F, 0x31) : 'EF_HPPLMN', +(0x7F, 0x20, 0x6F, 0x32) : 'EF_CNL', +(0x7F, 0x20, 0x6F, 0x37) : 'EF_ACMmax', +(0x7F, 0x20, 0x6F, 0x38) : 'EF_SST', +(0x7F, 0x20, 0x6F, 0x39) : 'EF_ACM', +(0x7F, 0x20, 0x6F, 0x3E) : 'EF_GID1', +(0x7F, 0x20, 0x6F, 0x3F) : 'EF_GID2', +(0x7F, 0x20, 0x6F, 0x41) : 'EF_PUCT', +(0x7F, 0x20, 0x6F, 0x45) : 'EF_CBMI', +(0x7F, 0x20, 0x6F, 0x46) : 'EF_SPN', +(0x7F, 0x20, 0x6F, 0x48) : 'EF_CBMID', +(0x7F, 0x20, 0x6F, 0x74) : 'EF_BCCH', +(0x7F, 0x20, 0x6F, 0x78) : 'EF_ACC', +(0x7F, 0x20, 0x6F, 0x7B) : 'EF_FPLMN', +(0x7F, 0x20, 0x6F, 0x7E) : 'EF_LOCI', +(0x7F, 0x20, 0x6F, 0xAD) : 'EF_AD', +(0x7F, 0x20, 0x6F, 0xAE) : 'EF_PHASE', +(0x7F, 0x20, 0x6F, 0xB1) : 'EF_VGCS', +(0x7F, 0x20, 0x6F, 0xB2) : 'EF_VGCSS', +(0x7F, 0x20, 0x6F, 0xB3) : 'EF_VBS', +(0x7F, 0x20, 0x6F, 0xB4) : 'EF_VBSS', +(0x7F, 0x20, 0x6F, 0xB5) : 'EF_eMLPP', +(0x7F, 0x20, 0x6F, 0xB6) : 'EF_AAeM', +(0x7F, 0x20, 0x6F, 0xB7) : 'EF_ECC', +(0x7F, 0x20, 0x6F, 0x50) : 'EF_CBMIR', +(0x7F, 0x20, 0x6F, 0x51) : 'EF_NIA', +(0x7F, 0x20, 0x6F, 0x52) : 'EF_KcGPRS', +(0x7F, 0x20, 0x6F, 0x53) : 'EF_LOCIGPRS', +(0x7F, 0x20, 0x6F, 0x54) : 'EF_SUME', +(0x7F, 0x20, 0x6F, 0x60) : 'EF_PLMNwAcT', +(0x7F, 0x20, 0x6F, 0x61) : 'EF_OPLMNwAcT', +(0x7F, 0x20, 0x6F, 0x62) : 'EF_HPLMNAcT', +(0x7F, 0x20, 0x6F, 0x63) : 'EF_CPBCCH', +(0x7F, 0x20, 0x6F, 0x64) : 'EF_INVSCAN', +(0x7F, 0x20, 0x6F, 0xC5) : 'EF_PNN', +(0x7F, 0x20, 0x6F, 0xC6) : 'EF_OPL', +(0x7F, 0x20, 0x6F, 0xC7) : 'EF_MBDN', +(0x7F, 0x20, 0x6F, 0xC8) : 'EF_EXT6', +(0x7F, 0x20, 0x6F, 0xC9) : 'EF_MBI', +(0x7F, 0x20, 0x6F, 0xCA) : 'EF_MWIS', +(0x7F, 0x20, 0x6F, 0xCB) : 'EF_CFIS', +(0x7F, 0x20, 0x6F, 0xCC) : 'EF_EXT7', +(0x7F, 0x20, 0x6F, 0xCD) : 'EF_SPDI', +(0x7F, 0x20, 0x6F, 0xCE) : 'EF_MMSN', +(0x7F, 0x20, 0x6F, 0xCF) : 'EF_EXT8', +(0x7F, 0x20, 0x6F, 0xD0) : 'EF_MMSICP', +(0x7F, 0x20, 0x6F, 0xD1) : 'EF_MMSUP', +(0x7F, 0x20, 0x6F, 0xD2) : 'EF_MMSUCP', +} + +USIM_FS = { +(0x3F, 0x00) : 'MF', +(0x2F, 0x00) : 'EF_DIR', +(0x2F, 0x05) : 'EF_PL', +(0x2F, 0x06) : 'EF_ARR', +(0x2F, 0xE2) : 'EF_ICCID', +(0x7F, 0x20) : 'DF_GSM', +(0x7F, 0x10) : 'DF_TELECOM', +(0x7F, 0x10, 0x6F, 0x06) : 'EF_ARR', +(0x7F, 0x10, 0x6F, 0x3A) : 'EF_ADN', +(0x7F, 0x10, 0x6F, 0x3B) : 'EF_FDN', +(0x7F, 0x10, 0x6F, 0x3C) : 'EF_SMS', +(0x7F, 0x10, 0x6F, 0x4F) : 'EF_ECCP', +(0x7F, 0x10, 0x6F, 0x40) : 'EF_MSISDN', +(0x7F, 0x10, 0x6F, 0x42) : 'EF_SMSP', +(0x7F, 0x10, 0x6F, 0x43) : 'EF_SMSS', +(0x7F, 0x10, 0x6F, 0x44) : 'EF_LND', +(0x7F, 0x10, 0x6F, 0x47) : 'EF_SMSR', +(0x7F, 0x10, 0x6F, 0x49) : 'EF_SDN', +(0x7F, 0x10, 0x6F, 0x4A) : 'EF_EXT1', +(0x7F, 0x10, 0x6F, 0x4B) : 'EF_EXT2', +(0x7F, 0x10, 0x6F, 0x4C) : 'EF_EXT3', +(0x7F, 0x10, 0x6F, 0x4D) : 'EF_BDN', +(0x7F, 0x10, 0x6F, 0x4E) : 'EF_EXT4', +(0x7F, 0x10, 0x6F, 0x54) : 'EF_SUME', +(0x7F, 0x10, 0x5F, 0x50) : 'DF_GRAPHICS', +(0x7F, 0x10, 0x5F, 0x50, 0x4F, 0x20) : 'EF_IMG', +#(0x7F, 0x10, 0x5F, 0x50, 0x4F, 0xXX) : 'EF_IIDFn', +(0x5F, 0x3A) : 'DF_PHONEBOOK', +(0x5F, 0x3A, 0x4F, 0x30) : 'EF_PBR', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_IAP', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_ADN', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_EXT1', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_PBC', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_GRP', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_AAS', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_GAS', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_ANR', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_SNE', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_CCP1', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_UID', +(0x5F, 0x3A, 0x4F, 0x22) : 'EF_PSC', +(0x5F, 0x3A, 0x4F, 0x23) : 'EF_CC', +(0x5F, 0x3A, 0x4F, 0x24) : 'EF_PUID', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_EMAIL', +(0x5F, 0x3B) : 'DF_MULTIMEDIA', +(0x5F, 0x3B, 0x4F, 0x47) : 'EF_MML', +(0x5F, 0x3B, 0x4F, 0x48) : 'EF_MMDF', +} + + +USIM_app_FS = { +(0x5F, 0x40) : 'DF_WLAN', +(0x5F, 0x40, 0x4F, 0x41) : 'EF_Pseudo', +(0x5F, 0x40, 0x4F, 0x42) : 'EF_UPLMNWLAN', +(0x5F, 0x40, 0x4F, 0x43) : 'EF_0PLMNWLAN', +(0x5F, 0x40, 0x4F, 0x44) : 'EF_USSIDL', +(0x5F, 0x40, 0x4F, 0x45) : 'EF_OSSIDL', +(0x5F, 0x40, 0x4F, 0x46) : 'EF_WRI', +(0x5F, 0x70) : 'DF_SoLSA', +(0x5F, 0x70, 0x4F, 0x30) : 'EF_SAI', +(0x5F, 0x70, 0x4F, 0x31) : 'EF_SLL', +(0x5F, 0x3C) : 'DF_MExE', +(0x5F, 0x3C, 0x4F, 0x40) : 'EF_MExE-ST', +(0x5F, 0x3C, 0x4F, 0x41) : 'EF_ORPK', +(0x5F, 0x3C, 0x4F, 0x42) : 'EF_ARPK', +(0x5F, 0x3C, 0x4F, 0x43) : 'EF_TPRK', +#(0x5F, 0x3C, 0x4F, 0xXX) : 'EF_TKCDF', +(0x5F, 0x3B) : 'DF_GSM-ACCESS', +(0x5F, 0x3B, 0x4F, 0x20) : 'EF_Kc', +(0x5F, 0x3B, 0x4F, 0x52) : 'EF_KcGPRS', +(0x5F, 0x3B, 0x4F, 0x63) : 'EF_CPBCCH', +(0x5F, 0x3B, 0x4F, 0x64) : 'EF_invSCAN', +(0x5F, 0x3A) : 'DF_PHONEBOOK', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_UID', +(0x5F, 0x3A, 0x4F, 0x22) : 'EF_PSC', +(0x5F, 0x3A, 0x4F, 0x23) : 'EF_CC', +(0x5F, 0x3A, 0x4F, 0x24) : 'EF_PUID', +(0x5F, 0x3A, 0x4F, 0x30) : 'EF_PBR', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_CCP1', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_IAP', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_ADN', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_EXT1', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_PBC', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_GRP', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_AAS', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_GAS', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_ANR', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_SNE', +#(0x5F, 0x3A, 0x4F, 0xXX) : 'EF_EMAIL', +(0x6F, 0x05) : 'EF_LI', +(0x6F, 0x06) : 'EF_ARR', +(0x6F, 0x07) : 'EF_IMSI', +(0x6F, 0x08) : 'EF_Keys', +(0x6F, 0x09) : 'EF_KeysPS', +(0x6F, 0x2C) : 'EF_DCK', +(0x6F, 0x31) : 'EF_HPPLMN', +(0x6F, 0x32) : 'EF_CNL', +(0x6F, 0x37) : 'EF_ACMmax', +(0x6F, 0x38) : 'EF_UST', +(0x6F, 0x39) : 'EF_ACM', +(0x6F, 0x3B) : 'EF_FDN', +(0x6F, 0x3C) : 'EF_SMS', +(0x6F, 0x3E) : 'EF_GID1', +(0x6F, 0x3F) : 'EF_GID2', +(0x6F, 0x40) : 'EF_MSISDN', +(0x6F, 0x41) : 'EF_PUCT', +(0x6F, 0x42) : 'EF_SMSP', +(0x6F, 0x43) : 'EF_SMSS', +(0x6F, 0x45) : 'EF_CBMI', +(0x6F, 0x46) : 'EF_SPN', +(0x6F, 0x47) : 'EF_SMSR', +(0x6F, 0x48) : 'EF_CBMID', +(0x6F, 0x49) : 'EF_SDN', +(0x6F, 0x4B) : 'EF_EXT2', +(0x6F, 0x4C) : 'EF_EXT3', +(0x6F, 0x4D) : 'EF_BDN', +(0x6F, 0x4E) : 'EF_EXT5', +(0x6F, 0x50) : 'EF_CBMIR', +(0x6F, 0x55) : 'EF_EXT4', +(0x6F, 0x56) : 'EF_EST', +(0x6F, 0x57) : 'EF_ACL', +(0x6F, 0x58) : 'EF_CMI', +(0x6F, 0x5B) : 'EF_START-HFN', +(0x6F, 0x5C) : 'EF_THRESHOLD', +(0x6F, 0x60) : 'EF_PLMNwAcT', +(0x6F, 0x61) : 'EF_OPLMNwAcT', +(0x6F, 0x62) : 'EF_HPLMNwAcT', +(0x6F, 0xD9) : 'EF_EHPLMN', +(0x6F, 0x73) : 'EF_PSLOCI', +(0x6F, 0x78) : 'EF_ACC', +(0x6F, 0x7B) : 'EF_FPLMN', +(0x6F, 0x7E) : 'EF_LOCI', +(0x6F, 0x80) : 'EF_ICI', +(0x6F, 0x81) : 'EF_OCI', +(0x6F, 0x82) : 'EF_ICT', +(0x6F, 0x83) : 'EF_OCT', +(0x6F, 0xAD) : 'EF_AD', +(0x6F, 0xB5) : 'EF_eMLPP', +(0x6F, 0xB6) : 'EF_AAeM', +(0x6F, 0xB7) : 'EF_ECC', +(0x6F, 0xC3) : 'EF_Hiddenkey', +(0x6F, 0xC4) : 'EF_NETPAR', +(0x6F, 0xC5) : 'EF_PNN', +(0x6F, 0xC6) : 'EF_OPL', +(0x6F, 0xC7) : 'EF_MBDN', +(0x6F, 0xC8) : 'EF_EXT6', +(0x6F, 0xC9) : 'EF_MBI', +(0x6F, 0xCA) : 'EF_MWIS', +(0x6F, 0xCB) : 'EF_CFIS', +(0x6F, 0xCC) : 'EF_EXT7', +(0x6F, 0xCD) : 'EF_SPDI', +(0x6F, 0xCE) : 'EF_MMSN', +(0x6F, 0xCF) : 'EF_EXT8', +(0x6F, 0xD0) : 'EF_MMSICP', +(0x6F, 0xD1) : 'EF_MMSUP', +(0x6F, 0xD2) : 'EF_MMSUCP', +(0x6F, 0xD3) : 'EF_NIA', +(0x6F, 0x4F) : 'EF_CCP2', +(0x6F, 0xB1) : 'EF_VGCS', +(0x6F, 0xB2) : 'EF_VGCSS', +(0x6F, 0xB3) : 'EF_VBS', +(0x6F, 0xB4) : 'EF_VBSS', +(0x6F, 0xD4) : 'EF_VGCSCA', +(0x6F, 0xD5) : 'EF_VBSCA', +(0x6F, 0xD6) : 'EF_GBAP', +(0x6F, 0xD7) : 'EF_MSK', +(0x6F, 0xD8) : 'EF_MUK', +(0x6F, 0xDA) : 'EF_GBANL', +(0x6F, 0xDB) : 'EF_EHPLMNPI', +(0x6F, 0xDC) : 'EF_LRPLMNSI', +(0x6F, 0xDD) : 'EF_NAFKCA', +(0x6F, 0xDE) : 'EF_SPNI', +(0x6F, 0xDF) : 'EF_PNNI', +} + +EMV_AID = { +(160, 0, 0, 0, 3, 16, 16) : 'VISA credit / debit', +}
\ No newline at end of file |