73,
ShawnTim Droz wrote:
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
