Programming Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

C Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3

 

 

 

 

 

 

 

 

PBES1 Password-Based Encryption (PBE)

Demonstrates how to implement password-based encryption according to the PKCS #5 v2.0: Password-Based Cryptography Standard (published by RSA Laboratories). This example uses PBES1, which ise based on the PBKDF1 function and an underlying block cipher such as RC2, DES, etc.

Downloads:

MS Windows Visual C/C++ Libraries
Linux/CentOS C/C++ Libraries
MAC OS X C/C++ Libraries
Solaris C/C++ Libraries
C++ Builder Libraries
#include <C_CkCrypt2.h>

void ChilkatSample(void)
    {
    HCkCrypt2 crypt;
    BOOL success;
    const char * plainText;
    const char * encryptedText;
    const char * decryptedText;

    crypt = CkCrypt2_Create();

    success = CkCrypt2_UnlockComponent(crypt,"Anything for 30-day trial");
    if (success != TRUE) {
        printf("%s\n",CkCrypt2_lastErrorText(crypt));
        return;
    }

    //  Set properties for PBES1 encryption:

    CkCrypt2_putCryptAlgorithm(crypt,"pbes1");
    CkCrypt2_putPbesPassword(crypt,"mySecretPassword");

    //  Set the underlying PBE algorithm (and key length):
    //  For PBES1, the underlying algorithm must be either
    //  56-bit DES or 64-bit RC2
    //  (this is according to the PKCS#5 specifications at
    //  http://www.rsa.com/rsalabs/node.asp?id=2127   )
    CkCrypt2_putPbesAlgorithm(crypt,"rc2");
    CkCrypt2_putKeyLength(crypt,64);

    //  The salt for PBKDF1 is always 8 bytes:
    CkCrypt2_SetEncodedSalt(crypt,"0102030405060708","hex");

    //  A higher iteration count makes the algorithm more
    //  computationally expensive and therefore exhaustive
    //  searches (for breaking the encryption) is more difficult:
    CkCrypt2_putIterationCount(crypt,1024);

    //  A hash algorithm needs to be set for PBES1:
    CkCrypt2_putHashAlgorithm(crypt,"sha1");

    //  Indicate that the encrypted bytes should be returned
    //  as a hex string:
    CkCrypt2_putEncodingMode(crypt,"hex");

    plainText = "To be encrypted.";

    encryptedText = CkCrypt2_encryptStringENC(crypt,plainText);

    printf("%s\n",encryptedText);

    //  Now decrypt:

    decryptedText = CkCrypt2_decryptStringENC(crypt,encryptedText);

    printf("%s\n",decryptedText);

    CkCrypt2_Dispose(crypt);

    }

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.