<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ludovic Rousseau's blog (Posts about macOS bug)</title><link>https://blog.apdu.fr/</link><description></description><atom:link href="https://blog.apdu.fr/categories/macos-bug.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:ludovic.rousseau+blog@free.fr"&gt;Ludovic Rousseau&lt;/a&gt; - License &lt;a href="/posts/2010/08/my-blog-messages-license/"&gt;CC BY-NC-SA 4.0 Deed&lt;/a&gt; for the text &amp;amp; &lt;a href="/posts/2019/01/my-blog-source-code-license/"&gt;GNU GPLv3&lt;/a&gt; for the code</copyright><lastBuildDate>Fri, 02 Jan 2026 16:23:46 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>In case of smart card issues on macOS</title><link>https://blog.apdu.fr/posts/2025/06/in-case-of-smart-card-issues-on-macos/</link><dc:creator>Ludovic Rousseau</dc:creator><description>&lt;p&gt;If you have a problem with your smart card or smart card reader on
macOS, the first step is to disable the CCID provided by Apple and
enable &lt;a class="reference external" href="https://ccid.apdu.fr/"&gt;my CCID driver&lt;/a&gt;.&lt;/p&gt;
&lt;section id="enable-a-good-ccid-driver"&gt;
&lt;h2&gt;Enable a good CCID driver&lt;/h2&gt;
&lt;p&gt;It is very simple. Just do, in a Terminal:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_6c893e7775b94991bf275350433b8a3e-1" name="rest_code_6c893e7775b94991bf275350433b8a3e-1" href="https://blog.apdu.fr/posts/2025/06/in-case-of-smart-card-issues-on-macos/#rest_code_6c893e7775b94991bf275350433b8a3e-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;sudo defaults write /Library/Preferences/com.apple.security.smartcard useIFDCCID -bool yes&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If the problem is solved then there is no need to report it to me.&lt;/p&gt;
&lt;p&gt;You will find more information in &lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/"&gt;Apple's own CCID driver in Sonoma&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="update-of-my-ccid-driver"&gt;
&lt;h2&gt;Update of my CCID driver&lt;/h2&gt;
&lt;p&gt;In macOS Sonoma 14.0 Apple provided version 1.5.1 of my CCID driver
(&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-status/"&gt;macOS Sonoma and smart cards status&lt;/a&gt;) whereas the current version
was 1.5.2.&lt;/p&gt;
&lt;p&gt;In macOS Sequoia 15.0 my CCID driver was still version 1.5.1 whereas the
current version was 1.6.1 (&lt;a class="reference external" href="https://blog.apdu.fr/posts/2024/10/macos-sequoia-and-smart-cards-status/"&gt;macOS Sequoia and smart cards status&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;If you want/need a version of my CCID driver newer than 1.5.1, or a
custom installer for macOS, you can &lt;a class="reference external" href="https://blog.apdu.fr/articles/about_me"&gt;contact me&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;An issue was reported recently (&lt;a class="reference external" href="https://github.com/LudovicRousseau/pyscard/issues/225"&gt;MacOS NFC reader issue for large APDUs&lt;/a&gt;) and
activating my CCID driver &lt;a class="reference external" href="https://github.com/LudovicRousseau/pyscard/issues/225#issuecomment-2979881600"&gt;solved the problem&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;First step is to use a good CCID driver.&lt;/p&gt;
&lt;/section&gt;</description><category>ccid</category><category>Mac OS X</category><category>macOS bug</category><guid>https://blog.apdu.fr/posts/2025/06/in-case-of-smart-card-issues-on-macos/</guid><pubDate>Wed, 18 Jun 2025 11:34:25 GMT</pubDate></item><item><title>macOS Sonoma bug: SCardControl() (part 2)</title><link>https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/</link><dc:creator>Ludovic Rousseau</dc:creator><description>&lt;nav class="contents" id="contents" role="doc-toc"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#top"&gt;Contents&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#switch-ccid-driver" id="toc-entry-1"&gt;Switch CCID driver&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#scardcontrol" id="toc-entry-2"&gt;SCardControl&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#my-ccid-driver" id="toc-entry-3"&gt;My CCID driver&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#apple-driver" id="toc-entry-4"&gt;Apple driver&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#diff" id="toc-entry-5"&gt;Diff&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#feature-ccid-esc-command" id="toc-entry-6"&gt;FEATURE_CCID_ESC_COMMAND&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#bppdusupport" id="toc-entry-7"&gt;bPPDUSupport&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#dwmaxapdudatasize" id="toc-entry-8"&gt;dwMaxAPDUDataSize&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#sfirmwareid" id="toc-entry-9"&gt;sFirmwareID&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#bentryvalidationcondition" id="toc-entry-10"&gt;bEntryValidationCondition&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#pin-min-max-size-defined" id="toc-entry-11"&gt;PIN min/max size defined&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#secure-verify-pin-comand" id="toc-entry-12"&gt;Secure Verify PIN comand&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#conclusion" id="toc-entry-13"&gt;Conclusion&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;p&gt;In &lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/"&gt;macOS Sonoma bug: SCardControl() returns SCARD_E_NOT_TRANSACTED&lt;/a&gt; I
presented the problems with &lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt; on macOS Sonoma. Then in
&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/"&gt;Apple's own CCID driver in Sonoma&lt;/a&gt; we saw that macOS Sonoma provides
two CCID drivers: one from Apple and one from &lt;a class="reference external" href="https://ccid.apdu.fr/"&gt;me&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In Sonoma version 14.3 the situation evolved. The bug described in
&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/"&gt;macOS Sonoma bug: SCardControl() returns SCARD_E_NOT_TRANSACTED&lt;/a&gt; is
mostly fixed.&lt;/p&gt;
&lt;section id="switch-ccid-driver"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-1" role="doc-backlink"&gt;Switch CCID driver&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It is easy to switch between Apple CCID driver and my CCID driver.&lt;/p&gt;
&lt;p&gt;To enable my CCID driver you do:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_93d62de2462c4aefb8f3550dc3c067ab-1" name="rest_code_93d62de2462c4aefb8f3550dc3c067ab-1" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_93d62de2462c4aefb8f3550dc3c067ab-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;sudo defaults write /Library/Preferences/com.apple.security.smartcard useIFDCCID -bool yes&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To enable Apple CCID driver you do:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_f81a2c1247ae462abd9df0e9153210ac-1" name="rest_code_f81a2c1247ae462abd9df0e9153210ac-1" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_f81a2c1247ae462abd9df0e9153210ac-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;sudo defaults write /Library/Preferences/com.apple.security.smartcard useIFDCCID -bool no&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="scardcontrol"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-2" role="doc-backlink"&gt;SCardControl&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For my tests I used the sampe code
&lt;a class="reference external" href="https://github.com/LudovicRousseau/CCID/blob/master/examples/scardcontrol.c"&gt;scardcontrol&lt;/a&gt;
included in my driver source code.&lt;/p&gt;
&lt;section id="my-ccid-driver"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-3" role="doc-backlink"&gt;My CCID driver&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-1" name="rest_code_a31d5f00c6764927965035755bdfd46b-1" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;./scardcontrol
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-2" name="rest_code_a31d5f00c6764927965035755bdfd46b-2" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl sample code&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-3" name="rest_code_a31d5f00c6764927965035755bdfd46b-3" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.4 © 2004-2010, Ludovic Rousseau [ludovic.rousseau@free.fr](mailto:ludovic.rousseau@free.fr)&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-4" name="rest_code_a31d5f00c6764927965035755bdfd46b-4" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-5" name="rest_code_a31d5f00c6764927965035755bdfd46b-5" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;THIS PROGRAM IS NOT DESIGNED AS A TESTING TOOL!&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-6" name="rest_code_a31d5f00c6764927965035755bdfd46b-6" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Do NOT use it unless you really know what you do.&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-7" name="rest_code_a31d5f00c6764927965035755bdfd46b-7" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-8" name="rest_code_a31d5f00c6764927965035755bdfd46b-8" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardListReaders: OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-9" name="rest_code_a31d5f00c6764927965035755bdfd46b-9" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-9"&gt;&lt;/a&gt;&lt;span class="go"&gt;Available readers (use command line argument to select)&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-10" name="rest_code_a31d5f00c6764927965035755bdfd46b-10" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;0: Gemalto Ezio Shield&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-11" name="rest_code_a31d5f00c6764927965035755bdfd46b-11" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-12" name="rest_code_a31d5f00c6764927965035755bdfd46b-12" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;Using reader: Gemalto Ezio Shield&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-13" name="rest_code_a31d5f00c6764927965035755bdfd46b-13" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;Protocol: 1&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-14" name="rest_code_a31d5f00c6764927965035755bdfd46b-14" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardConnect: OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-15" name="rest_code_a31d5f00c6764927965035755bdfd46b-15" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl: OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-16" name="rest_code_a31d5f00c6764927965035755bdfd46b-16" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;TLV (24): 06 04 42 33 00 06 07 04 42 33 00 07 0A 04 42 33 00 0A 12 04 42 33 00 12&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-17" name="rest_code_a31d5f00c6764927965035755bdfd46b-17" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl(CM_IOCTL_GET_FEATURE_REQUEST): OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-18" name="rest_code_a31d5f00c6764927965035755bdfd46b-18" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_VERIFY_PIN_DIRECT&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-19" name="rest_code_a31d5f00c6764927965035755bdfd46b-19" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_MODIFY_PIN_DIRECT&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-20" name="rest_code_a31d5f00c6764927965035755bdfd46b-20" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-20"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_IFD_PIN_PROPERTIES&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-21" name="rest_code_a31d5f00c6764927965035755bdfd46b-21" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_GET_TLV_PROPERTIES&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-22" name="rest_code_a31d5f00c6764927965035755bdfd46b-22" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-22"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-23" name="rest_code_a31d5f00c6764927965035755bdfd46b-23" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-23"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl(GET_TLV_PROPERTIES): OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-24" name="rest_code_a31d5f00c6764927965035755bdfd46b-24" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-24"&gt;&lt;/a&gt;&lt;span class="go"&gt;GET_TLV_PROPERTIES (59): 01 02 11 04 04 02 11 00 05 02 04 00 03 01 00 08 10 47 65 6D 43 78 30 30 2D 56 37 2E 30 34 2E 30 35 06 01 04 07 01 10 02 01 02 09 01 00 0B 02 E6 08 0C 02 C0 34 0A 04 00 00 00 00&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-25" name="rest_code_a31d5f00c6764927965035755bdfd46b-25" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-25"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-26" name="rest_code_a31d5f00c6764927965035755bdfd46b-26" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-26"&gt;&lt;/a&gt;&lt;span class="go"&gt;Display all the properties:&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-27" name="rest_code_a31d5f00c6764927965035755bdfd46b-27" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-27"&gt;&lt;/a&gt;&lt;span class="go"&gt;wLcdLayout: 0x0411&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-28" name="rest_code_a31d5f00c6764927965035755bdfd46b-28" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-28"&gt;&lt;/a&gt;&lt;span class="go"&gt;Display with 4 lines of 17 columns&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-29" name="rest_code_a31d5f00c6764927965035755bdfd46b-29" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-29"&gt;&lt;/a&gt;&lt;span class="go"&gt;wLcdMaxCharacters: 0x0011&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-30" name="rest_code_a31d5f00c6764927965035755bdfd46b-30" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-30"&gt;&lt;/a&gt;&lt;span class="go"&gt;wLcdMaxLines: 0x0004&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-31" name="rest_code_a31d5f00c6764927965035755bdfd46b-31" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-31"&gt;&lt;/a&gt;&lt;span class="go"&gt;bTimeOut2: 0x00&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-32" name="rest_code_a31d5f00c6764927965035755bdfd46b-32" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-32"&gt;&lt;/a&gt;&lt;span class="go"&gt;sFirmwareID: GemCx00-V7.04.05&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-33" name="rest_code_a31d5f00c6764927965035755bdfd46b-33" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-33"&gt;&lt;/a&gt;&lt;span class="go"&gt;bMinPINSize: 0x04&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-34" name="rest_code_a31d5f00c6764927965035755bdfd46b-34" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-34"&gt;&lt;/a&gt;&lt;span class="go"&gt;bMaxPINSize: 0x10&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-35" name="rest_code_a31d5f00c6764927965035755bdfd46b-35" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-35"&gt;&lt;/a&gt;&lt;span class="go"&gt;bEntryValidationCondition: 0x02&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-36" name="rest_code_a31d5f00c6764927965035755bdfd46b-36" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-36"&gt;&lt;/a&gt;&lt;span class="go"&gt;Validation key pressed (2)&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-37" name="rest_code_a31d5f00c6764927965035755bdfd46b-37" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-37"&gt;&lt;/a&gt;&lt;span class="go"&gt;bPPDUSupport: 0x00&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-38" name="rest_code_a31d5f00c6764927965035755bdfd46b-38" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-38"&gt;&lt;/a&gt;&lt;span class="go"&gt;wIdVendor: 0x8E6&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-39" name="rest_code_a31d5f00c6764927965035755bdfd46b-39" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-39"&gt;&lt;/a&gt;&lt;span class="go"&gt;wIdProduct: 0x34C0&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-40" name="rest_code_a31d5f00c6764927965035755bdfd46b-40" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-40"&gt;&lt;/a&gt;&lt;span class="go"&gt;dwMaxAPDUDataSize: 0&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-41" name="rest_code_a31d5f00c6764927965035755bdfd46b-41" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-41"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-42" name="rest_code_a31d5f00c6764927965035755bdfd46b-42" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-42"&gt;&lt;/a&gt;&lt;span class="go"&gt;Find a specific property:&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-43" name="rest_code_a31d5f00c6764927965035755bdfd46b-43" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-43"&gt;&lt;/a&gt;&lt;span class="go"&gt;wIdVendor: 0x08E6&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-44" name="rest_code_a31d5f00c6764927965035755bdfd46b-44" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-44"&gt;&lt;/a&gt;&lt;span class="go"&gt;wIdProduct: 0x34C0&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-45" name="rest_code_a31d5f00c6764927965035755bdfd46b-45" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-45"&gt;&lt;/a&gt;&lt;span class="go"&gt;PIN min size defined: 4&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-46" name="rest_code_a31d5f00c6764927965035755bdfd46b-46" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-46"&gt;&lt;/a&gt;&lt;span class="go"&gt;PIN max size defined: 16&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-47" name="rest_code_a31d5f00c6764927965035755bdfd46b-47" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-47"&gt;&lt;/a&gt;&lt;span class="go"&gt;Entry Validation Condition defined: 2&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-48" name="rest_code_a31d5f00c6764927965035755bdfd46b-48" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-48"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-49" name="rest_code_a31d5f00c6764927965035755bdfd46b-49" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-49"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl(pin_properties_ioctl): OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-50" name="rest_code_a31d5f00c6764927965035755bdfd46b-50" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-50"&gt;&lt;/a&gt;&lt;span class="go"&gt;PIN PROPERTIES (4): 11 04 02 00&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-51" name="rest_code_a31d5f00c6764927965035755bdfd46b-51" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-51"&gt;&lt;/a&gt;&lt;span class="go"&gt;wLcdLayout: 0x0411&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-52" name="rest_code_a31d5f00c6764927965035755bdfd46b-52" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-52"&gt;&lt;/a&gt;&lt;span class="go"&gt;Display with 4 lines of 17 columns&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-53" name="rest_code_a31d5f00c6764927965035755bdfd46b-53" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-53"&gt;&lt;/a&gt;&lt;span class="go"&gt;bEntryValidationCondition: 2&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-54" name="rest_code_a31d5f00c6764927965035755bdfd46b-54" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-54"&gt;&lt;/a&gt;&lt;span class="go"&gt;Validation key pressed (2)&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-55" name="rest_code_a31d5f00c6764927965035755bdfd46b-55" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-55"&gt;&lt;/a&gt;&lt;span class="go"&gt;bTimeOut2: 0&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-56" name="rest_code_a31d5f00c6764927965035755bdfd46b-56" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-56"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-57" name="rest_code_a31d5f00c6764927965035755bdfd46b-57" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-57"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader: Gemalto Ezio Shield (length 20 bytes)&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-58" name="rest_code_a31d5f00c6764927965035755bdfd46b-58" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-58"&gt;&lt;/a&gt;&lt;span class="go"&gt;State: 0x0054&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-59" name="rest_code_a31d5f00c6764927965035755bdfd46b-59" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-59"&gt;&lt;/a&gt;&lt;span class="go"&gt;Prot: 1&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-60" name="rest_code_a31d5f00c6764927965035755bdfd46b-60" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-60"&gt;&lt;/a&gt;&lt;span class="go"&gt;ATR (length 18 bytes): 3B 6E 00 00 80 31 80 65 B0 03 02 01 5E 83 00 00 90 00&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-61" name="rest_code_a31d5f00c6764927965035755bdfd46b-61" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-61"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardStatus: OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-62" name="rest_code_a31d5f00c6764927965035755bdfd46b-62" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-62"&gt;&lt;/a&gt;&lt;span class="go"&gt;Protocol: 1&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-63" name="rest_code_a31d5f00c6764927965035755bdfd46b-63" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-63"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardReconnect: OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-64" name="rest_code_a31d5f00c6764927965035755bdfd46b-64" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-64"&gt;&lt;/a&gt;&lt;span class="go"&gt;Select applet: 00 A4 04 00 06 A0 00 00 00 18 FF&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-65" name="rest_code_a31d5f00c6764927965035755bdfd46b-65" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-65"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardTransmit: OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-66" name="rest_code_a31d5f00c6764927965035755bdfd46b-66" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-66"&gt;&lt;/a&gt;&lt;span class="go"&gt;card response: 90 00&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-67" name="rest_code_a31d5f00c6764927965035755bdfd46b-67" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-67"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-68" name="rest_code_a31d5f00c6764927965035755bdfd46b-68" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-68"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;Secure verify PIN&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-69" name="rest_code_a31d5f00c6764927965035755bdfd46b-69" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-69"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;command: 00 00 82 08 00 10 04 02 01 09 04 00 00 00 00 0D 00 00 00 00 20 00 00 08 30 30 30 30 00 00 00 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-70" name="rest_code_a31d5f00c6764927965035755bdfd46b-70" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-70"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;Enter your PIN:&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-71" name="rest_code_a31d5f00c6764927965035755bdfd46b-71" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-71"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;SCardControl: OK&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-72" name="rest_code_a31d5f00c6764927965035755bdfd46b-72" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-72"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;card response [2 bytes]: 90 00: Success&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-73" name="rest_code_a31d5f00c6764927965035755bdfd46b-73" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-73"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-74" name="rest_code_a31d5f00c6764927965035755bdfd46b-74" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-74"&gt;&lt;/a&gt;&lt;span class="go"&gt;verify PIN dump: 00 40 00 00 FF&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-75" name="rest_code_a31d5f00c6764927965035755bdfd46b-75" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-75"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardTransmit: OK&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-76" name="rest_code_a31d5f00c6764927965035755bdfd46b-76" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-76"&gt;&lt;/a&gt;&lt;span class="go"&gt;card response: 00 20 00 00 08 31 32 33 34 35 36 37 38 90 00&lt;/span&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-77" name="rest_code_a31d5f00c6764927965035755bdfd46b-77" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-77"&gt;&lt;/a&gt;
&lt;a id="rest_code_a31d5f00c6764927965035755bdfd46b-78" name="rest_code_a31d5f00c6764927965035755bdfd46b-78" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a31d5f00c6764927965035755bdfd46b-78"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardDisconnect: OK&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="apple-driver"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-4" role="doc-backlink"&gt;Apple driver&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-1" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-1" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;./scardcontrol
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-2" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-2" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl sample code&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-3" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-3" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.4 © 2004-2010, Ludovic Rousseau [ludovic.rousseau@free.fr](mailto:ludovic.rousseau@free.fr)&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-4" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-4" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-5" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-5" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;THIS PROGRAM IS NOT DESIGNED AS A TESTING TOOL!&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-6" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-6" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Do NOT use it unless you really know what you do.&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-7" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-7" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-8" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-8" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardListReaders: OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-9" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-9" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-9"&gt;&lt;/a&gt;&lt;span class="go"&gt;Available readers (use command line argument to select)&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-10" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-10" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;0: Gemalto Ezio Shield Pro SC&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-11" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-11" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-11"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-12" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-12" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;Using reader: Gemalto Ezio Shield Pro SC&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-13" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-13" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;Protocol: 1&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-14" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-14" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardConnect: OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-15" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-15" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl: OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-16" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-16" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;TLV (30): 12 04 42 33 00 12 06 04 42 33 00 06 07 04 42 33 00 07 0A 04 42 33 00 0A 13 04 42 00 00 01&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-17" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-17" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl(CM_IOCTL_GET_FEATURE_REQUEST): OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-18" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-18" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_GET_TLV_PROPERTIES&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-19" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-19" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_VERIFY_PIN_DIRECT&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-20" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-20" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-20"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_MODIFY_PIN_DIRECT&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-21" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-21" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_IFD_PIN_PROPERTIES&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-22" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-22" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-22"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader supports: FEATURE_CCID_ESC_COMMAND&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-23" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-23" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-23"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-24" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-24" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-24"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl(GET_TLV_PROPERTIES): OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-25" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-25" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-25"&gt;&lt;/a&gt;&lt;span class="go"&gt;GET_TLV_PROPERTIES (34): 01 02 11 04 03 01 00 09 01 01 0B 02 E6 08 0C 02 C0 34 0A 04 05 01 00 00 08 00 04 02 11 00 05 02 04 00&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-26" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-26" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-26"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-27" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-27" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-27"&gt;&lt;/a&gt;&lt;span class="go"&gt;Display all the properties:&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-28" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-28" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-28"&gt;&lt;/a&gt;&lt;span class="go"&gt;wLcdLayout: 0x0411&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-29" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-29" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-29"&gt;&lt;/a&gt;&lt;span class="go"&gt;Display with 4 lines of 17 columns&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-30" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-30" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-30"&gt;&lt;/a&gt;&lt;span class="go"&gt;bTimeOut2: 0x00&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-31" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-31" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-31"&gt;&lt;/a&gt;&lt;span class="go"&gt;bPPDUSupport: 0x01&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-32" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-32" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-32"&gt;&lt;/a&gt;&lt;span class="go"&gt;PPDU is supported over SCardControl using FEATURE_CCID_ESC_COMMAND&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-33" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-33" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-33"&gt;&lt;/a&gt;&lt;span class="go"&gt;wIdVendor: 0x8E6&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-34" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-34" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-34"&gt;&lt;/a&gt;&lt;span class="go"&gt;wIdProduct: 0x34C0&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-35" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-35" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-35"&gt;&lt;/a&gt;&lt;span class="go"&gt;dwMaxAPDUDataSize: 261&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-36" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-36" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-36"&gt;&lt;/a&gt;&lt;span class="go"&gt;sFirmwareID:&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-37" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-37" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-37"&gt;&lt;/a&gt;&lt;span class="go"&gt;wLcdMaxCharacters: 0x0011&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-38" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-38" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-38"&gt;&lt;/a&gt;&lt;span class="go"&gt;wLcdMaxLines: 0x0004&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-39" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-39" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-39"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-40" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-40" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-40"&gt;&lt;/a&gt;&lt;span class="go"&gt;Find a specific property:&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-41" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-41" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-41"&gt;&lt;/a&gt;&lt;span class="go"&gt;wIdVendor: 0x08E6&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-42" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-42" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-42"&gt;&lt;/a&gt;&lt;span class="go"&gt;wIdProduct: 0x34C0&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-43" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-43" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-43"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-44" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-44" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-44"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl(pin_properties_ioctl): OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-45" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-45" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-45"&gt;&lt;/a&gt;&lt;span class="go"&gt;PIN PROPERTIES (4): 11 04 07 00&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-46" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-46" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-46"&gt;&lt;/a&gt;&lt;span class="go"&gt;wLcdLayout: 0x0411&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-47" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-47" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-47"&gt;&lt;/a&gt;&lt;span class="go"&gt;Display with 4 lines of 17 columns&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-48" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-48" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-48"&gt;&lt;/a&gt;&lt;span class="go"&gt;bEntryValidationCondition: 7&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-49" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-49" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-49"&gt;&lt;/a&gt;&lt;span class="go"&gt;Max size reached (1)&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-50" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-50" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-50"&gt;&lt;/a&gt;&lt;span class="go"&gt;Validation key pressed (2)&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-51" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-51" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-51"&gt;&lt;/a&gt;&lt;span class="go"&gt;Timeout occurred (4)&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-52" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-52" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-52"&gt;&lt;/a&gt;&lt;span class="go"&gt;bTimeOut2: 0&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-53" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-53" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-53"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-54" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-54" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-54"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader: Gemalto Ezio Shield Pro SC (length 27 bytes)&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-55" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-55" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-55"&gt;&lt;/a&gt;&lt;span class="go"&gt;State: 0x0054&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-56" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-56" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-56"&gt;&lt;/a&gt;&lt;span class="go"&gt;Prot: 1&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-57" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-57" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-57"&gt;&lt;/a&gt;&lt;span class="go"&gt;ATR (length 18 bytes): 3B 6E 00 00 80 31 80 65 B0 03 02 01 5E 83 00 00 90 00&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-58" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-58" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-58"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardStatus: OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-59" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-59" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-59"&gt;&lt;/a&gt;&lt;span class="go"&gt;Protocol: 1&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-60" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-60" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-60"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardReconnect: OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-61" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-61" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-61"&gt;&lt;/a&gt;&lt;span class="go"&gt;Select applet: 00 A4 04 00 06 A0 00 00 00 18 FF&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-62" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-62" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-62"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardTransmit: OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-63" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-63" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-63"&gt;&lt;/a&gt;&lt;span class="go"&gt;card response: 90 00&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-64" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-64" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-64"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-65" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-65" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-65"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;Secure verify PIN&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-66" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-66" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-66"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;command: 00 00 82 08 00 08 04 07 01 09 04 00 00 00 00 0D 00 00 00 00 20 00 00 08 30 30 30 30 00 00 00 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-67" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-67" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-67"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;Enter your PIN:&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-68" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-68" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-68"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;SCardControl: OK&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-69" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-69" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-69"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;card response [0 bytes]::&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-70" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-70" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-70"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-71" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-71" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-71"&gt;&lt;/a&gt;&lt;span class="go"&gt;verify PIN dump: 00 40 00 00 FF&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-72" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-72" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-72"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardTransmit: OK&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-73" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-73" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-73"&gt;&lt;/a&gt;&lt;span class="go"&gt;card response: 00 20 00 00 08 31 32 33 34 35 36 37 38 90 00&lt;/span&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-74" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-74" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-74"&gt;&lt;/a&gt;
&lt;a id="rest_code_6fdd388113ef46008ba11a416bf3c01b-75" name="rest_code_6fdd388113ef46008ba11a416bf3c01b-75" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_6fdd388113ef46008ba11a416bf3c01b-75"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardDisconnect: OK&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="diff"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-5" role="doc-backlink"&gt;Diff&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Here is the diff between the two outputs above:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-1" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-1" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;--- libccid_pinpad      2024-02-04 15:02:41.673189176 +0100&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-2" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-2" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;+++ apple_pinpad        2024-02-04 15:02:18.149970763 +0100&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-3" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-3" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;@@ -7,54 +7,51 @@ Do NOT use it unless you really know wha&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-4" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-4" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-5" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-5" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-5"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardListReaders: OK&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-6" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-6" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-6"&gt;&lt;/a&gt;&lt;span class="go"&gt; Available readers (use command line argument to select)&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-7" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-7" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;-0: Gemalto Ezio Shield&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-8" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-8" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;+0: Gemalto Ezio Shield Pro SC&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-9" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-9" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-10" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-10" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;-Using reader: Gemalto Ezio Shield&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-11" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-11" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;+Using reader: Gemalto Ezio Shield Pro SC&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-12" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-12" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Protocol: 1&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-13" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-13" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-13"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardConnect: OK&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-14" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-14" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-14"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardControl: OK&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-15" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-15" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;- TLV (24): 06 04 42 33 00 06 07 04 42 33 00 07 0A 04 42 33 00 0A 12 04 42 33 00 12&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-16" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-16" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;+ TLV (30): 12 04 42 33 00 12 06 04 42 33 00 06 07 04 42 33 00 07 0A 04 42 33 00 0A 13 04 42 00 00 01&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-17" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-17" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-17"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardControl(CM_IOCTL_GET_FEATURE_REQUEST): OK&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-18" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-18" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;+Reader supports: FEATURE_GET_TLV_PROPERTIES&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-19" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-19" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-19"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader supports: FEATURE_VERIFY_PIN_DIRECT&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-20" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-20" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-20"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader supports: FEATURE_MODIFY_PIN_DIRECT&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-21" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-21" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-21"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader supports: FEATURE_IFD_PIN_PROPERTIES&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-22" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-22" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-22"&gt;&lt;/a&gt;&lt;span class="go"&gt;-Reader supports: FEATURE_GET_TLV_PROPERTIES&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-23" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-23" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-23"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+Reader supports: FEATURE_CCID_ESC_COMMAND&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-24" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-24" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-24"&gt;&lt;/a&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-25" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-25" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-25"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardControl(GET_TLV_PROPERTIES): OK&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-26" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-26" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-26"&gt;&lt;/a&gt;&lt;span class="go"&gt;-GET_TLV_PROPERTIES (59): 01 02 11 04 04 02 11 00 05 02 04 00 03 01 00 08 10 47 65 6D 43 78 30 30 2D 56 37 2E 30 34 2E 30 35 06 01 04 07 01 10 02 01 02 09 01 00 0B 02 E6 08 0C 02 C0 34 0A 04 00 00 00 00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-27" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-27" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-27"&gt;&lt;/a&gt;&lt;span class="go"&gt;+GET_TLV_PROPERTIES (34): 01 02 11 04 03 01 00 09 01 01 0B 02 E6 08 0C 02 C0 34 0A 04 05 01 00 00 08 00 04 02 11 00 05 02 04 00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-28" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-28" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-28"&gt;&lt;/a&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-29" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-29" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-29"&gt;&lt;/a&gt;&lt;span class="go"&gt; Display all the properties:&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-30" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-30" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-30"&gt;&lt;/a&gt;&lt;span class="go"&gt;  wLcdLayout: 0x0411&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-31" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-31" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-31"&gt;&lt;/a&gt;&lt;span class="go"&gt;   Display with 4 lines of 17 columns&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-32" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-32" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-32"&gt;&lt;/a&gt;&lt;span class="go"&gt;- wLcdMaxCharacters: 0x0011&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-33" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-33" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-33"&gt;&lt;/a&gt;&lt;span class="go"&gt;- wLcdMaxLines: 0x0004&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-34" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-34" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-34"&gt;&lt;/a&gt;&lt;span class="go"&gt;  bTimeOut2: 0x00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-35" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-35" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-35"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- sFirmwareID: GemCx00-V7.04.05&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-36" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-36" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-36"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- bMinPINSize: 0x04&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-37" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-37" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-37"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- bMaxPINSize: 0x10&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-38" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-38" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-38"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- bEntryValidationCondition: 0x02&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-39" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-39" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-39"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;-  Validation key pressed (2)&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-40" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-40" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-40"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- bPPDUSupport: 0x00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-41" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-41" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-41"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+ bPPDUSupport: 0x01&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-42" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-42" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-42"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+  PPDU is supported over SCardControl using FEATURE_CCID_ESC_COMMAND&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-43" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-43" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-43"&gt;&lt;/a&gt;&lt;span class="go"&gt;  wIdVendor: 0x8E6&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-44" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-44" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-44"&gt;&lt;/a&gt;&lt;span class="go"&gt;  wIdProduct: 0x34C0&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-45" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-45" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-45"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- dwMaxAPDUDataSize: 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-46" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-46" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-46"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+ dwMaxAPDUDataSize: 261&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-47" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-47" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-47"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+ sFirmwareID:&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-48" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-48" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-48"&gt;&lt;/a&gt;&lt;span class="go"&gt;+ wLcdMaxCharacters: 0x0011&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-49" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-49" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-49"&gt;&lt;/a&gt;&lt;span class="go"&gt;+ wLcdMaxLines: 0x0004&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-50" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-50" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-50"&gt;&lt;/a&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-51" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-51" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-51"&gt;&lt;/a&gt;&lt;span class="go"&gt; Find a specific property:&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-52" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-52" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-52"&gt;&lt;/a&gt;&lt;span class="go"&gt;  wIdVendor: 0x08E6&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-53" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-53" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-53"&gt;&lt;/a&gt;&lt;span class="go"&gt;  wIdProduct: 0x34C0&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-54" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-54" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-54"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- PIN min size defined: 4&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-55" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-55" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-55"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- PIN max size defined: 16&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-56" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-56" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-56"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- Entry Validation Condition defined: 2&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-57" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-57" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-57"&gt;&lt;/a&gt;&lt;span class="hll"&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-58" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-58" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-58"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardControl(pin_properties_ioctl): OK&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-59" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-59" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-59"&gt;&lt;/a&gt;&lt;span class="go"&gt;-PIN PROPERTIES (4): 11 04 02 00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-60" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-60" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-60"&gt;&lt;/a&gt;&lt;span class="go"&gt;+PIN PROPERTIES (4): 11 04 07 00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-61" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-61" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-61"&gt;&lt;/a&gt;&lt;span class="go"&gt;  wLcdLayout: 0x0411&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-62" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-62" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-62"&gt;&lt;/a&gt;&lt;span class="go"&gt;   Display with 4 lines of 17 columns&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-63" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-63" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-63"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- bEntryValidationCondition: 2&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-64" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-64" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-64"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+ bEntryValidationCondition: 7&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-65" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-65" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-65"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+  Max size reached (1)&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-66" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-66" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-66"&gt;&lt;/a&gt;&lt;span class="go"&gt;   Validation key pressed (2)&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-67" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-67" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-67"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+  Timeout occurred (4)&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-68" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-68" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-68"&gt;&lt;/a&gt;&lt;span class="go"&gt;  bTimeOut2: 0&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-69" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-69" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-69"&gt;&lt;/a&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-70" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-70" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-70"&gt;&lt;/a&gt;&lt;span class="go"&gt;- Reader: Gemalto Ezio Shield (length 20 bytes)&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-71" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-71" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-71"&gt;&lt;/a&gt;&lt;span class="go"&gt;+ Reader: Gemalto Ezio Shield Pro SC (length 27 bytes)&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-72" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-72" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-72"&gt;&lt;/a&gt;&lt;span class="go"&gt;  State: 0x0054&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-73" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-73" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-73"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Prot: 1&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-74" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-74" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-74"&gt;&lt;/a&gt;&lt;span class="go"&gt;  ATR (length 18 bytes): 3B 6E 00 00 80 31 80 65 B0 03 02 01 5E 83 00 00 90 00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-75" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-75" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-75"&gt;&lt;/a&gt;&lt;span class="go"&gt;@@ -66,10 +63,10 @@ SCardTransmit: OK&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-76" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-76" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-76"&gt;&lt;/a&gt;&lt;span class="go"&gt;  card response: 90 00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-77" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-77" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-77"&gt;&lt;/a&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-78" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-78" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-78"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Secure verify PIN&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-79" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-79" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-79"&gt;&lt;/a&gt;&lt;span class="go"&gt;- command: 00 00 82 08 00 10 04 02 01 09 04 00 00 00 00 0D 00 00 00 00 20 00 00 08 30 30 30 30 00 00 00 00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-80" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-80" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-80"&gt;&lt;/a&gt;&lt;span class="go"&gt;+ command: 00 00 82 08 00 08 04 07 01 09 04 00 00 00 00 0D 00 00 00 00 20 00 00 08 30 30 30 30 00 00 00 00&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-81" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-81" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-81"&gt;&lt;/a&gt;&lt;span class="go"&gt; Enter your PIN:&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-82" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-82" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-82"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardControl: OK&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-83" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-83" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-83"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;- card response [2 bytes]: 90 00: Success&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-84" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-84" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-84"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;+ card response [0 bytes]::&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-85" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-85" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-85"&gt;&lt;/a&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-86" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-86" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-86"&gt;&lt;/a&gt;&lt;span class="go"&gt; verify PIN dump: 00 40 00 00 FF&lt;/span&gt;
&lt;a id="rest_code_a298f7fb826b4b1396b4d08264f94a07-87" name="rest_code_a298f7fb826b4b1396b4d08264f94a07-87" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_a298f7fb826b4b1396b4d08264f94a07-87"&gt;&lt;/a&gt;&lt;span class="go"&gt;---&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Some differences to note:&lt;/p&gt;
&lt;section id="feature-ccid-esc-command"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-6" role="doc-backlink"&gt;FEATURE_CCID_ESC_COMMAND&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Apple driver reports it supports &lt;code class="docutils literal"&gt;FEATURE_CCID_ESC_COMMAND&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;According to &lt;a class="reference external" href="https://pcscworkgroup.com/Download/Specifications/pcsc10_v2.02.09.pdf"&gt;Interoperability Specification for ICCs and Personal
Computer Systems, Part 10 IFDs with Secure PIN Entry Capabilities&lt;/a&gt;
page 27:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2.6.15 FEATURE_CCID_ESC_COMMAND&lt;/p&gt;
&lt;p&gt;This feature can be used to retrieve the control code to send a CCID escape command (PC_to_RDR_Escape see [4]) to the reader.&lt;/p&gt;
&lt;p&gt;The input parameter for this feature is a pointer to the abData field (see [4]) containing the specific escape command.&lt;/p&gt;
&lt;p&gt;The output parameter is a pointer to a buffer that will contain the reader response.
Note that a CCID escape command is specific to a given reader, so before issuing this command, the application has to make sure it addresses the appropriate reader.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With my driver, for security reasons, this feature is active only if
enabled in the &lt;code class="docutils literal"&gt;Info.plist&lt;/code&gt; file for &lt;a class="reference external" href="https://github.com/LudovicRousseau/CCID/blob/master/src/Info.plist.src#L57-L59"&gt;ifdDriverOptions
option&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="bppdusupport"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-7" role="doc-backlink"&gt;bPPDUSupport&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Apple driver reports &lt;code class="docutils literal"&gt;bPPDUSupport: 0x01&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;According to &lt;a class="reference external" href="https://pcscworkgroup.com/Download/Specifications/pcsc10_v2.02.09.pdf"&gt;Interoperability Specification for ICCs and Personal
Computer Systems, Part 10 IFDs with Secure PIN Entry Capabilities&lt;/a&gt;
page 25:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;bPPDUSupport.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Bit0: If set to 1, PPDU is supported over SCardControl using FEATURE_CCID_ESC_COMMAND&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bit1: If set to 1, PPDU is supported over SCardTransmit&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;My driver does not support PPDU (Pseudo APDU) because &lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt;
works fine so not need of PPDUs.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="dwmaxapdudatasize"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-8" role="doc-backlink"&gt;dwMaxAPDUDataSize&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Apple driver reports: &lt;code class="docutils literal"&gt;dwMaxAPDUDataSize: 261&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;According to &lt;a class="reference external" href="https://pcscworkgroup.com/Download/Specifications/pcsc10_v2.02.09.pdf"&gt;Interoperability Specification for ICCs and Personal
Computer Systems, Part 10 IFDs with Secure PIN Entry Capabilities&lt;/a&gt;
page 26:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;dwMaxAPDUDataSize&lt;/p&gt;
&lt;p&gt;Maximal size of data the reader and its driver can support&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;0: short APDU only.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;0&amp;lt;X&amp;lt;=256: forbidden values (RFU)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;256 &amp;lt; X &amp;lt;= 0x10000: short and extended APDU of up to X bytes of data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;0x10000 &amp;lt; X: invalid values (RFU)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;261 is a very strange value. Even more strange if you know that this
reader supports short APDU only. The correct value (as correctly
reported by my driver) is 0 for this reader.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="sfirmwareid"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-9" role="doc-backlink"&gt;sFirmwareID&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Apple driver reports: &lt;code class="docutils literal"&gt;sFirmwareID:&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The firmware string is empty. This is not suprising since a proprietary
command is used to get the firmware release string from a Gemalto reader.&lt;/p&gt;
&lt;p&gt;My driver reports: &lt;code class="docutils literal"&gt;sFirmwareID: &lt;span class="pre"&gt;GemCx00-V7.04.05&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Maybe the Apple driver should not report any sFirmwareID if no data is
provided.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="bentryvalidationcondition"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-10" role="doc-backlink"&gt;bEntryValidationCondition&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Apple driver reports: &lt;code class="docutils literal"&gt;bEntryValidationCondition: 7&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;7 (00000111b in binary) should be the default value. But this specific
reader does only supports "Validation key pressed" but not "Max size
reached" or "Timeout occurred" as wrongly indicated by the Apple driver.&lt;/p&gt;
&lt;p&gt;My driver reports the correct value &lt;code class="docutils literal"&gt;bEntryValidationCondition: 2&lt;/code&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="pin-min-max-size-defined"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-11" role="doc-backlink"&gt;PIN min/max size defined&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Apple driver does NOT report PIN min and max sizes.&lt;/p&gt;
&lt;p&gt;This can be problematic if the application does not know what values to
use with a specific reader. Not all readers support the same min and max
values.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="secure-verify-pin-comand"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-12" role="doc-backlink"&gt;Secure Verify PIN comand&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The most problematic issue is that the Secure Verify PIN command
(FEATURE_VERIFY_PIN_DIRECT) using the Apple driver returns:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_bac7f604c01a4d95b04389a7b414d624-1" name="rest_code_bac7f604c01a4d95b04389a7b414d624-1" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_bac7f604c01a4d95b04389a7b414d624-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;Secure verify PIN&lt;/span&gt;
&lt;a id="rest_code_bac7f604c01a4d95b04389a7b414d624-2" name="rest_code_bac7f604c01a4d95b04389a7b414d624-2" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_bac7f604c01a4d95b04389a7b414d624-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;command: 00 00 82 08 00 08 04 07 01 09 04 00 00 00 00 0D 00 00 00 00 20 00 00 08 30 30 30 30 00 00 00 00&lt;/span&gt;
&lt;a id="rest_code_bac7f604c01a4d95b04389a7b414d624-3" name="rest_code_bac7f604c01a4d95b04389a7b414d624-3" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_bac7f604c01a4d95b04389a7b414d624-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;Enter your PIN:&lt;/span&gt;
&lt;a id="rest_code_bac7f604c01a4d95b04389a7b414d624-4" name="rest_code_bac7f604c01a4d95b04389a7b414d624-4" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_bac7f604c01a4d95b04389a7b414d624-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl: OK&lt;/span&gt;
&lt;a id="rest_code_bac7f604c01a4d95b04389a7b414d624-5" name="rest_code_bac7f604c01a4d95b04389a7b414d624-5" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#rest_code_bac7f604c01a4d95b04389a7b414d624-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;card response [0 bytes]::&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt; returns &lt;code class="docutils literal"&gt;SCARD_S_SUCCESS&lt;/code&gt; (i.e. no error) but
the PIN is not asked by the pinpad reader, and of course not submitted
and verified by the card.&lt;/p&gt;
&lt;p&gt;This command just silently fails. A pinpad reader can't be used with the
Apple CCID driver.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#toc-entry-13" role="doc-backlink"&gt;Conclusion&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You may have problems if you use the Apple driver with the
&lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;My advice is to enable my CCID driver and &lt;strong&gt;not&lt;/strong&gt; use the Apple driver.
It is very easy to do since both drivers are provided with macOS Sonoma
(see &lt;a class="reference external" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/#switch-ccid-driver"&gt;Switch CCID driver&lt;/a&gt; from above).&lt;/p&gt;
&lt;/section&gt;</description><category>Mac OS X</category><category>macOS bug</category><guid>https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/</guid><pubDate>Sun, 04 Feb 2024 20:58:16 GMT</pubDate></item><item><title>Apple's own CCID driver in Sonoma</title><link>https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/</link><dc:creator>Ludovic Rousseau</dc:creator><description>&lt;nav class="contents" id="contents" role="doc-toc"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#top"&gt;Contents&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#os-x-has-built-in-support-for-usb-ccid-class-compliant-smartcard-readers" id="toc-entry-1"&gt;OS X has built-in support for USB CCID class-compliant SmartCard readers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#check-status" id="toc-entry-2"&gt;Check status&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#built-in-apple-driver-enabled" id="toc-entry-3"&gt;Built-in (Apple) driver enabled&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#ifd-ccid-my-driver-enabled" id="toc-entry-4"&gt;IFD CCID (my driver) enabled&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#logs" id="toc-entry-5"&gt;Logs&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#enable-my-ccid-driver" id="toc-entry-6"&gt;Enable my CCID driver&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#apple-driver" id="toc-entry-7"&gt;Apple driver&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#source-code" id="toc-entry-8"&gt;Source code?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#history" id="toc-entry-9"&gt;History&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#my-comments" id="toc-entry-10"&gt;My comments&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#class-driver" id="toc-entry-11"&gt;Class driver&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#tweaks" id="toc-entry-12"&gt;Tweaks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#can-apple-reuse-my-tweaks-to-improve-their-driver" id="toc-entry-13"&gt;Can Apple reuse my tweaks to improve their driver?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#bugs-reported-in-sonoma" id="toc-entry-14"&gt;Bugs reported in Sonoma&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#what-happened-in-sonoma-14-1" id="toc-entry-15"&gt;What happened in Sonoma 14.1?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#conclusion" id="toc-entry-16"&gt;Conclusion&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;section id="os-x-has-built-in-support-for-usb-ccid-class-compliant-smartcard-readers"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-1" role="doc-backlink"&gt;OS X has built-in support for USB CCID class-compliant SmartCard readers&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;From SmartCardServices(7) manpage in macOS Sonoma:&lt;/p&gt;
&lt;blockquote&gt;
&lt;dl&gt;
&lt;dt&gt;USB SMART CARD READER DRIVERS&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;OS X has built-in support for USB CCID class-compliant
SmartCard readers. For other readers, install the reader driver
in &lt;code class="docutils literal"&gt;/usr/local/libexec/SmartCardServices/drivers&lt;/code&gt;.  Each driver
is a bundle. The bundle contains an XML file &lt;code class="docutils literal"&gt;Info.plist&lt;/code&gt;
which contains the device's USB vendor ID and product ID. For
detailed description of the plist format and how to write a
reader driver, see
&lt;a class="reference external" href="http://pcsclite.alioth.debian.org/api/group__IFDHandler.html"&gt;http://pcsclite.alioth.debian.org/api/group__IFDHandler.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The built-in SmarCard reader driver is prefered by the System
and it is possible to change the preference to the IFD CCID by
setting the global preference:&lt;/p&gt;
&lt;pre class="literal-block"&gt;sudo defaults write /Library/Preferences/com.apple.security.smartcard useIFDCCID -bool yes&lt;/pre&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/blockquote&gt;
&lt;/section&gt;
&lt;section id="check-status"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-2" role="doc-backlink"&gt;Check status&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;it is easy to check which CCID driver is enabled on macOS Sonoma.&lt;/p&gt;
&lt;section id="built-in-apple-driver-enabled"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-3" role="doc-backlink"&gt;Built-in (Apple) driver enabled&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_872da898aa5f4b15a744c2560fa7c2d0-1" name="rest_code_872da898aa5f4b15a744c2560fa7c2d0-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_872da898aa5f4b15a744c2560fa7c2d0-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;defaults&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;read&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/Library/Preferences/com.apple.security.smartcard.plist&lt;span class="w"&gt; &lt;/span&gt;useIFDCCID
&lt;a id="rest_code_872da898aa5f4b15a744c2560fa7c2d0-2" name="rest_code_872da898aa5f4b15a744c2560fa7c2d0-2" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_872da898aa5f4b15a744c2560fa7c2d0-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;2023-09-29 13:38:28.133 defaults[1145:25704]&lt;/span&gt;
&lt;a id="rest_code_872da898aa5f4b15a744c2560fa7c2d0-3" name="rest_code_872da898aa5f4b15a744c2560fa7c2d0-3" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_872da898aa5f4b15a744c2560fa7c2d0-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;The domain/default pair of (/Library/Preferences/com.apple.security.smartcard.plist, useIFDCCID) does not exist&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="ifd-ccid-my-driver-enabled"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-4" role="doc-backlink"&gt;IFD CCID (my driver) enabled&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_292480ba32c64c50b303d084f612637e-1" name="rest_code_292480ba32c64c50b303d084f612637e-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_292480ba32c64c50b303d084f612637e-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;defaults&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;read&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/Library/Preferences/com.apple.security.smartcard.plist&lt;span class="w"&gt; &lt;/span&gt;useIFDCCID
&lt;a id="rest_code_292480ba32c64c50b303d084f612637e-2" name="rest_code_292480ba32c64c50b303d084f612637e-2" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_292480ba32c64c50b303d084f612637e-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;1&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The result is 1 so the "external" (non-Apple) CCID driver is enabled.&lt;/p&gt;
&lt;p&gt;To dump the complete configuration of &lt;code class="docutils literal"&gt;com.apple.security.smartcard&lt;/code&gt;
do:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-1" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;defaults&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;read&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/Library/Preferences/com.apple.security.smartcard.plist
&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-2" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-2" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;{&lt;/span&gt;
&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-3" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-3" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;    CardsNeedsBaseFiDi =     (&lt;/span&gt;
&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-4" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-4" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;        3B6E000080318065B00302015E8300009000,&lt;/span&gt;
&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-5" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-5" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;        3BD518008131FE7D8073C82110F4&lt;/span&gt;
&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-6" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-6" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;    );&lt;/span&gt;
&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-7" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-7" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;    Logging = 0;&lt;/span&gt;
&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-8" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-8" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-8"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;    useIFDCCID = 1;&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_404d58743a974d4b8d0bb8ad7e886635-9" name="rest_code_404d58743a974d4b8d0bb8ad7e886635-9" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_404d58743a974d4b8d0bb8ad7e886635-9"&gt;&lt;/a&gt;&lt;span class="go"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="logs"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-5" role="doc-backlink"&gt;Logs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You can use my script &lt;a class="reference external" href="https://github.com/LudovicRousseau/PCSC-contrib/blob/master/log_macOS_ifdbundle.sh"&gt;log_macOS_ifdbundle.sh&lt;/a&gt;
to have some logs when you connect a reader:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_05019bb6a87540bbb2abc11458918943-1" name="rest_code_05019bb6a87540bbb2abc11458918943-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_05019bb6a87540bbb2abc11458918943-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;./log_macOS_ifdbundle.sh&lt;span class="w"&gt; &lt;/span&gt;-d
&lt;a id="rest_code_05019bb6a87540bbb2abc11458918943-2" name="rest_code_05019bb6a87540bbb2abc11458918943-2" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_05019bb6a87540bbb2abc11458918943-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;2023-09-28 14:49:11.678646+0200 0x22aa     Debug       0x0                  858    0    com.apple.ifdreader: [com.apple.CryptoTokenKit:smartcard] deviceRemovalHandler invoked (entryId=4294970735)&lt;/span&gt;
&lt;a id="rest_code_05019bb6a87540bbb2abc11458918943-3" name="rest_code_05019bb6a87540bbb2abc11458918943-3" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_05019bb6a87540bbb2abc11458918943-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;2023-09-28 14:49:11.678780+0200 0x22aa     Debug       0x0                  858    0    com.apple.ifdreader: [com.apple.CryptoTokenKit:smartcard] installed device removal notification&lt;/span&gt;
&lt;a id="rest_code_05019bb6a87540bbb2abc11458918943-4" name="rest_code_05019bb6a87540bbb2abc11458918943-4" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_05019bb6a87540bbb2abc11458918943-4"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;2023-09-28 14:49:11.680320+0200 0x22aa     Debug       0x0                  858    0    com.apple.ifdreader: (CoreFoundation) [com.apple.defaults:User Defaults] found no value for key useIFDCCID in CFPrefsPlistSource&amp;lt;0x14a906640&amp;gt; (Domain: com.apple.security.smartcard, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: No)&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_05019bb6a87540bbb2abc11458918943-5" name="rest_code_05019bb6a87540bbb2abc11458918943-5" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_05019bb6a87540bbb2abc11458918943-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;2023-09-28 14:49:11.681744+0200 0x22aa     Info        0x0                  858    0    com.apple.ifdreader: [com.apple.CryptoTokenKit:smartcard] new device skipped: 0x0529/0x0620 100000 (entryId=4294970735)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;code class="docutils literal"&gt;com.apple.ifdreader&lt;/code&gt; component is looking for the &lt;code class="docutils literal"&gt;useIFDCCID&lt;/code&gt;
key. Here the key is not found so the Apple driver will be used.&lt;/p&gt;
&lt;section id="enable-my-ccid-driver"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-6" role="doc-backlink"&gt;Enable my CCID driver&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;So it is possible to switch from the Apple driver to my CCID driver
(also included in macOS Sonoma) using the command:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_169ec76a037141adaf3716b1b2bbcfdd-1" name="rest_code_169ec76a037141adaf3716b1b2bbcfdd-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_169ec76a037141adaf3716b1b2bbcfdd-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;sudo defaults write /Library/Preferences/com.apple.security.smartcard useIFDCCID -bool yes&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="apple-driver"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-7" role="doc-backlink"&gt;Apple driver&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Apple own CCID driver is
&lt;code class="docutils literal"&gt;/System/Library/CryptoTokenKit/usbsmartcardreaderd.slotd&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It contains typical CCID names:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-1" name="rest_code_445d04166e414a77a642db8f56b5ab5a-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;strings&lt;span class="w"&gt; &lt;/span&gt;/System/Library/CryptoTokenKit/usbsmartcardreaderd.slotd/Contents/MacOS/usbsmartcardreaderd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;PC_
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-2" name="rest_code_445d04166e414a77a642db8f56b5ab5a-2" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_IccPowerOn&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-3" name="rest_code_445d04166e414a77a642db8f56b5ab5a-3" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_IccPowerOff&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-4" name="rest_code_445d04166e414a77a642db8f56b5ab5a-4" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_GetSlotStatus&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-5" name="rest_code_445d04166e414a77a642db8f56b5ab5a-5" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_XfrBlock&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-6" name="rest_code_445d04166e414a77a642db8f56b5ab5a-6" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_GetParameters&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-7" name="rest_code_445d04166e414a77a642db8f56b5ab5a-7" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_ResetParameters&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-8" name="rest_code_445d04166e414a77a642db8f56b5ab5a-8" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_SetParameters&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-9" name="rest_code_445d04166e414a77a642db8f56b5ab5a-9" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-9"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_Escape&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-10" name="rest_code_445d04166e414a77a642db8f56b5ab5a-10" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_IccClock&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-11" name="rest_code_445d04166e414a77a642db8f56b5ab5a-11" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_T0APDU&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-12" name="rest_code_445d04166e414a77a642db8f56b5ab5a-12" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_Secure&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-13" name="rest_code_445d04166e414a77a642db8f56b5ab5a-13" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_Mechanical&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-14" name="rest_code_445d04166e414a77a642db8f56b5ab5a-14" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_Abort&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-15" name="rest_code_445d04166e414a77a642db8f56b5ab5a-15" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC_to_RDR_SetDataRateAndClockFrequency&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-16" name="rest_code_445d04166e414a77a642db8f56b5ab5a-16" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;RDR_to_PC_DataBlock&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-17" name="rest_code_445d04166e414a77a642db8f56b5ab5a-17" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;RDR_to_PC_SlotStatus&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-18" name="rest_code_445d04166e414a77a642db8f56b5ab5a-18" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;RDR_to_PC_Parameters&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-19" name="rest_code_445d04166e414a77a642db8f56b5ab5a-19" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;RDR_to_PC_Escape&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-20" name="rest_code_445d04166e414a77a642db8f56b5ab5a-20" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-20"&gt;&lt;/a&gt;&lt;span class="go"&gt;RDR_to_PC_DataRateAndClockFrequency&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-21" name="rest_code_445d04166e414a77a642db8f56b5ab5a-21" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;RDR_to_PC_NotifySlotChange&lt;/span&gt;
&lt;a id="rest_code_445d04166e414a77a642db8f56b5ab5a-22" name="rest_code_445d04166e414a77a642db8f56b5ab5a-22" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_445d04166e414a77a642db8f56b5ab5a-22"&gt;&lt;/a&gt;&lt;span class="go"&gt;RDR_to_PC_HardwareError&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;These names are the command names used in the &lt;a class="reference external" href="https://www.usb.org/document-library/smart-card-ccid-version-11"&gt;USB CCID specification&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I note that this file was already present in the previous macOS version:
Ventura. But this driver was not enabled by default.&lt;/p&gt;
&lt;p&gt;I guess Apple now decided its own CCID driver was mature enough to
enable it by default.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="source-code"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-8" role="doc-backlink"&gt;Source code?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I don't think Apple will publish the source code of its CCID driver. At
least I was not able to find it at &lt;a class="reference external" href="https://opensource.apple.com/releases/"&gt;Open Source at Apple&lt;/a&gt; for the version of macOS
Sonoma 14.0 or 14.1.&lt;/p&gt;
&lt;p&gt;Apple already replaced pcsc-lite by their own version of the resource
manager in macOS Yosemite in 2014 (&lt;a class="reference external" href="https://blog.apdu.fr/posts/2014/11/os-x-yosemite-and-smart-cards-status/"&gt;OS X Yosemite and smart cards status&lt;/a&gt;).
They now replace the Free Software CCID driver by their own version.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="history"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-9" role="doc-backlink"&gt;History&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Since the source code is not public it will be difficult to know what
are the changes in the Apple CCID driver.&lt;/p&gt;
&lt;p&gt;In Sonoma 14.0 we had:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-1" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;codesign&lt;span class="w"&gt; &lt;/span&gt;--verbose&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--verify&lt;span class="w"&gt; &lt;/span&gt;--display&lt;span class="w"&gt; &lt;/span&gt;/System/Library/CryptoTokenKit/usbsmartcardreaderd.slotd
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-2" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-2" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;Executable=/System/Library/CryptoTokenKit/usbsmartcardreaderd.slotd/Contents/MacOS/usbsmartcardreaderd&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-3" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-3" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;Identifier=com.apple.usbsmartcardreaderd&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-4" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-4" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Format=bundle with Mach-O universal (x86_64 arm64e)&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-5" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-5" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;CodeDirectory v=20400 size=2102 flags=0x0(none) hashes=55+7 location=embedded&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-6" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-6" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Platform identifier=15&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-7" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-7" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Hash type=sha256 size=32&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-8" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-8" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-8"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;CandidateCDHash sha256=555a981af8457fcb972e0301c087361e410a52ef&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-9" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-9" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-9"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;CandidateCDHashFull sha256=555a981af8457fcb972e0301c087361e410a52ef76c7cea851f838ecb7393f62&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-10" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-10" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;Hash choices=sha256&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-11" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-11" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;CMSDigest=555a981af8457fcb972e0301c087361e410a52ef76c7cea851f838ecb7393f62&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-12" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-12" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;CMSDigestType=2&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-13" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-13" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;CDHash=555a981af8457fcb972e0301c087361e410a52ef&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-14" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-14" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;Signature size=4442&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-15" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-15" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;Authority=Software Signing&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-16" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-16" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;Authority=Apple Code Signing Certification Authority&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-17" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-17" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;Authority=Apple Root CA&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-18" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-18" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-18"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;Signed Time=15 Sep 2023 at 23:49:40&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-19" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-19" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;Info.plist entries=20&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-20" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-20" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-20"&gt;&lt;/a&gt;&lt;span class="go"&gt;TeamIdentifier=not set&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-21" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-21" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;Sealed Resources version=2 rules=2 files=0&lt;/span&gt;
&lt;a id="rest_code_6f7e2270757d4d42bad5528cdbea0b87-22" name="rest_code_6f7e2270757d4d42bad5528cdbea0b87-22" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_6f7e2270757d4d42bad5528cdbea0b87-22"&gt;&lt;/a&gt;&lt;span class="go"&gt;Internal requirements count=1 size=80&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In Sonoma 14.1 we now have:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-1" name="rest_code_f8713ee36d48413d87c85eeb98817041-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;codesign&lt;span class="w"&gt; &lt;/span&gt;--verbose&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--verify&lt;span class="w"&gt; &lt;/span&gt;--display&lt;span class="w"&gt; &lt;/span&gt;/System/Library/CryptoTokenKit/usbsmartcardreaderd.slotd
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-2" name="rest_code_f8713ee36d48413d87c85eeb98817041-2" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;Executable=/System/Library/CryptoTokenKit/usbsmartcardreaderd.slotd/Contents/MacOS/usbsmartcardreaderd&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-3" name="rest_code_f8713ee36d48413d87c85eeb98817041-3" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;Identifier=com.apple.usbsmartcardreaderd&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-4" name="rest_code_f8713ee36d48413d87c85eeb98817041-4" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Format=bundle with Mach-O universal (x86_64 arm64e)&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-5" name="rest_code_f8713ee36d48413d87c85eeb98817041-5" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;CodeDirectory v=20400 size=2102 flags=0x0(none) hashes=55+7 location=embedded&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-6" name="rest_code_f8713ee36d48413d87c85eeb98817041-6" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Platform identifier=15&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-7" name="rest_code_f8713ee36d48413d87c85eeb98817041-7" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Hash type=sha256 size=32&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-8" name="rest_code_f8713ee36d48413d87c85eeb98817041-8" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-8"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;CandidateCDHash sha256=b1723b968b6f316aca6172bea0ee75cc4c9de56a&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-9" name="rest_code_f8713ee36d48413d87c85eeb98817041-9" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-9"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;CandidateCDHashFull sha256=b1723b968b6f316aca6172bea0ee75cc4c9de56a962ab2d8bc00659d000f860d&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-10" name="rest_code_f8713ee36d48413d87c85eeb98817041-10" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;Hash choices=sha256&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-11" name="rest_code_f8713ee36d48413d87c85eeb98817041-11" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;CMSDigest=b1723b968b6f316aca6172bea0ee75cc4c9de56a962ab2d8bc00659d000f860d&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-12" name="rest_code_f8713ee36d48413d87c85eeb98817041-12" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;CMSDigestType=2&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-13" name="rest_code_f8713ee36d48413d87c85eeb98817041-13" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;CDHash=b1723b968b6f316aca6172bea0ee75cc4c9de56a&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-14" name="rest_code_f8713ee36d48413d87c85eeb98817041-14" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;Signature size=4442&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-15" name="rest_code_f8713ee36d48413d87c85eeb98817041-15" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;Authority=Software Signing&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-16" name="rest_code_f8713ee36d48413d87c85eeb98817041-16" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;Authority=Apple Code Signing Certification Authority&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-17" name="rest_code_f8713ee36d48413d87c85eeb98817041-17" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;Authority=Apple Root CA&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-18" name="rest_code_f8713ee36d48413d87c85eeb98817041-18" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-18"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;Signed Time=6 Oct 2023 at 05:45:18&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-19" name="rest_code_f8713ee36d48413d87c85eeb98817041-19" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;Info.plist entries=20&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-20" name="rest_code_f8713ee36d48413d87c85eeb98817041-20" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-20"&gt;&lt;/a&gt;&lt;span class="go"&gt;TeamIdentifier=not set&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-21" name="rest_code_f8713ee36d48413d87c85eeb98817041-21" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;Sealed Resources version=2 rules=2 files=0&lt;/span&gt;
&lt;a id="rest_code_f8713ee36d48413d87c85eeb98817041-22" name="rest_code_f8713ee36d48413d87c85eeb98817041-22" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_f8713ee36d48413d87c85eeb98817041-22"&gt;&lt;/a&gt;&lt;span class="go"&gt;Internal requirements count=1 size=80&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The signature date changed from "15 Sep 2023" to "6 Oct 2023" and the
SHA256 hash also changed.&lt;/p&gt;
&lt;p&gt;I do not plan to reverse engineer the Apple driver.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="my-comments"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-10" role="doc-backlink"&gt;My comments&lt;/a&gt;&lt;/h2&gt;
&lt;section id="class-driver"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-11" role="doc-backlink"&gt;Class driver&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The Apple driver is a class driver. Any USB device declared with
&lt;code class="docutils literal"&gt;bInterfaceClass&lt;/code&gt; set to 0x0b (&lt;a class="reference external" href="https://www.usb.org/defined-class-codes#anchor_BaseClass0Bh"&gt;Smart Card&lt;/a&gt;) &lt;em&gt;should&lt;/em&gt; work.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="tweaks"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-12" role="doc-backlink"&gt;Tweaks&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;My CCID driver is now old (The first commit was in August 2003.
&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/10/my-ccid-driver-20-years-anniversary/"&gt;My CCID driver: 20 years anniversary&lt;/a&gt;). And I added a lot of
special patches to support specific readers.&lt;/p&gt;
&lt;p&gt;If you have such a reader the Apple driver may not work for you. In that
case you can install a custom driver, or enable my CCID driver 1.5.1
included in macOS Sonoma as seen above in &lt;a class="reference internal" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#enable-my-ccid-driver"&gt;Enable my CCID driver&lt;/a&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="can-apple-reuse-my-tweaks-to-improve-their-driver"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-13" role="doc-backlink"&gt;Can Apple reuse my tweaks to improve their driver?&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The source code of my driver is available so Apple developers can read it.&lt;/p&gt;
&lt;p&gt;My driver is protected by the &lt;a class="reference external" href="https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"&gt;GNU Lesser General Public License&lt;/a&gt; version 2.1+
(LGPL). So if Apple wants to reuse some of my code it has to use the
same LGPL license for its code. My guess is that Apple worked on its own
CCID driver &lt;cite&gt;in particular to avoid&lt;/cite&gt; any use of a GPL or LGPL protected
code in macOS.&lt;/p&gt;
&lt;p&gt;So Apple will have to design its own tweaks, or do not support some readers.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="bugs-reported-in-sonoma"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-14" role="doc-backlink"&gt;Bugs reported in Sonoma&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The bug &lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/"&gt;macOS Sonoma bug: SCardControl() returns SCARD_E_NOT_TRANSACTED&lt;/a&gt; is now easy to understand.&lt;/p&gt;
&lt;p&gt;The Apple driver does NOT support &lt;a class="reference external" href="https://pcsclite.apdu.fr/api/group__API.html#gac3454d4657110fd7f753b2d3d8f4e32f"&gt;SCardControl()&lt;/a&gt;.
And since it was enabled by default in Sonoma 14.0 all the applications that
use &lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt; failed to work.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="what-happened-in-sonoma-14-1"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-15" role="doc-backlink"&gt;What happened in Sonoma 14.1?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I started this article using Sonoma 14.0, the initial release of Sonoma.
Apple now provides a first update of Sonoma with a version 14.1.&lt;/p&gt;
&lt;p&gt;In this version the Apple CCID driver is no more enabled by default and
my CCID driver is enabled instead.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_e635b1cb6d214faa8caac7f13976b225-1" name="rest_code_e635b1cb6d214faa8caac7f13976b225-1" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_e635b1cb6d214faa8caac7f13976b225-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;defaults&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;read&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/Library/Preferences/com.apple.security.smartcard.plist
&lt;a id="rest_code_e635b1cb6d214faa8caac7f13976b225-2" name="rest_code_e635b1cb6d214faa8caac7f13976b225-2" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_e635b1cb6d214faa8caac7f13976b225-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;{&lt;/span&gt;
&lt;a id="rest_code_e635b1cb6d214faa8caac7f13976b225-3" name="rest_code_e635b1cb6d214faa8caac7f13976b225-3" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_e635b1cb6d214faa8caac7f13976b225-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;    Logging = 0;&lt;/span&gt;
&lt;a id="rest_code_e635b1cb6d214faa8caac7f13976b225-4" name="rest_code_e635b1cb6d214faa8caac7f13976b225-4" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_e635b1cb6d214faa8caac7f13976b225-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;    useIFDCCID = 1;&lt;/span&gt;
&lt;a id="rest_code_e635b1cb6d214faa8caac7f13976b225-5" name="rest_code_e635b1cb6d214faa8caac7f13976b225-5" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#rest_code_e635b1cb6d214faa8caac7f13976b225-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I guess Apple received (too) many bug reports and decided to revert the
change and keep using my CCID driver for now.&lt;/p&gt;
&lt;p&gt;If your smart card application fails to work with Sonoma 14.0 the best
thing to do is to upgrade to Sonoma 14.1.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/#toc-entry-16" role="doc-backlink"&gt;Conclusion&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Writing a CCID driver is not an easy task. It is even more complex if
you want to support a many different models.&lt;/p&gt;
&lt;p&gt;Apple tries to do that but is not ready yet.&lt;/p&gt;
&lt;/section&gt;</description><category>ccid</category><category>Mac OS X</category><category>macOS bug</category><guid>https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/</guid><pubDate>Mon, 13 Nov 2023 09:37:17 GMT</pubDate></item><item><title>macOS Sonoma: The reader name should include the USB serial number</title><link>https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/</link><dc:creator>Ludovic Rousseau</dc:creator><description>&lt;p&gt;This is part of the series: &lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-known-bugs/"&gt;macOS Sonoma and smart cards: known bugs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have two identical smart card readers connected then it is hard to
differentiate the readers.&lt;/p&gt;
&lt;section id="see-also"&gt;
&lt;h2&gt;See also&lt;/h2&gt;
&lt;p&gt;I reported this idea of improvement to Apple as FB13274416 "The reader
name should include the USB serial number".&lt;/p&gt;
&lt;/section&gt;
&lt;section id="example"&gt;
&lt;h2&gt;Example&lt;/h2&gt;
&lt;p&gt;For example I have 2 &lt;a class="reference external" href="https://ccid.apdu.fr/ccid/shouldwork.html#0x08E60x3437"&gt;Gemalto ID Bridge CT 30&lt;/a&gt; readers.&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://blog.apdu.fr/images/2023/10/readersHigh.png"&gt;
&lt;img alt="/images/2023/10/readersLow.png" src="https://blog.apdu.fr/images/2023/10/readersLow.png"&gt;
&lt;/a&gt;
&lt;p&gt;I will use the tool &lt;code class="docutils literal"&gt;pcsc_scan&lt;/code&gt; from &lt;a class="reference external" href="https://pcsc-tools.apdu.fr/"&gt;pcsc-tools&lt;/a&gt; as this application works
fine and is available for the 3 major plateforms.&lt;/p&gt;
&lt;p&gt;On macOS Sonoma, I connect one reader and the PC/SC name is
&lt;code class="docutils literal"&gt;Gemalto USB SmartCard Reader&lt;/code&gt;.  I connect the second reader and the PC/SC name
is &lt;code class="docutils literal"&gt;Gemalto USB SmartCard Reader 01&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The only difference is the &lt;code class="docutils literal"&gt;01&lt;/code&gt; appended to the second reader name.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-1" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;rousseau@MacBook-Pro-de-Ludovic pcsc-tools-1.7.0 % &lt;/span&gt;./pcsc_scan
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-2" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC/SC device scanner&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-3" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.7.0 (c) 2001-2022, Ludovic Rousseau &amp;lt;ludovic.rousseau@free.fr&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-4" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Plug'n play reader name not supported. Using polling every 3600000 ms.&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-5" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-6" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Waiting for the first reader... found one&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-7" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-8" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-8"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto USB SmartCard Reader&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-9" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-10" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;Fri Oct 13 15:55:38 2023&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-11" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-11"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto USB SmartCard Reader&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-12" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-13" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-14" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-14"&gt;&lt;/a&gt;&lt;span class="go"&gt; Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-15" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-15"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto USB SmartCard Reader 01&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-16" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-16" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-16"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;1: Gemalto USB SmartCard Reader&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-17" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-17" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-17"&gt;&lt;/a&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-18" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-18" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;Fri Oct 13 15:55:44 2023&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-19" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-19" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-19"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto USB SmartCard Reader 01&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-20" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-20" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-20"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-21" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-21" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-22" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-22" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-22"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 1: Gemalto USB SmartCard Reader&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-23" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-23" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-23"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-24" name="rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-24" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_7ae617503c5f4abe80cc7f9b34f9eb5c-24"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;aside class="admonition note"&gt;
&lt;p class="admonition-title"&gt;Note&lt;/p&gt;
&lt;p&gt;The second connected reader is then listed first in the list.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Screenshot (with nice colors):&lt;/p&gt;
&lt;img alt="screenshot of the pcsc_scan command on Sonoma" src="https://blog.apdu.fr/images/2023/10/pcsc_scan_Sonoma.png"&gt;
&lt;p&gt;The reader (re)ordering is also visible if you insert a smart card in the
first reader. You have:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-1" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;rousseau@MacBook-Pro-de-Ludovic pcsc-tools-1.7.0 % &lt;/span&gt;./pcsc_scan
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-2" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC/SC device scanner&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-3" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.7.0 (c) 2001-2022, Ludovic Rousseau &amp;lt;ludovic.rousseau@free.fr&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-4" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Plug'n play reader name not supported. Using polling every 3600000 ms.&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-5" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-6" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Waiting for the first reader... found one&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-7" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-8" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;0: Gemalto USB SmartCard Reader&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-9" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-10" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;Fri Oct 13 15:58:55 2023&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-11" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-11"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto USB SmartCard Reader&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-12" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-12"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-13" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-13"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  Card state: Card inserted,&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-14" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-14"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  ATR: 3B 6F 00 00 80 5A 28 13 02 10 12 2B 75 0D D3 82 82 90 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-15" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-15"&gt;&lt;/a&gt;&lt;span class="go"&gt; Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-16" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-16" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;0: Gemalto USB SmartCard Reader 01&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-17" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-17" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;1: Gemalto USB SmartCard Reader&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-18" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-18" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-18"&gt;&lt;/a&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-19" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-19" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;Fri Oct 13 15:58:58 2023&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-20" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-20" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-20"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader 0: Gemalto USB SmartCard Reader 01&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-21" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-21" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-22" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-22" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-22"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-23" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-23" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-23"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 1: Gemalto USB SmartCard Reader&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-24" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-24" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-24"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-25" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-25" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-25"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  Card state: Card inserted,&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-26" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-26" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-26"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  ATR: 3B 6F 00 00 80 5A 28 13 02 10 12 2B 75 0D D3 82 82 90 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_e803ccf82bab43b99d5ab49ded3b2341-27" name="rest_code_e803ccf82bab43b99d5ab49ded3b2341-27" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_e803ccf82bab43b99d5ab49ded3b2341-27"&gt;&lt;/a&gt;&lt;span class="gp"&gt;rousseau@MacBook-Pro-de-Ludovic pcsc-tools-1.7.0 %&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The smart card is inserted in the reader connected first. But after the
second reader is connected the reader with the smart card inserted
becomes the second reader in the list. This should not be problematic
for applications but it is a bit surprising.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="windows"&gt;
&lt;h2&gt;Windows&lt;/h2&gt;
&lt;p&gt;On Windows I get results very similar to macOS.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-1" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;PS C:\Users\Ludovic\Downloads&amp;gt; .\pcsc_scan.exe&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-2" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC/SC device scanner&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-3" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.7.0 (c) 2001-2022, Ludovic Rousseau &amp;lt;ludovic.rousseau@free.fr&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-4" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Press shift key to quit&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-5" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Using reader plug'n play mechanism&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-6" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-7" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Waiting for the first reader... found one&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-8" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-9" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-9"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto USB Smart Card Reader 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-10" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-10"&gt;&lt;/a&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-11" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;Sat Oct 14 10:59:42 2023&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-12" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-12"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto USB Smart Card Reader 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-13" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-14" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-15" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-15"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader 1: \\?PnP?\Notification&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-16" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-16" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 1&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-17" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-17" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state:&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-18" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-18" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-18"&gt;&lt;/a&gt;&lt;span class="go"&gt; Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-19" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-19" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-19"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto USB Smart Card Reader 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-20" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-20" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-20"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;1: Gemalto USB Smart Card Reader 1&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-21" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-21" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-21"&gt;&lt;/a&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-22" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-22" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-22"&gt;&lt;/a&gt;&lt;span class="go"&gt;Sat Oct 14 10:59:44 2023&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-23" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-23" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-23"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto USB Smart Card Reader 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-24" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-24" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-24"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-25" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-25" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-25"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-26" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-26" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-26"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 1: Gemalto USB Smart Card Reader 1&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-27" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-27" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-27"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-28" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-28" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-28"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-29" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-29" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-29"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader 2: \\?PnP?\Notification&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-30" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-30" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-30"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 2&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-31" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-31" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-31"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state:&lt;/span&gt;
&lt;a id="rest_code_bf3eb314261d44f59702c3d197e12fb9-32" name="rest_code_bf3eb314261d44f59702c3d197e12fb9-32" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_bf3eb314261d44f59702c3d197e12fb9-32"&gt;&lt;/a&gt;&lt;span class="go"&gt;PS C:\Users\Ludovic\Downloads&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The first reader name is &lt;code class="docutils literal"&gt;Gemalto USB Smart Card Reader 0&lt;/code&gt;. The second
reader name is &lt;code class="docutils literal"&gt;Gemalto USB Smart Card Reader 1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Screenshot:&lt;/p&gt;
&lt;img alt="screenshot of the pcsc_scan command on Windows" src="https://blog.apdu.fr/images/2023/10/pcsc_scan_windows.png"&gt;
&lt;/section&gt;
&lt;section id="gnu-linux"&gt;
&lt;h2&gt;GNU/Linux&lt;/h2&gt;
&lt;p&gt;On GNU/Linux I get:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-1" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;[rousseau:~/Documents/sc/pcsc-tools] master* 2s ± ./pcsc_scan&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-2" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC/SC device scanner&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-3" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.7.0 (c) 2001-2022, Ludovic Rousseau &amp;lt;ludovic.rousseau@free.fr&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-4" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Using reader plug'n play mechanism&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-5" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-6" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Waiting for the first reader... found one&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-7" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-8" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-8"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto PC Twin Reader (F8345B4A) 00 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-9" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-10" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;Fri Oct 13 11:46:11 2023&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-11" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-11"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto PC Twin Reader (F8345B4A) 00 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-12" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-13" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-14" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-14"&gt;&lt;/a&gt;&lt;span class="go"&gt; Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-15" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-15"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto PC Twin Reader (F8345B4A) 00 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-16" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-16" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-16"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;1: Gemalto PC Twin Reader (70D7E2EE) 01 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-17" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-17" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-17"&gt;&lt;/a&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-18" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-18" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;Fri Oct 13 11:46:15 2023&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-19" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-19" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-19"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto PC Twin Reader (F8345B4A) 00 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-20" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-20" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-20"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-21" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-21" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-22" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-22" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-22"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 1: Gemalto PC Twin Reader (70D7E2EE) 01 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-23" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-23" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-23"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_329aeec408bc4db2ad5f70090f7cf383-24" name="rest_code_329aeec408bc4db2ad5f70090f7cf383-24" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_329aeec408bc4db2ad5f70090f7cf383-24"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Here the PC/SC reader name includes an hexadecimal number (&lt;code class="docutils literal"&gt;F8345B4A&lt;/code&gt; or
&lt;code class="docutils literal"&gt;70D7E2EE&lt;/code&gt;). This number is the USB device serial number.&lt;/p&gt;
&lt;p&gt;Screenshot:&lt;/p&gt;
&lt;img alt="screenshot of the pcsc_scan command on GNU/Linux" src="https://blog.apdu.fr/images/2023/10/pcsc_scan_Linux.png"&gt;
&lt;p&gt;So even if you change the order to connect the readers you will always
have one reader name containing &lt;code class="docutils literal"&gt;F8345B4A&lt;/code&gt; and the other reader name
containing &lt;code class="docutils literal"&gt;70D7E2EE&lt;/code&gt;. You have a link between a physical reader and a
PC/SC reader name.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="usb-serial-number"&gt;
&lt;h2&gt;USB serial number&lt;/h2&gt;
&lt;p&gt;The USB serial number is visible on macOS using the &lt;code class="docutils literal"&gt;system_profiler&lt;/code&gt; command.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-1" name="rest_code_66cce021d805465887c2818cfcd524b1-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;rousseau@MacBook-Pro-de-Ludovic ~ % &lt;/span&gt;system_profiler&lt;span class="w"&gt; &lt;/span&gt;SPUSBDataType
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-2" name="rest_code_66cce021d805465887c2818cfcd524b1-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;USB:&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-3" name="rest_code_66cce021d805465887c2818cfcd524b1-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-4" name="rest_code_66cce021d805465887c2818cfcd524b1-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;        USB 3.1 Bus:&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-5" name="rest_code_66cce021d805465887c2818cfcd524b1-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-6" name="rest_code_66cce021d805465887c2818cfcd524b1-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;          Host Controller Driver: AppleT8103USBXHCI&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-7" name="rest_code_66cce021d805465887c2818cfcd524b1-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-8" name="rest_code_66cce021d805465887c2818cfcd524b1-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;                USB SmartCard Reader:&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-9" name="rest_code_66cce021d805465887c2818cfcd524b1-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-10" name="rest_code_66cce021d805465887c2818cfcd524b1-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Product ID: 0x3437&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-11" name="rest_code_66cce021d805465887c2818cfcd524b1-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Vendor ID: 0x08e6  (Gemalto SA)&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-12" name="rest_code_66cce021d805465887c2818cfcd524b1-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Version: 2.01&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-13" name="rest_code_66cce021d805465887c2818cfcd524b1-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-13"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;                  Serial Number: F8345B4A&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-14" name="rest_code_66cce021d805465887c2818cfcd524b1-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Speed: Up to 12 Mb/s&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-15" name="rest_code_66cce021d805465887c2818cfcd524b1-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Manufacturer: Gemalto&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-16" name="rest_code_66cce021d805465887c2818cfcd524b1-16" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Location ID: 0x00100000 / 1&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-17" name="rest_code_66cce021d805465887c2818cfcd524b1-17" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Current Available (mA): 500&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-18" name="rest_code_66cce021d805465887c2818cfcd524b1-18" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Current Required (mA): 50&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-19" name="rest_code_66cce021d805465887c2818cfcd524b1-19" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Extra Operating Current (mA): 0&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-20" name="rest_code_66cce021d805465887c2818cfcd524b1-20" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-20"&gt;&lt;/a&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-21" name="rest_code_66cce021d805465887c2818cfcd524b1-21" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;        USB 3.1 Bus:&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-22" name="rest_code_66cce021d805465887c2818cfcd524b1-22" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-22"&gt;&lt;/a&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-23" name="rest_code_66cce021d805465887c2818cfcd524b1-23" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-23"&gt;&lt;/a&gt;&lt;span class="go"&gt;          Host Controller Driver: AppleT8103USBXHCI&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-24" name="rest_code_66cce021d805465887c2818cfcd524b1-24" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-24"&gt;&lt;/a&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-25" name="rest_code_66cce021d805465887c2818cfcd524b1-25" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-25"&gt;&lt;/a&gt;&lt;span class="go"&gt;                USB SmartCard Reader:&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-26" name="rest_code_66cce021d805465887c2818cfcd524b1-26" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-26"&gt;&lt;/a&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-27" name="rest_code_66cce021d805465887c2818cfcd524b1-27" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-27"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Product ID: 0x3437&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-28" name="rest_code_66cce021d805465887c2818cfcd524b1-28" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-28"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Vendor ID: 0x08e6  (Gemalto SA)&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-29" name="rest_code_66cce021d805465887c2818cfcd524b1-29" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-29"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Version: 2.00&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-30" name="rest_code_66cce021d805465887c2818cfcd524b1-30" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-30"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;                  Serial Number: 70D7E2EE&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-31" name="rest_code_66cce021d805465887c2818cfcd524b1-31" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-31"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Speed: Up to 12 Mb/s&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-32" name="rest_code_66cce021d805465887c2818cfcd524b1-32" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-32"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Manufacturer: Gemalto&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-33" name="rest_code_66cce021d805465887c2818cfcd524b1-33" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-33"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Location ID: 0x01100000 / 1&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-34" name="rest_code_66cce021d805465887c2818cfcd524b1-34" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-34"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Current Available (mA): 500&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-35" name="rest_code_66cce021d805465887c2818cfcd524b1-35" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-35"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Current Required (mA): 50&lt;/span&gt;
&lt;a id="rest_code_66cce021d805465887c2818cfcd524b1-36" name="rest_code_66cce021d805465887c2818cfcd524b1-36" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_66cce021d805465887c2818cfcd524b1-36"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Extra Operating Current (mA): 0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Not all USB devices have a serial number.&lt;/p&gt;
&lt;p&gt;For example with an older model of the same reader I have:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-1" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;rousseau@MacBook-Pro-de-Ludovic ~ % &lt;/span&gt;system_profiler&lt;span class="w"&gt; &lt;/span&gt;SPUSBDataType
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-2" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;USB:&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-3" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-3"&gt;&lt;/a&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-4" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;        USB 3.1 Bus:&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-5" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-6" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;          Host Controller Driver: AppleT8103USBXHCI&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-7" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-8" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;                USB SmartCard Reader:&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-9" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-10" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Product ID: 0x3437&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-11" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Vendor ID: 0x08e6  (Gemalto SA)&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-12" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-12"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;                  Version: 1.00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-13" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-13"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;                  Speed: Up to 12 Mb/s&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-14" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Manufacturer: Gemplus&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-15" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Location ID: 0x00100000 / 1&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-16" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-16" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Current Available (mA): 500&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-17" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-17" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Current Required (mA): 200&lt;/span&gt;
&lt;a id="rest_code_dbab94b8d7474de3a85703c1b08ef53e-18" name="rest_code_dbab94b8d7474de3a85703c1b08ef53e-18" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/#rest_code_dbab94b8d7474de3a85703c1b08ef53e-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;                  Extra Operating Current (mA): 0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;No "Serial Number:" field is displayed.&lt;/p&gt;
&lt;p&gt;My proposal to add the USB serial number in the PC/SC name will not work
with all the smart card readers. But at least it will be usable with
the USB devices providing the serial number.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;It is not a bug in macOS Sonoma. It is not a regression compared to the
previous macOS version, or compared to Windows.&lt;/p&gt;
&lt;p&gt;But it would be nice to be have a strong link between a physical smart
card reader and the corresponding PC/SC reader name.&lt;/p&gt;
&lt;p&gt;See also &lt;a class="reference external" href="https://blog.apdu.fr/posts/2010/05/what-is-in-pcsc-reader-name/"&gt;What is in a PC/SC reader name?&lt;/a&gt; to know how a PC/SC reader
name is generated by &lt;a class="reference external" href="https://pcsclite.apdu.fr/"&gt;pcsc-lite&lt;/a&gt; on GNU/Linux.&lt;/p&gt;
&lt;/section&gt;</description><category>Mac OS X</category><category>macOS bug</category><guid>https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/</guid><pubDate>Sun, 15 Oct 2023 12:12:30 GMT</pubDate></item><item><title>macOS Sonoma bug: The reader name should include the CCID interface name</title><link>https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/</link><dc:creator>Ludovic Rousseau</dc:creator><description>&lt;p&gt;This is part of the series: &lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-known-bugs/"&gt;macOS Sonoma and smart cards: known bugs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have a composite smart card reader (one USB device with 2 or more
CCID interfaces) it is &lt;strong&gt;impossible&lt;/strong&gt; to identify which interface is which
since the reader names are the same (except for a number).&lt;/p&gt;
&lt;section id="see-also"&gt;
&lt;h2&gt;See also&lt;/h2&gt;
&lt;p&gt;I reported this problem to Apple as FB13259373 "The smart card reader name should include the CCID interface name".&lt;/p&gt;
&lt;/section&gt;
&lt;section id="example"&gt;
&lt;h2&gt;Example&lt;/h2&gt;
&lt;p&gt;For example with a composite device &lt;a class="reference external" href="https://ccid.apdu.fr/ccid/supported.html#0x08E60x5503"&gt;Gemalto Prox DU&lt;/a&gt; with 2 CCID interfaces:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-1" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;./pcsc_scan
&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-2" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC/SC device scanner&lt;/span&gt;
&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-3" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.7.0 (c) 2001-2022, Ludovic Rousseau &amp;lt;ludovic.rousseau@free.fr&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-4" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Plug'n play reader name not supported. Using polling every 3600000 ms.&lt;/span&gt;
&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-5" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-6" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Waiting for the first reader... found one&lt;/span&gt;
&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-7" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-8" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-8"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_b9b97fb8f0214ab29296a03bd275b33b-9" name="rest_code_b9b97fb8f0214ab29296a03bd275b33b-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_b9b97fb8f0214ab29296a03bd275b33b-9"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;1: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The problem is that I do not know what interface is the contact reader,
and what interface is the contactless reader.&lt;/p&gt;
&lt;p&gt;The situation is even worse since the order in which the interfaces are
detected/listed is not stable.&lt;/p&gt;
&lt;p&gt;To test that I insert a card in the contact reader. I get:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-1" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-2" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;0: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-3" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;1: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-4" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-5" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Wed Oct 11 14:02:08 2023&lt;/span&gt;
&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-6" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-6"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader 0: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-7" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-8" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-9" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-9"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 1: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-10" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-10"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-11" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-11"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  Card state: Card inserted,&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_3fd904ced59a4aad9e9454a53504d4b6-12" name="rest_code_3fd904ced59a4aad9e9454a53504d4b6-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_3fd904ced59a4aad9e9454a53504d4b6-12"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  ATR: 3B 6F 00 00 80 5A 28 13 02 10 12 2B 75 0D D3 82 82 90 00&lt;/span&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The first reader (Reader 0) is the contactless interface, the second
reader (Reader 1) is the contact interface since that is where the
contact card is reported as inserted.&lt;/p&gt;
&lt;p&gt;Then I disconnect the USB device and connect it again. This time I get:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-1" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;Waiting for the first reader... found one&lt;/span&gt;
&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-2" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-3" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;0: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-4" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;1: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-5" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-6" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Wed Oct 11 14:02:20 2023&lt;/span&gt;
&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-7" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-7"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-8" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-8"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-9" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-9"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  Card state: Card inserted,&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-10" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-10"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;  ATR: 3B 6F 00 00 80 5A 28 13 02 10 12 2B 75 0D D3 82 82 90 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-11" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-11"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader 1: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-12" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_88b067b794124e62a0f5c3f2b753ce45-13" name="rest_code_88b067b794124e62a0f5c3f2b753ce45-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_88b067b794124e62a0f5c3f2b753ce45-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Note that the 2 reader names are the same as before
&lt;code class="docutils literal"&gt;Gemalto Prox Dual USB PC Link Reader&lt;/code&gt; and
&lt;code class="docutils literal"&gt;Gemalto Prox Dual USB PC Link Reader 01&lt;/code&gt; but this second time the
contact card is reported in the first reader instead of the second reader.&lt;/p&gt;
&lt;p&gt;The contact reader was named &lt;code class="docutils literal"&gt;Gemalto Prox Dual USB PC Link Reader 01&lt;/code&gt;
but is now named &lt;code class="docutils literal"&gt;Gemalto Prox Dual USB PC Link Reader&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It looks like the ordering between the 2 interfaces is random.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="pcsc-lite"&gt;
&lt;h2&gt;pcsc-lite&lt;/h2&gt;
&lt;p&gt;On a GNU/Linux system I get:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-1" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;$ &lt;/span&gt;pcsc_scan
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-2" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC/SC device scanner&lt;/span&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-3" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.6.2 (c) 2001-2022, Ludovic Rousseau &amp;lt;ludovic.rousseau@free.fr&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-4" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Using reader plug'n play mechanism&lt;/span&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-5" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-6" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-6"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto Prox Dual USB PC Link Reader [Prox-DU Contactless_10500231] 00 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-7" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-7"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;1: Gemalto Prox Dual USB PC Link Reader [Prox-DU Contact_10500231] 01 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-8" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-8"&gt;&lt;/a&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-9" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-9"&gt;&lt;/a&gt;&lt;span class="go"&gt;Wed Oct  4 10:08:20 2023&lt;/span&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-10" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-10"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto Prox Dual USB PC Link Reader [Prox-DU Contactless_10500231] 00 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-11" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-12" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-13" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-13"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 1: Gemalto Prox Dual USB PC Link Reader [Prox-DU Contact_10500231] 01 00&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-14" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_f2af163eb4a54a74b3a4a68421badc3b-15" name="rest_code_f2af163eb4a54a74b3a4a68421badc3b-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_f2af163eb4a54a74b3a4a68421badc3b-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The CCID interface name (here &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;Prox-DU&lt;/span&gt; Contactless_10500231&lt;/code&gt; and
&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;Prox-DU&lt;/span&gt; Contact_10500231&lt;/code&gt;) is included in the reader names.&lt;/p&gt;
&lt;p&gt;See &lt;a class="reference external" href="https://blog.apdu.fr/posts/2010/05/what-is-in-pcsc-reader-name/"&gt;What is in a PC/SC reader name?&lt;/a&gt; for more details about the reader
name construction in pcsc-lite.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="windows"&gt;
&lt;h2&gt;Windows&lt;/h2&gt;
&lt;p&gt;On a Windows system I get:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-1" name="rest_code_2409ecf12ab244e38d2672743fb662d1-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;PS C:\Users\Ludovic\Downloads&amp;gt; .\pcsc_scan.exe&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-2" name="rest_code_2409ecf12ab244e38d2672743fb662d1-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC/SC device scanner&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-3" name="rest_code_2409ecf12ab244e38d2672743fb662d1-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.7.0 (c) 2001-2022, Ludovic Rousseau &amp;lt;ludovic.rousseau@free.fr&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-4" name="rest_code_2409ecf12ab244e38d2672743fb662d1-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Press shift key to quit&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-5" name="rest_code_2409ecf12ab244e38d2672743fb662d1-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Using reader plug'n play mechanism&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-6" name="rest_code_2409ecf12ab244e38d2672743fb662d1-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-7" name="rest_code_2409ecf12ab244e38d2672743fb662d1-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-7"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;0: Gemalto Prox-DU Contact_10500231 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-8" name="rest_code_2409ecf12ab244e38d2672743fb662d1-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-8"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt;1: Gemalto Prox-DU Contactless_10500231 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-9" name="rest_code_2409ecf12ab244e38d2672743fb662d1-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-9"&gt;&lt;/a&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-10" name="rest_code_2409ecf12ab244e38d2672743fb662d1-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;Sun Oct 15 09:35:48 2023&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-11" name="rest_code_2409ecf12ab244e38d2672743fb662d1-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-11"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 0: Gemalto Prox-DU Contact_10500231 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-12" name="rest_code_2409ecf12ab244e38d2672743fb662d1-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-13" name="rest_code_2409ecf12ab244e38d2672743fb662d1-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-14" name="rest_code_2409ecf12ab244e38d2672743fb662d1-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-14"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Reader 1: Gemalto Prox-DU Contactless_10500231 0&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-15" name="rest_code_2409ecf12ab244e38d2672743fb662d1-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-16" name="rest_code_2409ecf12ab244e38d2672743fb662d1-16" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-17" name="rest_code_2409ecf12ab244e38d2672743fb662d1-17" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-17"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader 2: \\?PnP?\Notification&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-18" name="rest_code_2409ecf12ab244e38d2672743fb662d1-18" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 2&lt;/span&gt;
&lt;a id="rest_code_2409ecf12ab244e38d2672743fb662d1-19" name="rest_code_2409ecf12ab244e38d2672743fb662d1-19" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/#rest_code_2409ecf12ab244e38d2672743fb662d1-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state:&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This is similar to what I have on GNU/Linux.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="workaround"&gt;
&lt;h2&gt;Workaround&lt;/h2&gt;
&lt;p&gt;None known.&lt;/p&gt;
&lt;/section&gt;</description><category>Mac OS X</category><category>macOS bug</category><guid>https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/</guid><pubDate>Wed, 11 Oct 2023 13:58:13 GMT</pubDate></item><item><title>macOS Sonoma bug: Race condition in SCardGetStatusChange()?</title><link>https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/</link><dc:creator>Ludovic Rousseau</dc:creator><description>&lt;p&gt;This is part of the series: "&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-known-bugs/"&gt;macOS Sonoma and smart cards: known bugs&lt;/a&gt;".&lt;/p&gt;
&lt;p&gt;I found a problem when using a composite reader &lt;em&gt;i.e.&lt;/em&gt; a reader with 2
(or more) smart card reader interfaces.&lt;/p&gt;
&lt;p&gt;The PC/SC layer reports a smart card is present when no smart card is
inserted.&lt;/p&gt;
&lt;section id="see-also"&gt;
&lt;h2&gt;See also&lt;/h2&gt;
&lt;p&gt;I reported this problem as FB13184685 "race condition in pcsctest or the PC/SC function used to wait for a smart card reader or smart card".&lt;/p&gt;
&lt;/section&gt;
&lt;section id="details"&gt;
&lt;h2&gt;Details&lt;/h2&gt;
&lt;p&gt;For my tests I use the &lt;a class="reference external" href="https://ccid.apdu.fr/ccid/supported.html#0x08E60x5503"&gt;Gemalto Prox DU&lt;/a&gt; reader. This
reader is a single USB device with 2 CCID interfaces: one contact and
one contactless interface.&lt;/p&gt;
&lt;p&gt;I run the command: &lt;code class="docutils literal"&gt;echo 1 | pcsctest&lt;/code&gt;. The idea is to select the
reader 1 just after it is found.&lt;/p&gt;
&lt;p&gt;I get the output:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_50451471071f47198733d75967a3c2af-1" name="rest_code_50451471071f47198733d75967a3c2af-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_50451471071f47198733d75967a3c2af-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;pcsctest
&lt;a id="rest_code_50451471071f47198733d75967a3c2af-2" name="rest_code_50451471071f47198733d75967a3c2af-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_50451471071f47198733d75967a3c2af-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_50451471071f47198733d75967a3c2af-3" name="rest_code_50451471071f47198733d75967a3c2af-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_50451471071f47198733d75967a3c2af-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;MUSCLE PC/SC Lite Test Program&lt;/span&gt;
&lt;a id="rest_code_50451471071f47198733d75967a3c2af-4" name="rest_code_50451471071f47198733d75967a3c2af-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_50451471071f47198733d75967a3c2af-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_50451471071f47198733d75967a3c2af-5" name="rest_code_50451471071f47198733d75967a3c2af-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_50451471071f47198733d75967a3c2af-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardEstablishContext    : Command successful.&lt;/span&gt;
&lt;a id="rest_code_50451471071f47198733d75967a3c2af-6" name="rest_code_50451471071f47198733d75967a3c2af-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_50451471071f47198733d75967a3c2af-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardGetStatusChange&lt;/span&gt;
&lt;a id="rest_code_50451471071f47198733d75967a3c2af-7" name="rest_code_50451471071f47198733d75967a3c2af-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_50451471071f47198733d75967a3c2af-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Please insert a working reader   :&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then I connect a composite reader (2 CCID interfaces) with or without a
card  inserted and I get:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_b74441acbe41447bb0ac54a08c8ffd50-1" name="rest_code_b74441acbe41447bb0ac54a08c8ffd50-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_b74441acbe41447bb0ac54a08c8ffd50-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;[...]&lt;/span&gt;
&lt;a id="rest_code_b74441acbe41447bb0ac54a08c8ffd50-2" name="rest_code_b74441acbe41447bb0ac54a08c8ffd50-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_b74441acbe41447bb0ac54a08c8ffd50-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;Please insert a working reader   : Command successful.&lt;/span&gt;
&lt;a id="rest_code_b74441acbe41447bb0ac54a08c8ffd50-3" name="rest_code_b74441acbe41447bb0ac54a08c8ffd50-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_b74441acbe41447bb0ac54a08c8ffd50-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardListReaders         : Command successful.&lt;/span&gt;
&lt;a id="rest_code_b74441acbe41447bb0ac54a08c8ffd50-4" name="rest_code_b74441acbe41447bb0ac54a08c8ffd50-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_b74441acbe41447bb0ac54a08c8ffd50-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader 01: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_b74441acbe41447bb0ac54a08c8ffd50-5" name="rest_code_b74441acbe41447bb0ac54a08c8ffd50-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_b74441acbe41447bb0ac54a08c8ffd50-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Enter the reader number          : Waiting for card insertion&lt;/span&gt;
&lt;a id="rest_code_b74441acbe41447bb0ac54a08c8ffd50-6" name="rest_code_b74441acbe41447bb0ac54a08c8ffd50-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_b74441acbe41447bb0ac54a08c8ffd50-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;                                                                 : Command successful.&lt;/span&gt;
&lt;a id="rest_code_b74441acbe41447bb0ac54a08c8ffd50-7" name="rest_code_b74441acbe41447bb0ac54a08c8ffd50-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_b74441acbe41447bb0ac54a08c8ffd50-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardConnect             : No smart card inserted.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;The command is waiting after displaying &lt;code class="docutils literal"&gt;Please insert a working reader :&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then I connect my smart card reader.
The reader is found.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pcsctest displays &lt;code class="docutils literal"&gt;Waiting for card insertion : Command successful.&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But then the &lt;code class="docutils literal"&gt;SCardConnect&lt;/code&gt; fails with &lt;code class="docutils literal"&gt;No smart card inserted.&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I note that NO smart card was inserted in the reader. So the
&lt;code class="docutils literal"&gt;Waiting for card insertion&lt;/code&gt; reported as a success but that is an error.&lt;/p&gt;
&lt;p&gt;I have the same result if a smart card &lt;strong&gt;is&lt;/strong&gt; inserted in the reader.&lt;/p&gt;
&lt;p&gt;If I run again the same command I get the expected result:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-1" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;pcsctest
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-2" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-3" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;MUSCLE PC/SC Lite Test Program&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-4" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-4"&gt;&lt;/a&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-5" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardEstablishContext    : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-6" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardGetStatusChange&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-7" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Please insert a working reader   : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-8" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardListReaders         : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-9" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-9"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader 01: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-10" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader 02: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-11" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-11"&gt;&lt;/a&gt;&lt;span class="go"&gt;Enter the reader number          : Waiting for card insertion&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-12" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;                                                                 : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-13" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardConnect             : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-14" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-14" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-14"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardStatus              : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-15" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-15" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-15"&gt;&lt;/a&gt;&lt;span class="go"&gt;Current Reader Name              : Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-16" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-16" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-16"&gt;&lt;/a&gt;&lt;span class="go"&gt;Current Reader State             : 0x54&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-17" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-17" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-17"&gt;&lt;/a&gt;&lt;span class="go"&gt;Current Reader Protocol          : 0x1&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-18" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-18" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-18"&gt;&lt;/a&gt;&lt;span class="go"&gt;Current Reader ATR Size          : 13 (0xd)&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-19" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-19" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-19"&gt;&lt;/a&gt;&lt;span class="go"&gt;Current Reader ATR Value         : 3B 88 80 01 00 00 00 00 33 71 71 00 3A&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-20" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-20" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-20"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardDisconnect          : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-21" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-21" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-21"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardReleaseContext      : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-22" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-22" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-22"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardEstablishContext    : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-23" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-23" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-23"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardGetStatusChange&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-24" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-24" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-24"&gt;&lt;/a&gt;&lt;span class="go"&gt;Please insert a working reader   : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-25" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-25" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-25"&gt;&lt;/a&gt;&lt;span class="go"&gt;Testing SCardListReaders         : Command successful.&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-26" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-26" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-26"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader 01: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-27" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-27" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-27"&gt;&lt;/a&gt;&lt;span class="go"&gt;Reader 02: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;a id="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-28" name="rest_code_dd9dd04ea6b04249abc327d9f3b36b31-28" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_dd9dd04ea6b04249abc327d9f3b36b31-28"&gt;&lt;/a&gt;&lt;span class="go"&gt;Enter the reader number          : %&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I do NOT have the problem with a reader with only 1 smart card slot. It
looks like the problem is only with multi-slots and composite readers.
It looks like a race condition somewhere in the PC/SC layer (or in the
CryptoTokenKit layer bellow PC/SC) of macOS Sonoma.&lt;/p&gt;
&lt;p&gt;I do not have the problem if I connect 2 "simple" smart card readers on
a USB hub and then connect the hub to the Mac.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="pcsc-scan"&gt;
&lt;h2&gt;pcsc_scan&lt;/h2&gt;
&lt;p&gt;I note I do &lt;strong&gt;not&lt;/strong&gt; have this problem if I use &lt;code class="docutils literal"&gt;pcsc_scan&lt;/code&gt; from &lt;a class="reference external" href="https://pcsc-tools.apdu.fr"&gt;pcsc-tools&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With no reader connected I get:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_0014f29e838b48ac9078001bab2b76b6-1" name="rest_code_0014f29e838b48ac9078001bab2b76b6-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_0014f29e838b48ac9078001bab2b76b6-1"&gt;&lt;/a&gt;&lt;span class="gp"&gt;% &lt;/span&gt;./pcsc_scan
&lt;a id="rest_code_0014f29e838b48ac9078001bab2b76b6-2" name="rest_code_0014f29e838b48ac9078001bab2b76b6-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_0014f29e838b48ac9078001bab2b76b6-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;PC/SC device scanner&lt;/span&gt;
&lt;a id="rest_code_0014f29e838b48ac9078001bab2b76b6-3" name="rest_code_0014f29e838b48ac9078001bab2b76b6-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_0014f29e838b48ac9078001bab2b76b6-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;V 1.6.2 (c) 2001-2022, Ludovic Rousseau &amp;lt;ludovic.rousseau@free.fr&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_0014f29e838b48ac9078001bab2b76b6-4" name="rest_code_0014f29e838b48ac9078001bab2b76b6-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_0014f29e838b48ac9078001bab2b76b6-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;Plug'n play reader name not supported. Using polling every 3600000 ms.&lt;/span&gt;
&lt;a id="rest_code_0014f29e838b48ac9078001bab2b76b6-5" name="rest_code_0014f29e838b48ac9078001bab2b76b6-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_0014f29e838b48ac9078001bab2b76b6-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_0014f29e838b48ac9078001bab2b76b6-6" name="rest_code_0014f29e838b48ac9078001bab2b76b6-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_0014f29e838b48ac9078001bab2b76b6-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;Waiting for the first reader...&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Then I connect the dual interface reader and I get the expected value:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-1" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-1" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;[...]&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-2" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-2" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;Waiting for the first reader... found one&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-3" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-3" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;Scanning present readers...&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-4" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-4" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;0: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-5" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-5" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;1: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-6" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-6" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-6"&gt;&lt;/a&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-7" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-7" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;Wed Oct  4 09:47:47 2023&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-8" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-8" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-8"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader 0: Gemalto Prox Dual USB PC Link Reader&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-9" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-9" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-9"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-10" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-10" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-10"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-11" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-11" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-11"&gt;&lt;/a&gt;&lt;span class="go"&gt; Reader 1: Gemalto Prox Dual USB PC Link Reader 01&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-12" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-12" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-12"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Event number: 0&lt;/span&gt;
&lt;a id="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-13" name="rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-13" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/#rest_code_cd600a279e7f495bbbfaf7e3a2cdd7ed-13"&gt;&lt;/a&gt;&lt;span class="go"&gt;  Card state: Card removed,&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Both interfaces are listed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No card is wrongly found inserted.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="know-workaround"&gt;
&lt;h2&gt;Know workaround&lt;/h2&gt;
&lt;p&gt;None.&lt;/p&gt;
&lt;p&gt;Just wait a bit after you detect a new reader is connected.&lt;/p&gt;
&lt;/section&gt;</description><category>Mac OS X</category><category>macOS bug</category><guid>https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/</guid><pubDate>Wed, 04 Oct 2023 15:09:37 GMT</pubDate></item><item><title>macOS Sonoma bug: SCardControl() returns SCARD_E_NOT_TRANSACTED</title><link>https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/</link><dc:creator>Ludovic Rousseau</dc:creator><description>&lt;p&gt;This is part of the series: "&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-known-bugs/"&gt;macOS Sonoma and smart cards: known bugs&lt;/a&gt;".&lt;/p&gt;
&lt;p&gt;&lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt; fails and returns &lt;code class="docutils literal"&gt;SCARD_E_NOT_TRANSACTED&lt;/code&gt; (&lt;cite&gt;i.e.&lt;/cite&gt;
&lt;code class="docutils literal"&gt;0x80100016&lt;/code&gt;).&lt;/p&gt;
&lt;section id="see-also"&gt;
&lt;h2&gt;See also&lt;/h2&gt;
&lt;p&gt;I reported this bug as FB12779458 "SCardControl() fails on Sonoma beta 4
and returns SCARD_E_NOT_TRANSACTED (0x80100016)".&lt;/p&gt;
&lt;p&gt;Update February 2024: The issue FB12779458 is fixed in macOS Sonoma 14.3.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="sample-code"&gt;
&lt;h2&gt;Sample code&lt;/h2&gt;
&lt;p&gt;If you use the sample code:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/listings/2023_09_macOS_Sonoma_bug_SCardControl.c.html"&gt;2023_09_macOS_Sonoma_bug_SCardControl.c&lt;/a&gt;  &lt;a class="reference external" href="https://blog.apdu.fr/listings/2023_09_macOS_Sonoma_bug_SCardControl.c"&gt;(Source)&lt;/a&gt;&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code c"&gt;&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-1" name="rest_code_b97daaec0c36480abcc370fde4dc6431-1" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-1"&gt;&lt;/a&gt;&lt;span class="c1"&gt;//&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-2" name="rest_code_b97daaec0c36480abcc370fde4dc6431-2" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-2"&gt;&lt;/a&gt;&lt;span class="c1"&gt;//  main.c&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-3" name="rest_code_b97daaec0c36480abcc370fde4dc6431-3" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-3"&gt;&lt;/a&gt;&lt;span class="c1"&gt;//  scardcontrol&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-4" name="rest_code_b97daaec0c36480abcc370fde4dc6431-4" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-4"&gt;&lt;/a&gt;&lt;span class="c1"&gt;//&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-5" name="rest_code_b97daaec0c36480abcc370fde4dc6431-5" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-5"&gt;&lt;/a&gt;&lt;span class="c1"&gt;//  Created by Ludovic Rousseau on 28/07/2023.&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-6" name="rest_code_b97daaec0c36480abcc370fde4dc6431-6" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-6"&gt;&lt;/a&gt;&lt;span class="c1"&gt;//&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-7" name="rest_code_b97daaec0c36480abcc370fde4dc6431-7" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-8" name="rest_code_b97daaec0c36480abcc370fde4dc6431-8" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-8"&gt;&lt;/a&gt;&lt;span class="cp"&gt;#include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-9" name="rest_code_b97daaec0c36480abcc370fde4dc6431-9" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-9"&gt;&lt;/a&gt;&lt;span class="cp"&gt;#include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cpf"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-10" name="rest_code_b97daaec0c36480abcc370fde4dc6431-10" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-10"&gt;&lt;/a&gt;&lt;span class="cp"&gt;#include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cpf"&gt;&amp;lt;PCSC/winscard.h&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-11" name="rest_code_b97daaec0c36480abcc370fde4dc6431-11" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-11"&gt;&lt;/a&gt;&lt;span class="cp"&gt;#include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cpf"&gt;&amp;lt;PCSC/wintypes.h&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-12" name="rest_code_b97daaec0c36480abcc370fde4dc6431-12" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-12"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-13" name="rest_code_b97daaec0c36480abcc370fde4dc6431-13" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-13"&gt;&lt;/a&gt;&lt;span class="cp"&gt;#define SCARD_CTL_CODE(code) (0x42000000 + (code))&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-14" name="rest_code_b97daaec0c36480abcc370fde4dc6431-14" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-14"&gt;&lt;/a&gt;&lt;span class="cp"&gt;#define CM_IOCTL_GET_FEATURE_REQUEST SCARD_CTL_CODE(3400)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-15" name="rest_code_b97daaec0c36480abcc370fde4dc6431-15" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-15"&gt;&lt;/a&gt;&lt;span class="cp"&gt;#define PCSC_ERROR_EXIT(rv, text) \&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-16" name="rest_code_b97daaec0c36480abcc370fde4dc6431-16" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-16"&gt;&lt;/a&gt;&lt;span class="cp"&gt;if (rv != SCARD_S_SUCCESS) \&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-17" name="rest_code_b97daaec0c36480abcc370fde4dc6431-17" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-17"&gt;&lt;/a&gt;&lt;span class="cp"&gt;{ \&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-18" name="rest_code_b97daaec0c36480abcc370fde4dc6431-18" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-18"&gt;&lt;/a&gt;&lt;span class="cp"&gt;        printf(text ": %s (0x%8X)\n", pcsc_stringify_error(rv), rv); \&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-19" name="rest_code_b97daaec0c36480abcc370fde4dc6431-19" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-19"&gt;&lt;/a&gt;&lt;span class="cp"&gt;        goto end; \&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-20" name="rest_code_b97daaec0c36480abcc370fde4dc6431-20" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-20"&gt;&lt;/a&gt;&lt;span class="cp"&gt;} \&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-21" name="rest_code_b97daaec0c36480abcc370fde4dc6431-21" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-21"&gt;&lt;/a&gt;&lt;span class="cp"&gt;else \&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-22" name="rest_code_b97daaec0c36480abcc370fde4dc6431-22" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-22"&gt;&lt;/a&gt;&lt;span class="cp"&gt;        printf(text ": OK\n");&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-23" name="rest_code_b97daaec0c36480abcc370fde4dc6431-23" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-23"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-24" name="rest_code_b97daaec0c36480abcc370fde4dc6431-24" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-24"&gt;&lt;/a&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[])&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-25" name="rest_code_b97daaec0c36480abcc370fde4dc6431-25" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-25"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;LONG&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-26" name="rest_code_b97daaec0c36480abcc370fde4dc6431-26" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-26"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;SCARDCONTEXT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;hContext&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-27" name="rest_code_b97daaec0c36480abcc370fde4dc6431-27" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-27"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dwReaders&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-28" name="rest_code_b97daaec0c36480abcc370fde4dc6431-28" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;LPSTR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mszReaders&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-29" name="rest_code_b97daaec0c36480abcc370fde4dc6431-29" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-29"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;SCARDHANDLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;hCard&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-30" name="rest_code_b97daaec0c36480abcc370fde4dc6431-30" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bRecvBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;MAX_BUFFER_SIZE&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-31" name="rest_code_b97daaec0c36480abcc370fde4dc6431-31" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-32" name="rest_code_b97daaec0c36480abcc370fde4dc6431-32" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-32"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;DWORD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dwActiveProtocol&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-33" name="rest_code_b97daaec0c36480abcc370fde4dc6431-33" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-33"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-34" name="rest_code_b97daaec0c36480abcc370fde4dc6431-34" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-34"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCardEstablishContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SCARD_SCOPE_SYSTEM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;hContext&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-35" name="rest_code_b97daaec0c36480abcc370fde4dc6431-35" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-35"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCARD_S_SUCCESS&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-36" name="rest_code_b97daaec0c36480abcc370fde4dc6431-36" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-36"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-37" name="rest_code_b97daaec0c36480abcc370fde4dc6431-37" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-37"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"SCardEstablishContext: Cannot Connect to Resource Manager %s&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pcsc_stringify_error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-38" name="rest_code_b97daaec0c36480abcc370fde4dc6431-38" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-38"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-39" name="rest_code_b97daaec0c36480abcc370fde4dc6431-39" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-39"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-40" name="rest_code_b97daaec0c36480abcc370fde4dc6431-40" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-40"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-41" name="rest_code_b97daaec0c36480abcc370fde4dc6431-41" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-41"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="cm"&gt;/* Retrieve the available readers list */&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-42" name="rest_code_b97daaec0c36480abcc370fde4dc6431-42" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-42"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCardListReaders&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;dwReaders&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-43" name="rest_code_b97daaec0c36480abcc370fde4dc6431-43" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-43"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;PCSC_ERROR_EXIT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"SCardListReaders"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-44" name="rest_code_b97daaec0c36480abcc370fde4dc6431-44" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-44"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-45" name="rest_code_b97daaec0c36480abcc370fde4dc6431-45" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-45"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;mszReaders&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;malloc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;dwReaders&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-46" name="rest_code_b97daaec0c36480abcc370fde4dc6431-46" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-46"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mszReaders&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-47" name="rest_code_b97daaec0c36480abcc370fde4dc6431-47" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-47"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-48" name="rest_code_b97daaec0c36480abcc370fde4dc6431-48" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-48"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"malloc: not enough memory&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-49" name="rest_code_b97daaec0c36480abcc370fde4dc6431-49" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-49"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="k"&gt;goto&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-50" name="rest_code_b97daaec0c36480abcc370fde4dc6431-50" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-50"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-51" name="rest_code_b97daaec0c36480abcc370fde4dc6431-51" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-51"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-52" name="rest_code_b97daaec0c36480abcc370fde4dc6431-52" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-52"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCardListReaders&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mszReaders&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;dwReaders&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-53" name="rest_code_b97daaec0c36480abcc370fde4dc6431-53" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-53"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCARD_S_SUCCESS&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-54" name="rest_code_b97daaec0c36480abcc370fde4dc6431-54" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-54"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"SCardListReader: %8X&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-55" name="rest_code_b97daaec0c36480abcc370fde4dc6431-55" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-55"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-56" name="rest_code_b97daaec0c36480abcc370fde4dc6431-56" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-56"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="cm"&gt;/* connect to a reader (even without a card) */&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-57" name="rest_code_b97daaec0c36480abcc370fde4dc6431-57" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-57"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;dwActiveProtocol&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-58" name="rest_code_b97daaec0c36480abcc370fde4dc6431-58" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-58"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Using reader: %s&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mszReaders&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-59" name="rest_code_b97daaec0c36480abcc370fde4dc6431-59" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-59"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCardConnect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mszReaders&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCARD_SHARE_DIRECT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-60" name="rest_code_b97daaec0c36480abcc370fde4dc6431-60" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-60"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;SCARD_PROTOCOL_T0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCARD_PROTOCOL_T1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;hCard&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;dwActiveProtocol&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-61" name="rest_code_b97daaec0c36480abcc370fde4dc6431-61" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-61"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;PCSC_ERROR_EXIT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"SCardConnect"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-62" name="rest_code_b97daaec0c36480abcc370fde4dc6431-62" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-62"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-63" name="rest_code_b97daaec0c36480abcc370fde4dc6431-63" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-63"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="cm"&gt;/* get features */&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-64" name="rest_code_b97daaec0c36480abcc370fde4dc6431-64" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-64"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCardControl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hCard&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;CM_IOCTL_GET_FEATURE_REQUEST&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-65" name="rest_code_b97daaec0c36480abcc370fde4dc6431-65" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-65"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;bRecvBuffer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bRecvBuffer&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-66" name="rest_code_b97daaec0c36480abcc370fde4dc6431-66" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-66"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;PCSC_ERROR_EXIT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"SCardControl"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-67" name="rest_code_b97daaec0c36480abcc370fde4dc6431-67" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-67"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-68" name="rest_code_b97daaec0c36480abcc370fde4dc6431-68" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-68"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Received buffer (%d bytes)&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-69" name="rest_code_b97daaec0c36480abcc370fde4dc6431-69" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-69"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-70" name="rest_code_b97daaec0c36480abcc370fde4dc6431-70" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-70"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%02X "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bRecvBuffer&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-71" name="rest_code_b97daaec0c36480abcc370fde4dc6431-71" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-71"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-72" name="rest_code_b97daaec0c36480abcc370fde4dc6431-72" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-72"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-73" name="rest_code_b97daaec0c36480abcc370fde4dc6431-73" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-73"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="cm"&gt;/* disconnect */&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-74" name="rest_code_b97daaec0c36480abcc370fde4dc6431-74" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-74"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCardDisconnect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hCard&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCARD_UNPOWER_CARD&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-75" name="rest_code_b97daaec0c36480abcc370fde4dc6431-75" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-75"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;PCSC_ERROR_EXIT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"SCardDisconnect"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-76" name="rest_code_b97daaec0c36480abcc370fde4dc6431-76" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-76"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-77" name="rest_code_b97daaec0c36480abcc370fde4dc6431-77" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-77"&gt;&lt;/a&gt;&lt;span class="nl"&gt;end&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-78" name="rest_code_b97daaec0c36480abcc370fde4dc6431-78" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-78"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="cm"&gt;/* We try to leave things as clean as possible */&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-79" name="rest_code_b97daaec0c36480abcc370fde4dc6431-79" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-79"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCardReleaseContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hContext&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-80" name="rest_code_b97daaec0c36480abcc370fde4dc6431-80" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-80"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SCARD_S_SUCCESS&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-81" name="rest_code_b97daaec0c36480abcc370fde4dc6431-81" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-81"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"SCardReleaseContext: %s (0x%8X)&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pcsc_stringify_error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-82" name="rest_code_b97daaec0c36480abcc370fde4dc6431-82" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-82"&gt;&lt;/a&gt;&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="n"&gt;rv&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-83" name="rest_code_b97daaec0c36480abcc370fde4dc6431-83" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-83"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-84" name="rest_code_b97daaec0c36480abcc370fde4dc6431-84" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-84"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="cm"&gt;/* free allocated memory */&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-85" name="rest_code_b97daaec0c36480abcc370fde4dc6431-85" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-85"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mszReaders&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-86" name="rest_code_b97daaec0c36480abcc370fde4dc6431-86" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-86"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;free&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mszReaders&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-87" name="rest_code_b97daaec0c36480abcc370fde4dc6431-87" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-87"&gt;&lt;/a&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-88" name="rest_code_b97daaec0c36480abcc370fde4dc6431-88" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-88"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_b97daaec0c36480abcc370fde4dc6431-89" name="rest_code_b97daaec0c36480abcc370fde4dc6431-89" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_b97daaec0c36480abcc370fde4dc6431-89"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;you will get:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-1" name="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-1" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_9ba59cdaab1f423eb6c99f134ba8fead-1"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardListReaders: OK&lt;/span&gt;
&lt;a id="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-2" name="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-2" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_9ba59cdaab1f423eb6c99f134ba8fead-2"&gt;&lt;/a&gt;&lt;span class="go"&gt; Using reader: Gemplus USB GemPCPinpad SmartCard Reader&lt;/span&gt;
&lt;a id="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-3" name="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-3" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_9ba59cdaab1f423eb6c99f134ba8fead-3"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardConnect: OK&lt;/span&gt;
&lt;a id="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-4" name="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-4" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_9ba59cdaab1f423eb6c99f134ba8fead-4"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; SCardControl: Transaction failed. (0x80100016)&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-5" name="rest_code_9ba59cdaab1f423eb6c99f134ba8fead-5" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_9ba59cdaab1f423eb6c99f134ba8fead-5"&gt;&lt;/a&gt;&lt;span class="go"&gt; Program ended with exit code: 0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Instead of the expected output (I get it on macOS Ventura 13.5):&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_2b4aa256092c48fc93e799e55ee05754-1" name="rest_code_2b4aa256092c48fc93e799e55ee05754-1" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_2b4aa256092c48fc93e799e55ee05754-1"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardListReaders: OK&lt;/span&gt;
&lt;a id="rest_code_2b4aa256092c48fc93e799e55ee05754-2" name="rest_code_2b4aa256092c48fc93e799e55ee05754-2" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_2b4aa256092c48fc93e799e55ee05754-2"&gt;&lt;/a&gt;&lt;span class="go"&gt; Using reader: Gemalto USB GemPCPinpad SmartCard Reader&lt;/span&gt;
&lt;a id="rest_code_2b4aa256092c48fc93e799e55ee05754-3" name="rest_code_2b4aa256092c48fc93e799e55ee05754-3" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_2b4aa256092c48fc93e799e55ee05754-3"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardConnect: OK&lt;/span&gt;
&lt;a id="rest_code_2b4aa256092c48fc93e799e55ee05754-4" name="rest_code_2b4aa256092c48fc93e799e55ee05754-4" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_2b4aa256092c48fc93e799e55ee05754-4"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; SCardControl: OK&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_2b4aa256092c48fc93e799e55ee05754-5" name="rest_code_2b4aa256092c48fc93e799e55ee05754-5" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_2b4aa256092c48fc93e799e55ee05754-5"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; Received buffer (24 bytes)&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_2b4aa256092c48fc93e799e55ee05754-6" name="rest_code_2b4aa256092c48fc93e799e55ee05754-6" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_2b4aa256092c48fc93e799e55ee05754-6"&gt;&lt;/a&gt;&lt;span class="hll"&gt;&lt;span class="go"&gt; 06 04 42 33 00 06 07 04 42 33 00 07 0A 04 42 33 00 0A 12 04 42 33 00 12&lt;/span&gt;
&lt;/span&gt;&lt;a id="rest_code_2b4aa256092c48fc93e799e55ee05754-7" name="rest_code_2b4aa256092c48fc93e799e55ee05754-7" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_2b4aa256092c48fc93e799e55ee05754-7"&gt;&lt;/a&gt;&lt;span class="go"&gt; SCardDisconnect: OK&lt;/span&gt;
&lt;a id="rest_code_2b4aa256092c48fc93e799e55ee05754-8" name="rest_code_2b4aa256092c48fc93e799e55ee05754-8" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_2b4aa256092c48fc93e799e55ee05754-8"&gt;&lt;/a&gt;&lt;span class="go"&gt; Program ended with exit code: 0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="why-is-it-important"&gt;
&lt;h2&gt;Why is it important&lt;/h2&gt;
&lt;p&gt;This bug is important because if &lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt; can't be used then
you can't use the secure verify command of a pinpad reader for example (&lt;cite&gt;i.e.&lt;/cite&gt; enter the PIN code on the pinpad keyboard and not on the PC keyboard).&lt;/p&gt;
&lt;p&gt;Other commands are using &lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt;. They are documented in
PC/SC specification version 2 part 10 "&lt;a class="reference external" href="https://muscle.apdu.fr/www.pcscworkgroup.com/PCSC/V2/pcsc10_v2.02.09.pdf"&gt;Interoperability Specification for ICCs and Personal Computer Systems
Part 10 IFDs with Secure PIN Entry Capabilities&lt;/a&gt;" from the PC/SC workgroup.&lt;/p&gt;
&lt;p&gt;See &lt;a class="reference external" href="https://salsa.debian.org/rousseau/CCID/blob/master/SCARDCONTOL.md"&gt;List of SCardControl() commands supported by the CCID driver&lt;/a&gt;.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;GET_FEATURE_REQUEST&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;secure PIN verify (FEATURE_VERIFY_PIN_DIRECT)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;modify PIN entry (FEATURE_MODIFY_PIN_DIRECT)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;reader PIN properties (FEATURE_IFD_PIN_PROPERTIES)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multifunctional Card Terminal reader direct (FEATURE_MCT_READER_DIRECT)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;retrieve reader properties in TLV form (FEATURE_GET_TLV_PROPERTIES)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="know-workaround"&gt;
&lt;h2&gt;Know workaround&lt;/h2&gt;
&lt;p&gt;If I install a new CCID driver (my &lt;a class="reference external" href="https://ccid.apdu.fr"&gt;CCID driver&lt;/a&gt; 1.5.2 for example) then the same
sample code works on Sonoma and I get the expected results.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-1" name="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-1" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardListReaders: OK&lt;/span&gt;
&lt;a id="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-2" name="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-2" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-2"&gt;&lt;/a&gt;&lt;span class="go"&gt;Using reader: Gemalto USB GemPCPinpad SmartCard Reader&lt;/span&gt;
&lt;a id="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-3" name="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-3" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-3"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardConnect: OK&lt;/span&gt;
&lt;a id="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-4" name="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-4" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-4"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardControl: OK&lt;/span&gt;
&lt;a id="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-5" name="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-5" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-5"&gt;&lt;/a&gt;&lt;span class="go"&gt;Received buffer (24 bytes)&lt;/span&gt;
&lt;a id="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-6" name="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-6" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-6"&gt;&lt;/a&gt;&lt;span class="go"&gt;06 04 42 33 00 06 07 04 42 33 00 07 0A 04 42 33 00 0A 12 04 42 33 00 12&lt;/span&gt;
&lt;a id="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-7" name="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-7" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-7"&gt;&lt;/a&gt;&lt;span class="go"&gt;SCardDisconnect: OK&lt;/span&gt;
&lt;a id="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-8" name="rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-8" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_39fb7738835a45b7b6f9b3fa95e61a6b-8"&gt;&lt;/a&gt;&lt;span class="go"&gt;Program ended with exit code: 0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It looks like the problem is with the CCID driver provided by Apple and
not in the macOS PC/SC or resource manager layer.&lt;/p&gt;
&lt;p&gt;If you need a customer driver to solve this problem please contact me.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="update-november-2023"&gt;
&lt;h2&gt;[UPDATE November 2023]&lt;/h2&gt;
&lt;p&gt;This problem is caused by the Apple CCID driver included in Sonoma. See
&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/11/apple-own-ccid-driver-in-sonoma/"&gt;Apple's own CCID driver in Sonoma&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;An easy way to fix the problem is to upgrade to Sonoma 14.1, or to
enable my CCID driver (also provided by Apple in Sonoma) by doing:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code console"&gt;&lt;a id="rest_code_7f27d01420a247bbac355f23d531efaa-1" name="rest_code_7f27d01420a247bbac355f23d531efaa-1" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/#rest_code_7f27d01420a247bbac355f23d531efaa-1"&gt;&lt;/a&gt;&lt;span class="go"&gt;sudo defaults write /Library/Preferences/com.apple.security.smartcard useIFDCCID -bool yes&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="update-february-2024"&gt;
&lt;h2&gt;[UPDATE February 2024]&lt;/h2&gt;
&lt;p&gt;Apple has worked on &lt;code class="docutils literal"&gt;SCardControl()&lt;/code&gt; support. The issue FB12779458 is
fixed in macOS Sonoma 14.3.&lt;/p&gt;
&lt;/section&gt;</description><category>Mac OS X</category><category>macOS bug</category><guid>https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/</guid><pubDate>Sat, 30 Sep 2023 14:38:27 GMT</pubDate></item><item><title>macOS Sonoma and smart cards: known bugs</title><link>https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-known-bugs/</link><dc:creator>Ludovic Rousseau</dc:creator><description>&lt;p&gt;In Sonoma Apple did a (lot of) rework of the smart card layer. It is not
explicit in my previous article &lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-status/"&gt;macOS Sonoma and smart cards status&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I will try to document what I find in new blog posts.&lt;/p&gt;
&lt;section id="sonoma-macos-14"&gt;
&lt;h2&gt;Sonoma: macOS 14&lt;/h2&gt;
&lt;p&gt;Ad I did for previous versions of macOS I propose to maintain a list of
know issues (bug, regression or missing feature) in PC/SC (&lt;a class="reference external" href="https://pcsclite.apdu.fr/api/group__API.html"&gt;WinSCard
API&lt;/a&gt;) or &lt;a class="reference external" href="https://developer.apple.com/documentation/cryptotokenkit"&gt;CryptoTokenKit&lt;/a&gt; on macOS
Sonoma 14.&lt;/p&gt;
&lt;p&gt;Previous lists:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/posts/2018/09/macos-high-sierra-and-smart-cards-known/"&gt;macOS High Sierra and smart cards: known bugs&lt;/a&gt; (2018)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/posts/2015/11/os-x-el-capitan-and-smart-cards-known/"&gt;OS X El Capitan and smart cards: known bugs&lt;/a&gt; (2015)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/posts/2014/12/os-x-yosemite-and-smart-cards-known-bugs/"&gt;OS X Yosemite and smart cards: known bugs&lt;/a&gt; (2014)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I will only list new bugs in macOS Sonoma. Bugs or missing features that
were already present in previous macOS versions will not be listed again
here. See my previous "macOS xyz and smart cards: known bugs" blog
articles listed above.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="bug-list"&gt;
&lt;h2&gt;Bug list&lt;/h2&gt;
&lt;p&gt;I will list bugs known (by me) and will try to maintain the list in the
future if/when the bugs are fixed.&lt;/p&gt;
&lt;p&gt;If you have found a bug not listed here then please contact me so I can
add it to the list.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/"&gt;macOS Sonoma bug: SCardControl() returns SCARD_E_NOT_TRANSACTED&lt;/a&gt; (fixed in Sonoma 14.3)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-race-condition-in-scardgetstatuschange/"&gt;macOS Sonoma bug: Race condition in SCardGetStatusChange()?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-bug-the-reader-name-should-include-the-ccid-interface-name/"&gt;macOS Sonoma bug: The reader name should include the CCID interface name&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/posts/2023/10/macos-sonoma-the-reader-name-should-include-the-usb-serial-number/"&gt;macOS Sonoma: The reader name should include the USB serial number&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://blog.apdu.fr/posts/2024/02/macos-sonoma-bug-scardcontrol-part-2/"&gt;macOS Sonoma bug: SCardControl() (part 2)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The bugs listed above are not critical for many users. But they may
surprise some developers when they try to understand why their code is
working fine on GNU/Linux or macOS Ventura but has a strange behaviour
when executed on macOS Sonoma.&lt;/p&gt;
&lt;/section&gt;</description><category>Mac OS X</category><category>macOS bug</category><guid>https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-known-bugs/</guid><pubDate>Fri, 29 Sep 2023 12:50:55 GMT</pubDate></item></channel></rss>