问题标签 [libgcrypt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
162 浏览

c++ - C++,如何将gcrypt库中gcry_cipher_encrypt的返回值复制到变量中?

在我下面附加的代码中,它使用 gcry_cipher_encrypt。在代码的末尾,它将 encBuffer 中的内容输出为十六进制值字符串。我需要在 char[]、char* 或 string 之类的变量中创建它并使用它。

根据gcrypt的手册,encBuffer,函数的第二项应该是一个无符号char*类型的变量。我认为它应该指向一个无符号字符数组。但是当我这样做时:

我得到大量代码。请问如何从 encBuffer 获取可读内容?非常感谢你。

0 投票
1 回答
280 浏览

ffmpeg - mingw64环境编译时查找库(libgcrypt和libgpg-error)

我是一个真正的初学者,所以提前为明显的问题道歉。我正在尝试编译 ffmpeg 的自定义构建,它具有一些普通构建没有的额外依赖项。其中是libgcryptand libgpg-error- 我知道这一点,因为当我运行时configure,它失败了,并且日志包含:

考虑到这一点,我克隆了 libgpg-error 的 repo,运行了makeand make install,它创建了libgpg-error.dll.aand libgpg-error.lain /home/myuser/w64root/lib。我已经尝试将此路径添加到我的$LIB环境变量中,但配置运行仍然说它找不到库。

我怎样才能让它可见?我也pkg-config可以在机器上使用 - 手动创建.pc文件对我有帮助吗?

谢谢!

0 投票
1 回答
176 浏览

c++ - libgcrypt 是线程安全的吗?

库 libgcrypt 是线程安全的吗?如果我不在线程之间划分这个库的资源,而是在每个线程中创建不同的上下文。C++ 编程语言。

0 投票
1 回答
4035 浏览

linux - openSUSE Linux:找不到 libglib-dev libgcrypt-dev 的提供程序

我尝试通过sudo apt-get install ...openSUSE Leap 42.2 安装软件包 libglib-dev libgcrypt-dev。

问题在于它声称“没有找到'libglib2.0-devel'的提供者”。(对于 libgcrypt-dev 也是如此)这些软件包是否可能不适用于 openSUSE,或者有类似但名称不同的软件包?

在搜索解决方案的过程中,我弄乱了存储库,但能够将它们重置为原始存储库。我能够从https://software.opensuse.org/package/libglib-2_0-0手动安装 libglib-2_0-0但它似乎没有解决问题。

你有解决方案吗?

0 投票
0 回答
167 浏览

c - 使用 gcrypt 库的简单 3DES 加密

我正在编写一个简单的免费软件来编码和解码 bash 脚本,主要是。

目标是获得可执行的脚本文件,其中没有人可以读取其中的源代码,包括 root 和所有者。为了编码/解码文件,我选择使用带有 3DES 算法的 gcrypt 库。但不幸的是,唯一可用的文档是为已经使用该库的人提供的(例如参考指南)。

你可以在以下地址找到我的代码: wScriptObfuscator.c

目前我停在两步中的第一步:编码脚本文件。您可以在以下代码行中阅读此步骤的核心:

一切看起来都很好,但不是最后一个编码器处理函数 gcry_cipher_encrypt()。这很奇怪,因为它需要良好初始化的 gcry_cipher_hd_t 结构、一个编码数据缓冲区、它的大小、一个源数据缓冲区、它的大小,仅此而已。它看起来很容易....但它不起作用。

不幸的是,我还没有找到有关返回的错误代码的文档。

您也可以通过 sourceforge 下载代码:

wScriptObfuscator.c 文件位于以下文件夹中:trunk/prj__wScriptObfuscator/b1/src

0 投票
0 回答
799 浏览

libgcrypt - 在 c++ 中使用 gcrypt 进行 AES128 加密/解密

我找不到一个很好的例子,所以我创建了一个你可以更改 mykey 的例子,并使用其中一个 gcrypt 函数使 iv 随机。

样本

欢迎任何评论

我知道它看起来不太好,尽量简洁

0 投票
0 回答
52 浏览

c - 在 C 中使用 libgcrypt 中的 HashDRBG 时未解析的符号和类型

我在使用 libgcrypt 的 HashDRBG 时遇到问题。我的目标是从种子中获取一些随机数据:

outbuf <--- DRBG_HASHSHA512(种子)

到目前为止,我看到的唯一选择是使用 libgrypt:(https://fossies.org/linux/libgcrypt/random/random-drbg.c

关于说明,我必须使用类似的东西:

根据 DRBG 类型对其进行初始化。但我总是收到错误消息:“无法解析符号'DRBG_NOPR_CTRAES128'”。与其他 DRBG 类型相同。

以及“无法解析类型'drbg_string_t'”,当我想使用附加信息字符串时。我包含了gcrypt.h和链接的库libgcrypt-config --cflags --libs

然后应通过以下方式生成随机流:

此函数调用至少对默认参数有效。

有人知道如何启用这些缺失的功能吗?谢谢你。

0 投票
1 回答
1431 浏览

android - 使用 Cmake 为 Android 编译 libgcrypt 和 libgpgerror

对于一些必须在 C(++) 中实现的代码,我需要像 AES 和 3DES 加密/解密这样的加密函数。由于 openssl 不再是 Playstore 的选项,所以我不得不选择一个不同的库。我的选择是 libgcrypt。现在我很难为 android 编译 libgpgerr。(iOS 运行良好)

环境:

  • Ubuntu 16.04
  • 安卓 NDK:15.1.4119039
  • 构建系统:使用 cmake 进行 gradle
  • stl:llvm
  • 编译器:clang

    /li>

我的 libgcrypt (子)cmake:

日志文件的最后一部分:

0 投票
1 回答
402 浏览

c - AES256 Libgcrypt 密钥长度无效

我正在尝试使用 libgcrypt 中的 AES256 加密和解密文件。(见文档

为了生成 256 位密钥,我argv[1]使用 SHA256 对用户定义的字符串 ( ) 进行哈希处理。这工作得很好,但是当将它用作键时,库会失败并显示Invalid key length.

请参阅下面的代码片段:

我必须使用以空结尾的字符串吗?我不想为散列分配更多内存(空字节可能需要),因为它应该放在 SECUREMEM 中。

0 投票
1 回答
361 浏览

c - 在 C 中从用户那里获得 *secure* 输入的最佳方式是什么?

我正在开发一种安全密码管理器。它不会用于专业用途,而且我知道它不会像 KeePass 或其他任何东西那样安全。这只是为了我自己对如何分配安全内存、使用加密算法等的理解。

为此,我使用 libgcrypt 并使用gcry_malloc_secure.

我现在已经到了某种程度,我需要用户输入他的密码以进行加密/解密。但正如我所见,任何控制台输入都首先缓冲在stdin(or argv[..]) 中,因此不在安全内存中。因此它可以“轻松”被攻击者读取。

我的程序中发生的任何与安全相关的事情都在securemem中,希望更难阅读/窃取。

所以我的问题就像标题所述:

让用户输入数据的最安全方法是什么?