Я пытаюсь использовать BouncyCastle для шифрования файла с использованием стандарта файлов PKCS 7.Вот код, который у меня есть, который выводит файл 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.
Есть идеи, что здесь происходит?