2010-07-16 115 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. 

任何想法,這裏發生了什麼?

回答

相關問題