pythonsignxml仅使用公钥/私钥对XML文档进行签名

2024-09-30 04:36:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在django港工作asp.net仅使用公钥/私钥对生成和签名xml文档的应用程序。在

我已经成功地复制了xml生成的每个方面,除了签名方面。我找到了signxml库,它似乎允许我这样做,但我不知道如何让它工作。下面是我得到的代码(模仿示例here):

# store keys as strings
cert = open(signprivatepath).read()
key = open(signpublicpath).read()

data = ET.fromstring(docstring)
xmldsig_stuff = xmldsig(data, 'sha1')
signed_root = xmldsig_stuff.sign(
    key=key,
    cert=cert,
    algorithm='rsa-sha1',
    c14n_algorithm='http://www.w3.org/TR/2001/REC-xml-c14n-20010315'
    )
verified_data = xmldsig(signed_root).verify()
return verified_data

signprivatepath和signpublicpath都是指向PEM格式密钥的路径。在

运行代码时,它返回以下错误:

^{pr2}$

有办法吗?我要复制的代码似乎没有使用证书,只是使用私钥本身。还是我错过了什么?在


Tags: key代码readdatacertrootxmlopen
1条回答
网友
1楼 · 发布于 2024-09-30 04:36:21

certkey变量需要是字节数组,因此按以下步骤将其作为字节数组读取

cert = open(signprivatepath, "rb").read()
key = open(signpublicpath, "rb").read()

然后像之前一样将它传递给sign函数

^{pr2}$

相关问题 更多 >

    热门问题