BouncyCastle создать зашифрованный файл PKCS 7? C # - PullRequest
1 голос
/ 16 июля 2010

Я пытаюсь использовать 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.

Есть идеи, что здесь происходит?

1 Ответ

0 голосов
/ 18 августа 2010

Для этого я использовал класс EnvelopedCMS.

http://msdn.microsoft.com/en-us/library/bb924575(VS.90).aspx

...