<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/simtrace2/+/23611">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">cardem: choose a more reasonable default ATR<br><br>PCSCd does not like invalid ATRs<br><br>Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38<br>---<br>M firmware/libcommon/source/card_emu.c<br>M host/src/simtrace2-cardem-pcsc.c<br>2 files changed, 38 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c</span><br><span>index cad24b8..269c7c6 100644</span><br><span>--- a/firmware/libcommon/source/card_emu.c</span><br><span>+++ b/firmware/libcommon/source/card_emu.c</span><br><span>@@ -1179,8 +1179,23 @@</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* shortest ATR possible (uses default speed and no options) */</span><br><span style="color: hsl(0, 100%, 40%);">-static const uint8_t default_atr[] = { 0x3B, 0x00 };</span><br><span style="color: hsl(120, 100%, 40%);">+/* reasonable ATR offering all protocols and voltages</span><br><span style="color: hsl(120, 100%, 40%);">+ * smartphones might not care, but other readers do</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * TS =          0x3B    Direct Convention</span><br><span style="color: hsl(120, 100%, 40%);">+ * T0 =              0x80    Y(1): b1000, K: 0 (historical bytes)</span><br><span style="color: hsl(120, 100%, 40%);">+ * TD(1) =        0x80    Y(i+1) = b1000, Protocol T=0</span><br><span style="color: hsl(120, 100%, 40%);">+ * ----</span><br><span style="color: hsl(120, 100%, 40%);">+ * TD(2) =       0x81    Y(i+1) = b1000, Protocol T=1</span><br><span style="color: hsl(120, 100%, 40%);">+ * ----</span><br><span style="color: hsl(120, 100%, 40%);">+ * TD(3) =       0x1F    Y(i+1) = b0001, Protocol T=15</span><br><span style="color: hsl(120, 100%, 40%);">+ * ----</span><br><span style="color: hsl(120, 100%, 40%);">+ * TA(4) =      0xC7    Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V</span><br><span style="color: hsl(120, 100%, 40%);">+ * ----</span><br><span style="color: hsl(120, 100%, 40%);">+ * Historical bytes</span><br><span style="color: hsl(120, 100%, 40%);">+ * TCK =   0x59    correct checksum</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+static const uint8_t default_atr[] = { 0x3B, 0x80, 0x80, 0x81 , 0x1F, 0xC7, 0x59 };</span><br><span> </span><br><span> static struct card_handle card_handles[NUM_SLOTS];</span><br><span> </span><br><span>diff --git a/host/src/simtrace2-cardem-pcsc.c b/host/src/simtrace2-cardem-pcsc.c</span><br><span>index 883bad1..f11330c 100644</span><br><span>--- a/host/src/simtrace2-cardem-pcsc.c</span><br><span>+++ b/host/src/simtrace2-cardem-pcsc.c</span><br><span>@@ -52,6 +52,26 @@</span><br><span> </span><br><span> #define ATR_MAX_LEN 33</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* reasonable ATR offering all protocols and voltages</span><br><span style="color: hsl(120, 100%, 40%);">+ * smartphones might not care, but other readers do</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * TS =         0x3B    Direct Convention</span><br><span style="color: hsl(120, 100%, 40%);">+ * T0 =              0x80    Y(1): b1000, K: 0 (historical bytes)</span><br><span style="color: hsl(120, 100%, 40%);">+ * TD(1) =        0x80    Y(i+1) = b1000, Protocol T=0</span><br><span style="color: hsl(120, 100%, 40%);">+ * ----</span><br><span style="color: hsl(120, 100%, 40%);">+ * TD(2) =       0x81    Y(i+1) = b1000, Protocol T=1</span><br><span style="color: hsl(120, 100%, 40%);">+ * ----</span><br><span style="color: hsl(120, 100%, 40%);">+ * TD(3) =       0x1F    Y(i+1) = b0001, Protocol T=15</span><br><span style="color: hsl(120, 100%, 40%);">+ * ----</span><br><span style="color: hsl(120, 100%, 40%);">+ * TA(4) =      0xC7    Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V</span><br><span style="color: hsl(120, 100%, 40%);">+ * ----</span><br><span style="color: hsl(120, 100%, 40%);">+ * Historical bytes</span><br><span style="color: hsl(120, 100%, 40%);">+ * TCK =   0x59    correct checksum</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+#define DEFAULT_ATR_STR "3B8080811FC759"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</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>@@ -274,7 +294,7 @@</span><br><span>      int rc;</span><br><span>      int c, ret = 1;</span><br><span>      int skip_atr = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-       char *atr = "3b00";</span><br><span style="color: hsl(120, 100%, 40%);">+ char *atr = DEFAULT_ATR_STR;</span><br><span>         uint8_t real_atr[ATR_MAX_LEN];</span><br><span>       int atr_len;</span><br><span>         int keep_running = 0;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/simtrace2/+/23611">change 23611</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/c/simtrace2/+/23611"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: simtrace2 </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38 </div>
<div style="display:none"> Gerrit-Change-Number: 23611 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: Hoernchen <ewild@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>