В настоящее время я пишу приложение на C++ и хотел бы использовать GPGME для подписания сообщений, шифрования и управления ключами. Я знаю, что могу зашифровать данные таким образом:Шифрование гибкого количества данных с помощью 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 в качестве предела для чтения зашифрованных данных в моем буфере. Есть ли способ определить, как долго мой зашифрованный результат данных будет заранее (учитывая plaintex)? Или я должен принять статический предел?
Хороший намек. Я посмотрю на это. –