问题标签 [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.
c++ - 使用 Botan 访问冲突读取位置
我已经为 TLS 安全性集成了植物库。我得到以下错误:
jsonrpctest.exe 中 0x6DBFD1CE (vcruntime140.dll) 的第一次机会异常:0xC0000005:访问冲突读取位置 0x00962000。如果有这个异常的处理程序,程序可以安全地继续
下面是我正在调用的代码
encryption - AEAD模式安全
当我阅读Botan 文档时,我遇到了以下注释:
在解密期间,如果 MAC 未验证,finish 将抛出一个 Integrity_Failure 实例。如果发生这种情况,之前通过更新调用输出的所有明文都必须被销毁,并且不能以任何攻击者可以观察到的影响的方式使用。
确保这种情况永远不会发生的一种简单方法是永远不要调用更新,而是始终将整个消息编组到单个缓冲区中,并在解密时对其调用完成。
既然这种情况出现在解密中,那是否意味着如果攻击者可以访问文件,AEAD模式是不安全的呢?
还是我误解了什么?
提前致谢。
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
。
这是编译错误:
java - 用Java序列化BigInteger,用Botan反序列化?
问题:如何在 Java 中转换 BigInteger 以匹配 Botan BigInt 编码?
我使用 Botan 在 Java 和 C++ 应用程序之间进行通信。Botan 有一个 BigInt 类,与 BigInteger 相当。但是,在转换为字节数组时,编码会有所不同。
在 Botan 中,BigInt 编码如下:
在Java中,它的编码:
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 库。如果有人知道为什么会发生这种情况或知道如何实施,请提供帮助。谢谢。
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 有什么问题?
谢谢
c++ - 在 QT 中使用 Botan C++ 加密文件
我在
基于
Build on的Qt Creator 4.6.1
Windows 10上使用Qt 5.10.1 (MSVC 2015, 32 bit)
May 2 2018 04:24:33
qmake
mingw491_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
并运行构建和加密文件的相同设置中这会被破坏。有人可以帮助如何开始解决这个问题。帮助表示赞赏。提前致谢。
c++ - 生成 blake2b 哈希时崩溃
我正在尝试使用 Botan 作为后端编写一个哈希函数,即:
HASH
是std::string
请求的哈希的名称。即"SHA-512"
对于 SHA512 和"BLAKE2b"
BLAKE2b
botan 支持的任何其他哈希都会被处理和输出,但 BLAKE2b 不会并抛出异常:
然后崩溃。
我确实在植物手册(https://botan.randombit.net/manual/hash.html)中注意到
布莱克2b
如果定义了 BOTAN_HAS_BLAKE2B,则可用。
最近设计的哈希函数。在 64 位处理器上非常快。可以输出 1 到 64 字节之间任意长度的散列,这是通过将值传递给具有所需长度的构造函数来指定的。
有没有可能没有默认设置?我将如何设置它?有没有可能我的名字错了?
c++ - Botan DTLS 服务器错误:无法与客户端就密码套件达成一致
我写了一个小的 DTLS 服务器示例。在以下链接中有我的代码:
我使用 Qt DTLS 示例客户端和 botan-cli.exe 进行了尝试,可以使用可在 botan github 站点上下载的文件进行编译。
即使我将它编码为与 Linux 一起使用,它也会抛出相同的错误。有人可以给我一个提示来解决我的问题吗?
我也通过 Wireshark 嗅探了通信,结果如下:
我试图在 Botan::TLS::Policy 中重载 bool Acceptable_ciphersuite,这样它总是会返回 true,但它没有帮助。我用谷歌搜索了这个错误,但没有找到任何合适的解决方案。