问题标签 [botan]

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

c++ - 如何计算具有相同 SHA-160 和的另一个位模式?

我想测试我的应用程序,当它被错误传递的 SHA-160 总和欺骗时,我想计算对要求和的数据的更改,这会再次导致原始 SHA-160 总和,因此会被遗漏。我正在使用 C++ 中的 Botan 库来计算总和。

如何计算对大约 1500 位的位流的更改,使其 SHA-160 与原始位相同?

0 投票
2 回答
499 浏览

qt - 在 Qt 中编译植物样本示例时出错

我试图找出错误两天,但仍然没有弄清楚这个未知的原因。

我已经配置并编译了 Botan 库。一切正常,但是当尝试编写要运行的示例代码时..

它说错误:'class Botan::PBKDF' has no member named 'set_iterations'

我怎么解决这个问题 ?

0 投票
1 回答
2812 浏览

c++ - 在 Qt 中使用 Botan 时遇到问题

我正在使用 Qt,我正在尝试使用 Botan。一切似乎都很顺利,但是当我去的时候:

Botan::BigInt myInt;

在我的构造函数中它工作正常,但另一方面,如果我去:

Botan::AutoSeeded_RNG rng;

它抛出未定义的错误:

我不知道为什么它可以使用 BigInt 而不是 AutoSeded_RNG,但这是我的确切步骤:

  1. 在“src/libs/3rdparty/botan/”处编译了 Qt Creator 源中包含的 Botan 源

  2. 我使用他们网站上的 Windows Installer (1.10) 安装了 Botan 。

  3. 我将 libBotan.a、libBotand.a、botan.dll 和 Botand.dll 放在我安装 Botan 的位置 (C:\botan)。我覆盖了任何已经存在的文件。

  4. 然后我创建了一个新的 Qt 项目,并在 .pro 文件中添加了以下几行:

    INCLUDEPATH += "C:/botan/include"
    LIBS += "C:/botan/libBotan.a"

  5. 接下来,我进入我的“mainwindow.cpp”,并添加:

    #include <botan/botan.h>

    一切都成功编译到这里。

  6. 我现在将它添加到我的构造函数中:

    Botan::AutoSeeded_RNG rng;

现在抛出上述错误,无法运行。如果我用“BigInt”替换“AutoSeeded_RNG”,那么它可以完美编译。

感谢您的帮助,Hetelek。

0 投票
1 回答
514 浏览

c++ - 植物学家PK_Signer

我正在尝试初始化一个 PK_Signer 对象,这似乎给我带来了比 Botan 1.8.10 版更多的问题。我目前正在使用 Botan 的最新稳定版本(1.10),但我遇到了麻烦...

在 Botan 1.8.10 中,我看到了程序员这样的例子:

在 Botan 1.10.3 中,PK_Signer 类没有类似的构造函数。有2个构造函数:

这不是问题,直到我开始实际使用第二个构造函数时遇到问题。

我试过改变很多东西,但最有意义的方法是: Botan::AutoSeeded_RNG rng; Botan::RSA_PrivateKey pkey(rng, p, q, 0x10001, 0, n);

这样做会引发错误:

我不知道为什么会发生这种情况,因为根据 Botan 文档EMSA3从抽象类 EMSA 继承。感谢您的帮助,Hetelek。

0 投票
1 回答
1001 浏览

android - 对 `vtable for... 的未定义引用,支持 RTTI

我创建了一个使用 RTTI 支持 dynamic_cast 的应用程序。我在 Application.mk 文件中添加了“APP_CPPFLAGS += -frtti”,但出现错误:“未定义对 `vtable for ... 的引用”。如果我不使用 RTTI,我会收到错误消息:“错误:'dynamic_cast' not allowed with - fno-rtti”

我得到了输出:

这是 Botan::RandomNumberGenerator :

我的应用程序.mk:

你能帮我吗?

0 投票
1 回答
4916 浏览

c++ - 用于创建密码的 SHA-256 哈希的 Botan 教程或示例

我正在将 .NET 应用程序的一部分移植到 Linux 上的 Qt。我正在尝试复制 .NET 函数的结果以创建密码 + 盐的 SHA-256 哈希。.NET 代码是

其中 buffer 是连接到密码的盐。

我考虑了几个密码库,包括 QCA 和 Botan,在阅读了一些评论后,我决定尝试 Botan。但是,我没有在文档中找到执行与上面列出的代码等效的位置。

有人可以指出我在精美手册或教程中讨论使用 Botan 创建简单哈希的地方吗?我一直在谷歌搜索几个小时而没有找到解决方案。有很多管道和流的 SHA-256 散列示例,但我还没有找到简单散列计算的示例。

0 投票
2 回答
2068 浏览

c++ - QString 到 const byte* 的转换

我正在尝试使用 Botan 库创建几个 QStrings 的 SHA-256 哈希 - 一个密码和一个盐。我做了很多尝试,试图将连接的盐+密码转换为正确的类型,以便输入到 Botan 进程函数中。我试图在 Botan 中使用的类的文档可以在botan sha-256 文档中找到 我最近的尝试是

当我编译我得到一个错误:没有匹配函数调用'Botan::SHA_256::process(QByteArray*, int)'... 候选人是:/usr/include/botan-1.10/botan/buf_comp.h: 101:Botan::SecureVector Botan::Buffered_Computation::process(const byte*, size_t)

如何将 QString 或 QByteArray 转换或复制到 const byte* 中?

编辑: 在我发布问题后,我尝试了更多方法。下面附上了一个似乎可行的方法,但我对使用 reinterpret_cast 感到不舒服,因为它看起来可能会导致我在 c++ noob 状态下不知道的问题。

0 投票
1 回答
499 浏览

c++ - 将 Botan SHA256 输出转换为 base64 以匹配 .NET SHA256Managed().ComputeHash()

我正在将 .NET 应用程序的一部分移植到 Linux 上的 Qt。我正在尝试复制 .NET 函数的结果以创建密码 + 盐的 SHA-256 哈希。.NET 代码是

我有创建哈希的代码,但它不是一种允许我将它嵌入到 json 对象中的形式。

作为参考,StringToArray 方法如下所示

qPasswordHash 是否需要通过 Base64 过滤器(例如文档中显示的过滤器)才能匹配 .NET 类的输出?如果是这样,您能否指出示例代码或提供使用此 Botan 方法的正确语法示例?

0 投票
1 回答
888 浏览

android - 为 Android 构建 Botan 库

如何为 Android构建密码库Botan ?我正在使用 Mac OS 10.7Eclipse IDE.

0 投票
1 回答
2349 浏览

c++ - Botan AES-256,32 位 InitialVector

我目前有一些代码可以与 LibTomCrypt 库一起正常工作,但不能与 Botan 一起使用(我正在尝试将其转换为 Botan)。

我的(工作)LibTomCrypt 代码:

如您所见,我的初始向量 (IV) 的大小是 0x20 (32)。我不知道为什么这会与这个库一起工作,但我去了这个方法,它似乎与 LibTomCrypt 中的“blocklen”有关。

无论如何,这就是我试图用 Botan 库做的事情:

但它一直在调用“get_cipher”:

如果我确实将 IV 大小更改为 16,则它确实可以正常工作,但由于 IV 不正确,因此无法处理内容。

此外,更改我的加密代码中的 IV 大小不是一种选择。