BouncyCastleを使用して、PKCS7ファイル標準を使用してファイルを暗号化しようとしています。これが私が持っているp7mファイルを出力するコードです。(Entrustを使用して)ファイルを復号化しようとすると、キーストアのパスワードの入力を求められるため、ファイルがAES 128を使用して暗号化されていることがわかりますが、ファイルの本文を復号化できません。暗号化で問題が発生している必要があります。
byte[] fileContent = readFile(filename);
FileStream outStream = null;
Stream cryptoStream = null;
BinaryWriter binWriter = null;
try
{
CmsEnvelopedDataStreamGenerator dataGenerator = new CmsEnvelopedDataStreamGenerator();
dataGenerator.AddKeyTransRecipient(cert); //cert is the user's x509cert that i am encrypting for
outStream = new FileStream(filename + ".p7m", FileMode.Create);
cryptoStream = dataGenerator.Open(outStream, CmsEnvelopedGenerator.Aes128Cbc);
binWriter = new BinaryWriter(cryptoStream);
binWriter.Write(fileContent);
}
そして、BouncyCastleを使用してファイルを復号化しようとすると、ファイルの内容をCMSEnvelopedオブジェクトに渡すときに次のエラーが発生します。
IOException converting stream to byte array: Attempted to read past the end of the stream.
ここで何が起こっているのかアイデアはありますか?