Hello , my name is Dmitry Basko. I work as a software
programmer and have experience in WIN32 system/application programming,
smartcard technology, data and copy protection, device driver development.
In past I worked as electronics engireer and familiar with programming
of MCU, computer harware and its peripherals. I worked in Russia,
Belarus, Germany. I decided to share my modest experience with other
developers who are interesting in it. The following projects are
available:
PC/SC driver,
VxD (simulator of secure token), GINA library, PKCS#11 library,
WDM
driver for PnP serial port (RS232) based device, library for
decoding DER encoded X509 certificates,
implementation
of DES (56 bits) for 8 bits microcontroller and etc. Each time
when I started a new complicated project, which I could not understand
myself (at least from the beginning) I always tried to find someone,
who could give me a hint, how it should be done. Really, sometimes
it is not enough only reading standards and MSDN; it will help you
only partly. Perhaps you will be able to convert the obtained knowledge
from these sources in to the real implementation, but it can be
a very time consuming process in comparison with another way, the
way when you can ask somebody, more experienced about small assistance
and explanations of the most important ideas for the project. And
I was lucky - I could always find such people. It is a pity, I cannot
remember all their names, but anyway I am very grateful for their
help. Now I hope I can be useful for others.
Sometimes it is not possible to publish the source code of the certain
projects - it is normal, because this code is a part of commercial
products and such publications could bring harm to my former or
current employer. Sometimes it is possible, because this source
code shows only the main idea of the project and does not contain
any company (employer) specific features and implementations. In
this case, the publishing is safe and at the same time, this information
can be useful for other developers.
It was a way how I created PC/SC compatible driver - a guy from
Belgium described for me the mainstream of this project and it was
enough for me to understand how could be done the certain implementation
of this project.
There is no doubt that it is possible to find in the Internet information
almost about everything, but sometimes I met exceptions from this
rule. Once, I was interested in obtaining knowledge about development
of PnP (Plug and Play) compatible peripheral devices. I was quite
surprised than I could find almost nothing. Only a little bit information
from Microsoft (certain specifications). Anyway, later a got all
necessary information with help of another developer, but this case
proved me still one time, that it is a very important to share knowledge
and experience with others. This is a reason, why I am going to
use GNU GPL (General Public License) , where it is applicable or
relase projects into public domain.
The preparation of all projects to be published definitely takes
some time; I will try to lay out my projects gradually. Let's finish
at this place.