PGP压缩和加密

PGP压缩和加密

问题描述:

我使用Bouncy Castles来压缩和加密一些数据。该压缩方法失败并出现空引用异常。下面的方法进行压缩:PGP压缩和加密

private byte[] Compress(byte[] data) 
     { 
      using (MemoryStream outStream = new MemoryStream()) 
      { 
       PgpCompressedDataGenerator pgpCompressedDataGenerator = new PgpCompressedDataGenerator(CompressionAlgorithmTag.Zip); 
       using (Stream compressedStream = pgpCompressedDataGenerator.Open(outStream)) 
       { 
        PgpLiteralDataGenerator pgpLiteralDataGenerator = new PgpLiteralDataGenerator(); 

        using (Stream literalDataStream = pgpLiteralDataGenerator.Open(compressedStream, PgpLiteralData.Binary, null, data.Length, DateTime.UtcNow)) 
        { 
         literalDataStream.Write(data, 0, data.Length); 

         literalDataStream.Close(); 

         pgpCompressedDataGenerator.Close(); 

         return outStream.ToArray(); 
        } 
       } 
      } 
     } 

以下行导致大量引用异常:

pgpLiteralDataGenerator.Open(compressedStream, PgpLiteralData.Binary, null, data.Length, DateTime.UtcNow)) 

但是我不知道为什么 - 如果我离开了压缩,加密部分按预期工作。我需要另一个库进行压缩,

马克

原来空参数调用下面是造成问题:

pgpLiteralDataGenerator.Open(compressedStream, PgpLiteralData.Binary, null, data.Length, DateTime.UtcNow)) 

此代码是从另一个项目的直接拷贝,但是在那个项目中,Bouncy Castles API被引入了iTextSharp--我假设在实现方面存在细微差别。