<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/11753">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">add ATR as command line argument<br><br>we could add a function checking the ATR validity<br>also before updating the (conditional) checksum we should check if<br>it is actually present in the ATR<br><br>Change-Id: Id1084abdf2318e96c22f8e69cc1ef161b12ef5ea<br>---<br>M src/simtrace2-remsim_client.c<br>1 file changed, 16 insertions(+), 4 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/simtrace2-remsim_client.c b/src/simtrace2-remsim_client.c</span><br><span>index 365acb4..f033e7d 100644</span><br><span>--- a/src/simtrace2-remsim_client.c</span><br><span>+++ b/src/simtrace2-remsim_client.c</span><br><span>@@ -245,6 +245,7 @@</span><br><span>         return st_slot_tx_msg(ci->slot, msg, SIMTRACE_MSGC_CARDEM, SIMTRACE_MSGT_DT_CEMU_TX_DATA);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+// FIXME check if the ATR actually includes a checksum</span><br><span> static void atr_update_csum(uint8_t *atr, unsigned int atr_len)</span><br><span> {</span><br><span>       uint8_t csum = 0;</span><br><span>@@ -617,6 +618,7 @@</span><br><span>              "\t-S\t--usb-altsetting ALTSETTING_ID\n"</span><br><span>           "\t-A\t--usb-address\tADDRESS\n"</span><br><span>           "\t-H\t--usb-path\tPATH\n"</span><br><span style="color: hsl(120, 100%, 40%);">+          "\t-a\t--atr\tATR\n"</span><br><span>               "\n"</span><br><span>               );</span><br><span> }</span><br><span>@@ -636,6 +638,7 @@</span><br><span>        { "usb-altsetting", 1, 0, 'S' },</span><br><span>   { "usb-address", 1, 0, 'A' },</span><br><span>      { "usb-path", 1, 0, 'H' },</span><br><span style="color: hsl(120, 100%, 40%);">+  { "atr", 1, 0, 'a' },</span><br><span>      { NULL, 0, 0, 0 }</span><br><span> };</span><br><span> </span><br><span>@@ -652,13 +655,15 @@</span><br><span>  int config_id = -1, altsetting = 0, addr = -1;</span><br><span>       char *bankd_host = "127.0.0.1";</span><br><span>    char *path = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+    uint8_t atr_data[33] = { 0x3B, 0x00 }; // the shortest simplest ATR possible</span><br><span style="color: hsl(120, 100%, 40%);">+  uint8_t atr_len = 2;</span><br><span> </span><br><span>     print_welcome();</span><br><span> </span><br><span>         while (1) {</span><br><span>          int option_index = 0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-               c = getopt_long(argc, argv, "b:p:c:s:hi:V:P:C:I:S:A:H:k", opts, &option_index);</span><br><span style="color: hsl(120, 100%, 40%);">+         c = getopt_long(argc, argv, "b:p:c:s:hi:V:P:C:I:S:A:H:a:k", opts, &option_index);</span><br><span>              if (c == -1)</span><br><span>                         break;</span><br><span>               switch (c) {</span><br><span>@@ -705,6 +710,14 @@</span><br><span>          case 'H':</span><br><span>                    path = optarg;</span><br><span>                       break;</span><br><span style="color: hsl(120, 100%, 40%);">+                case 'a':</span><br><span style="color: hsl(120, 100%, 40%);">+                     rc = osmo_hexparse(optarg, atr_data, ARRAY_SIZE(atr_data));</span><br><span style="color: hsl(120, 100%, 40%);">+                   if (rc < 2 || rc > ARRAY_SIZE(atr_data)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                              fprintf(stderr, "ATR matlformed\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                                goto do_exit;</span><br><span style="color: hsl(120, 100%, 40%);">+                 }</span><br><span style="color: hsl(120, 100%, 40%);">+                     atr_len = rc;</span><br><span style="color: hsl(120, 100%, 40%);">+                 break;</span><br><span>               }</span><br><span>    }</span><br><span> </span><br><span>@@ -839,9 +852,8 @@</span><br><span>          st_modem_sim_select_remote(ci->slot);</span><br><span> </span><br><span>                 /* set the ATR */</span><br><span style="color: hsl(0, 100%, 40%);">-               uint8_t real_atr[] = { 0x3B, 0x00 }; // the shortest simplest ATR possible</span><br><span style="color: hsl(0, 100%, 40%);">-              atr_update_csum(real_atr, sizeof(real_atr));</span><br><span style="color: hsl(0, 100%, 40%);">-            cardem_request_set_atr(ci, real_atr, sizeof(real_atr));</span><br><span style="color: hsl(120, 100%, 40%);">+               //atr_update_csum(real_atr, sizeof(real_atr));</span><br><span style="color: hsl(120, 100%, 40%);">+                cardem_request_set_atr(ci, atr_data, atr_len);</span><br><span> </span><br><span>           /* select remote (forwarded) SIM */</span><br><span>          st_modem_reset_pulse(ci->slot, 300);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11753">change 11753</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/11753"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-remsim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Id1084abdf2318e96c22f8e69cc1ef161b12ef5ea </div>
<div style="display:none"> Gerrit-Change-Number: 11753 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Kévin Redon <kredon@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>