美文网首页收藏
第三十二章 使用派生密钥令牌进行加密和签名 - 使用 Deriv

第三十二章 使用派生密钥令牌进行加密和签名 - 使用 Deriv

作者: Cache技术分享 | 来源:发表于2024-09-24 09:39 被阅读0次

    第三十二章 使用派生密钥令牌进行加密和签名 - 使用 <DerivedKeyToken>

    进行加密

    要使用 <DerivedKeyToken> 进行加密,请使用以下步骤:

    1. 如果要加密一个或多个安全标头元素,请创建这些安全标头元素。.
    2. 创建 <DerivedKeyToken> 并将其添加到 WS-Security 标头,如创建和添加 <DerivedKeyToken> 中所述。

    请注意,此步骤还会创建并添加 <EncryptedKey> 所基于的 <EncryptedKey> 元素。

    1. 对于要加密的每个元素,请根据该元素创建一个 <EncryptedData> 元素。为此,请调用 %XML.Security.EncryptedDataCreate() 类方法。在此过程中,请指定以下参数:

    a. 派生密钥令牌
    b. 要加密的项目。省略此参数可加密正文。
    c. 指定 <EncryptedData> 元素如何引用 <DerivedKeyToken> 的宏。在此场景中,当前唯一支持的值是 $$$SOAPWSReferenceDerivedKey

    例如,加密 <UsernameToken>

     set refopt=$$$SOAPWSReferenceDerivedKey
     set encryptedData=##class(%XML.Security.EncryptedData).Create(dkenc,userToken,refopt) 
    

    或者,加密正文:

     set refopt=$$$SOAPWSReferenceDerivedKey
     set encryptedData=##class(%XML.Security.EncryptedData).Create(dkenc,,refopt) 
    
    1. 创建 <ReferenceList> 元素。为此,在类中调用 %XML.Security.ReferenceList%New() 方法。例如:
     set reflist=##class(%XML.Security.ReferenceList).%New() 
    
    1. 在这个<ReferenceList>中,创建一个指向<EncryptedData>元素的<ReferenceList>。为此,对每个<EncryptedData>执行以下操作:

    a. 调用 %XML.Security.DataReferenceCreate() 类方法,并指定加密数据实例作为参数。此方法返回 %XML.Security.DataReference的实例。

    b. 调用引用列表实例的 AddReference() 方法并指定数据引用实例作为参数。

     set dataref=##class(%XML.Security.DataReference).Create(encdata)
     do reflist.AddReference(dataref)
     set dataref2=##class(%XML.Security.DataReference).Create(encdata2)
     do reflist.AddReference(dataref2)
    
    1. <ReferenceList> 元素添加到 WS-Security 标头元素。为此,请调用 Web 客户端或 Web 服务的 SecurityOut 属性的 AddSecurityElement() 方法。对于要添加的元素,请指定您的引用列表实例。
     do ..SecurityOut.AddSecurityElement(reflist)
    

    相关文章

      网友评论

        本文标题:第三十二章 使用派生密钥令牌进行加密和签名 - 使用 Deriv

        本文链接:https://www.haomeiwen.com/subject/wyfqrjtx.html