Visual C++ Examples

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

C++ Examples

CkString
Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
DH Key Exchange
DKIM/DomainKeys
Digital Certificates
Digital Signatures
DSA
Email
Email Object
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
POP3
RSA
S/MIME
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Amazon S3
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

 

 

 

 

 

 

 

 

ARC4 Encryption (ARCFOUR)

Demonstrates simple ARC4 encryption to match some simple test vectors published by Wikipedia. ARC4 is a fast stream cipher supporting key lengths from 8 to 2048 bits (i.e. from 1 to 256 bytes). It is not a block cipher, so there is no padding, no modes, and no initialization vector.

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 <CkCrypt2.h>
#include <CkString.h>

void ChilkatSample(void)
    {
    CkCrypt2 crypt;

    bool success;
    success = crypt.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        printf("Crypt component unlock failed\n");
        return;
    }

    //  Set the encryption algorithm to ARC4:
    crypt.put_CryptAlgorithm("arc4");

    //  We want the encrypted output to be a hex-encoded string.
    crypt.put_EncodingMode("hex");

    //  Encrypt some test vectors from Wikipedia:

    CkString cipherText;
    CkString plainText;

    //  The key length (in bits) is equal to the number of us-ascii
    //  bytes in our key string * 8.

    // ARC4( "Key", "Plaintext" ) == BBF316E8D940AF0AD3
    crypt.put_KeyLength(24);
    crypt.SetEncodedKey("Key","ascii");
    cipherText = crypt.encryptStringENC("Plaintext");
    printf("%s\n",(const char *)cipherText);
    plainText = crypt.decryptStringENC(cipherText);
    printf("%s\n",(const char *)plainText);

    // ARC4( "Wiki", "pedia" ) == 1021BF0420
    crypt.put_KeyLength(32);
    crypt.SetEncodedKey("Wiki","ascii");
    cipherText = crypt.encryptStringENC("pedia");
    printf("%s\n",(const char *)cipherText);
    plainText = crypt.decryptStringENC(cipherText);
    printf("%s\n",(const char *)plainText);

    // ARC4( "Secret", "Attack at dawn" ) == 45A01F645FC35B383552544B9BF5
    crypt.put_KeyLength(48);
    crypt.SetEncodedKey("Secret","ascii");
    cipherText = crypt.encryptStringENC("Attack at dawn");
    printf("%s\n",(const char *)cipherText);
    plainText = crypt.decryptStringENC(cipherText);
    printf("%s\n",(const char *)plainText);

    //  Note: The call to SetEncodedKey serves to set the key
    //  to the us-ascii bytes of the string.

    }

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

Mail Component · .NET Mail Component · XML Parser