I'm trying to implement a secure key system for my application based on the
ideas posted here

http://www.codeproject.com/useritems/ECIESProductKey.asp

The mechanism there relies on the server for authentication I don't want to
put my users through that so I want to authenticate in the application thus
I would need
some way of decrypting a short message with a public key. The post above
suggests "Signature Scheme with Message Recovery" for my case so I am trying
to use
ECP and SignMessageWithRecovery however my code keeps reporting
signer.MaxRecoverableLength=0 and throws an error:

Crypto++ Error: PK_MessageEncodingMethod: this signature scheme does not
support message recovery.

Key parts of my code:

CryptoPP::ECIES< CryptoPP::ECP >::Decryptor decryptor( PrivateKey );
CryptoPP::ECDSA< CryptoPP::ECP , CryptoPP::SHA>::Signer signer( decryptor );
printf("Max Recov. %d\n",signer.MaxRecoverableLength());
CryptoPP::SecByteBlock signature(signer.MaxSignatureLength(messageLen));
unsigned int signatureLen = signer.SignMessageWithRecovery(rng, message,
messageLen, NULL, 0, signature);

Is this a problem in my code, a library limitation or a even elliptic curve
cryptography limitation?

Thanks,

Ron

Reply via email to