如何将ASN1_TIME转换为标准::字符串
How to convert ASN1_TIME to std::string
我正在以这种方式将ASN1_TIME转换为std::string:
std::string timeString;
BIO *bmem = BIO_new(BIO_s_mem());
if (ASN1_TIME_print(bmem, asn1Time)) {
BUF_MEM * bptr;
BIO_get_mem_ptr(bmem, &bptr);
timeString.assign(std::string(bptr->data, bptr->length));
}
else { // Log error
}
BIO_free_all(bmem);
BUF_MEM使用有什么问题?我在 bptr->长度中得到非常大的数字,导致 std::string 构造异常。
有问题的代码很好。问题是由于标头不匹配造成的。正在使用系统中的早期标头,因此一切都很好。由于(很可能(El-Capitan,OSX不再包含标头,并且不鼓励依赖OSX进行SSL,以避免由于版本不兼容而导致的问题。
见 http://lists.apple.com/archives/macnetworkprog/2015/Jun/msg00025.html
这正是正在发生的事情 - 代码与操作系统上的库链接,但使用的标头来自不同的版本,因为它们是从openssl最新源代码下载的。
相关文章:
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 如何在 C++11 中将标准::字符串转换为标准::u32字符串?
- 从标准::字符串到标准::矢量<bool>的快速转换
- 将手写循环转换为标准库调用
- C++ - 转换标准::浮点数组的字符串
- 如何将 tbb concurrent_hash_map转换为常规标准::地图?
- 从常量字符*、字符*参数到标准::字符串的直接转换接口
- 热将标准::__cxx11::字符串转换为标准::字符串
- C++17 编解码器在将标准::字符串转换为标准::字符串时抛出"bad conversion"
- 如何将 C 数组转换为标准::initializer_list?
- 从双秒到标准::时间:steady_clock::d的简短转换?
- 是参考转换是标准转换
- STL标准::转换
- 重载标准::转换算法
- 标准::转换的功能版本
- 标准::转换中的 [] const_iterator::value_type 是什么意思
- 通过初始标准转换序列区分用户定义的转换序列
- 提升::转换与标准::转换
- 用户定义转换的第二个标准转换序列
- 标准::转换的泛化