saip.validation: Verify unused mandatory services in header
This adds a new check method to the pySim.esim.saip.validation.CheckBasicStructure class, which ensures that no unused authentication algorithm related mandatory services are indicated in the ProfileHeader.
So if a profile e.g. states in the header it requires usim-test-algorithm, but then the actual akaParameter instances do not actually use that algorithm, it would raise an exception.
This method did not work at all at the moment, likely due to API churn over time. This change makes the following exception go away:
Traceback (most recent call last): File "projects/git/pysim/contrib/saip-tool.py", line 473, in <module> do_remove_naa(pes, opts) ~~~~~~~~~~~~~^^^^^^^^^^^ File "projects/git/pysim/contrib/saip-tool.py", line 203, in do_remove_naa pes.remove_naas_of_type(naa) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^ File "projects/git/pysim/contrib/pySim/esim/saip/__init__.py", line 1748, in remove_naas_of_type if template in hdr.decoded['eUICC-Mandatory-GFSTEList']: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "projects/git/pysim/contrib/pySim/esim/saip/oid.py", line 48, in __eq__ return (self.intlist == other.intlist) ^^^^^^^^^^^^^ AttributeError: 'str' object has no attribute 'intlist'
A subsequent patch should introduce unit tests to avoid such breakage in the future.