所以我目前正在为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;
任何人都有这方面的经验吗?