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

c++ - 在创建 RSA_PrivateKey 时未定义对 `std::thread::_State::~_State()' 的引用

当我尝试在 Botan C++ 中创建 RSA_PrivateKey 对象时,编译器抱怨对 std::thread::_State::~_State() 的未定义引用。

错误显示如下: Error when created RSA_PrivateKey in Botan

我真的不确定为什么编译器会抱怨。我需要帮助,提前谢谢。

我使用“.a”文件将植物库添加为静态库。我通过右键单击项目文件夹 > 添加库 > 外部库来做到这一点。我试图在调试中编译。

像这样添加植物

操作系统:Windows 7

编译器:Qt 5.11.2 MinGW 32-bit

0 投票
1 回答
624 浏览

c++ - 使用 MSVC 在 Windows 上编译错误 Botan 库

我正在遵循Building The Library指南,但我有错误。我的脚步。

1.使用 . 设置 x64 环境vcvars64.bat

2.运行configure.py

3.运行 nmake。

这是我的 cmd.exe 输出。

安装的 Python:

图片

运行后的CL.exe vcvars64.bat

图片

我的 Visual Studio 安装:

图片

更新:

运行后包含变量vcvars64.bat

0 投票
1 回答
183 浏览

c++11 - Botan 构建错误“AutoSeeded_RNG”未命名类型

尝试构建 Botan 可执行文件,我收到以下错误:

../src/cli/timing_tests.cpp:100:17: 错误:'AutoSeeded_RNG' 没有命名类型静态 AutoSeeded_RNG static_timing_test_rng(Botan::Entropy_Sources::global_sources(), 0); ^~~~~~~~~~~~~~ ../src/cli/timing_tests.cpp:101:17: error: 'static_timing_test_rng' 没有在这个范围内声明 return static_timing_test_rng; ^~~~~~~~~~~~~~~~~~~~~~ ../src/cli/timing_tests.cpp:101:17:注意:建议的替代方案:'timing_test_rng' return static_timing_test_rng; ^~~~~~~~~~~~~~~~~~~~~~ timing_test_rng make: *** [Makefile:606: build/obj/cli/timing_tests.o] 错误 1

这是 C++ 代码:

我正在使用这些设置: configure.py --prefix=$BUILD_DIR --with-external-includedir=$OPENSSL_PREFIX/include --with-external-libdir=$OPENSSL_PREFIX/lib --os=mingw --cpu=i386 - -minimized-build --enable- modules=rsa,dsa,ecdsa,ed25519,hmac,hmac_drbg,mode_pad,bigint,filters,block,auto_rng,x509,cbc,dh --with-openssl

(在 Windows 10 中使用 mingw32 构建。Botan 版本 2.11.0)

我对此很陌生。有任何想法吗?

编辑:更改为 2.10.0 版本,因为 2.11.0 尚未正式发布,但错误现在确实更改为:

0 投票
1 回答
866 浏览

c++ - SHA1+RSA - 帮助在 C++ 中使用 Botan

我正在为阿根廷的“电子发票”开发 C++ 中的 WebService 客户端。webservice 客户端和 xml 处理不是问题,但加密部分让人头疼(我对这个主题很陌生)。

我正在阅读 Botan 文档,并找到了一个与我需要的示例有些相似的示例,但我在调整它时遇到了困难。

我需要使用证书在 SHA1+RSA 中加密 XML,并将结果编码为 Base64。

官方文档提供了多种语言的示例,不幸的是 C++ 不是其中之一,我使用 php 示例作为起点,在 C++ 中创建我的 PoC 代码。

确切的问题是这个。

我有这个 XML 示例:

这个 XML 变成了这个 Base64 字符串

使用这个 PHP 函数

其中CERTPRIVATEKEY是公钥和私钥,PASSPHRASE是一个空字符串,文件 TRA.xml 包含上面提供的 XML 示例。

您可以从此链接 示例证书下载公钥和私钥

C++ 中的植物示例

我需要使用证书在 SHA1+RSA 中加密 XML,并将结果编码为 Base64。任何帮助将不胜感激。

0 投票
1 回答
147 浏览

java - Java 等价于 C++ Botan 函数调用

我有一个与此类似的 C++ 代码:

我想做的是在 Java 中实现相同的功能。到目前为止,我已经尝试过如下:

并且 privateKey 生成为

问题是我的做法是否正确?还是我的 Java 代码中缺少某些内容?特别是关于随机生成器部分,我不确定 Java SecureRandom 是否在做类似的事情,Botan::AutoSeeded_RNG我在 BC 中使用的算法也不确定它是否与 PSSR_Raw(SHA-256,MGF1,32) 等效?

0 投票
1 回答
946 浏览

visual-studio - 在 Visual C++ 中设置植物

出于某种原因,我想出了使用 botan 连接到 PKCS11 硬件令牌。我是 C++ 新手,想用 Visual Studio 2019 编写代码。

我下载了botan源代码并用nmake构建了源代码。构建完成后,创建一个名为 build 的文件夹。

我将botan的目录添加到VC++目录[右键单击应用程序-->属性-->VC++目录]

这些行有错误

  • 命名空间 Botan 没有成员“Dynamically_Loaded_Library”

    Botan::Dynamically_Loaded_Library

  • name 后跟 '::' 必须是类或命名空间

所有的行都有错误,我真的搞混了。帮助将不胜感激

0 投票
1 回答
433 浏览

c++11 - 使用Botan从私钥中提取公钥

我正在尝试使用非对称私钥-公钥加密消息。在Botan中,使用Load_key()函数,我读取了私钥并想从中提取它的公钥。为了在其构造函数中构造 RSA 公钥,我需要一个“算法标识符”对象和我拥有的“密钥位”。使用pcks8_algorithm_identifier()函数的算法标识符对象。

问题是返回 asecure_vector<unsigned char>而不是 a的“密钥位”,当我想将它传递给 RSA_PublicKey 构造函数时vector<unsigned char>遇到 a 。bad::alloc exception

有没有人遇到这样的问题?如果通过从 Botan 中的输入文件加载密钥有另一种非对称加密方式,我将不胜感激

0 投票
1 回答
444 浏览

c++ - PKCS#11 使用 Botan 的 std::bad_alloc

我是 C++ 新手,我真的坚持使用 Botan 连接到硬件加密令牌。我不知道我是否错过了库或 dll 的任何设置。

我在 Windows 10 中基于Building Botan library 构建了 Botan 库。botan.libbotan.dll在构建后在 lib 文件夹中创建。

然后,我使用以下简单代码在 Visual Studio 2019 中创建了一个控制台应用程序:

这是我准备运行的设置:

配置属性→VC++ 目录:

  1. 包含目录 → 添加 C:\Botan\include\botan-2;
  2. 可执行目录 → 添加 C:\Botan\bin;
  3. 库目录→添加C:\Botan\lib;
  4. 源码目录→添加C:\Botan\src;
  5. 附加包含库 → 添加 C:\Botan\include\botan-2

链接器

  1. 附加库目录 → 添加 C:\Botan\lib;
  2. 输入 → 附加依赖 → 添加 C:\Botan\lib\botan.lib

我还安装了 dll 在 System32 文件夹中的令牌驱动程序;

当我使用 x86 构建 Botan 库时,我使用以下配置调试项目:

在此处输入图像描述

我需要您帮助解决的错误是:

此错误发生在这行代码中:

这是调用堆栈

在此处输入图像描述

请注意,我在调试文件夹中复制了 botan.dll 和 ShuttleCsp11_3003.dll。

有人请帮忙,谢谢

0 投票
1 回答
655 浏览

c++ - 如何使用 Botan 库和特定密码套件加密数据?

我曾经使用Botan::TLS::Callbacks并且也是Botan::TLS::Client Botan::TLS::Server为了在客户端和服务器之间获得安全通道。此外,为了加密-解密我使用过的数据<botan/pubkeys.h> <botan/pk_keys.h>以及 Botan 库中的其他包含头文件。

我的问题是:

  1. 为什么对象没有在 Server_Hello_Message 中将Botan::PK_Encryptor_EME双方协商的加密算法作为密码套件获得。他们只需将公钥、随机数生成器和最佳加密填充算法作为输入。提到该算法没有被明显和真实的密钥所采用(通过该算法,我的意思是批量加密算法,如AES-128)。

  2. 如何保护 tls 通道?正如我通过源代码发现的那样,有一个函数Botan::TLS::Callbacks tls_emit_data(const uint8_t[], size_t)将通过安全通道发送数据!即使客户端和服务器之前已经协商和交换了非对称密钥,也应该使用双方同意的对称密钥对数据进行加密。

0 投票
0 回答
314 浏览

c++ - 如何正确编写 PKCS#7 签名文件?

我正在尝试使用 Botan 库生成分离的签名文件。生成的签名文件未经 OpenSSL 验证(没有其他检查)。提示签名文件的形成可能有什么错误。

几个用于签名的密钥和证书存储在 HSM 中,获取它们并不难。对于我使用 RSA 密钥和 SoftHSM 的测试,稍后将使用另一种密钥格式和物理 HSM。PKCS#11 用于与 HSM 通信。

对于创建 PKCS#7:

使用 PKCS#11 计算哈希和签名,如下所示:

检查收到的签名文件时,OpenSSL 说