.net - 签署由 jwt 和 tls 保护的分离 xml
问题描述
我在签署 XML 文档时遇到问题。我需要像在这个 url 中那样签署外部(分离的)文档: https ://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.xml.signedxml.computesignature?view=net- 5.0 此示例在我的代码中有效,但是我的 xml 文档由 JWT 和 TLS 证书保护,因此当我尝试 computeSignature 时,我遇到异常“无法创建安全的 ssl/tls 通道”:/ 当我尝试在服务器,当我附加 tls 证书时,问题就解决了。不幸的是,我不知道在这种情况下如何附加 jwt 令牌和 tls(在签名机制中):/
解决方案
所以......经过几个小时的工作,我找到了一些解决方案。问题出在 System.Security.Cryptography.Xml 参考类中。在此类中,当引用某些外部 xml 时,GetHash 方法发出简单的 GET 请求,您无法签署自己的解析器。不幸的是,我无法编辑 System.Security.Cryptography .dll。但是我可以编辑 Medicom.XADES,所以在 BuildDigestedReferences 方法中我需要评论这一行://Reference_UpdateHashValue.Invoke(reference2, new object[] { m_ containsDocument, refList });
并准备我自己的 DigestValue 以供参考:
reference2.DigestValue = GetHashXML(reference2);
其中 GetHashXML(Reference reference) 是向外部(由 ssl/tls 保护)xml 发出请求,然后计算 SHA256 哈希并通过 BYTE 将其值返回给 reference2.DigestValue 的方法
推荐阅读
- ruby-on-rails - 防止 nginx 删除 rack-cors 设置的 CORS 标头
- javascript - 如何在 vue 中删除图像时使输入类型文件为空?
- python-3.x - 将熊猫转换为 excel 的十进制值到逗号
- azure-devops - 如何覆盖 BTDF 设置文件名?
- react-native - 滑动时删除不会关闭 Swipeable React 本机
- python - 删除以字符串模式结尾的变量
- android-studio - 构建 Android 应用程序需要更新到 Gradle 插件的 latsets 版本
- websphere-liberty - 共享库和依赖配置
- swift - 如何将纬度和经度传递给 APIURL?
- blockchain - 使用以太坊创建联盟区块链网络