私は現在 C++ アプリケーションを作成しており、メッセージの署名、暗号化、およびキー管理に GPGME を使用したいと考えています。この方法でデータを暗号化できることを知っています:
err = gpgme_op_encrypt(mContext, recipients,...);
if(err) {
// .. error handling
}
result = gpgme_op_encrypt_result(mContext);
if(result->invalid_recipients){
//error handling
}
nbytes = gpgme_data_seek(encrypted_text, 0, SEEK_SET);
if(nbytes == -1) {
//error handling
}
buffer = malloc(MAXLEN);
nbytes = gpgme_data_read(encrypted_text, buffer, MAXLEN);
しかし、ご覧のとおり、バッファー内の暗号化されたデータを読み取るための制限として MAXLEN を使用する必要があります。暗号化されたデータの結果が事前にどのくらいになるかを判断する方法はありますか (プレーンテックスが与えられた場合)? または、静的制限を受け入れる必要がありますか?