mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-16 18:38:32 +03:00
pySim-shell: recognize ADP pins longer than 8 digits as hexadecimal
When a hexadecimal formatted ADM pin is retrieved via the card_key_provider, it still requires the --pin-is-hex parameter so that sanitize_pin_adm knows the correct format. This unfortunately ruins the card_key_provider feature for all cards that use hexadecimal pins, because the --pin-is-hex would also be required in scripts, which makes a script either useable for cards with hexadecimal ADM or for for cards with ASCII ADM. To minimize the problem, let's recognize all ADM pins longer than 8 digits as hexadecimal in case --pin-is-hex is not set. Related: OS#4348 Change-Id: Iad9398365d448946c499ce89e3cfb2c3af5d525e
This commit is contained in:
@@ -819,7 +819,7 @@ class PySimCommands(CommandSet):
|
|||||||
adm_type = opts.adm_type or 'ADM1'
|
adm_type = opts.adm_type or 'ADM1'
|
||||||
# try to find an ADM-PIN if none is specified
|
# try to find an ADM-PIN if none is specified
|
||||||
result = card_key_provider_get_field(adm_type, key='ICCID', value=iccid)
|
result = card_key_provider_get_field(adm_type, key='ICCID', value=iccid)
|
||||||
if opts.pin_is_hex:
|
if opts.pin_is_hex or (result and len(result) > 8):
|
||||||
pin_adm = sanitize_pin_adm(None, result)
|
pin_adm = sanitize_pin_adm(None, result)
|
||||||
else:
|
else:
|
||||||
pin_adm = sanitize_pin_adm(result)
|
pin_adm = sanitize_pin_adm(result)
|
||||||
|
|||||||
Reference in New Issue
Block a user