在Ubuntu上安装pyxmlsec - python XML安全库

时间:2020-03-05 15:29:13  来源:igfitidea点击:

XML加密和数字签名用于XML文档的安全性。
对于不同的编程语言,存在XML加密和数字签名实现。
但是,C语言中的XML加密和数字签名的实现非常全面。
它支持许多函数并基于libxml2库。
pyxmlsec是XML安全性功能的Python实现,但它不支持所有功能。
当前版本的库在Python中遵循XML安全标准。

a)XML签名和加密B)规范XML

pyxmlsec库的准备工作

pyxmlsec库需要遵循安装的软件包。

1)Python 2.2或者更大

2)libxml.

3)XML安全库

Python已经在Ubuntu分发上安装。
可以通过在终端中键入以下命令来安装libxml,该命令如图所示

$sudo apt-get install python-libxml2

可以通过在终端中使用以下命令来安装XML安全库。
在以下快照中显示XML库的安装。

$sudo apt-get install libxmlsec1-dev

C开发库的安装如下图所示。

$sudo apt-get install libxml-security-c-dev

使用以下终端安装了Python实现XML安全性,该终端也在图中示出。

$sudo apt-get install xmlsec1

安装依赖项后,在下载目录中使用以下命令下载pyxmlsec最新版本(0.3.1)。
下图显示了下载过程。

$cd Downloads
$sudo wget labs.libre-entreprise.org/frs/download.php/897/pyxmlsec-0.3.1.tar.gz

我们必须从源包编译pyxmlsec,因为deb软件包(二进制包)不可用。

在终端中使用以下命令提取下载的pyxmlsec-0.3.1.tar.gz包。

$sudo tar -xvzf pyxmlsec-0.3.1.tar.gz

使用CD命令转到提取的目录中,该命令显示在图中。

$cd pyxmlsec0.13.1

一旦进入包的根目录,请在终端中运行sudo setup.py以安装pyxmlsec。

pyxmlsec的安装过程如下图所示。
选择选项1,用于从源自构建PyxmlSec。
pyxmlsec库支持openssl,nss和gnutls crypto引擎。
OpenSSL是众所周知的加密引擎,通常安装在几乎每个Linux发行版中。

$sudo ./setup.py

完成构建步骤后,再次运行相同的命令,然后选择选项2以安装库,如下所示。

例子

在文档部分的pyxmlsec上有很少的例子。

我们选择了演示目的的XML签名(sign3.py)和验证(验证3.py)示例。
签名示例要求以XML格式,键格式的XML格式,键和证书中的输入文件(在我们的案例文档中)。
所以首先,关键对和签名过程所需的自签名证书。
OpenSSL广泛使用用于RSA密钥对和证书生成的实用程序。
以下命令生成RSA密钥对为2048位大小和存储在"key.pem"文件中的存储。
它还在Cer.PEM文件中存储X509证书。

#openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

XML签名

在生成键和证书后,下一步正在签署输入文件。
XML签名示例以以下格式从用户中采用参数。

#./sign.py <xml-doc> <key-file> <cert-file>

在我们的情况下,XML签名的输入文件是Document.xml和ComputAl文件签名存储在Output.xml文件中,如下所示。

#./sign.py document.xml key.pem cert.pem > output.xml

XML验证

在此步骤中,XML验证示例使用Recover.xml文件使用证书进行验证XML签名。
XML验证示例以以下格式从用户采用参数。

#./verify.py <signed-file> <trusted-cert-pem-file1> [<trusted-cert-pem-file2> [...]]

在我们的情况下,XML验证的输入文件是输出.xml,并验证它如下所示。

#./verify.py output.xml cert.pem