OpenSC Minidriver MSI improvements

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

OpenSC Minidriver MSI improvements

Douglas E Engert
In response to the second half of: Re: [OpenSC] Implementation of card_ctl function with SC_CARDCTL_GET_SERIALNR (#321)
I would like to make it a separate thread. The minidriver MSI install process could be improved and apply to all
OpenSC supported cards that can provide a serial number.

On 12/15/2014 6:31 AM, Shaun Schutte wrote:
> There is however another question I have regarding Jenkins:
> Is there a way to get a hold of the binary OpenSC builds that come without the msi installer? The reason for this is that if we package the 32 bit and 64 bit installers together using a tool like
> "Advanced Installer" things get a little messy. Since we need to install both the 32 bit and 64 bit for Windows 7 64 bit, it would be more user friendly to have a single installer that does all of
> this, so normal "users" would need to click install once and all the magic happens in the background. I am no expert at this, and I am sure the OpenSC devs have some sort of guidelines and rules for
> this so I was wondering what might work best?

Since on Windows 64 bit, most people would want both 64 and 32 bit, the default MSI for 64 should install both.

Is a good starting point for how Windows handles smart cards.
This shows an example of a combined 64 and 32 bit INF file:

In the example, (and drivers I have seen form vendors), there is both a
Fabrikamcm.dll and Fabrikamcm64.dll file. i.e. a 32 bit and a 64 bit version of the dll with different names
even when stored in a different directories.

It would take someone who understands the MSI process, and could test it. (I am not in a position to do this.)

> Finally I was wondering if it might make sense to add the registry files needed for this patch to work in ( so it might be included? Would
> be happy to help either way.

There were 32 different cards or so supported by OpenSC, that can return a serial number, and thus could be used
by Windows. Today OpenSC creates a separate registry entry for a handful of cards, not all of them.
It could create registry entries for all of them.

The registry entry includes both an ATR and ATRmask to allow for multiple ATRs to be matched with one registry entry.
With careful crafting of the ATR, and ATRMask, a single entry could cover multiple cards supported by OpenSC.
But it looks like a single registry entry ATR and ATRMask could only cover cards with ATRs of the same length.
I have not looked to see if this could simplify or complicate the process...

But the MSI install could install registry entries for all the OpenSC supported cards, either using the above,
or a combined version. The user may want to use a vendor's driver for some cards and OpenSC for others,
so this should be user controllable.

This again would take someone who understands and can test the MSI install.

Are you or anyone else interested in looking at this?

P.S. Every entry should have both:

   "Crypto Provider"="Microsoft Base Smart Card Crypto Provider"
   "Smart Card Key Storage Provider"="Microsoft Smart Card Key Storage Provider"

> —
> Reply to this email directly or view it on GitHub <>.


  Douglas E. Engert  <[hidden email]>

Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
Opensc-devel mailing list
[hidden email]