Sto provando a crittografare i file usando la mia chiave privata (in formato ASCII) e qualsiasi altra chiave pubblica (anche in formato ASCII). La libreria BouncyCastle sembra la cosa giusta da usare, ma non riesco a trovare la documentazione per C#. Qualcuno potrebbe per favore assistermi con un esempio. Grazie.Bisogno di esempio per BouncyCastle PGP Crittografia file in C#
6
A
risposta
12
Ecco un codice dall'esempio BouncyCastle. Dovresti prendere il codice sorgente e cercare i test unitari, contengono esempi. Ho trovato che anche le risorse Java sono utili. L'esempio può essere trovato nella sorgente sotto Crypto \ test \ src \ openpgp \ esempi \ 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();
}
}
+1
++ Grazie. Stavo riscontrando problemi nel trovare gli esempi. – John
forse non ci sto capendo PGP in modo corretto, quando si crittografare un file si usa solo pubblico il 3 ° partito chiave? Nessuna parte della tua chiave privata viene utilizzata nel processo, corretta? Se è così, ho bisogno di cambiare la mia domanda in "Esempio: come crittografare con chiave pubblica di terze parti e firmare con chiave privata" –
È così con qualsiasi crittografia asimmetrica: si utilizza la chiave pubblica per la crittografia e la verifica della firma e la chiave privata è usato per la firma e la decrittazione. –