1

BouncyCastleを使用して、PKCS7ファイル標準を使用してファイルを暗号化しようとしています。これが私が持っている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.

ここで何が起こっているのかアイデアはありますか?

4

1 に答える 1

0

これを実現するために、EnvelopedCMSクラスを使用しました。

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

于 2010-08-18T17:36:53.887 に答える