पर विफल रहता है मैं pyxmlsec/xmlsec/libxml2 का उपयोग कर एक XML फ़ाइल पर हस्ताक्षर करने का प्रयास कर रहा हूं लेकिन यह विफल रहता है (sigCtx->signValueNode == NULL:error=100:assertion
)।xmlsec1 साइन कमांड लाइन पर काम करता है लेकिन पाइथन कोड
जब मैं कमांड लाइन से चलाने इसे सुचारू रूप से काम करता है:
xmlsec1 sign --output signed.xml --pkcs12 c.pfx --pwd mypwd tobesigned.xml
मेरे अजगर कोड:
libxml2.initParser()
libxml2.substituteEntitiesDefault(1)
xmlsec.init()
xmlsec.cryptoAppInit(None)
xmlsec.cryptoInit()
doc_xml = libxml2.parseMemory(xml, len(xml))
signature_node = xmlsec.findNode(
doc_xml.getRootElement(),
xmlsec.NodeSignature,
xmlsec.DSigNs,
)
signer = xmlsec.DSigCtx()
key = xmlsec.cryptoAppKeyLoad(
filename=str(self.issuer.certificate.path),
format=xmlsec.KeyDataFormatPkcs12,
pwd=str(self.issuer.certificate_password),
pwdCallback=None,
pwdCallbackCtx=None,
)
signer.signKey = key
signer.sign(signature_node) # error!
...
पूर्ण त्रुटि ट्रेस:
func=xmlSecDSigCtxProcessSignatureNode:file=xmldsig.c:line=463:obj=unknown:subj=dsigCtx->signValueNode == NULL:error=100:assertion:
func=xmlSecDSigCtxSign:file=xmldsig.c:line=303:obj=unknown:subj=xmlSecDSigCtxSigantureProcessNode:error=1:xmlsec library function failed:
किसी भी सुझाव दिए गए?
धन्यवाद!
फिक्स्ड कांटा: https://github.com/aricaldeira/pyxmlsec – alanjds