2017-06-19 30 views
0

我正在研究用於根據pkcs7簽名/驗證文件的應用程序。我正在使用bouncycastle。問題是,無論何時我傳入(驗證!)包含簽名的文件,我都找不到一種方法來區分文件是包含簽名還是簽名數據還是簽名。重點是要求用戶選擇第二個文件,如果第一個文件只包含簽名/並顯示適當的錯誤/。 有沒有解決這個問題的方法?Bouncycastle - 如何通過編程區分附加簽名文件

+0

您能否澄清一下您正在使用的BC類,CMSSignedData? –

+0

是的,我正在使用CMSSignedData。 –

+0

我試過'cmsSignedData.getSignedContent()。getContent()',但它似乎不是一個好主意,因爲我必須首先創建cmsSignedData實例,必須提供簽名和簽名內容/或包含兩者的文件/。因此它總是返回帶簽名的內容/不能爲空例如/。 –

回答

2

構建CMSSignedData(首次知道它是否包含封裝內容之前),只需使用CMSSignedData(byte [])構造函數,其中byte []是文件的完整內容。

擁有CMSSignedData實例後,如果內容未被封裝,getSignedContent()將簡單地返回null。

一旦您掌握了基本知識,如果您處理的文件非常大,則可能需要將CMSSignedDataParser作爲更高級的選項,以避免讀取整個文件。

+0

工作就像一個魅力! –

相關問題