2017-06-19 6 views
0

私は、pkcs7に従ってファイルの署名/検証に使用されるアプリケーションで作業しています。私はバウンシーキャスルを使用しています。問題は、署名を含むファイルを(検証するために)渡すたびに、ファイルに署名データと署名データの両方が含まれているかどうかを判別する方法が見つからないことです。要点は、最初のファイルに署名のみが含まれていて、適切なエラーを表示している場合は、ユーザーに2番目のファイルを選択するように要求することです。 この問題の回避方法はありますか?Bouncycastle - 添付ファイルからプログラムで添付ファイルを区別する方法

+0

使用しているBCクラス、CMSSignedDataなどを明示してください。 –

+0

ええ、私はCMSSignedDataを使用しています。 –

+0

私は 'cmsSignedData.getSignedContent().getContent()'を試しましたが、まずはcmsSignedDataインスタンスを作成しなければならないので、それは良い考えです。署名と署名付きのコンテンツ/または両方を含むファイル/。そのため、常に/を使用すると、署名されたコンテンツ/ nullは返されません。 –

答えて

2

CMSSignedData(初めてカプセル化されたコンテンツがあるかどうかを知る前に)を作成するには、CMSSignedData(byte [])コンストラクタを使用します。ここで、byte []はファイルの完全な内容です。

CMSSignedDataインスタンスを取得すると、コンテンツがカプセル化されていない場合、getSignedContent()は単にnullを返します。

非常に大きなファイルを扱う場合は、基本的な作業が完了したら、CMSSignedDataParserをより高度なオプションとして見て、ファイル全体を読み取らないようにすることができます。

+0

チャームのように働いた! –

関連する問題