Yeah this sample is great,for a newby this kind of
sample / documentation would be nice.
I'm trying to do DUKPT simulation with crypto++ I'm
not sure of this library and its applicability.
Any more help would be really appreciated.
Thanks again David
Tim
--- "David C. Partridge" <[EMAIL PROTECTED]>
wrote:
> Do you mean like:
> #include "default.h"
> #include "des.h"
>
> #include <iostream>
> #include <time.h>
>
> #include <windows.h>
>
> #if (_MSC_VER >= 1000)
> #include <crtdbg.h> // for the debug heap
> #endif
>
> USING_NAMESPACE(CryptoPP)
> USING_NAMESPACE(std)
>
>
> int main()
> {
> // Note the for ECB, the PlainText and Cipher Text
> MUST be an EXACT multiple
> // of the cipher blocksize
> byte plaintext[48] = {'H','e','l','l','o','
> ','W','o','r','l','d','\0'};
> byte * ciphertext;
> byte * result;
> byte key[DES::DEFAULT_KEYLENGTH];
>
> // initialize key and iv here
> memcpy(key, "12345678", sizeof(key));
>
>
> // encrypt
> ECB_Mode<DES>::Encryption ecbEncryption;
> ecbEncryption.SetKey(key,
> ecbEncryption.DefaultKeyLength());
> StreamTransformationFilter
> encryptor(ecbEncryption, NULL, NULL);
> encryptor.Put(plaintext, sizeof(plaintext));
> encryptor.MessageEnd();
>
> unsigned int outputLength =
> encryptor.MaxRetrievable();
> ciphertext = new byte[outputLength];
> encryptor.Get(ciphertext, outputLength);
>
> // now decrypt
> ECB_Mode<DES>::Decryption ecbDecryption;
> ecbDecryption.SetKey(key,
> ecbDecryption.DefaultKeyLength());
> StreamTransformationFilter
> decryptor(ecbDecryption, NULL, NULL);
> decryptor.Put(ciphertext, outputLength);
> decryptor.MessageEnd();
>
> outputLength = decryptor.MaxRetrievable();
> result = new byte[outputLength];
> decryptor.Get(result, outputLength);
>
> cout << "recovered plaintext is " << result
> << endl;
>
> delete [] ciphertext;
> delete [] result;
> return 0;
> }
>
>
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com