Skip to content

Changes

Summary

  1. esim.saip: Implement ProfileElement.header_name for more PE types (details)
  2. pySim.esim.saip: Meaningful constructors for [I]SD + SSD (details)
  3. document the CardKeyProvider (details)
  4. CardKeyProvider: Implement support for column-based transport key (details)
  5. global_platform/euicc: Implement obtaining SCP keys from CardKeyProvider (details)
Commit bc949649da40effb8cf94a7c50010a428fb60f1f by laforge
esim.saip: Implement ProfileElement.header_name for more PE types

We now cover all PE types as of PE_Definitions-3.3.1.asn

Change-Id: I37951a0441fe53fce7a329066aebd973389cb743
The file was modified pySim/esim/saip/__init__.py
Commit 0251367ddb11b533e6f9a8e70455dcd06f646945 by laforge
pySim.esim.saip: Meaningful constructors for [I]SD + SSD

So far the main use case was to read a ProfileElement-SD from
a DER file.  But when we want to construct one from scratch,
we need to have the constructor put some meaningful [default]
values into the class members.

Change-Id: I69e104f1d78165c12291317326dbab05977a1574
The file was modified pySim/esim/saip/__init__.py
Commit a3d41a147f36a1f7a75c933748be922896ac083c by laforge
document the CardKeyProvider

Change-Id: Ie6fc24695dd956a4f9fd6f243d3b0ef66acf877b
The file was modified docs/shell.rst
The file was addeddocs/card-key-provider.rst
Commit 1aaf978d9f1b290d13a82d7f1efef671f9fc4099 by laforge
CardKeyProvider: Implement support for column-based transport key encryption

It's generally a bad idea to keep [card specific] key material lying
around unencrypted in CSV files.  The industry standard solution in the
GSMA is a so-called "transport key", which encrypts the key material.

Let's introduce support for this in the CardKeyProvider (and
specifically, the CardKeyProviderCSV) and allow the user to specify
transport key material as command line options to pySim-shell.

Different transport keys can be used for different key materials, so
allow specification of keys on a CSV-column base.

The higher-level goal is to allow the CSV file not only to store
the ADM keys (like now), but also global platform key material for
establishing SCP towards various security domains in a given card.

Change-Id: I13146a799448d03c681dc868aaa31eb78b7821ff
The file was modified pySim-shell.py
The file was modified docs/card-key-provider.rst
The file was addedcontrib/csv-encrypt-columns.py
The file was modified pySim/card_key_provider.py
Commit add30ecbfff32ee57a29b2524441e1c532d86fe7 by laforge
global_platform/euicc: Implement obtaining SCP keys from CardKeyProvider

Now that CardKeyProvider is capable of storing key materials
transport-key-encrypted, we can use this functionality to look up the
SCP02 / SCP03 key material for a given security domain.

This patch implements this for the ISD-R and ECASD using a look-up by
EID inside the CSV.

Change-Id: I2a21f031ab8af88019af1b8390612678b9b35880
The file was modified pySim/global_platform/__init__.py
The file was modified pySim/euicc.py