我正在编写一个程序,我在其中加密文件并使用 gpgme 通过 SSL 套接字发送它。然后,我需要下载文件并解密。
我的加密工作正常,但我在解密时遇到问题。我的 inputBuffer 是文件的内容。下载文件时,inputBuffer 的结果是加密文本的第一行。gpgme_strerror(err)) 返回“无数据”。似乎文本的内容没有放在密文中,并且它不知道要解密什么。
{
bytes = SSL_read(ssl, &inputBuffer, 1024);
while (bytes > 0)
{
err = gpgme_data_new_from_mem(&cipher, inputBuffer, strlen(inputBuffer), 0);
err = gpgme_op_decrypt(gctx, cipher, plain);
fprintf(stderr,"The result from Decrypt: %s\n", gpgme_strerror(err)); // returning no data
dec_result = gpgme_op_decrypt_result(gctx);
if (dec_result->unsupported_algorithm)
{
fprintf(stderr, "%s:%i: unsupported algorithm: %s\n",
__FILE__, __LINE__, dec_result->unsupported_algorithm);
exit(1);
}
fputs(inputBuffer, fp);
fprintf(stderr, "Number of bytes read %zu\n", bytes);
fclose(fp);
fprintf(stderr, "File Uploaded Successfully\n");
memset(&inputBuffer, '\0', sizeof(inputBuffer));
bytes = SSL_read(ssl, &inputBuffer, 1024);
}
fclose(fp);
SSL_shutdown(ssl);
}