# Mac OSX Sonoma

## Overview

Starting from OSX Sonoma, smart card readers for Mac can fail for the following use cases:

* detect card reader
* execute transaction (digital signature or authentication)

The general end-user experience is that the smart card communication fails (card reader disseappears or the transaction fails).&#x20;

A very great shout-out to Ludovic Rousseau who initially did a follow-up on impact of smart card readers in Sonoma:

{% embed url="<https://blog.apdu.fr/posts/2023/09/macos-sonoma-and-smart-cards-status/>" %}

### Reported Bug to Mac OSX:

{% embed url="<https://blog.apdu.fr/posts/2023/09/macos-sonoma-bug-scardcontrol-returns-scard_e_not_transacted/>" %}

### OSX Forum

{% embed url="<https://forums.developer.apple.com/forums/thread/732091>" %}

## Solution

The initial solution prior to 11/2023 was very elaborate, but was made easy by applying a single command in a MAC OSX terminal:

```
$ sudo defaults write /Library/Preferences/com.apple.security.smartcard useIFDCCID -bool yes
```

#### **What does the command execute/change?**

The command switches the MAC OSX implementation of the CCID drivers to the legacy version (the version working prior to Sonoma).&#x20;

As MAC OSX defaults using a custom CCID implementation, which still have some issues, switching to the old version is a temporary stolution.&#x20;

#### How to roll-back to MAC OSX CCID implementation?

Form a specific moment (not at the time of writing), switching back to the default CCID implementation can be done using the following commands (in a terminal):

Check if the built-in Apple CCID driver is active

```
defaults read /Library/Preferences/com.apple.security.smartcard.plist useIFDCCID
```

If the former command results in:

```
he domain/default pair of (/Library/Preferences/com.apple.security.smartcard.plist, useIFDCCID) does not exist
```

This means that the built-in Apple driver is active.&#x20;

The result is 1 so the "external" (non-Apple) CCID driver is enabled.

Returning back to default, execute:

```
sudo defaults write /Library/Preferences/com.apple.security.smartcard useIFDCCID -bool no
```

{% hint style="warning" %}
After executing a driver switch, we have noticed that a restart is **mandatory**!
{% endhint %}

####
