Hi, 

I'm getting the same generator, g=3 for my diffie-hellman class, even
though I'm using an autoseededrandompool. Should this be of concern?

Also, how do I extract the prime p used in the diffie-hellman class?
there used to be getPrime() in crypto4.1 but in crypto5.1 it seems to
have disappeared.

crypto 5.1, redhat 9.0

amerson

On Fri, 2003-11-28 at 11:39, Walton, Jeffrey wrote:
> > -----Original Message-----
> > From: [EMAIL PROTECTED] 
> > [mailto:[EMAIL PROTECTED] On Behalf Of Amerson H Lin
> > Sent: Thursday, November 27, 2003 2:03 AM
> > To: [EMAIL PROTECTED]
> > Subject: diffie hellman constructors
> > 
> > 
> > Hi, 
> > 
> > i need some help with using diffie hellman constructors. I'm 
> > using crypto 5.1 on redhat 9.0.
> > 
> > I use the following code to generate Alice's DH keys.
> > 
> >  AutoSeededRandomPool randPool = AutoSeededRandomPool();
> >  DH dh  = DH((RandomNumberGenerator&)randPool, (unsigned)128);
> > 
> > However, I need to generate Bob's DH class with the same 
> > generator. How can I do that? Is there any documentation on 
> > the DH constructors, if so, where can I find it?
> > 
> > thanks
> > amerson
> > 
> > 
> 
> Hi Amerson,
> 
> I've never used DH, but here are some references to Wei's use.
> 
> From dh.h, Line 58:
> 
>       void GeneratePublicKey(RandomNumberGenerator &rng, const byte
> *privateKey, byte *publicKey) const
>       {
>               Base::GeneratePublicKey(rng, privateKey, publicKey);
> 
>               if (FIPS_140_2_ComplianceEnabled())
>               {
>                       SecByteBlock privateKey2(PrivateKeyLength());
>                       GeneratePrivateKey(rng, privateKey2);
> 
>                       SecByteBlock publicKey2(PublicKeyLength());
>                       Base::GeneratePublicKey(rng, privateKey2,
> publicKey2);
> 
>                       SecByteBlock agreedValue(AgreedValueLength()),
> agreedValue2(AgreedValueLength());
>                       Agree(agreedValue, privateKey, publicKey2);
>                       Agree(agreedValue2, privateKey2, publicKey);
> 
>                       if (agreedValue != agreedValue2)
>                               throw SelfTestFailure(AlgorithmName() + ":
> pairwise consistency test failed");
>               }
>       }
> 
> Agree( ) can be found in pubkey.h, Line 1427.
> 
> From validat2.cpp, Line 338:
> bool ValidateDH()
> {
>       cout << "\nDH validation suite running...\n\n";
> 
>       FileSource f("dh1024.dat", true, new HexDecoder());
>       DH dh(f);
>       return SimpleKeyAgreementValidate(dh);
> }
> 
> Also from validate2.cpp:
> SimpleKeyAgreementValidate( ) Line 181.
> AuthenticatedKeyAgreementValidate( ) Line 217.
> 
> Jeff
> 

Reply via email to