using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CryptanalysisCore
{
interface ICipher
{
///
/// Zašifruje zadaný text.
///
/// Text, který má být šifrován
/// Klíč, pomocí kterého má být text zašifrován
/// Zašifrovaný text
CipherPacket Encrypt(CipherPacket packet);
///
/// Dešifruje zadaný text.
///
/// Text, který má být dešifrován
/// Klíč, pomocí kterého bude prováděno dešifrování
/// Otevřený text
CipherPacket Decrypt(CipherPacket packet);
///
/// Násilné dešifrování zašifrovaného textu bez znalosti klíče.
///
/// Text, který se pokoušíme dešifrovat
/// Otevřený text
CipherPacket Crack(CipherPacket packet, LangCharacteristic langChar);
///
/// Vrátí náhodný klíč k dané šifře
/// TODO: Kontrola toho, aby klíč nebyl slabý
///
/// Náhodný šifrovací klíč
string RandomKey();
}
}