问题标签 [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.
c++ - C++,如何将gcrypt库中gcry_cipher_encrypt的返回值复制到变量中?
在我下面附加的代码中,它使用 gcry_cipher_encrypt。在代码的末尾,它将 encBuffer 中的内容输出为十六进制值字符串。我需要在 char[]、char* 或 string 之类的变量中创建它并使用它。
根据gcrypt的手册,encBuffer,函数的第二项应该是一个无符号char*类型的变量。我认为它应该指向一个无符号字符数组。但是当我这样做时:
我得到大量代码。请问如何从 encBuffer 获取可读内容?非常感谢你。
ffmpeg - mingw64环境编译时查找库(libgcrypt和libgpg-error)
我是一个真正的初学者,所以提前为明显的问题道歉。我正在尝试编译 ffmpeg 的自定义构建,它具有一些普通构建没有的额外依赖项。其中是libgcrypt
and libgpg-error
- 我知道这一点,因为当我运行时configure
,它失败了,并且日志包含:
考虑到这一点,我克隆了 libgpg-error 的 repo,运行了make
and make install
,它创建了libgpg-error.dll.a
and libgpg-error.la
in /home/myuser/w64root/lib
。我已经尝试将此路径添加到我的$LIB
环境变量中,但配置运行仍然说它找不到库。
我怎样才能让它可见?我也pkg-config
可以在机器上使用 - 手动创建.pc
文件对我有帮助吗?
谢谢!
c++ - libgcrypt 是线程安全的吗?
库 libgcrypt 是线程安全的吗?如果我不在线程之间划分这个库的资源,而是在每个线程中创建不同的上下文。C++ 编程语言。
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但它似乎没有解决问题。
你有解决方案吗?
c - 使用 gcrypt 库的简单 3DES 加密
我正在编写一个简单的免费软件来编码和解码 bash 脚本,主要是。
目标是获得可执行的脚本文件,其中没有人可以读取其中的源代码,包括 root 和所有者。为了编码/解码文件,我选择使用带有 3DES 算法的 gcrypt 库。但不幸的是,唯一可用的文档是为已经使用该库的人提供的(例如参考指南)。
你可以在以下地址找到我的代码: wScriptObfuscator.c
目前我停在两步中的第一步:编码脚本文件。您可以在以下代码行中阅读此步骤的核心:
一切看起来都很好,但不是最后一个编码器处理函数 gcry_cipher_encrypt()。这很奇怪,因为它需要良好初始化的 gcry_cipher_hd_t 结构、一个编码数据缓冲区、它的大小、一个源数据缓冲区、它的大小,仅此而已。它看起来很容易....但它不起作用。
不幸的是,我还没有找到有关返回的错误代码的文档。
您也可以通过 sourceforge 下载代码:
wScriptObfuscator.c 文件位于以下文件夹中:trunk/prj__wScriptObfuscator/b1/src
libgcrypt - 在 c++ 中使用 gcrypt 进行 AES128 加密/解密
我找不到一个很好的例子,所以我创建了一个你可以更改 mykey 的例子,并使用其中一个 gcrypt 函数使 iv 随机。
样本
欢迎任何评论
我知道它看起来不太好,尽量简洁
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
。
然后应通过以下方式生成随机流:
此函数调用至少对默认参数有效。
有人知道如何启用这些缺失的功能吗?谢谢你。
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:
日志文件的最后一部分:
c - AES256 Libgcrypt 密钥长度无效
我正在尝试使用 libgcrypt 中的 AES256 加密和解密文件。(见文档)
为了生成 256 位密钥,我argv[1]
使用 SHA256 对用户定义的字符串 ( ) 进行哈希处理。这工作得很好,但是当将它用作键时,库会失败并显示Invalid key length
.
请参阅下面的代码片段:
我必须使用以空结尾的字符串吗?我不想为散列分配更多内存(空字节可能需要),因为它应该放在 SECUREMEM 中。
c - 在 C 中从用户那里获得 *secure* 输入的最佳方式是什么?
我正在开发一种安全密码管理器。它不会用于专业用途,而且我知道它不会像 KeePass 或其他任何东西那样安全。这只是为了我自己对如何分配安全内存、使用加密算法等的理解。
为此,我使用 libgcrypt 并使用gcry_malloc_secure
.
我现在已经到了某种程度,我需要用户输入他的密码以进行加密/解密。但正如我所见,任何控制台输入都首先缓冲在stdin
(or argv[..]
) 中,因此不在安全内存中。因此它可以“轻松”被攻击者读取。
我的程序中发生的任何与安全相关的事情都在securemem中,希望更难阅读/窃取。
所以我的问题就像标题所述:
让用户输入数据的最安全方法是什么?