macOS Big Sur and smart cards status
macOS Big Sur (macOS 11.0) is now available since November, 2020.
tokend
A tokend is a piece of software used to bridge a cryptographic device (like a smart card) and the CDSA (Common Data Security Architecture) architecture.
Since macOS Lion (10.7 in 2011) the CDSA/tokend technology is deprecated. See
"Mac OS X Lion and tokend".
tokend was disabled by default in Catalina but it was still possible to enable
it again.
With macOS Big Sur tokend is now completely removed. The manpage
SmartCardServices-legacy(7) is also no more present.
PC/SC
Since Yosemite (macOS 10.10 in 2014) the PC/SC layer is no more a fork of pcsc-lite. So comparing versions with pcsc-lite is useless.% cat /System/Library/Frameworks/PCSC.framework/Versions/A/Resources/version.plistThe CFBundleShortVersionString is still 8.0 as for Mojave and Catalina. The SourceVersion changed from 408011002000000 to 487040010000000. But I have no idea what that means :-).
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>BuildAliasOf</key> <string>CryptoTokenKit</string> <key>BuildVersion</key> <string>25</string> <key>CFBundleShortVersionString</key> <string>8.0</string> <key>CFBundleVersion</key> <string>1</string> <key>ProjectName</key> <string>SmartCardServices</string> <key>SourceVersion</key> <string>487040010000000</string> </dict> </plist>
I have not yet made many tests of the PC/SC layer. So far it works fine.
Crypto Token Kit
CryptoTokenKit is the native smart card API since the complete rewrite in macOS Yosemite 10.10 (OS X Yosemite BETA and smart cards status).
The directory
/System/Library/Frameworks/CryptoTokenKit.framework/CryptoTokenKit/ changed a
bit between Catalina and Big Sur. For example the file CryptoTokenKit is no more present.
I tried my Objective-C sample and the code still works fine (as expected) even
if the binary is now linked to a non-existent library file.
% otool -L ./blog.app/Contents/MacOS/blog
./blog.app/Contents/MacOS/blog:
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1673.126.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1673.126.0)
/System/Library/Frameworks/CryptoTokenKit.framework/Versions/A/CryptoTokenKit (compatibility version 1.0.0, current version 1.0.0)
% ls /System/Library/Frameworks/CryptoTokenKit.framework/Versions/A/CryptoTokenKit ls: /System/Library/Frameworks/CryptoTokenKit.framework/Versions/A/CryptoTokenKit: No such file or directory
CCID
% grep -A 1 CFBundleShortVersionString /usr/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist
<key>CFBundleShortVersionString</key>
<string>1.4.32</string>
Apple updated the CCID driver from version 1.4.31 in Catalina to 1.4.32 in Big
Sur.
Version 1.4.32 is not the latest version available. I released this
version on April, 22th 2020.
The latest version (for now) of the CCID driver is 1.4.33 released on June
25th, 2020.
Apple Silicon
macOS Big Sur is also the operating system for the new Apple computers using
the Apple Silicon CPU (an ARM based CPU). The binaries provided with macOS
Big Sur are now also compiled for ARM.
For example with the CCID driver:
% cd /usr/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/MacOS/ % file libccid.dylib libccid.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64e:Mach-O 64-bit dynamically linked shared library arm64e] libccid.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64 libccid.dylib (for architecture arm64e): Mach-O 64-bit dynamically linked shared library arm64e
My CCID driver works fine with GNU/Linux on a RaspberryPi with an ARM CPU. So it is not surprising that it works also fine with an Apple Silicon CPU.
When Apple will publish the patches they made to Free Software programs used in Big Sur at https://opensource.apple.com we will see if some modifications were needed.