I've made a little progress. Instead of trying to upgrade to 5.2, I tried 4.2 instead. This was much more obvious. In this case the classes I was looking for are "NRDigestVerifier" and "NRDigestSigner". In these two classes the accessor functions have been renamed from
GetPrime() GetParameterQ() GetParameterG() GetParameterY() GetParameterX() to GetModulus() GetSubgroupSize() GetGenerator() GetPublicResidue() GetPrivateExponent() When I make those changes, everything works great. But now my challenge is that the two classes NRDigestVerifier and NRDigestSigner disappear from crypto++ in version 5.0. It looks like I'm supposes to use something along the lines of "NR<SHA>::Signer" and "NR<SHA>::Verifier". But those classes take different arguments to their constructors, and don't have the same accessors. Help? -----Original Message----- From: Bill Shanahan [mailto:[EMAIL PROTECTED] Sent: Friday, October 07, 2005 1:46 PM To: [email protected] Subject: Upgrading ElGamalSig... functions The crypto++ library that our software links with is, well, embarrassingly old -- 2.3. We are trying to fix that. The main problem I am having right now is that I can't figure out how to duplicate the functionality of the ElGamalSigPrivateKey and ElGamalSigPublicKey classes. Specifically, we have been constructing them like ElGamalSigPrivateKey: mpPrivateKey = new ElGamalSigPrivateKey( GetRNG(), mKeyBits ); ElGamalSigPublicKey: mpPublicKey = new ElGamalSigPublicKey(*mpPrivateKey ); And serializing them (separately) like ElGamalSigPrivateKey: p = mpPrivateKey->GetPrime(); q = mpPrivateKey->GetParameterQ(); g = mpPrivateKey->GetParameterG(); y = mpPrivateKey->GetParameterY(); x = mpPrivateKey->GetParameterX(); ElGamalSigPublicKey: p = mpPublicKey->GetPrime(); q = mpPublicKey->GetParameterQ(); g = mpPublicKey->GetParameterG(); y = mpPublicKey->GetParameterY(); And finally reconstructing them like new ElGamalSigPrivateKey( p, q, g, y, x ); new ElGamalSigPublicKey( p, q, g, y ); In order to maintain backward compatibility, I need to be able accomplish the equivalent with the 5.2 version of crypto++. But I haven't been able to figure out what classes to instantiate to do that. If somebody could give me some guidance, I will probably be able to figure out the ElGamalCrypto... stuff myself. Thanks for your help.
