Skip to content

Instantly share code, notes, and snippets.

@drewbug
Created October 23, 2014 05:52
Show Gist options
  • Select an option

  • Save drewbug/4ed5dd02db4258e21f07 to your computer and use it in GitHub Desktop.

Select an option

Save drewbug/4ed5dd02db4258e21f07 to your computer and use it in GitHub Desktop.
securityd notes
In /System/Library/LaunchDaemons/com.apple.securityd.plist, this apparently *won't* keep pcscd alive forever:
<array>
<string>/usr/sbin/securityd</string>
<string>-i</string>
<string>-s</string>
<string>on</string>
</array>
This is despite a comment in pcscmonitor.h that says it should "keep pcscd running at all times"
Oh well.
@drewbug

drewbug commented Oct 23, 2014

Copy link
Copy Markdown
Author
A driver bundle is a standard Mac OS X bundle that usually lives in the directory:

    /usr/libexec/SmartCardServices/drivers/

The two major components of this bundle are the executable and the Info.plist. A single
driver bundle may provide support for multiple readers. See

    <rdar://problem/4432039> pcscd crash for multiple VID/PIDs
and
    <http://pcsclite.alioth.debian.org/ifdhandler-3/node7.html>

The key that determines if a driver supports only one reader or multiple readers is
"ifdVendorID", sometimes referred to as the manufacturer name. If this is a
CFStringRef, then only one reader is supported; if it is a CFArrayRef, then
multiple readers are supports. There are three fields for each reader:

    VendorID        uint32_t
    ProductID       uint32_t
    Friendly name   string

See e.g. http://pcsclite.alioth.debian.org/ccid.html for a working driver with multiple IDs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment