0

我正在编写一个程序,我在其中加密文件并使用 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);
}
4

0 回答 0