做导购网站多少钱,租网站空间,公众号二次开发,wordpress friday文章目录 第三十五章 结合加密和签名使用非对称密钥签名并加密使用非对称密钥加密并签名 第三十五章 结合加密和签名
可以在同一条消息中加密和签名。在大多数情况下#xff0c;只需组合前面主题中给出的方法即可。本主题讨论了多种场景。
使用非对称密钥签名并加密
要签名… 文章目录 第三十五章 结合加密和签名使用非对称密钥签名并加密使用非对称密钥加密并签名 第三十五章 结合加密和签名
可以在同一条消息中加密和签名。在大多数情况下只需组合前面主题中给出的方法即可。本主题讨论了多种场景。
使用非对称密钥签名并加密
要签名然后加密使用非对称密钥时请执行以下操作
按照添加数字签名中的步骤进行操作。按照加密安全标头元素中的步骤进行操作。
或者按照加密 SOAP 主体中的步骤进行操作。
使用非对称密钥加密并签名
要仅加密 SOAP 主体然后添加数字签名使用非对称密钥时请执行以下操作
按照加密 SOAP 主体中的步骤进行操作。按照添加数字签名中的步骤进行操作。
要加密任何安全标头元素然后添加数字签名使用非对称密钥时必须使用顶级 ReferenceList 元素在文档的其他地方不需要。在这种情况下请执行以下操作
按照加密安全标头元素中的步骤 1 — 4 进行操作。对于要加密的每个安全标头元素根据该元素创建一个 EncryptedData 元素。为此请调用 %XML.Security.EncryptedData的 Create() 类方法。在此过程中指定所有三个参数
a. 在前面的步骤中创建的加密密钥实例。
b. 要加密的安全标头元素。
c. $$$SOAPWSReferenceEncryptedKey指定 EncryptedData 如何使用加密密钥实例。 set refopt$$$SOAPWSReferenceEncryptedKeyset encdata##class(%XML.Security.EncryptedData).Create(enckey,userToken,refopt)创建 ReferenceList 元素。为此调用 %XML.Security.ReferenceList的 %New() 方法。例如在此 ReferenceList 中创建一个指向 EncryptedData 元素的Reference。为此请对每个 EncryptedData 执行以下操作
a. 调用 %XML.Security.DataReference的 Create() 类方法并指定加密数据实例作为参数。此方法返回 %XML.Security.DataReference的实例。
b. 调用引用列表实例的 AddReference() 方法并指定数据引用实例作为参数。 set dataref##class(%XML.Security.DataReference).Create(encdata)do reflist.AddReference(dataref)将 ReferenceList 元素添加到 WS-Security 标头元素。为此请调用 Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于要添加的元素请指定您的引用列表实例。例如 do ..SecurityOut.AddSecurityElement(reflist)注意在添加其他项目之前必须先添加 ReferenceList 元素。
将 EncryptedKey 元素添加到 WS-Security 标头元素。使用 AddSecurityElement()。例如 do ..SecurityOut.AddSecurityElement(enckey)将加密的安全标头元素添加到 WS-Security 标头元素。为此请调用 Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。在本例中指定两个参数
a. 要包含的安全标头元素而不是基于该元素的 %XML.Security.EncryptedData的实例。
b. 加密密钥实例。第二个参数指定第一个参数指定的项的放置位置。如果参数为 A、B则 IRIS 确保 A 在 B 之后。指定此项以便收件人首先处理加密密钥然后再处理依赖于它的加密安全标头元素。 do ..SecurityOut.AddSecurityElement(userToken,enckey)或者如果加密的安全标头元素是Signature,则使用 AddSecurityElement()。
按照步骤添加数字签名。发送 SOAP 消息。请参阅添加安全标头元素中的一般注释。