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