草庐IT

openssl_sign

全部标签

c++ - 如何在 C++ 中使用 openssl 加密库 header ?

我正在尝试测试openssl附带的加密库,我从http://www.openssl.org/source/下载了openssl它包含一个/crypto文件夹,其中包含每种加密类型的子文件夹。我想尝试BIO_f_base64,所以我创建了一个空的控制台应用程序,并添加了所需的包含,还将/bio和/evp文件夹的路径添加到c++incl目录,还添加了主/openssl文件夹。当我尝试编译时,我得到无法打开包含文件:'openssl/e_os2.h':没有这样的文件或目录但是文件在那里,我应该以不同的方式使用加密库吗?我如何使用它只添加/openssl路径而不添加我使用的所有加密子文件夹?我

c++ - OpenSSL 在 C++ 中验证对等(客户端)证书

我有一个工作应用程序,它与服务器建立SSL连接。服务器使用自签名证书,客户端加载证书颁发机构链以告诉它服务器可以信任。我在客户端用这样的代码做到了这一点:SSL_METHOD*method=TLSv1_client_method();_ctx=SSL_CTX_new(method);if(SSL_CTX_load_verify_locations(_ctx,"ca-all.crt",NULL)!=1){returnfalse;}_ssl=SSL_new(_ctx);intval=SSL_set_fd(_ssl,_socket->GetFD());if(val!=SSL_SUCCESS)

c++ - 在 Windows CryptoAPI 和 OpenSSL x509 格式之间转换

我有一个CERT_CONTEXT我通过CryptoAPI从Windows上的智能卡中提取的结构。我需要将此结构转换为与OpenSSL一致的DER编码字节数组。到目前为止我得到的最接近的匹配是通过CryptEncodeObject使用X509_ASN_ENCODING和采用CERT_INFO的X509_CERT_TO_BE_SIGNED修饰符结构作为输入。问题是它与OpenSSLi2d_X509生成的输出不匹配功能。使用2048位x509证书作为输入,OpenSSL产生1789字节的编码输出,而WindowsCryptoAPI产生1638字节的编码输出。我能看到的唯一选项是使用CERT_

c++ - 无法打开源文件 "openssl/bn.h"

#include#include错误:无法打开源文件“openssl/bn.h”,无法打开源文件“openssl/dh.h”???怎么了 最佳答案 确保您的系统上安装了libssl。如果你在linux上使用命令$yumlistlibssl如果已安装。确保你已经在include目录中给出了它的路径。如果您使用的是gcc,您可以使用告诉gcc在目录中搜索-I/path_of_libssl文件夹 关于c++-无法打开源文件"openssl/bn.h",我们在StackOverflow上找到一个

基于OpenSSL的SSL/TLS加密套件全解析

概述SSL/TLS握手时,客户端与服务端协商加密套件是很重要的一个步骤,协商出加密套件后才能继续完成后续的握手和加密通信。而现在SSL/TLS协议通信的实现,基本都是通过OpenSSL开源库,本文章就主要介绍下加密套件的含义以及如何在OpenSSL中指定加密套件。加密套件介绍SSL/TLS协议的加密套件是定义了在一次连接中所使用的各种加密算法的组合。它包括以下几个主要部分密钥交换算法:用于协商会话密钥,如RSA、DH、ECDH等。对称加密算法:用于实际数据传输的加解密,例如AES、3DES等。消息认证码(MAC)或伪随机函数(PRF):用于验证数据完整性及防止篡改,如SHA256等。如何指定加

c++ - IO 完成端口和 OpenSSL

我有一些遗留代码使用OpenSSL进行通信。就像任何其他session一样,它使用SSL功能进行握手,然后通过TCP进行加密通信。我们最近更改了代码以使用IO完成端口。它的工作方式与OpenSSL相反。基本上,我很难将我们的安全通信代码从完全使用OpenSSL迁移到IOCP套接字和OpenSSL加密。有没有人/任何人知道任何可能帮助我完成此类任务的引用资料?TLS握手如何通过IOCP工作? 最佳答案 为了使用OpenSSL进行加密,但做你自己的套接字IO,你基本上要做的是创建一个内存BIO,当套接字数据可用时,你可以在其中读取和写入

c++ - int8_t 和 char : converts between pointers to integer types with different sign - but it doesn't

我正在处理一些嵌入式代码,并且正在从头开始编写一些新东西,因此我更愿意坚持使用uint8_t、int8_t等类型。然而,当移植一个函数时:voidfunctionName(char*data)到:voidfunctionName(int8_t*data)在将文字字符串传递给函数时,我收到编译器警告“在指向具有不同符号的整数类型的指针之间转换”。(即调用functionName("putthistextin");时)。现在,我明白了为什么会发生这种情况,并且这些行只是调试,但我想知道人们认为什么是最合适的处理方式,而不是对每个文字字符串进行类型转换。在实践中,我不认为一揽子类型转换比使用

c++ - OpenSSL 静态库太大,有什么替代方法或方法可以减小它的大小吗?

我使用了OpenSSL1.0的预构建静态库,但它使我的二进制文件太大(在Release模式下将其大小增加了大约800Kb)。我不需要OpenSSL的大部分功能,例如BIO,我使用自己的套接字,因此在代码中我只使用了几个SSL_XXXXXXXXX调用(SSL_accept(3)或SSL_connect(3)、SSL_read(3)和SSL_write(3))我唯一的要求是支持SSLv2/v3在windows上使用winsock,在linux上支持客户端和服务器端的套接字(对于C++)有没有办法让OpenSSL变得更小(也许通过自己编译),或者,在最后的手段中,有任何其他好的但更轻量级的S

c++ - OpenSSL AES_cfb128_encrypt C++

我试图实现一个“非常”简单的加密/解密示例。我需要一个项目来加密一些用户信息。我不能加密整个数据库,只能加密表中的某些字段。除了加密之外,数据库和项目的大部分其余部分都可以正常工作:这是它的简化版本:#include#include#include#includeusingnamespacestd;intmain(){/*ckeyandivecarethetwo128-bitskeysnecessarytoen-andrecryptyourdata.Notethatckeycanbe192or256bitsaswell*/unsignedcharckey[]="helloworldke

c++ - unsigned-signed 下溢机制

我知道以下内容unsignedshortb=-5u;由于下溢,评估为b为65531,但我不明白5u在转换为-5之前是否转换为带符号的int,然后重新转换回无符号以存储在b中,或者-5u是等于0-5u(不应该这样,-x是一元运算符) 最佳答案 5u是一个文字无符号整数,-5u是它的否定。无符号整数的否定定义为从2**n中减去,得到相同的结果包装从零减去的结果。 关于c++-unsigned-signed下溢机制,我们在StackOverflow上找到一个类似的问题: