- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在编写一个 C++ 应用程序,并且想使用 GPGME 进行消息签名、加密和 key 管理。我知道我可以用这种方式加密数据:
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 作为读取缓冲区中加密数据的限制。有没有办法提前确定我的加密数据结果多长时间(给定明文)?还是我必须接受静态限制?
最佳答案
我不熟悉这个特定的 API,但是 gpgme_data_seek
和 gpgme_data_read
调用看起来它们可能表现得像 read()
和 seek()
来自文件 I/O 系统。
(1) 尽可能多地分配缓冲区(假设为 N)。
(2) 调用n=gpgme_data_read(...,N)
直到N!=n
。
(3) 检查错误条件(我猜是n<0)
继续,直到您处理完所有感兴趣的数据。
关于c++ - 使用 GPGME 加密灵活的数据量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34946861/
我正在使用gpgme(用于gpg/gnupg的开发库)来签署一些数据。 在 key 圈中,我有1个以上的私钥,因此我想选择 纠正一个。 这将失败,并显示:“不可用的 key (117440566)”。
是否有可能解密一条消息,您可以解密第一个子消息,然后解密第二个...... 例如,如果您的消息非常大,并且您不想将整个消息保留在内存中!? 在手册或谷歌中找不到任何内容! 最佳答案 简短的回答是否定的
我目前正在编写一个 C++ 应用程序,并且想使用 GPGME 进行消息签名、加密和 key 管理。我知道我可以用这种方式加密数据: err = gpgme_op_encrypt(mContex
我最近完成了一个程序,该程序将公钥下载到内存中,然后使用所有公钥创建一条加密消息。但是,我在创建仅包含我下载的 key 的列表时遇到了一些困难。首次下载时,它们存储在 gpgme_data_t 中。我
我正在尝试检查在 C++ 项目上使用 gpgme,但是当我尝试访问 OpenPGP 引擎时 我已经在我的电脑上安装了 GnuPG,并且在 Windows 下运行。 更多关于命令 gpgconf 和 g
我正在使用 ruby gpgme gem (1.0.8)。我的密码回调没有被调用: def passfunc(*args) fd = args.last io = IO.for_fd(fd
这个问题其实是两个问题: 如何使用 gpgme Windows 中的库? 是否有可用的 .NET 绑定(bind)? (如果没有,我想我可以自己做。) 编辑:找到的解决方案:gpgme-sharp在
我正在尝试使用 GPGME 生成一个新 key ,但遗憾的是我无法使以下代码工作: std::string def = "" " Key-Type: defa
我正在尝试在我的代码中使用 GPGME 来验证一些签名。然而,简单地初始化和释放 GPGME 上下文会导致 valgrind 发出大量警告。 例如: #include int main() {
以下简短的 Python 脚本采用三个命令行参数:密码、输入路径和输出路径。然后使用密码解密输入路径的内容,并将解密后的内容放入输出路径。 from gpg import Context import
今天我在 gnupg 邮件列表上开始了一个新话题,Search keys on a keyserver with GPGME .基本上我使用 GPGME 作为在我的应用程序中使用 GnuPG 的接口(
我正在尝试从我拥有该服务器所需公钥的服务器解密文件。 key 环有密码保护,所以当我尝试解密文件时,它会要求我输入密码。 当我们尝试解密文件时,有没有办法通过传递密码来绕过该密码。 我正在使用 gpg
在下面的例子中,我尝试了 password 和 passphrase。似乎都不允许我在没有 openpgp 框提示输入密码的情况下运行我的代码,以下消息: 苹果机"请输入密码以解锁 OpenPGP 证
我想在我的 C++ 应用程序中使用 GPGME 进行 key 生成和加密。然而,在尝试开始时,我遇到了一个问题: 我为我的 debian 系统下载了开发包。现在我想告诉我的编译器(Qt Creator
已关闭。这个问题是 not about programming or software development 。目前不接受答案。 这个问题似乎与 a specific programming pro
GPGME 使用passphrase_cb 方法从用户处获取密码以进行操作,这需要访问私钥。只能为对称加密覆盖此回调,在所有其他情况下使用默认的 pinentry。 所有这些努力似乎都让人很不舒服,特
我找不到有关如何执行此操作的单个示例。我有一个 PGP 加密的 XLS 文件和一个 PGP key 。这是我返回空字符串的代码: require 'rubygems' require 'gpgme'
我想使用 GPGME 加密数据(无文件)并将数据保存在数据库中。我了解到使用 OpenPGP 作为协议(protocol)的 GPGME 将使用 GPG 和 CAST5 加密数据。 CAST5,如果我
我如何使用 GPGME C++ 库简单地加载 gpg key 以导入到上下文中? 我正在尝试构建一个使用 GPGME 解密文件的应用程序,但我很难理解 GPU 文档。我试图在网络上搜索示例,但还没有遇
我有一个 C++ 程序需要验证已使用特定私钥使用 GPG 签名的文件的签名。我使用 GPGME 成功编写了一个程序,用于验证给定文件是否已使用与 GPG key 环中的其中一个公钥相对应的私钥正确签名
我是一名优秀的程序员,十分优秀!