首页 > 解决方案 > 从 CADES 签名的 XML 文件中提取原始文件内容

问题描述

首先我说我不想要现成的代码,而是来自比我了解更多的人的评估!我正在处理用 CADES 签名的 XML.P7M 文件。此签名在文件的开头、结尾和中间添加字符,使其难以辨认。为了使其可读,我必须通过删除签名注入的内容来提取文件。我使用 Bouncycastle DLL 执行此操作。这是代码

Public Function ConvertP7MXml(ByVal filePath As String) As Boolean

    Try
        Using inputStream = New FileStream(filePath, FileMode.Open, FileAccess.Read)
            Dim signedFile As CmsSignedData = New CmsSignedData(inputStream)

            sFile = Application.StartupPath & "\tmpDecrFile.xml" 'Path.GetTempFileName()

            If My.Computer.FileSystem.FileExists(sFile) Then My.Computer.FileSystem.DeleteFile(sFile)
            Using fileStream = New FileStream(sFile, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)
                signedFile.SignedContent.Write(fileStream)
            End Using
            File.SetAttributes(sFile, FileAttributes.Hidden)
            Return True
        End Using
    Catch ex As Exception
        MessageBox.Show("Corrupted P7M file or invalid file")
        Return False
    End Try


End Function

我想知道是否可以使用仅引用任何文档的框架类来执行此操作。我为之前不太理解的信息道歉,但我的英文写得不好,我是意大利人!感谢您的关注

标签: c#vb.netcryptography

解决方案


推荐阅读