9

秘密鍵 (ascii 形式) と他の公開鍵 (同じく ascii 形式) を使用してファイルを暗号化しようとしています。BouncyCastle ライブラリは使用するのに適しているように見えますが、C# のドキュメントが見つかりません。誰でも例を教えてください。ありがとうございました。

4

1 に答える 1

18

BouncyCastleの例のコードを次に示します。ソースコードを入手して単体テストを確認する必要があります。単体テストには例が含まれています。Javaリソースも役立つことがわかりました。この例は、crypto \ test \ src \ openpgp \ examples\PbeFileProcessor.csの下のソースにあります。

private static void EncryptFile(
        Stream  outputStream,
        string  fileName,
        char[]  passPhrase,
        bool    armor,
        bool    withIntegrityCheck)
    {
        if (armor)
        {
            outputStream = new ArmoredOutputStream(outputStream);
        }

        MemoryStream bOut = new MemoryStream();

        PgpCompressedDataGenerator comData = new PgpCompressedDataGenerator(
            CompressionAlgorithmTag.Zip);

        PgpUtilities.WriteFileToLiteralData(
            comData.Open(bOut),
            PgpLiteralData.Binary,
            new FileInfo(fileName));

        comData.Close();

        byte[] bytes = bOut.ToArray();

        PgpEncryptedDataGenerator cPk = new PgpEncryptedDataGenerator(
            SymmetricKeyAlgorithmTag.Cast5, withIntegrityCheck, new SecureRandom());

        cPk.AddMethod(passPhrase);

        Stream cOut = cPk.Open(outputStream, bytes.Length);

        cOut.Write(bytes, 0, bytes.Length);

        cOut.Close();

        if (armor)
        {
            outputStream.Close();
        }
    }
于 2010-05-18T16:56:38.090 に答える