Cryptography software tools for Visual Basic and C/C++/C# developers

The CryptoSysTM range of cryptographic products provide a full set of developer tools to secure your e-Commerce applications in Visual Basic and C/C++/C# and ASP.

Search:

CryptoSys API cryptographic software CryptoSys PKI Toolkit

CryptoSys API | CryptoSys PKI | Product Comparison | FAQ | Search | Contact us

Locations of visitors to this page
CryptoSys API Quick Index

Introduction | Read the API Manual | Examples | Download API Now | Purchase API | Licensed Users | Feedback | Support | ActiveX Interface | .NET Interface | Linux Version | Delphi | Other Interfaces | Integrity | Other Products | Contact us


Check out the latest 2009 releases of our CryptoSys API Library Version 4.2 released 19 March 2009 and CryptoSys PKI Toolkit Version 3.3 released 21 February 2009.


CryptoSys Products

Our cryptography products only include well-known cryptography algorithms recommended by organisations such as NIST or ISO, or those acknowledged by experts as being reliable. We avoid anything with any sniff of a current patent attached to it.

CryptoSys API CryptoSys API The original CryptoSys API provides four of the major block cipher algorithms: AES, DES, Triple DES and Blowfish; a stream cipher compatible with RC4; key wrap with AES and Triple DES; secure message digest hash algorithms SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, MD5 and MD2; the HMAC and CMAC message authentication algorithms, data compression, and a secure random number generator. Includes interfaces for Visual Basic, VBA, VB.NET/VB2005/8, C/C++, C# and ActiveX/COM/ASP. More details below. New Version 4.2 Version 4.2 released 19 March 2009 including interfaces to VB.NET vb.net, C# C# and ActiveX ActiveX/COM/ASP. There is also a Linux Linux Version available.
CryptoSys PKI CryptoSys PKI Our CryptoSys PKI toolkit features RSA public key encryption, digital signatures, X.509 certificate handling, and cryptographic message syntax (CMS) objects that can be used with S/MIME including rsaEncryption and RSA-KEM. Full details on the CryptoSys PKI Toolkit page. Includes message digest computation with SHA-1/256/224/256/384/512/MD5/MD2, HMAC message authentication codes, secure random numbers, and base64 conversion functions. Interfaces are provided for Visual Basic, VBA, VB.NET/VB2005/8, C/C++, C# and more. Version 3.3 issued 21 February 2009 including interfaces to VB.NET vb.net and C# C#. A Linux Linux Version is also available. New 6 Aug 2007A new utility to create SAT Mexico digital signatures is available: see FirmaSAT.

See a comparison of our CryptoSys range of products, Frequently Asked Questions and legacy products.


CryptoSys API


The CryptoSys API is a developer's toolkit of fast, efficient cryptographic functions in Visual Basic, VBA, VB.NET/VB2005/8, C/C++, C#, and ASP. It can be called from VBA applications like Access, Excel and Word. It provides four of the major block cipher algorithms, a stream cipher algorithm, key wrap, secure message digest hash algorithms, the HMAC message authentication algorithm, the CMAC algorithm, a data compression facility, a password-based key derivation function (PBKDF2), a secure random number generator and other utilities. If you need to do public key cryptography, see our alternative product CryptoSys PKI Toolkit.

Read the API Manual | Examples | Download API Now | Purchase API | Licensed Users | Feedback | Support | Known Issues | ActiveX Interface | .NET Interface | Linux Version | Other Interfaces | RNG algorithm | Integrity | Other Products | FAQ | Search | Contact us

New Version 19 March 2009:
New version 4.2 with VB.NET, C# and ActiveX interfaces. See New and Updated in latest version below.

Feedback on CryptoSys API

I downloaded the Personal package about two hours ago, and my application is up and running with no problems! You have done a great job.
  -Anthony W.

First thanks for the great documentation with your product. I had spent three days trying some other solutions to my HMAC problem, and 1 hour after downloading your trial, my problem was solved.
  -James S.

For developers, your product is great.
  -Mark H, US Navy

Thanks for putting together such a great and easy to use library. Your product is great and support is excellent as well.
  -Mark W.

Thanks for an awesome product!
  -James H.

Thank you very much. Your software worked great for our project.
  -Chris C.

Thanks for your quick response. And thanks for Cryptosys API and other related tools. You have done a great job. I like the fact that Cryptosys comes in the form of a DLL whose cipher algorithms can be called from VB and C/C++.
  -Jalal R.

Thanks for your response...truly stellar, and I appreciate your company's great product.
  -Steve J.

One finds that rarely! So clear information and so clean program code: ACCESS VBA, CryptoSys API, Cryptography generally. Thank you!
  -Felix S.

Thank you very much. This answers our questions and we have everything working correctly. Your support was very timely and precise. We are very pleased to have worked with you.
  -Dan B.

The CryptoSys API was easy to master and provided ARMP with a fast solution to our Smart Card encryption software developed with Visual Basic.
  -Army Recreation Machine Program.

The block cipher algorithms in the CryptoSys API are:

The one-way message digest hash functions the Secure Hash Algorithm (SHA-1), the stronger SHA-256 version, and SHA-224, SHA-384, SHA-512, MD5, MD2 and RIPEMD-160. The stream cipher (PC1) is fully compatible with RC4. The random number generator complies with the Federal Information Processing Standards Publication FIPS PUB 140-2 Security Requirements for Cryptographic Modules. Data compression functions are included based on Jean-loup Gailly's excellent 'zlib' product. We suggest one way of using compression with CryptoSys and show how to store the compressed plaintext in a simple packet structure before encryption. Another technique of compression and encryption is shown in our demonstration VB6 project of MySecret with CryptoSys API.


New Random Number Generator (RNG): Version 4 of CryptoSys API includes a new improved thread-safe random number generator (RNG) based on the strict NIST SP 800-90 standard. This is compliant with FIPS PUB 140-2. To that end, we publish the full details of the random number algorithms used in CryptoSys. Your comments and review are welcome.


The CryptoSys API functions allow you to encrypt, decrypt, hash and authenticate data in a variety of formats, as well as generating secure random keys to use in your applications. Your input data can generally be in a byte array, encoded as a hexadecimal string, or in a file. The functions can process the data in a one-off manner, or, for longer inputs, you can call the "update" functions sequentially after initialising. The block cipher algorithms work in Electronic Codebook (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB) and Counter (CTR) modes. AES with Galois/Counter Mode (AES-GCM) is provided. You can generate random keys and nonces in a secure manner. All functions are thread-safe. See the Examples page.

Features

Changes in Version 4.2

Changes in Version 4.1

Changes in Version 4.0

What do I get?

There are over 200 cryptographic functions in the CryptoSys API. The installed footprint is relatively small, about 450 kB. It comes with an easy to use installation program, demo projects, sample test source code, and a complete manual with examples.

How does it work?

The CryptoSys API uses a straightforward and independent Win32 DLL which is compatible with all versions of 32-bit Windows (95/98/Me/NT4/2K/XP/2003/Vista). There is no "COM", no "Active-X", and no requirement to "register" it with Windows to use it. The products do not use or rely on the Microsoft Cryptographic API (CRAPi [sic]) cryptographic providers in any way. Developers can distribute to their clients by simply copying a single file into the correct directory. For those users who do want ActiveX capability so they can call it from an ASP page, there is an ActiveX Interface.

Linux Version: There is also a beta Linux Version with a static library which you are free to test and use on your own Linux system. We created the static library on a Fedora Core 1 system and we've tested it on other Red Hat and Ubuntu systems without problems. If it compiles OK and the detailed tests run without error then we are pretty confident that it will work for you.

How do I get it?

There are three editions available. All have identical functions.

  1. The Personal Edition is free for personal use on a stand-alone computer.
  2. The Server Trial Edition is also free and allows you to test the functions with an ActiveX interface on IIS and ASP applications for 30 days.
  3. The licensed Developer Edition works without restrictions in any environment, including IIS/ASP.

Please test the CryptoSys API before purchasing using either the Personal or Server Trial edition.

All editions include the full manual and test functions in Visual Basic, C, VB.NET and C#. The Server and Developer Editions include an ActiveX interface which can be called from ASP pages and other COM applications. The source code for the ActiveX and DotNet Class Library DLLs is included.

The install program and the product functions have been tested on W95, W98, NT4, W2K and XP systems. The functions have been tested using Visual Basic 6, Microsoft Office VBA (97 and 2003), Microsoft .NET Framework 2.0, Microsoft Visual C++ versions 5, 6, 7, 8 and 9, and Borland C++Builder version 5.5.

What's the difference between the Personal and Server Editions?

Both the Personal and Server Editions have the same core cryptographic functions except the ActiveX interface does not work with the Personal Edition. The Personal Edition is for use on a stand-alone personal computer. It does not expire but has a pop-up when it is first used. The Server Edition is designed for use on both a server in an IIS/ASP environment or on a stand-alone or networked computer. Either edition may be used for evaluating the licensed Developer Edition, which works in any environment.

Hint: If for some reason you are having problems getting the Personal Edition to work, try installing the Server Edition instead.

Using with Microsoft Excel

See Using CryptoSys API with Microsoft Excel for an example of how to call a function in CryptoSys API from an Excel spreadsheet.

Delphi

The functions in CryptoSys API can be called from a Delphi program in the same way you would call Win32 API functions. You need to provide a function statement with the correct parameters and types, and an external reference to 'diCryptoSys.dll'.

Sebastian Jäschke provided this simple interface to Delphi showing how to call the SHA2_FileHexHash function to generate the SHA-256 digest of a file.

Humberto Souza has provided a Delphi program showing how to encrypt and decrypt using the BLF_HexMode function together with conversions to and from base64 and hex encoding for strings. Humberto's full code and executable is in Delphi_example1.1.zip (216 kB) (we have not tested this code). Last updated 2008-09-18.

What interfaces are available?

The core product can be accessed directly using the classic Visual Basic, VBA, C and C++ programming languages. There are interfaces included in the installation download for .NET (C# and VB.NET) and ActiveX/COM. Browse the on-line .NET help manual. A beta Linux version is also available.

Writing your own interface

Hint: If you are considering writing an interface to CryptoSys API, please note that the DLL is a simple Win32 DLL not an ActiveX one, and that only 32-bit signed integers (LONG) and ANSI strings (LPSTR) are used throughout. You call the functions in the same way you call Win32 API functions like GetUserName. Refer to the sections of the manual on Return Values and Type Conversions.

Delphi

See above.

Team Developer

Jeff Luther has produced an interface using Team Developer (TD v1.5). See Jeff's Code Samples and scroll down to find CRYPTOGRAPHIC SAMPLES.

Interfaces to CryptoSys PKI

Users have sent in interfaces to the API's sister product CryptoSys PKI in PowerBuilder, the D programming language, Stony Brook Iso Modula-2 and PowerBASIC. Although not directly created for the CryptoSys API, those interfaces should give you enough hints on how to create an interface in your language. See Extra Interfaces.

Do I have a valid version?

Check the integrity of your CryptoSys API software.

How do I create keys and manage padding when encrypting?

Please refer to our brief introductions to Using Keys in Cryptography and Using Padding in Encryption.

Does CryptoSys API do Public Key Cryptography?

No. For public key cryptography, see our CryptoSys PKI Toolkit.

Legacy products

The CryptoSys Blowfish and CryptoSys Hash products have been withdrawn. All functions in both products are available in CryptoSys API, which is fully supported and has interfaces for C# and VB.NET programmers. Existing licence holders can still Download a Developer Version of CryptoSys Blowfish and Download a Developer Version of CryptoSys Hash.

CryptoSys Encode version 2.0 released 17 August 2003 is still available for free.

More Cryptographic Code

For free cryptographic code written by David Ireland, including Blowfish in Visual Basic, a full set of multiple-precision arithmetic routines written in ANSI C, base64 encoding; CRC-16, CRC-24 and CRC-32 routines; the MySecret Blowfish utility, and more, visit DI Management's Cryptography Software Code Page.

Contact

For more information, please Email Us.

This page last updated: 11 April 2009