yeah you may be correct that DUKPT is not well defined . I'm refering to standard ANSI X9.24-2002 (PART 1) which very well defines the DUKPT implementation(TDES).
My Question was why would using this library becomes so hard for a well defined algorithm such as ANSI X9.24? or as you say perhaps all the required base routines may be there I just couldn't figure that out yet... I'm somewhat successful using some public domain DES code for my purpose , I just could resisit the fact this crypto library is great but unfrotunattely so hard use due to hardly any documentation for a quick reference. It would really great someone with experince to point to the correct path to go. If I ever get sucessful I'm sure I will share my experince with crypto users. Thanks for your help. Tim --- Shawn Masters <[EMAIL PROTECTED]> wrote: > DUKPT isn't exactly a well defined acronym. You > could be using any of > a wide host of algorithms. Do you mean ANSI X9.24? > If so I think all > of the base routines are there. You will have to > plug them together to > get X9.24 behavior. > > 73, > Shawn > > Tim 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 > > > > __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com