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_CYGWIN\lib$PATH_TO_CYGWIN\bin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值