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
