CryptoSys PKI Toolkit
Search:

CryptoSys PKI Toolkit

The CryptoSys PKI Toolkit provides you with an interface to public key cryptography functions from Visual Basic, VB6, VBA, VB.NET, VB2005, C/C++ and C# programs on any Win32-compatible system (W95/98/Me/NT4/2K/XP/2003/Vista).

Features | Function List | Manual | Examples | Download | Buy Now | Licensed Users | Support | FAQ | Programming | SAT Mexico | FirmaSAT | German Health Service | .NET Interface | Linux Version | Other Interfaces | Known Issues | Integrity | New security algorithms | Contact | Search

You can create and read both enveloped-data (encrypted) and signed-data Cryptographic Message Syntax (CMS, PKCS#7) objects, which you can use in S/MIME email messages; verify the digital signature in a signed-data CMS object; generate and manage RSA public and private keys; carry out "raw" RSA encryption and digital signing, make PKCS#10 certificate request files, and create and manage X.509 certificate files.

Other utilities included in the toolkit are the ability to generate message digest hash values using SHA-1, MD5, MD2, SHA-224/256/384/512; generate HMAC keyed-hash message authentication values, wipe files using 7-pass DOD standards, generate cryptographically-secure random numbers to the strict NIST SP800-90 standard, prompt for a password, and convert to and from base64- and hexadecimal-encoded formats.

New Release 2 February 2008
Released 2 February 2008:
New version 3.2: see New and Updated in latest version below.
New utility to create SAT Mexico digital signatures: see FirmaSAT.

Features

CryptoSys PKI uses a straightforward Win32 DLL which is compatible with all versions of 32-bit Windows (95/98/Me/NT/2K/XP/2003/Vista). There is no "COM", no "Active-X", and no requirement to "register" it with Windows to use it. The installed executable has a small footprint under 300 KB. Developers can easily distribute it with their projects made in Visual Basic, VBA, C, C++, VB.NET/VB2005 or C# (in fact, in any other programming language that will let you call Win32 API functions - see Extra Interfaces). For more information on how the RSA key data is stored and how the various functions work together, see RSA Key Formats. For some examples, see the Examples section below.

Note that the CryptoSys PKI Toolkit is totally independent from our original CryptoSys API product. The two packages do different things and do not require the other in order to work: see a Comparison of CryptoSys Features for a summary.

Feedback on the CryptoSys PKI Toolkit

Great product - just what I was looking for - bought a copy this morning.
Good work everyone!
It seems to be a very good and powerful toolkit
Thank you very much for the quick and detailed answer. It helped me a lot and now my program works pretty good, I have signed and encrypted my data successfully.
I wanted to let you know we [purchased] CryptoSys Software to include in an ERP project we are working on in Mexico. I had tried other digital signature products that required the certificate (with private) key first be stored in the Win certificate store and then I wasn't getting the correct signature. So, I guess there is something special about how you are using the .key file that is provided by SAT Mexico. I am very glad I came across your product. Thank you

Manual

Read the latest version of the manual page-by-page (first page 8 kB) - Contents - Function List - Index. The full manual in html format (647 kB) is included in the install distribution and can be found in the folder C:\Program Files\CryptoSysPKI, or you can download a zipped version (128 kB). Please check the Known Issues page. Users of the .NET C# and VB.NET/VB2005 interfaces can browse the on-line .NET help manual.

Download

Download a free Trial Version of the CryptoSys PKI Toolkit now. The install program and the product functions have been tested on W95, W98, NT4, W2K, XP and Vista systems. The functions have been tested using Visual Basic 6, Microsoft Office VBA (97 and 2003), Microsoft .NET Framework 1.0, Microsoft Visual C++ versions 5, 6, 7 and 8, and Borland C++Builder version 5.5.

The trial version download includes the full manual and test functions in Visual Basic, VB.NET, C and C#. Please read the licence conditions for the trial version. The latest version 3.2 was released on 2 February 2008. The trial period is 60 days from the date first installed on your system.

You need to have administrator rights when installing and uninstalling.

You can purchase a licenced version here. Existing licence holders can download the latest Developer Version here.

Support

For support, please send details of your problem (including programming language and operating system) using our contact page. Please also check the Frequently Asked Questions and Known Issues pages.

For assistance in programming in your language, please see the sections in the manual:

and the extra advice at Programming with the CryptoSys PKI Toolkit.

Examples

There is an example of each function in the manual and a series of tests in VB6/VBA, VB.NET/VB2005, C/C++ and C# provided with the installation download. These test programs should be in C:\Program Files\CryptoSysPKI.

See the PKI Examples Page for more details and more examples.

We get lots of queries asking how to use the RSA_Raw functions to do simple RSA encryption and signing. See Raw RSA Techniques for a guide to methods available in the latest version, including the new EncodeMsg and DecodeMsg functions introduced in version 2.6. If you want more detailed information about the different formats in which RSA keys can be stored, how the keys are used to create X.509 certificates, and all the different functions in the Toolkit that create, read and save the key data, you may find the information in RSA Key Formats useful. See also Importing an RSA key from known parameters.

Mexican Government SAT

The CryptoSys PKI Toolkit now includes full support for the private key files published by the Servicio de Administración Tributaria in Mexico. See SAT Mexico Example for some sample code. New 6 Aug 2007 New utility to create digital signatures in SAT v2.0 format and more now available. See FirmaSAT.

Security interface for the German health care insurances services

The CryptoSys PKI Toolkit complies with the requirements of the security interface for data exchange for the German health service version 1.5.

CryptoSys PKI Toolkit erfüllt alle Voraussetzungen, die notwendig sind, gemäß der Security Schnittstelle für den Datenaustausch im Gesundheitswesen Version 1.5, um mit den Datenannahmestellen der gesetzlichen Krankenkassen und dem ITSG-Trustcenter zu kommunizieren. Anders als bei DAKOTA stehen hier alle notwendigen Prozeduren in einer einzigen DLL zur Verfügung. Für das Erstellen der Zertifizierungsanfrage, dem Einlesen der Zertifizierungsantwort, dem Signieren / Verschlüsseln der Nachricht und der Speicherung der Daten (Zertifikate, privater Schlüssel, Annahme-pkcs.key) sind Beispiele in VB vorhanden. Sowohl der Zertifikatsantrag (PKCS#10 Format) beim ITSG-Trustcenter als auch die Datenübermittlung (PKCS#7 Format) an AOK, IKK, BKK, LKK, Knappschaft wurden erfolgreich durchgeführt. CryptoSys PKI Toolkit wird im Leistungserbringerverfahren und im Arbeitgeberverfahren erfolgreich eingesetzt.

Extra Interfaces

There are interfaces to or both C# and VB.NET programmers in the .NET Class Library. Dr Richard Koch has kindly provided interfaces to the toolkit in a variety of other programming languages. See Extra Interfaces.

Linux Version

There is a beta release of a Linux Version of CryptoSys PKI. The Toolkit is provided as a static library which can be compiled with your own source code.

Integrity

Check the integrity of your PKI software against our published checksums and message digests.

New security algorithms in Version 3.2

We have introduced a whole new set of combinations of new encryption algorithms in this version.

Increased combinations of options for algorithms:

FunctionCombinations BeforeCombinations Now
CMS_MakeEnvData124
CMS_MakeSigData26
X509_MakeCert37
RSA_SaveEncrPrivateKey
RSA_MakeKeys
524

That's an extra 50 alternatives for users; and another 50 set of acceptance tests for us to do, for which there aren't any decent test vectors yet. Use at your own risk.

We must add that most of these new additions are overkill for the average user. It's convenient for us to add all the combinations at once, but expect the standard CMS algorithms of rsaEncryption with SHA-1 and Triple DES for encryption, and sha1WithRSAEncryption for signatures to stay as a standard for several years to come. Most other applications will not accept the new AES/SHA-2 algorithms yet, so check with your recipients whether they support them. We note that signatures using SHA-256 are starting to be required and we expect AES-128 will become a commonplace requirement instead of Triple DES soon. Otherwise, most other options (AES-192/256 and SHA-384/512) should be kept in reserve. Please consult your security adviser for the latest recommendations.

Remember that it's the overall security of your entire process that matters, not that you've decided to use AES-256 and SHA-512 just because they are the strongest items on the menu. A security level of 128 bits can be satisfied with AES-128 and SHA-256 and an RSA key of 3072 bits. Any keys and random numbers used should be to the same security level (which is harder to do than you might think). And a password of the same strength needs to be approximately 98 characters long! See NIST Special Publication 800-57 Part 1 section 5.6 for more details on consistent security levels.

When we are dragged up to the cryptography equivalent of the International Court of Justice in The Hague on charges of wilfully giving inexperienced users the ability to use cryptographic algorithms they couldn't hope to use properly, we shall plead the usual excuse that we did warn them and point to the weasel words we included in the small print of the user license :-)

Functions available in the CryptoSys PKI Toolkit:-

CMSRSA KeysRaw RSAX.509 CertificatesPFXBlock CipherHash DigestsHMACRNGEncodingMiscellaneousNew

* New in Version 3.2

CMS functions

RSA public key functions

Raw RSA functions

X.509 certificate functions

PFX Functions

Block Cipher Functions

Message digest hash functions

HMAC functions

Random number generator functions

Encoding conversion functions

Miscellaneous utilities

* New in Version 3.2

New or Updated in the latest versions

Version 3.2:

(2 February 2008)

Version 3.1:

(2 August 2007)

Version 3.0:

(27 March 2007) Thanks to all users who have suggested imrpovements and in particular to Bernd Rech for his suggestions, advice and help.

For more information, please contact us.

This page last updated: 3 May 2008