问题标签 [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++ - 在创建 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
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
:
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 尚未正式发布,但错误现在确实更改为:
c++ - SHA1+RSA - 帮助在 C++ 中使用 Botan
我正在为阿根廷的“电子发票”开发 C++ 中的 WebService 客户端。webservice 客户端和 xml 处理不是问题,但加密部分让人头疼(我对这个主题很陌生)。
我正在阅读 Botan 文档,并找到了一个与我需要的示例有些相似的示例,但我在调整它时遇到了困难。
我需要使用证书在 SHA1+RSA 中加密 XML,并将结果编码为 Base64。
官方文档提供了多种语言的示例,不幸的是 C++ 不是其中之一,我使用 php 示例作为起点,在 C++ 中创建我的 PoC 代码。
确切的问题是这个。
我有这个 XML 示例:
这个 XML 变成了这个 Base64 字符串
使用这个 PHP 函数
其中CERT
和PRIVATEKEY
是公钥和私钥,PASSPHRASE
是一个空字符串,文件 TRA.xml 包含上面提供的 XML 示例。
您可以从此链接 示例证书下载公钥和私钥
C++ 中的植物示例
我需要使用证书在 SHA1+RSA 中加密 XML,并将结果编码为 Base64。任何帮助将不胜感激。
java - Java 等价于 C++ Botan 函数调用
我有一个与此类似的 C++ 代码:
我想做的是在 Java 中实现相同的功能。到目前为止,我已经尝试过如下:
并且 privateKey 生成为
问题是我的做法是否正确?还是我的 Java 代码中缺少某些内容?特别是关于随机生成器部分,我不确定 Java SecureRandom 是否在做类似的事情,Botan::AutoSeeded_RNG
我在 BC 中使用的算法也不确定它是否与 PSSR_Raw(SHA-256,MGF1,32) 等效?
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 后跟 '::' 必须是类或命名空间
所有的行都有错误,我真的搞混了。帮助将不胜感激
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 中的输入文件加载密钥有另一种非对称加密方式,我将不胜感激
c++ - PKCS#11 使用 Botan 的 std::bad_alloc
我是 C++ 新手,我真的坚持使用 Botan 连接到硬件加密令牌。我不知道我是否错过了库或 dll 的任何设置。
我在 Windows 10 中基于Building Botan library 构建了 Botan 库。botan.lib
并botan.dll
在构建后在 lib 文件夹中创建。
然后,我使用以下简单代码在 Visual Studio 2019 中创建了一个控制台应用程序:
这是我准备运行的设置:
配置属性→VC++ 目录:
- 包含目录 → 添加 C:\Botan\include\botan-2;
- 可执行目录 → 添加 C:\Botan\bin;
- 库目录→添加C:\Botan\lib;
- 源码目录→添加C:\Botan\src;
- 附加包含库 → 添加 C:\Botan\include\botan-2
链接器
- 附加库目录 → 添加 C:\Botan\lib;
- 输入 → 附加依赖 → 添加 C:\Botan\lib\botan.lib
我还安装了 dll 在 System32 文件夹中的令牌驱动程序;
当我使用 x86 构建 Botan 库时,我使用以下配置调试项目:
我需要您帮助解决的错误是:
此错误发生在这行代码中:
这是调用堆栈
请注意,我在调试文件夹中复制了 botan.dll 和 ShuttleCsp11_3003.dll。
有人请帮忙,谢谢
c++ - 如何使用 Botan 库和特定密码套件加密数据?
我曾经使用Botan::TLS::Callbacks
并且也是Botan::TLS::Client
Botan::TLS::Server
为了在客户端和服务器之间获得安全通道。此外,为了加密-解密我使用过的数据<botan/pubkeys.h>
<botan/pk_keys.h>
以及 Botan 库中的其他包含头文件。
我的问题是:
为什么对象没有在 Server_Hello_Message 中将
Botan::PK_Encryptor_EME
双方协商的加密算法作为密码套件获得。他们只需将公钥、随机数生成器和最佳加密填充算法作为输入。提到该算法没有被明显和真实的密钥所采用(通过该算法,我的意思是批量加密算法,如AES-128
)。如何保护 tls 通道?正如我通过源代码发现的那样,有一个函数
Botan::TLS::Callbacks tls_emit_data(const uint8_t[], size_t)
将通过安全通道发送数据!即使客户端和服务器之前已经协商和交换了非对称密钥,也应该使用双方同意的对称密钥对数据进行加密。
c++ - 如何正确编写 PKCS#7 签名文件?
我正在尝试使用 Botan 库生成分离的签名文件。生成的签名文件未经 OpenSSL 验证(没有其他检查)。提示签名文件的形成可能有什么错误。
几个用于签名的密钥和证书存储在 HSM 中,获取它们并不难。对于我使用 RSA 密钥和 SoftHSM 的测试,稍后将使用另一种密钥格式和物理 HSM。PKCS#11 用于与 HSM 通信。
对于创建 PKCS#7:
使用 PKCS#11 计算哈希和签名,如下所示:
检查收到的签名文件时,OpenSSL 说