laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/41972?usp=email )
Change subject: es9p_client: smdpOid is optional in download/install notification ......................................................................
es9p_client: smdpOid is optional in download/install notification
See the following definition in the ASN.1:
ProfileInstallationResultData ::= [39] SEQUENCE { -- Tag 'BF27' transactionId[0] TransactionId, -- The TransactionID generated by the SM-DP+ notificationMetadata[47] NotificationMetadata, smdpOid OBJECT IDENTIFIER OPTIONAL, -- SM-DP+ OID (same value as in CERT.DPpb.ECDSA) finalResult [2] CHOICE { successResult SuccessResult, errorResult ErrorResult } }
Change-Id: I5df54df2ddc0590a5eca31d4f37ae94053d20067 --- M contrib/es9p_client.py 1 file changed, 3 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/72/41972/1
diff --git a/contrib/es9p_client.py b/contrib/es9p_client.py index e9a71fc..da7a055 100755 --- a/contrib/es9p_client.py +++ b/contrib/es9p_client.py @@ -82,7 +82,7 @@ help='transactionId of previous ES9+ download') parser_ntfi.add_argument('--notification-address', help='notificationAddress, if different from URL') parser_ntfi.add_argument('--iccid', type=is_hexstr, help='ICCID to which the notification relates') -parser_ntfi.add_argument('--smdpp-oid', required=True, help='SM-DP+ OID (as in CERT.DPpb.ECDSA)') +parser_ntfi.add_argument('--smdpp-oid', help='SM-DP+ OID (as in CERT.DPpb.ECDSA)') parser_ntfi.add_argument('--isdp-aid', type=is_hexstr, required=True, help='AID of the ISD-P of the installed profile') parser_ntfi.add_argument('--sima-response', type=is_hexstr, required=True, @@ -130,12 +130,13 @@ pird = { 'transactionId': self.opts.transaction_id, 'notificationMetadata': ntf_metadata, - 'smdpOid': self.opts.smdpp_oid, 'finalResult': ('successResult', { 'aid': self.opts.isdp_aid, 'simaResponse': self.opts.sima_response, }), } + if self.opts.smdpp_oid: + pird['smdpOid'] = self.opts.smdpp_oid pird_bin = rsp.asn1.encode('ProfileInstallationResultData', pird) signature = self.cert_and_key.ecdsa_sign(pird_bin) pn_dict = ('profileInstallationResult', {