2010-07-16 119 views
0

我正在尝试使用BouncyCastle来使用PKCS 7文件标准来加密文件。这是我输出一个p7m文件的代码。当我去解密文件时(使用Entrust),系统提示我输入密钥存储密码,所以它知道使用AES 128为我加密了文件,但它无法解密文件正文。加密时必须出错。BouncyCastle创建PKCS 7加密文件? C#

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. 

任何想法,这里发生了什么?

回答

相关问题