Ultra Shareware

Do you want to develop application with advanced security features such as encrypting, decrypting and digital signiture? Do you want to add hash checksum function to your document? Do you want to encrypt user information and store into database and decrypt the blob from database later? Do you want to use advanced crypto technique in your web service applications? All these things now can be easily achieved by using our Ultra Crypto Component.

Ultra Crypto Component is a standard ActiveX component for encrypting and decrypting both strings and binary data. It can be easily integrated into applications written in languages that support ActiveX Component such as Visual C++, Visual Basic, Delphi, C++ Builder, .Net languages, Java, Scripts like Perl, Php, Python.

Key Benefits:

  • Support standard encryption and decryption algorithm like RSA, RC4, DES, AES etc

Ultra Crypto Component supports encryption or decryption algorihtm with industry strength like RC2, RC4, DES, 3DES, 3DES2, AES128, AES192, AES256. The encryption and decryption algorithm is implemented by underline crypto service providers. So the algorithms supported will be increased as the security requirements advance.

Ultra Crypto Component support to encrypt and decrypt string, data file or in-memory blob (binary data). The encrypted or decrypted result can be return as hex string, binary blob.

Free Download & Try Now Try it before purchase without any risk!
Buy Now
. Get the registration code instantly. $149.95 For Single Developer License.

  • Support standard hash algorithm like MD5, SHA

Ultra Crypto Component also supports the typical hash algorithm like MD2, MD4, MD5, SHA, SHA256, SHA384, SHA512. This enables the user to easily calculate the hash value of a file, string or a binary buffer. The value can be used to validate the data completeness. More importantly, the hash algorithm can be combined with a private key to create digital signature to futher improve security.

If you still hesitate, download Ultra Crypto Component and try out for FREE!

Highlight Features:

  • Support encryption and decryption of file
  • Support encryption and decryption of ANSI and unicode string
  • Support encryption and decryption of memory buffer
  • Support calculation of hash on string, file or memory buffer
  • Support digital signature creation and validation
  • Support state of art crypto algorithm like RC2, RC4, MD2, MD4, MD5, SHA, SHA256, SHA384, SHA512, DES, 3DES, 3DES2, AES128, AES192, AES256
  • Import and export key in plain or raw bits
  • Demos in VBScript, ASP, ASP.Net, C#, VB.Net, Php, VB6, Delphi, Coldfusion and BCB are avaiable
  • .Net ready component
  • Support 64 bit (x64) Windows

Version:

2.0.2013.612

Example:

'Here is a quick example that showing how to encrypt and decrypt string with the component.

Dim crypto
Set crypto = CreateObject("CryptoX.CryptoObj.1")

crypto.ProviderIndex = crypto.GetProviderIndexByName("Microsoft Base Cryptographic Provider v1.0")

'Create a context named test, under locale machine registry, don't create new key pair
Set context = crypto.AcquireContext("test", 1, 0)

Set key = context.GenKeyFromPassword("MyPass", crypto.ConstStrToID("MD5"), crypto.ConstStrToID("RC4"), 0)

Str = "This is my test"

'Encrypt/decrypt a string in memory
set blob = key.EncryptString(Str)
WScript.Echo "Encrypted: " + blob.HexString
WScript.Echo "Decrypted: " + key.DecryptString(blob)

'Encrypt/decrypt a file

key.EncryptAFile "test.txt", "test.enc.txt"
key.DecryptAFile "test.enc.txt", "test.dec.txt"

 

Keywords:

encryption, decryption, encrypt string, decrypt string, encrypt file, decrypt file, calculate hash, RSA, DES, RC2, RC4, Crypto API

System Requirements:

Designed for Windows 98/2000/XP/Vista

Manual

Ultra Crypto Component has implemented several COM object for easily using. The following will list the properties or methods by objects:

 

Crypto Object (CryptoObj)

CryptoObj object is the main COM object. It can be used to enumerate the crypto service providers (CSP) installed on the machine. It is also used to create other objects defined by the component.

LONG ProviderIndex

Description: Property. get or set the current crypto provider index.

LONG GetProviderCount

Description: Get the crypto provider count. A machine could install many CSPs.

String GetProviderName(LONG dwIndex)

Description: Get the crypto provider name given the crypto provider index (start from 0 to countofprovider - 1)

LONG GetProviderIndexByName(String strProviderName)

Description: Get the provider index given the crypto provider name

String GetProviderType(LONG dwIndex)

Description: Get the type of the crypto provider given the index

ContextObj AcquireContext(String strContainerName, LONG bMachineKey, LONG bCreateNewKey)

Description: create the context object
strContextName: the name of the container. A crypto container holds RSA key paris to do encryption or decryption or signature verification.
bMachineKey: a boolean flag to indicate if the context is for current windows user or all users.
bCreateNewKey: a boolean flag to indicate if creating new RSA key pair or not.

DeleteContext(String strContainerName, LONG bMachineKey)

Description: Delete the crypto container created by AcquireContext
strContextName: the name of the context. See more about context object below
bMachineKey: a boolean flag to indicate if the context is for current windows user or all users.

BlobObj CreateBlob()

Description: Create a blob object. See more about blob below

LONG ConstStrToID(String str)

Description: Convert the string recognized by the component into correspondent ID. Current supported string are below:
Algorithm type: RC2, RC4, MD2, MD4, MD5, SHA, SHA256, SHA384, SHA512, DES, 3DES, 3DES2, AES128, AES192, AES256
Blob type: SIMPLEBLOB, PUBLICKEYBLOB, PRIVATEKEYBLOB, PLAINTEXTBLOB,
Block cipher mode: CBC, ECB, OFB, CFB, CTS

SetCode(String strCode)

Description: Call this method to set the registration code to the component so as to unlock the trial version

DoLogonUser(String strUser, String strDomain, String strPasswd)

Description: Call this method to impersonate the current component work with the identity of the given user

DoRevertToSelf()

Description: Revert back to the account before calling DoLogonUser

 

Context Object (ContextObj)

ContextObj object denotes a crypto context. The object can be used to create the encryption/decryption object like KeyObj or create the hash object.

String ContainerName

Description: Property. Get the crypto container name

String ProviderName

Description: Property. Get the crypto provider name

KeyObj GenKey(LONG nAlg, LONG nBits)

Description: Generate session key with the given algorithm id and bits. The algorithm type that can be used is depending on the CSP currently being used. The table shows the algorithms provided by the Microsoft CSPs.

Provider Name Algorithm supported OS
Microsoft Base Cryptographic Provider v1.0

MD2(128), MD5(128), MD4(128), SHA(160)

RC2(40), RC4(40), RSA(384-512)

Windows 2000/98/95/XP
Microsoft Enhanced Cryptographic Provider v1.0

MD2(128), MD5(128), MD4(128), SHA(160)

RC2(128), RC4(128), DES(56), 3DES(112), 3DES2(168) ,RSA(1024-16384)

With Internet Explorer 128 bit support
Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype) AES(128, 192, 256) Windows XP, 2003
Microsoft Enhanced RSA and AES Cryptographic Provider SHA(256, 384, 512) Windows 2003


nAlg: Algorithm type index. Could be RC2, RC4, DES, 3DES, 3DES2, AES128, AES192, AES256.
nBits: The length of the key in bits. Depending on the algorithm. Default bit length is 0

HashObj CreateHash(LONG nHashAlg)

Description: Create the hash object
nHashAlg: Algorithm type index. Could be MD2, MD4, MD5, SHA, SHA256, SHA384, SHA512

KeyObj GenKeyFromPassword(String passwd, LONG nHashAlg, LONG nAlg, LONG nBits)

Description: generate key from password with the given hash and encryption algorithm
passwd: the password given by user
nHashAlg: Algorithm type index. Could be MD2, MD4, MD5, SHA, SHA256, SHA384, SHA512
nAlg: Symmetric algorithm type index. Could be RC2, RC4, DES, 3DES, 3DES2, AES128, AES192, AES256.
nBits: The length of the key in bits. Depending on the algorithm. Default bit length is 0

KeyObj GetUserKey(LONG bExchangeKey)

Description: get the current RSA key in the container
bExchangeKey: a boolean flag to indicate if the RSA key is for key exchange or signature.

KeyObj ImportKeyFromFile(KeyObj key, String file, LONG nType)

Description: import key from file
key: the key object that is used to decrypt the key in the file
file: the file path
nType: could be SIMPLEBLOB(1), PUBLICKEYBLOB(6), PRIVATEKEYBLOB(7)

KeyObj ImportKeyFromBlob(KeyObj key, BlobObj blob, LONG nType)

Description: import key from blob
key: the key object that is used to decrypt the key in the file
blob: the blob object. See below for BlobObj
nType: could be SIMPLEBLOB(1), PUBLICKEYBLOB(6), PRIVATEKEYBLOB(7)

KeyObj GenPrivateExponentOneKey()

Description: create the exponent one key object to export key in plain without encryption

KeyObj ImportPlainSessionKeyBlob(BlobObj blob, LONG nAlg, LONG nReserved)

Description: import the plain or raw key bytes into a session key object

BlobObj ExportPlainSessionKeyBlob(KeyObj key)

Description: export the plain or raw bytes of a session key

Key Object (KeyObj)

The key object can be used to encrypt and decrypt a string, file or a in-memory blob object. Or it can be used to export key for storage.

LONG Mode

Description: Property. Get or set the cipher mode which could be CBC(1), ECB(2), OFB(3), CFB(4), CTS(5)

LONG Padding

Description: Property. Get or set the padding of the cipher, could be 1 (PKCS#5 Padding), 2 (Random Padding), 3 (Zero Padding)

LONG EffKeyLen

Description: Property. Get or set the effective key length

LONG BlockLength

Description: Property. Get the block length of the cipher

BlobObj IV

Description: Property. Get or set the initialization vector which has the length of BlockLength

BlobObj EncryptString(String str)

Description: encrypt the input string and put the encrypted data into a blob object

BlobObj EncryptAnsiString(String str)

Description: encrypt the input ansi string and put the encrypted data into a blob object

String DecryptString(BlobObj blob)

Description: decrypt the input blob into a string

String DecryptAnsiString(BlobObj blob)

Description: decrypt the input blob into an ansi string

BlobObj DecryptBlob(BlobObj blob)

Description: encrypt the input blob and put the encrypted data into a blob object

BlobObj DecryptString(BlobObj blob)

Description: decrypt the input blob into a new blob

EncryptAFile(String inFile, String outFile)

Description: encrypt the input file and put the encrypted data into output file

DecryptAFile(String inFile, String outFile)

Description: decrypt the input file into a new file

Hash Object (HashObj)

The hash object can be used to generate checksum for a piece of data and make the task of checking data integrity more easier. It can also be used to generate digital signature together with KeyObj.

LONG Size

Description: Property. Get the hash value in bytes

BlobObj value

Description: Property. Get the hash value into a blob object

Clear()

Description: Reset a hash object into a blank state

AddString(String str)

Description: add string data into hash object. The hash value will be updated accordingly

AddFile(String inFile)

Description: add the content of file into hash object. The hash value will be updated accordingly

AddBlob(BlobObj blob)

Description: add blob data into hash object. The hash value will be updated accordingly

KeyObj SignHash(LONG bExchangeKey)

Description: Generates a digital signature by encrypting the underlying hash value with a private key
bExchangeKey: a boolean flag to indicate if the RSA key is for key exchange or signature.

LONG VerifySignature(BlobObj blob, KeyObj key)

Description: verify the signature blob with the given key

Blob Object (BlobObj)

The blob object is used to load/save a binary buffer block.

String HexString

Description: Property. Get or set the blob value via hex string format

String Base64String

Description: Property. Get or set the blob value via base64 string format

String Binary

Description: Property. Get or set the blob value via binary safe array format

SaveToFile(String inFile )

Description: Save blob data to file

LoadFromFile(String inFile )

Description: load blob data from file

FAQ:

How much does it cost ?

It is $149.95 for Single developer license. Registered users can get free update for lifetime. If you want to purchase multiple license, please contact us for discount.

Where to get support?
Please email to support@ultrashareware.com for any other help.

History:

02/01/2011 New Year Release for 2011
11/07/2007 Update: Remove ATL80 dependency.
08/01/2007 Update: Support x64 windows, update demos
01/15/2007 First public release