用C / C ++中的公钥解密

时间:2017-03-20 09:49:23

标签: c++ encryption openssl poco-libraries

所以我目前正在为Amazon Alexa开展网络服务。 对于他们的请求身份验证,我下载并验证证书。之后,我将使用证书的公钥解密签名。 现在我已经尝试过Poco和OpenSSL的一些东西,从来没有得到合适的结果。

尝试OpenSSL的一个例子:

void decryptWithPublicKey(const std::string & input, const std::shared_ptr<Poco::Crypto::X509Certificate> & cert, std::string & buffer)
{
     RSA * decryptor = Poco::Crypto::RSAKey(*key).impl()->getRSA();
     const unsigned char * from = (const unsigned char*) input.c_str();
     unsigned char* to = new unsigned char[ RSA_size(decryptor)-12 ];;

     int result = RSA_public_decrypt((int) input.length(), from, to, decryptor, RSA_PKCS1_PADDING);
     if(result == -1)
     {
         // print error
     }
     else
     {
         buffer.append((char*) to);
     }

     delete from;
     delete[] to;
}

输出总是像&#34; 0!0 + \ n PuTTYPuTTY&#34;

任何人都有这方面的经验吗?

0 个答案:

没有答案