问题标签 [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 回答
241 浏览

c++ - 使用 Botan 访问冲突读取位置

我已经为 TLS 安全性集成了植物库。我得到以下错误:

jsonrpctest.exe 中 0x6DBFD1CE (vcruntime140.dll) 的第一次机会异常:0xC0000005:访问冲突读取位置 0x00962000。如果有这个异常的处理程序,程序可以安全地继续

下面是我正在调用的代码

0 投票
1 回答
142 浏览

encryption - AEAD模式安全

当我阅读Botan 文档时,我遇到了以下注释:

在解密期间,如果 MAC 未验证,finish 将抛出一个 Integrity_Failure 实例。如果发生这种情况,之前通过更新调用输出的所有明文都必须被销毁,并且不能以任何攻击者可以观察到的影响的方式使用。

确保这种情况永远不会发生的一种简单方法是永远不要调用更新,而是始终将整个消息编组到单个缓冲区中,并在解密时对其调用完成。

既然这种情况出现在解密中,那是否意味着如果攻击者可以访问文件,AEAD模式是不安全的呢?

还是我误解了什么?

提前致谢。

0 投票
2 回答
3702 浏览

c++ - MinGW64 和“C 函数 int select(...) 的冲突声明”

我正在尝试在 MinGW 上构建 Botan,它实际上是 MinGW-w64 (x86_64-pc-msys)。它在 MinGW 上失败,如下所示。我认为我已将其简化为MCVE

结果是:

包括<sys/select.h>第一很重要。在 Windows 标头之后包含它不会出现问题。包括<memory>很重要。<memory>包括额外的标题,如<sys/select.h>,已经包含在内。

我能说的最好的是,MinGW 标头导致了问题。它们提供具有两个不同签名的相同功能:

/usr/include/w32api/winsock2.h

/usr/include/sys/select.h

问题似乎是最后一个论点。在一种情况下是PTIMEVAL,在另一种情况下是timeval*。这似乎与邮件列表有关,但我不明白我应该做什么:用 PTIMEVAL 替换 struct timeval 用法并在 LP64 上以不同的方式定义 TIMEVAL

可能存在一些指针大小问题,详见将应用程序移植到 64 位 Cygwin 时需要注意什么?,但它是 MinGW 代码(而不是 Botan 代码)。

有什么问题,我该如何解决?


这是博坦的src/lib/utils/socket/socket.cpp

这是编译错误:

0 投票
1 回答
291 浏览

java - 用Java序列化BigInteger,用Botan反序列化?

问题:如何在 Java 中转换 BigInteger 以匹配 Botan BigInt 编码?

我使用 Botan 在 Java 和 C++ 应用程序之间进行通信。Botan 有一个 BigInt 类,与 BigInteger 相当。但是,在转换为字节数组时,编码会有所不同。

在 Botan 中,BigInt 编码如下:

在Java中,它的编码:

0 投票
2 回答
1092 浏览

c++ - Botan 加载现有的 RSA 私钥

我正在使用 Botan C++ 库来签名和验证一些 license.ini 文件。我已经设置 Botan PK_Signer 使用 RSA 算法来加密使用 PKCS v1.5 创建的哈希。这是我的代码:

用于生成 RSA_PrivateKey 对象的标记线引发异常:

在 license_signer.exe 中的 0x00007FF85D2BC3C7 (vcruntime140.dll) 处引发异常:0xC0000005:访问冲突读取位置 0x0000021A8FA07000。

我以前从未使用过 Botan 库。如果有人知道为什么会发生这种情况或知道如何实施,请提供帮助。谢谢。

0 投票
0 回答
151 浏览

multithreading - 链接 QSsh Botan-2 std::thread

我成功编译了BOTAN-2(botan.exe BOTAN-test.exe runnable)。

当我在 Qt Creator 下构建 QSsh 的项目时,我在 std::thead (编译器 MinGW32)上出现链接错误

A 在文件 qssh/src/libs/ssh.pro 中添加失败:

注意:我成功地使用 pthread 制作了一个简单的程序(“hello world”风格)。

QSsh 有什么问题?

谢谢

0 投票
1 回答
656 浏览

c++ - 在 QT 中使用 Botan C++ 加密文件

我在 基于 Build on的Qt Creator 4.6.1Windows 10上使用
Qt 5.10.1 (MSVC 2015, 32 bit)
May 2 2018 04:24:33
qmakemingw491_32

网上有一个项目,它使用了一个botanwrapper包含Botan.pri

完整代码很长,因此无法在此处发布,但可在http://www.voidrealms.com/index.php?r=source/view&id=1上以 zip 文件的形式获得。

这一切都有效并加密了文件,但是当我将文件带入我的项目时,我得到了大量的编译错误,如下所示。

error: expected '}' before '(' token which points to the line

还有很多与const诸如此类有关的错误

这指向下面的代码


我已经检查了包含的 .pro 文件,并且我的文件设置与在相同设置上编译和运行的项目相同。我包含相同的botan.pri文件,其中包含

我已经读过,删除const将删除 1 个或多个错误,但我不明白为什么在愉快地编译botan.h并运行构建和加密文件的相同设置中这会被破坏。有人可以帮助如何开始解决这个问题。帮助表示赞赏。提前致谢。

0 投票
1 回答
964 浏览

c++ - vcpkg cmake 找不到植物

我使用 vcpkg 作为我的包管理器,按照示例使用 sqlite构建示例非常容易。

之后我成功安装了 botan 并尝试使用 此处find_package(botan REQUIRED)示例中所示的方法查找库。然而不幸的是,这不起作用,并且一代退出并出现错误

CMakeLists.txt 如下所示

有没有办法使用 cmake 和 vcpkg 构建依赖于 botan 的应用程序?如果不是cmake,如何将botan用作vcpkg包?对位置进行硬编码不是可行的解决方案。

谢谢四爷的帮助。

0 投票
1 回答
126 浏览

c++ - 生成 blake2b 哈希时崩溃

我正在尝试使用 Botan 作为后端编写一个哈希函数,即:

HASHstd::string请求的哈希的名称。即"SHA-512"对于 SHA512 和"BLAKE2b"BLAKE2b

botan 支持的任何其他哈希都会被处理和输出,但 BLAKE2b 不会并抛出异常:

然后崩溃。

我确实在植物手册(https://botan.randombit.net/manual/hash.html)中注意到

布莱克2b

如果定义了 BOTAN_HAS_BLAKE2B,则可用。

最近设计的哈希函数。在 64 位处理器上非常快。可以输出 1 到 64 字节之间任意长度的散列,这是通过将值传递给具有所需长度的构造函数来指定的。

有没有可能没有默认设置?我将如何设置它?有没有可能我的名字错了?

0 投票
0 回答
238 浏览

c++ - Botan DTLS 服务器错误:无法与客户端就密码套件达成一致

我写了一个小的 DTLS 服务器示例。在以下链接中有我的代码:

我使用 Qt DTLS 示例客户端和 botan-cli.exe 进行了尝试,可以使用可在 botan github 站点上下载的文件进行编译。

即使我将它编码为与 Linux 一起使用,它也会抛出相同的错误。有人可以给我一个提示来解决我的问题吗?

我也通过 Wireshark 嗅探了通信,结果如下:

我试图在 Botan::TLS::Policy 中重载 bool Acceptable_ciphersuite,这样它总是会返回 true,但它没有帮助。我用谷歌搜索了这个错误,但没有找到任何合适的解决方案。