Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

CkString
Byte Array
Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

 

C++ Blowfish ECB Encryption Matching Published Test Vectors

Download Chilkat C/C++ Libraries for VC++ 9.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C/C++ 64-bit Libraries for VC++ 8.0 / x64

Download Chilkat Visual Studio 2005 C/C++ Libs for Windows Mobile, Pocket PC, SmartPhone, WinCE

Download Chilkat C/C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0, Win 95/98/NT4 Compatible

C++ example program for Blowfish in ECB mode.

// Confirm the Blowfish ECB test vectors...
void Blowfish2EcbValidate(void)
    {
    // C++ Blowfish ECB Encryption to match published test vectors
    // at http://www.schneier.com/code/vectors.txt

    //key bytes               clear bytes             cipher bytes
    const char *TestVectors[] = {

    "0000000000000000","0000000000000000","4EF997456198DD78",
    "FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","51866FD5B85ECB8A",
    "3000000000000000","1000000000000001","7D856F9A613063F2",
    "1111111111111111","1111111111111111","2466DD878B963C9D",
    "0123456789ABCDEF","1111111111111111","61F9C3802281B096",
    "1111111111111111","0123456789ABCDEF","7D0CC630AFDA1EC7",
    "0000000000000000","0000000000000000","4EF997456198DD78",
    "FEDCBA9876543210","0123456789ABCDEF","0ACEAB0FC6A0A28D",
    "7CA110454A1A6E57","01A1D6D039776742","59C68245EB05282B",
    "0131D9619DC1376E","5CD54CA83DEF57DA","B1B8CC0B250F09A0",
    "07A1133E4A0B2686","0248D43806F67172","1730E5778BEA1DA4",
    "3849674C2602319E","51454B582DDF440A","A25E7856CF2651EB",
    "04B915BA43FEB5B6","42FD443059577FA2","353882B109CE8F1A",
    "0113B970FD34F2CE","059B5E0851CF143A","48F4D0884C379918",
    "0170F175468FB5E6","0756D8E0774761D2","432193B78951FC98",
    "43297FAD38E373FE","762514B829BF486A","13F04154D69D1AE5",
    "07A7137045DA2A16","3BDD119049372802","2EEDDA93FFD39C79",
    "04689104C2FD3B2F","26955F6835AF609A","D887E0393C2DA6E3",
    "37D06BB516CB7546","164D5E404F275232","5F99D04F5B163969",
    "1F08260D1AC2465E","6B056E18759F5CCA","4A057A3B24D3977B",
    "584023641ABA6176","004BD6EF09176062","452031C1E4FADA8E",
    "025816164629B007","480D39006EE762F2","7555AE39F59B87BD",
    "49793EBC79B3258F","437540C8698F3CFA","53C55F9CB49FC019",
    "4FB05E1515AB73A7","072D43A077075292","7A8E7BFA937E89A3",
    "49E95D6D4CA229BF","02FE55778117F12A","CF9C5D7A4986ADB5",
    "018310DC409B26D6","1D9D5C5018F728C2","D1ABB290658BC778",
    "1C587F1C13924FEF","305532286D6F295A","55CB3774D13EF201",
    "0101010101010101","0123456789ABCDEF","FA34EC4847B268B2",
    "1F1F1F1F0E0E0E0E","0123456789ABCDEF","A790795108EA3CAE",
    "E0FEE0FEF1FEF1FE","0123456789ABCDEF","C39E072D9FAC631D",
    "0000000000000000","FFFFFFFFFFFFFFFF","014933E0CDAFF6E4",
    "FFFFFFFFFFFFFFFF","0000000000000000","F21E9A77B71C49BC",
    "0123456789ABCDEF","0000000000000000","245946885754369A",
    "FEDCBA9876543210","FFFFFFFFFFFFFFFF","6B5C5A9C5D9E0A5A",
    0 };

    CkCrypt2 crypt;
    crypt.UnlockComponent("30-day trial");

    crypt.put_CryptAlgorithm("blowfish2");
    crypt.put_CipherMode("ecb");
    crypt.put_KeyLength(64);
    crypt.put_EncodingMode("hex");
    crypt.put_PaddingScheme(3);

    int i = 0;

    while (TestVectors[i])
	{
	const char *key = TestVectors[i++];
	const char *clearText = TestVectors[i++];
	const char *cipherText = TestVectors[i++];

	crypt.SetEncodedKey(key,"hex");

	CkByteData byteData;
	byteData.appendEncoded(clearText,"hex");

	CkString encrypted;
	crypt.EncryptBytesENC(byteData,encrypted);

	// drop the padding.
	encrypted.shorten(16);
	printf("%s should equal %s\n",encrypted.getString(),cipherText);
	}

    }


 

 

 

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

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

Mail Component · .NET Mail Component · XML Parser