Home | Contact Us | Company Profile | Products | Services | Links


Products

  Network Protocol Libraries
 ▪ Communications Libraries
  Communications Software
  Security and Encryption
  Show all products
 

Services

  Software Development
  Area of Expertise
  Recent Projects
 

About Us

  Company Profile
  Customer List
 ▪ Partners
 ▪ Become our partner
 ▪ Press Releases
 ▪ Contact Us
 

Useful Information

  Industry Links

Current Customers

  • Bumicom Telecom BV (Netherlands)
  • AMS Imaging (Australia)
  • Agilent Technologies (Singapore)
  • Ingersoll Rand (Netherlands)
  • Sodexho RestoranServisleri A. S. (Turkey)
  • Ward Solutions Ltd. (Ireland)

  •  Download Free Evaluation
    Download Documentation
    Download License Terms

     

    Description  |  Download Eval Version  |  User Manual  |  License Terms  |  FAQ  |  Buy Now  |  Contact Us

    HsCipherSDK Encryption Library

      HsCipherSDK FAQ
     

    PRICES AND ORDERING:


     ORDER NOW
     

    what is included in HsCipherSDK?

     HsCipherSDKdll.dll - standard DLL module for use from C / C++
    HsCipherSDKvb.dll - standard DLL module for use from Visual Basic applications
    HsCipherSDKax.dll
    - ActiveX (COM) dll for use from C / C++, Visual Basic or other languages supporting ActiveX.
    HsCipherSDKdllcs.dll - C Sharp dll wrapper for use from C Sharp applications.
    HsCipherSDK.hlp - Windows documentation file (this file)
    HsCipherSDKmanual.pdf
    - User Manual in PDF format
    HsCipherSDK_TestAXvb - Visual Basic test application with source code using ActiveX HsCipherSDKax.dll
    HsCipherSDK_TestAXvc - Visual C test application with source code using ActiveX HsCipherSDKax.dll
    HsCipherSDK_TestVC - Visual C test application with source code using standard DLL HsCipherSDKdll.dll
    HsCipherSDK_TestVB - Visual Basic test application with source code using standard DLL HsCipherSDKvb.dll
    HsCipherSDK_DemoCS - C Sharp test application with source code using C Sharp DLL wrapper HsCipherSDKdllcs.dll

    FULL SOURCE CODE in C (plain C style), including all core cryptographic libraries

    limitations
    in evaluation version:

    There are several limitation in the evaluation version of HsCipherSDK library, which are removed from the full version:

    Every time evaluation version of HsCipherSDK library is loaded it displays a reminder message (nag screen), which requires a user to click Okay to continue.

    Evaluation version has a built it time limit. After evaluation period expires, the library will fail to load and will only display the corresponding message

    No source code is supplied with free evaluation version. The full source code is supplied when you purchase HsCipehrSDK

    RELEASE HISTORY

      November 2006, v1.0 - Initial first release

      December 2008, v1.1 - Added support for SHA-256

      October 2009, v1.2 - Added C Sharp interface

    API SUMMARY

      HsCipherGetErrorStr
      HsCipherHexBuf2Bin
      HsCipherBufBin2Hex
      HsCipherBufferEncrypt
      HsCipherBufferDecrypt
      HsCipherFileEncrypt
      HsCipherFileDecrypt
      HsCipherBufferHashInit
      HsCipherHashNextBlock
      HsCipherHashGetResult
      HsCipherHashFullBuffer
      HsCipherHashFile

    overview: HsCipherSDK is an Encryption Library providing an API to a suite of symmetric key cryptographic algorithms and one way hash digital signature algorithms. The library includes the following block and stream cipher modules:

    AES (Advanced Encryption Standard) - FIPS 197
    DES and Triple DES (Data Encryption Standard) - FIPS-46-1, FIPS-46-3
    ARC4 (Alleged RC4) CAST-128 (a.k.a CAST5) - RFC 2144
    Blowfish algorithm 
    Twofish algorithm
    MD5 message digest algorithm - RFC 1321
    SHA-1 (Secure Hash Algorithm) - RFC 3174
    SHA-256 (Secure Hash Algorithm) - FIPS 180-2

    HsCipherSDK includes a standard DLL for use from C / C++, standard DLL for use from Visual Basic, C Sharp DLL wrapper for use from C Sharp and ActiveX DLL (COM object) for use from Visual C, Visual Basic or any other language supporting activeX. HsCipherSDK itself is fully written in C (ANSI C style) and the source code is included when you purchase HsCipherSDK Source Code License.

    HsCipherSDK allows the calling user application to perform the following operations:

    Encrypt and decrypt memory buffers with selected algorithm and key
    Encrypt and decrypt disk files with selected algorithm and key
    Digitally sign buffers using one of selected hashing algorithms
    Digitally sign disk files using one of selected hashing algorithms

    HsCipherSDK Architecture

    Example Invocation (using ActiveX DLL) from Visual C
     

     
    #include "HsCipherRc.h"
     #include "HsCipherAlg.h"
     #import "HsCipherObj.dll"
     
          CoInitialize(NULL);
          HsCipherLib::IHsCipherPtr pCryptoSdk;
          pCryptoSdk.CreateInstance("HsCipherSDK.Cryptolib");
          pCryptoSdk->BufferEncrypt(HS_ALG_AES, TRUE, (long)key, 128, (long)pt, (long)ciphertext, 16, &outlen, &rc);

     

    Example Invocation (using ActiveX DLL) from Visual Basic
     

     Rem From Visual Basic go to Project menu -> references -> browse and add HsCipherSDKax.dll
     Dim iHsCipher As HsCipherLib.iHsCipher

     Set iHsCipher = CreateObject("HsCipherSDK.Cryptolib")
     iHsCipher.BufferEncrypt HS_ALG_AES, 1, VarPtr(key(1)), 128, _
     VarPtr(plaintext1(1)), VarPtr(ciphertext(1)), 16, outbuf_len, rc
     

    Example Invocation (using Standard DLL) from Visual C

     
     #include
    "HsCipherSDK.h"
     #include "HsCipherRc.h"
     #include "HsCipherAlg.h"

     HINSTANCE hinstLib;
     BufferEncryptFn BufferEncrypt;

     hinstLib = LoadLibrary("HsCipherSDKdll.dll");

     BufferEncrypt = (BufferEncryptFn) GetProcAddress(hinstLib, "HsCipherBufferEncrypt");

     rc = BufferEncrypt(HS_ALG_AES, TRUE, key, keylen, srcbuf, destbuf, buflen, &outbuf_len);

     FreeLibrary(hinstLib);
     

     Example Invocation (using Standard DLL) from Visual Basic


     Public Const HS_ALG_AES As Long = 0

     Declare Function HsCipherBufferEncrypt Lib "HsCipherSDKvb.dll" _
         (ByVal algorithm As Long, _
         ByVal set_key As Long, _
         ByRef key As Any, _
         ByVal keysize_bits As Long, _
         ByRef inbuf As Any, _
         ByRef outbuf As Any, _
         ByVal inbuf_len As Long, _
         ByRef outbuf_len As Any _
     ) As Long

     HsCipherBufferEncrypt HS_ALG_AES, 1, ByVal VarPtr(key(1)), 128, _
     ByVal VarPtr(plaintext1(1)), ByVal VarPtr(ciphertext(1)), 16, ByVal VarPtr(outbuf_len)
     

    Example Invocation (using C Sharp Wrapper DLL) from C Sharp


      int rc = 0;
      int outbuf_len = 0;
      StringBuilder hex_src = new StringBuilder(textBoxInbuf.Text);
      byte[] bin_src = new byte[256];

      StringBuilder hex_key = new StringBuilder(textBoxKey.Text);
      byte[] bin_key = new byte[256];

      byte[] outbuf = new byte[256];
      StringBuilder outbuf_hex = new StringBuilder(256);

      String errorString;
      int i;

      // convert source buffer from hex ascii into binary buffer
      rc = HsCipher.HsCipherHexBuf2Bin(hex_src, bin_src, hex_src.Length);
      if (rc == 0)
      {
            System.Windows.Forms.MessageBox.Show("Conversion of src buffer from hex to bin array failed");
            return;
      }

      // convert key from hex ascii string into binary buffer
      rc = HsCipher.HsCipherHexBuf2Bin(hex_key, bin_key, hex_key.Length);

      rc = HsCipher.HsCipherBufferEncrypt(
               comboBoxBufAlg.SelectedIndex, // algorithm id
               1,                                        // set key
               bin_key,
               ((hex_key.Length / 2) * 8),      // key size in bits
               bin_src,                                // source buffer
               outbuf,                                 // output buffer
               (hex_src.Length / 2),              // length of source buffer
               ref outbuf_len);                     // length of output buffer

      if (rc != HS_CIPHER_RC_OK)
      {
              errorString = String.Format("HsCipherBufferEncrypt failed, RC = 0x{0:x2}", rc);
              System.Windows.Forms.MessageBox.Show(errorString);
              return;
      }
     

    Buy Now  |  Download Free Evaluation  |  Download Documentation

    Copyright (c) 2005-2009. Hillstone Software. All rights reserved.