BouncyCastle criar PKCS 7 Arquivo Criptografado?C#
-
16-09-2020 - |
Pergunta
Estou tentando usar BouncyCastle para criptografar um arquivo usando o PKCS 7 de arquivo padrão.Aqui está o código que eu tenho que gera um arquivo p7m.Quando eu vou para descriptografar o arquivo (usando Confiar a) sou solicitado para a minha senha do armazenamento de chaves, portanto, ele sabe que o arquivo foi criptografado para mim, usando criptografia AES de 128, mas ele não pode descriptografar o corpo do arquivo.Algo tem de estar errado em encriptar.
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);
}
E quando eu tentar descriptografar o arquivo usando BouncyCastle eu recebo esse erro quando eu passar o conteúdo do ficheiro para uma CMSEnveloped Objeto:
IOException converting stream to byte array: Attempted to read past the end of the stream.
Alguma idéia o que está acontecendo aqui?
Solução
Eu usei o EnvelopedCMS classe para fazer isso.
http://msdn.microsoft.com/en-us/library/bb924575(VS.90).aspx