Change in simtrace2[master]: remsim: adding cli argument to set the atr

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Tue Oct 27 15:28:10 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/simtrace2/+/20931 )

Change subject: remsim: adding cli argument to set the atr
......................................................................

remsim: adding cli argument to set the atr

Change-Id: I554b515e7954148f9ca5ba29417699da70b0945b
---
M host/src/simtrace2-remsim.c
1 file changed, 20 insertions(+), 4 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved



diff --git a/host/src/simtrace2-remsim.c b/host/src/simtrace2-remsim.c
index 201ff71..6752fc6 100644
--- a/host/src/simtrace2-remsim.c
+++ b/host/src/simtrace2-remsim.c
@@ -50,6 +50,8 @@
 #include <osmocom/sim/class_tables.h>
 #include <osmocom/sim/sim.h>
 
+#define ATR_MAX_LEN 33
+
 static void atr_update_csum(uint8_t *atr, unsigned int atr_len)
 {
 	uint8_t csum = 0;
@@ -181,6 +183,7 @@
 		"\t-h\t--help\n"
 		"\t-i\t--gsmtap-ip\tA.B.C.D\n"
 		"\t-a\t--skip-atr\n"
+		"\t-t\t--set-atr\tATR-STRING in HEX\n"
 		"\t-k\t--keep-running\n"
 		"\t-n\t--pcsc-reader-num\n"
 		"\t-V\t--usb-vendor\tVENDOR_ID\n"
@@ -199,6 +202,7 @@
 	{ "remote-udp-port", 1, 0, 'p' },
 	{ "gsmtap-ip", 1, 0, 'i' },
 	{ "skip-atr", 0, 0, 'a' },
+	{ "set-atr", 1, 0, 't' },
 	{ "help", 0, 0, 'h' },
 	{ "keep-running", 0, 0, 'k' },
 	{ "pcsc-reader-num", 1, 0, 'n' },
@@ -283,6 +287,9 @@
 	int rc;
 	int c, ret = 1;
 	int skip_atr = 0;
+	char *atr = "3b00";
+	uint8_t real_atr[ATR_MAX_LEN];
+	int atr_len;
 	int keep_running = 0;
 	int remote_udp_port = 52342;
 	int if_num = 0, vendor_id = -1, product_id = -1;
@@ -298,7 +305,7 @@
 	while (1) {
 		int option_index = 0;
 
-		c = getopt_long(argc, argv, "r:p:hi:V:P:C:I:S:A:H:akn:", opts, &option_index);
+		c = getopt_long(argc, argv, "r:p:hi:V:P:C:I:S:A:H:akn:t:", opts, &option_index);
 		if (c == -1)
 			break;
 		switch (c) {
@@ -318,6 +325,9 @@
 		case 'a':
 			skip_atr = 1;
 			break;
+		case 't':
+		        atr = optarg;
+			break;
 		case 'k':
 			keep_running = 1;
 			break;
@@ -348,6 +358,13 @@
 		}
 	}
 
+	atr_len = osmo_hexparse(atr,real_atr,ATR_MAX_LEN);
+	if (atr_len < 2) {
+		fprintf(stderr, "Invalid ATR - please omit a leading 0x and only use valid hex "
+			"digits and whitespace. ATRs need to be between 2 and 33 bytes long.\n");
+		goto do_exit;
+	}
+
 	if (!remote_udp_host && (vendor_id < 0 || product_id < 0)) {
 		fprintf(stderr, "You have to specify the vendor and product ID\n");
 		goto do_exit;
@@ -438,9 +455,8 @@
 
 		if (!skip_atr) {
 			/* set the ATR */
-			uint8_t real_atr[] = {  0x3B, 0x00 }; // the simplest ATR
-			atr_update_csum(real_atr, sizeof(real_atr));
-			osmo_st2_cardem_request_set_atr(ci, real_atr, sizeof(real_atr));
+			atr_update_csum(real_atr, atr_len);
+			osmo_st2_cardem_request_set_atr(ci, real_atr, atr_len);
 		}
 
 		/* select remote (forwarded) SIM */

-- 
To view, visit https://gerrit.osmocom.org/c/simtrace2/+/20931
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-Change-Id: I554b515e7954148f9ca5ba29417699da70b0945b
Gerrit-Change-Number: 20931
Gerrit-PatchSet: 2
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: lhuebner <leonard.huebner at commsolid.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201027/30d8256c/attachment.htm>


More information about the gerrit-log mailing list