メッセージを暗号化/復号化する簡単なテスト プログラムを作成しました。
私は持っていkeylength
ます:
int keylength = 1024; // it can also be 2048, 4096
および最大入力長:
int maxlen = (keylength/8)-11;
そして、入力サイズが maxlen よりも小さい必要があることを知っています。次のようになります。
if(insize >= maxlen)
printf("cannot encrypt/decrypt!\n");
私の質問は簡単です - より長いRSAメッセージで暗号化/復号化することは可能ですか(そうであれば、どうすればよいですか) maxlen
?
メイン コードも非常に単純ですが、insize < maxlen の場合にのみ機能します。
if((encBytes=RSA_public_encrypt(strlen(buff1)+1, buff1, buff2, keypair, RSA_PKCS1_PADDING)) == -1)
{
printf("error\n");
}
if((decBytes=RSA_private_decrypt(encBytes, buff2, buff3, keypair, RSA_PKCS1_PADDING)) == -1)
{
printf("error\n");
}