Análise de código de classes da utilitário (CNG exemplo)
O arquivo Utilities.cs no exemplo de comunicação segura a CNG (Cryptography Next Generation) fornece sinalizadores de controle de todo o aplicativo e os métodos usados pelo Alice, Bob, e Mallory projetos. Esses métodos e os sinalizadores são discutidos nas seções a seguintes:
Sinalizadores de versão, fVerbose e fMallory
Método carregador automático
Método InitConsole
Método SplashScreen
Métodos ReadALine e ReadAChar
Método InitializeOptions
Exibir métodos
Para obter uma visão geral do exemplo, consulte Exemplo da Secure Communication Cryptography Next Generation (CNG).
Version: Um valor inteiro que determina qual modelo de segurança é demonstrado, conforme definido na tabela a seguir.
Versão
Modelo de segurança
1
Sem criptografia (texto não criptografado mensagens).
2
Mensagens criptografadas.
3
Assinaturas digital não seguras usados com as chaves criptográficas e mensagens criptografadas.
4
Assinaturas digital seguras usado com chaves criptográficas e mensagens criptografadas.
5
Encerramento de programa com erros de segurança.
fVerbose: Um valor booliano que controla exibem a saída. Um valor de true Exibe todas as mensagens no formato criptografado e ASCII. Um valor de false Exibe mensagens no somente formato ASCII.
fMallory: Um valor booliano que controla se o projeto Mallory está ativado. Um valor de true executa o exemplo com Mallory. Um valor de false executa o exemplo sem interceptação da Mallory. Você pode usar esse sinalizar para uma análise conveniente antes e depois de um ataque man-in-the-middle.
static bool Autoloader()
Esse método carrega Bob.exe e Mallory.exe.Ele é chamado pela Alice no início de sua Main método.
O carregador automático detecta se Ana Maria foi carregada sistema autônomo um aplicativo independente ou por Visual Studio. Ele faz isso chamando o Process.GetProcessesByName(String) método para obter um Process componente que está associado com o processo Alice.exe.
Se o carregador automático obtém um Process componente, Alice é um aplicativo autônomo. Alice inicia Bob.exe e Mallory.exe, chamando o Process.Start(String) método de Bob e Mallory. Uma exceção é lançada se Bob.exe ou Mallory.exe não pode ser encontrado.
Se o carregador automático não obtiver um Process componente, isso indica que Alice.exe foi carregado pelo Visual Studio. Nesse caso, você deve executar manualmente Bob.exe e Mallory.exe carregando-os com duas instâncias separadas do Visual Studio depurador.
See Como: compilação e executar o exemplo CNG Para obter mais informações sobre o carregador automático.
static void InitConsole(string name, int left, int top)
Esse método aceita uma cadeia de caracteres e dois inteiros.A seqüência de caracteres é usada para o título da janela do console.Os inteiros representam padrão à esquerda e superior coordenadas de pixel para posicionar a janela do console na tela.
Cada janela é posicionada de acordo com as coordenadas do padrão.Janela de Alice está posicionada no canto superior esquerdo da tela.Janela de Bob está posicionada no canto superior direito da tela.Janela da Mallory é posicionada abaixo de janelas de Alice e Bob.
Declarações de invocação de plataforma dois fornecer acesso a não gerenciados Win32 funções MoveWindow and GetConsoleWindow, que execute o posicionamento real.
static void SplashScreen()
Este método limpa o console e fornece os títulos para as janelas de Alice e Bob Mallory.
static string ReadALine(bool fBlankOkay)
static string ReadAChar(string options)
Esses métodos de utilitário pequeno trabalham juntos para dispor Console.ReadLine chamadas.
ReadALine aceita um valor booliano. Se o valor é true, ReadALine Retorna se o usuário pressiona o tecla ENTER. Se o valor é false, ReadALine não retornará até que o usuário digita um mínimo de um caractere e, em seguida, pressiona a tecla ENTER.
ReadAChar aceita uma seqüência de caracteres e retorna quando o usuário insere um dos caracteres na seqüência de caracteres.
static string InitializeOptions()
Esse método apresenta a você um menu para definir o Version, fVerbose, e fMallory sinalizadores descritas anteriormente neste tópico. Além disso, o usuário pode selecionar o valor "x" para fechar o aplicativo.
O arquivo Utilities.cs fornece dois Display métodos:
static void Display(string s)
Esse método passa sua seqüência e o corrente MyColor parâmetro para o segundo Display sobrecarga de método.
static void Display(string DisplayString, int color)
Esse método encapsula Console.WriteLine chama e fornece a saída codificadas por cor. O uso de cores facilita controlar o proprietário de cada mensagem.Por exemplo, mensagens de Alice são exibidas em verde em todos os três janelas.A tabela a seguir lista as cores usadas no exemplo a e seus significados.
ID |
Color |
Uso |
---|---|---|
0 |
Vermelho |
Mensagens de erro de segurança. |
1 |
Amarelo |
Opções de menu e aplicativo mensagens. |
2 |
Branco |
Mensagens de Bob. |
3 |
Ciano |
Entrada do usuário. |
4 |
Verde |
Mensagens de Alice. |
5 |
Roxo |
Mensagens do Mallory. |
6 |
Amarelo |
aviso para reiniciar o aplicativo. |
7 |
Cinza |
Mensagem de dados criptografados. |
Exemplo da Secure Communication Cryptography Next Generation (CNG)
Utilities.cs fonte Code (CNG exemplo)
Visão geral do código fonte (CNG exemplo)
Dados empacotamento com plataforma Invoke
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Tópico adicional. |
Aprimoramento de informações. |