Deimos-like binding to libopensc (reduced extend required by external modules [driver/SM])
|Copyright||Copyright © 2017, Carsten Blüggel|
|Registered by||Carsten Blüggel|
To use this package, put the following dependency into your project's dependencies section:
D language: Deimos-like binding to headers of libopensc.so/opensc.dll, supporting the current 2 last/rolling OpenSC releases (i.e. version 0.16.0, released June 2016, and the previous 0.15.0, released May 2015).
category: Development Library | D language binding | Deimos header only binding (dub configuration "deimos")
category: Development Library | Development support library (with the difference to "deimos", that it must be compiled to make use of some additional toString methods; dub configuration "toString")
The OpenSC framework allows for providing e.g. a Smart Card Driver (and/or Secure Messaging/PKCS#15 module) as external shared object/DLL(s), if opensc.conf is configured accordingly.
This binding allows to implement in the D programming language.
Not all OpenSC header content is covered, but what is required/useful for external modules and at least what is accessible from libopensc.so/opensc.dll.
(There are a few acos564 specific extensions to OpenSC content in files cards.d, cardctl.d and iso7816.d, all in scopes version(Haveacos564)...: Just disregard that like the compiler will do, if Your interest is in other than driver acos564).
There are multiple reasons why code using this binding has to tell at compile time, whether it's going to be linked to and call libopensc binary version 0.15.0, or the latest version 0.16.0. The version issue is managed by a version identifier, that has to be adjusted manually if not linking against the latest libopensc.so/.dll. More about this and other version identifiers in info/options.
The operating system support is limited to those OSs I have/know and can test (64 bit CPU: Linux/Windows, including a DMD-Win32 build with -m32), but may work for others too.
The static import libraries supplied: See also comments in dub.json.
Import libraries for system's libeay32.dll are supplied here out-of-band for completeness, as long as dependency package openssl lacks this support.
Files in lib/windows-x86_64 where generated by VS tools from *.dll.
Files in lib/windows-x86-dmd are for the DMD-compiler's Windows default -m32 build only, generated by implib /s opensc.lib opensc.dll (-m32mscoff would require still different files)
http://www.digitalmars.com/ctg/implib.html, Download implib: http://ftp.digitalmars.com/bup.zip
The OpenSC framework, when loading an external module, will query the module for it's version and unload it immediately, if that version reported doesn't match the one of OpenSC's binary.
This is a precaution to make sure, the developer is aware of possible API changes and took care for them before updating the driver/SM/PKCS#15's module version to match again.