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).
Sinalizadores de versão, fVerbose e fMallory
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.
Método carregador automático
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.
Método InitConsole
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.
Método SplashScreen
static void SplashScreen()
Este método limpa o console e fornece os títulos para as janelas de Alice e Bob Mallory.
Métodos ReadAChar e ReadALine
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.
Método InitializeOptions
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.
Métodos de exibição
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. |
Consulte também
Conceitos
Exemplo da Secure Communication Cryptography Next Generation (CNG)
Utilities.cs fonte Code (CNG exemplo)
Visão geral do código fonte (CNG exemplo)
Referência
Outros recursos
Dados empacotamento com plataforma Invoke
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Tópico adicional. |
Aprimoramento de informações. |