Chilkat - Delphi DLL - XADES - CkXmlDSigGen_AddExternalTextRef

问题描述

我在使用 Ck XmlDSig Gen_AddExternalTextRef 函数时遇到问题。 签名后,DigestValue 始终为不同的 URL 获取相同的值。

<ds:DigestValue>8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=</ds:DigestValue>

问题出在哪里?

我找不到使用 XmlDSig Gen_AddExternalTextRef 函数的示例。 感谢您的帮助。

马雷克

代码

  .......................
  CkXmlDSigGen_AddExternalTextRef(xmlSigGen,PWideChar(url1),sbXml,'utf-8',true,'sha256','');
  CkXmlDSigGen_SetRefIdAttr(xmlSigGen,PWideChar(ref1));

  CkXmlDSigGen_AddExternalTextRef(xmlSigGen,PWideChar(url2),PWideChar(ref2));

  ................
  CkXmlDSigGen_CreateXmlDSigSb(xmlSigGen,sbXml);

结果 XML:

<ds:Reference Id="xmldsig-fc9386fa-4c0d-42ba-bd4e-7ecb61218cfd-ref1" URI="https://isus.ezdrowie.gov.pl/fhir/Encounter/131544/_history/1">
  <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
  <ds:DigestValue>8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=</ds:DigestValue>

</ds:Reference>
<ds:Reference Id="xmldsig-fc9386fa-4c0d-42ba-bd4e-7ecb61218cfd2" URI="https://isus.ezdrowie.gov.pl/fhir/Condition/131553/_history/1">
  <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
  <ds:DigestValue>8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=</ds:DigestValue>

解决方法

这是添加外部文本数据引用然后验证的示例:https://www.example-code.com/delphiDll/xmldsig_external_text_reference.asp

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...