问题标签 [crypto++]

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 回答
1109 浏览

c++ - 在 C++ 中执行 WHIRLPOOL 哈希

这听起来像是一个相对简单的问题,但我无法让 Crypto++ 工作。我正在使用 Microsoft Visual C++ 2010 Express(我很便宜)并且库中包含的 .vcxproj/.vcproj/.sln 文件根本不起作用。还有很多文件,我只是不确定我到底需要什么。

那么有人知道我可以直接加入的解决方案吗?参考实现很好,只要它们不是非常低效或什么的。很抱歉问了这么一个平凡的问题,但我环顾四周,找不到任何我需要的东西——我想密码学不是我的专业领域。

尽管如此,如果有人知道我如何让 VC++ 2010 加载项目文件,那么让 Crypto++ 工作会很好。该错误非常......不是描述性的。它只是说无法加载项目并给我 -2147483647 作为错误号。

编辑:这是转换报告错误:

XML 解析过程中出现以下错误:文件:C:\Users\Kyle\Desktop\Exoterra\Dependencies\crypto\cryptlib.vcproj 行:102 列:5 错误消息:系统错误:-2147154677。文件“C:\Users\Kyle\Desktop\Exoterra\Dependencies\crypto\cryptlib.vcproj”加载失败。

这是 cryptlib.vcproj 的第 102 行:

编辑(再次):我让它工作。我删除了项目文件中所有涉及 x64 的内容,现在它可以正确转换。不管怎么说,还是要谢谢你。

0 投票
2 回答
296 浏览

c++ - 使用某些库分发程序(源文件)

我写了一个使用 Cryptopp 库的程序。我已经创建了静态库并将其包含在我的发行版中,但该程序还需要很多头文件。我的问题是我需要在我的发行版中包含所有这些头文件吗?

例如,我编写了一个使用 的代码des.hmodes.hfilters.h该代码又基于 Cryptopp 中的其他头文件,这是一个长链。我是否包含 Cryptopp 库中的所有头文件?

让它更通用,如果我编写一些使用其他库(如 Cryptopp 或 boost)的代码,我需要在发行版中包含什么?

更新:我想分发源代码,而不仅仅是二进制文件。这样用户可以根据需要从头开始编译我的程序。我包括静态库,但对头文件感到困惑。我需要把它们都包括进去吗?

0 投票
3 回答
8001 浏览

c++ - 在 Crypto++ 中加载 PEM 编码的私有 RSA 密钥

通常,用户将拥有 PEM 编码的 RSA 私钥。Crypto++ 要求这些密钥为 DER 格式才能加载。我一直在要求人们事先使用 openssl 手动将他们的 PEM 文件转换为 DER,如下所示:

这很好用,但有些人不明白如何做到这一点,也不想这样做。所以我想在程序中自动将 PEM 文件转换为 DER 文件。

是像从 PEM 中剥离“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”一样简单,还是还需要其他一些转换?有人告诉我,在这些标记之间,它只是 b64 编码的 DER。这是一些演示该问题的代码:

我想避免对 openssl 进行系统调用并完全在 Crypto++ 中进行转换,以便用户可以提供任何一种格式和“正常工作”的东西。感谢您的任何建议。

0 投票
2 回答
14632 浏览

rsa - 使用 Crypto++ 进行 RAW RSA 加密和解密

我需要在 PC 和支持 RSA 加密和使用 SHA1 签名的设备之间建立安全通信。因为我已经在我的应用程序的其他部分使用了 Crypto++,所以我也想使用 Crypto++。

该设备非常原始,但允许执行我在其上编写的程序。它内置了原始的 RSA 和 SHAa 函数;但是,它可以使用的内存非常少,准确地说是 2K 字节。

我必须对来自 PC 的消息进行加密和签名。然后设备解密并验证消息。然后设备将回复一条加密消息并在其上签名。PC 将解密该消息并随后对其进行验证。我已经使用内置函数在设备内部使用 SHA1 实现了原始 RSA 加密、签名和验证。消息足够短,可以在一轮中完成。

但是,我不知道如何使用 Crypto++ 在不涉及 OAEP 或 PKCS#1 的情况下使用原始 RSA 加密消息。有人可以向我展示一些示例代码吗?万分感谢!

0 投票
1 回答
865 浏览

crypto++ - 从内存中加载 RSA PKCS#1 私钥?

我必须编写一个程序来与 USB 设备建立安全通信。我必须使用它生成的私钥,它以 PKCS#1 格式存储。由于我在程序的一部分中使用了 Crypto++,因此我也想将它用于此目的。

但是,我找不到从内存中导入 RSA 私钥的方法。它只接受 PKCS#8 格式的私钥。一些专业人士可以向我展示如何做到这一点的示例代码吗?非常感谢!

0 投票
1 回答
972 浏览

c++ - 开始使用 Crypto++

我不知道在这里问这个问题是否正确。
我正在尝试在项目中使用 Crypto++ 库。我什至无法开始使用它。这是我正在尝试的代码:

我尝试阅读下载包中包含的自述文件。我试过这个,但仍然没有设法让它工作。我正在使用VS2010。

0 投票
1 回答
3606 浏览

android - 通过 NDK 在 Android 项目中包含 Crypto++ 库

我正在尝试在 Android NDK 项目中包含 Crypto++ (http://www.cryptopp.com/)。我希望能够从我的代码的 C++ 部分调用 Crypto++ 成员函数。我以为我可以在我的 C++ 代码中包含来自 Crypto++ 的标头和源代码,但我似乎无法让它工作。

我的 C++ 文件如下所示:

在 cryptopp 子目录中包含所有 Crypto++ 头文件和源文件。

最初我收到许多编译错误,因为没有找到标准 C++ 库,但我通过添加 Application.mk 并添加以下行来解决这个问题:

使用 ndk-build 编译(标准版本和水晶版本)给我以下错误:

我以前从未在 NDK 项目中包含外部库 - 也许我只是忽略了一些基本的东西。

0 投票
1 回答
1339 浏览

c++ - Crypto++ 无法解释的崩溃

我需要在我的项目中使用密码学(visual c++ 2008 sp1,带有几个 dll 的 exe,使用一些第三方库)。我选择了 Crypto++ 库。我将它用作静态库。首先,我在测试控制台应用程序中测试了我需要的所有功能,一切正常。

然后我开始将这个功能集成到项目中。

它在许多 Crypto++ 函数调用上崩溃,包括像这样非常简单的函数调用:

在调用这行代码期间,应用程序崩溃:

这是我的调用堆栈:

我的项目和 Crypto++ 都使用多线程 DLL 运行时库。

我尝试将 Crypto++ 项目选项更改为与我的项目选项相同,但这没有帮助(在某些更改后应用程序因另一个调用堆栈而崩溃)。

任何想法将不胜感激!

0 投票
0 回答
994 浏览

c++ - 我可以使用 Crypto++ 解密 aes-cbc-essiv:sha256 吗(文件由 linux dm-crypt 加密)

是否有人必须使用 Crypto++ 使用由 linux dm-crypt 加密的 aes-cbc-essiv:sha256 解密文件?我尝试使用以下代码解密文件。但这是不正确的。有没有人有过经验?你能帮助我吗?非常感谢。

0 投票
1 回答
384 浏览

cryptography - 安全 StringSinks

所以似乎在 Crypto++ 中使用算法的常用方法是使用StringSinks,它是通过传递对 a 的引用来启动的std::string

std::string 但是如果你因为安全问题不想使用怎么办?是否可以将数据放入类似的东西中SecByteBlock,或者我是否必须创建自己的接收器类,以重新增长的安全缓冲区字符串类为目标?