在Ubuntu上安装pyxmlsec - python XML安全库
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