Develop a Windows Smartcard Minidriver

Job ID: 33623226

Budget: $50 – $0 AUD

We are the developers of an open source smart card authentication applet called OpenFIPS201, which is a Java Card implementation of the NIST FIPS 201 (Personal Identity Verification) smart card application standard, used for authentication, digital signatures, encryption, etc.

We are seeking a Windows Driver developer to develop a Windows Smartcard Minidriver that will be used to integrate our smartcard applet with the Microsoft Cryptographic API.
We are after Windows Driver expertise to complement our in-house cryptographic and PIV knowledge.

The specific project tasks are:
1) Work with us to define the Minidriver design
2) Develop the minidriver according to the Windows Smartcard Minidriver Specification v7.07 (link below)
3) Assist us in integrating the PIV smartcard functionality into the minidriver, where necessary.
4) Assist us in creating a common cloud test VM in Azure of Amazon (we provide VM)
5) Pass all WHQL tests and assist us in the process of submitting the minidriver to Microsoft WHQL and Windows Update

This code will be published online under an MIT license. Although Upwork specifies that all moral rights for code written are assigned to us, we are happy to include co-authorship credits in the code so you can use this as a public portfolio reference for future clients.

There are a number of good reference designs to act as a starting point (links at end of this brief). It is fine to make use of code snippets permitted under their license terms if you check with us and of course provide proper attribution, however you will be expected not to just copy-and-modify an entire project as we want to think about the design from the ground up.

SKILLS
The successful applicant will:
- Have successfully delivered Windows drivers at a minimum and be very familiar with the WHQL testing process
- Be familiar with cryptographic principles and general Secure by Design principles (Microsoft Cryptographic API ideal but not essential)
- Have at some experience with Smartcards in Windows (PC/SC)
- Love beautiful code and take care in how how the project is structured, written and commented.
- Have excellent English verbal / written skills and be comfortable writing design and end-user documentation

LINKS
- OpenFIPS201: https://github.com/makinako/OpenFIPS201
- Minidriver Spec 7.07 - https://docs.microsoft.com/en-us/previous-versions/windows/hardware/design/dn631754(v=vs.85)
- Smartcard Minidriver Certification Specs: https://docs.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653312(v=vs.85)
- Reference - OpenPGP: https://github.com/vletoux/openpgpmdrv
- Reference - OpenEID: https://github.com/open-eid/minidriver
- Reference - OpenSC Minidriver: https://github.com/OpenSC/OpenSC/blob/master/src/minidriver