我是靠谱客的博主 冷酷诺言,最近开发中收集的这篇文章主要介绍XML Security Library (xmlsec) 库编译 (解决旧版本xmlsec.exe 0xc000007b报错),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

XML Security Library

XML Security Library是一个基于libxml2的C类库,支持主流的XML加密算法,原生支持gcrypt, gnutls, mscng, mscrypto, nss, openssl六种加密库,在诸如SAML2.0等加密认证或相关安全领域会用到该库,截至发文(2019-10-18),libxmlsec类库源码最新版为1.2.29(2019-10-15更新))。

XML Security Library 官网提供了源代码及旧版预编译二进制文件下载。
XML Security Library 官方下载站点提供的最新Windows版库文件为1.2.18,用于32位平台,不支持64位平台,因此在64位Windows使用该文件时会报0xc000007b加载错误

xmlsec1.2.29支持的加密算法:

xmlsec动态加载各加密库时对不同加密算法的支持情况:

crypto 库xmlsec支持的xml加密算法
gcryptDer
gnutlsPkcs12, Der, X509_APP_KEY
mscngPkcs12, Der
mscryptoPkcs12, Der
nssPkcs12, Der,
opensslPem, Der, Pkcs8Pem, Pkcs8Der, Pkcs12

xmlsec的解析库中,openssl几乎支持了大部分加密算法,针对常见的Pkcs12及Der加密可以任选其一使用,而其余的如Pem的加密则必须使用openssl加密库,这些加密方法接口的定义及调用在$PATH_TO_XMLSEC_SOURCE/src/$CRYPTO_LIB/app.c中。

编译与使用

官方提供的二进制文件目前不支持新版特性,并且只能运行在32位系统中,如果需要在pySAML等库中调用该库,建议在目标机中从源代码编译。
编译环境任选,编译器任选,建议只选择加密库其中一种,避免程序过于臃肿。

此处挑选以Pem位加密算法加密XML场景的编译过程,因为只有openssl库支持Pem加密方式,其余库参考此方法即可
平台:Windows 10-64bit
编译环境:Cygwin
Cygwin预装库:automake-1.15, cygwin32-libtool, libtool, libxml2-dev, libxslt, libxslt-devel, make, gcc-g++.
如果在Linux环境中编译,只需要保证这些库在就可以,其余步骤一样。
编译准备:下载xmlsec1源代码,openssl源代码,使用系统或Cygwin预装的openssl会导致一些方法调用时显示未定义。

解压编译opensll和xmlsec1源代码,需要先编译并安装openssl库再编译xmlsec

tar xvf openssl-1.1.1d.tar.gz
tar xvf xmlsec1-1.2.29.tar.gz
cd openssl-1.1.1d
./config
make
make install
cd xmlsec1-1.2.29
./configure --enable-mscrypto=no --enable-mscng=no
# 禁用mscrypto和mscng库以减小库大小
make
make install

最后在系统环境变量PATH中加入$PATH_TO_CYGWINlib$PATH_TO_CYGWINbin

最后

以上就是冷酷诺言为你收集整理的XML Security Library (xmlsec) 库编译 (解决旧版本xmlsec.exe 0xc000007b报错)的全部内容,希望文章能够帮你解决XML Security Library (xmlsec) 库编译 (解决旧版本xmlsec.exe 0xc000007b报错)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部