dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/41875?usp=email )
Change subject: contrib: add utility to receive ES2+handleDownloadProgressInfo calls ...................................................................... contrib: add utility to receive ES2+handleDownloadProgressInfo calls We already have a tool to work with the ES2+ API provided by an SMDP+ (es2p_client.py) With this tool we can only make API calls towards an SMDP+. However, SGP.22 also defines a "reverse direction" ES2+ interface through wich the SMDP+ may make API calls towards the MNO. At the moment the only possible MNO originated API call is ES2+handleDownloadProgressInfo. Let's add a simple tool that runs a HTTP server to receive and log the ES2+handleDownloadProgressInfo requests. Related: SYS#7825 Change-Id: I95af30cebae31f7dc682617b1866f4a2dc9b760c --- A contrib/es2p_server.py 1 file changed, 47 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/75/41875/1 diff --git a/contrib/es2p_server.py b/contrib/es2p_server.py new file mode 100755 index 0000000..435d4f1 --- /dev/null +++ b/contrib/es2p_server.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +# (C) 2026 by sysmocom - s.f.m.c. GmbH +# All Rights Reserved +# +# Author: Philipp Maier +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import sys +import argparse +import logging +from pySim.esim.es2p import param, Es2pApiServer, Es2pApiServerHandler + +logger = logging.getLogger(__name__) + +parser = argparse.ArgumentParser(description=""" +Utility to receive and log requests against the ES2+ API of an SM-DP+ according to GSMA SGP.22.""") +parser.add_argument('--server-cert', help='X.509 server certificate used to provide the ES2+ HTTPs service') +parser.add_argument('--client-ca-cert', help='X.509 CA certificates to authenticate the requesting client(s)') +parser.add_argument("-v", "--verbose", help="enable debug output", action='store_true', default=False) + +class Es2pApiServerHandlerForLogging(Es2pApiServerHandler): + def call_handleDownloadProgressInfo(self, data: dict) -> (dict, str): + logging.info("ES2+:handleDownloadProgressInfo: %s" % str(data)) + return {}, None + +if __name__ == "__main__": + args = parser.parse_args() + + logging.basicConfig(level=logging.DEBUG if args.verbose else logging.WARNING, + format='%(asctime)s %(levelname)s %(message)s', + datefmt='%Y-%m-%d %H:%M:%S') + + Es2pApiServer(8030, "127.0.0.1", Es2pApiServerHandlerForLogging(), args.server_cert, args.client_ca_cert) + -- To view, visit https://gerrit.osmocom.org/c/pysim/+/41875?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I95af30cebae31f7dc682617b1866f4a2dc9b760c Gerrit-Change-Number: 41875 Gerrit-PatchSet: 1 Gerrit-Owner: dexter <[email protected]>
