* saip-tool: Also dump RFM information in "info" command
* saip-tool: Dump information about security domains from "info" command
* pySim.esim.saip: Add methods to rebuild "mandatory" lists in ProfileHeader
* pySim.esim.saip: ProfileElement{Header,End} classes
* pySim.esim.saip: Move initialization of PE header to base class
* pySim.saip: Add ProfileElementRFM class
* pySim.esim.saip: Add ProfileElementOpt{USIM,ISIM} classes
* pySim.saip.oid: Properly differentiate optional from non-optional templates
* tests: Add ProfileElementSD and ProfileElementSSD to test_constructor_encode
* pySim.esim.saip: Add ProfileElementAKA constructor + methods
* pySim.esim: Allow calling compile_asn1_subdir() with non-DER coddec
* pySim.esim.saip: Meaningful defaults in PE Constructor + test
* pySim.ota.OtaDialectSms: Move SMS header construct up to class level
* pySim/ota: Don't modify input argument in OtaDialectSms.encode_cmd
* pySim.cat: Add more alredy-defined IEs to ProactiveCmd classes
* add contrib/saip-tool.py
* jenkins.sh: Include es9p_client in pylint
* pySim.tlv.COMPR_TLV_IE: Patch comprehension bit if derived class misses it
* pySim.cat: Make sure to always set comprehension bit in COMPR_TLV_IE
* pySim.tlv: Correctly parse COMPREHENSION-TLV without comprehension bit
* esim.saip: Add ProfileElementSequence.remove_naas_of_type
* esim.saip: Introduce ProfileElement.identification property
* esim.es9p: Suppress sending requestHeader on ES9+
* add contrib/es9p_client: Perform ES9+ client functions like LPA+eUICC
* http_json_api / es9p: Add User-Agent header
* add pySim.esim.es9p with definitions of the ES9+ HTTP Interface
* esim.es2p: Split generic part of HTTP/REST API from ES2+
* pySim/cat: Fix "Decode the "Type of Comand" from numeric value to a string"
* global_platform/euicc: Implement obtaining SCP keys from CardKeyProvider
* CardKeyProvider: Implement support for column-based transport key encryption
* document the CardKeyProvider
* pySim.esim.saip: Meaningful constructors for [I]SD + SSD
* esim.saip: Implement ProfileElement.header_name for more PE types
* pySim.app: Attempt to retrieve the EID of a SGP.22 / SGP.32 eUICC
* pySim-shell: Migrate PySimApp.iccid to RuntimeState.identity['ICCID']
* runtime: Introduce an 'identity' dict for things like ATR, ICCID, EID
* sysmocom_sjs2: Make sure 'Const' is imported
* euicc: clarify which eUICCs are supported
* pySim-trace.py: Resolve possible variable use before assignment
* pySim-prog.py: Resolve possible variable use before assignment
* osmo-smdpp.py: Resolve possible variable use before assignment
* euicc.py: Resolve possible variable use before assignment
* commands.py: Resolve possible variable use before assignment
* commands.py: Resolve possible variable use before assignment
* saip.personalization: Fix encoding of ICCID in ProfileHeader
* saip.personalization: automatically compute class 'name' attribute
* saip.personalization: differentiate input_value from value
* saip.personalization: Add support for SCP80/81/02/03 keys
* saip.personalization: include encode/decode of value; add validation method
* Dynamically determine maximum CMD data length depending on SCP
* Add terminal_capability command to send TERMINAL CAPABILITY
* ts_31_102: Add support for "USIM supporting non-IMSI SUPI Type"
* global_platform: KCV support for PUT KEY
* Be more conservative in our imports
* contrib/jenkins.sh: include tests/*.py in pylint
* make our tests pass pylint