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.
